C# pro linuxového uživatele

sharpik

C# pro linuxového uživatele
« kdy: 06. 10. 2018, 11:48:43 »
Kedze Windows je dost otravny, pomaly a zavireny pred par rokmi som zacal pouzivat Linux. Okrem toho ze som sa naucil trochu s Linuxom pracovat ma vzdy lakalo programovanie. Rozmyslal som ci C# alebo Java. Neviem preco mam zaujal viac C#. Momentalne ma C# stale bavi a myslim ze mam aj slusne zaklady. Ma zmysel pokracovat v C# aj ked nepozivam Windows a nemam ho rad?
« Poslední změna: 06. 10. 2018, 13:51:24 od Petr Krčmář »


jpu

Re:C# pre Linux uzivatela
« Odpověď #1 kdy: 06. 10. 2018, 12:40:22 »
Samozrejme ze sa da. Mame tu .net core. Ale ci vyuzijes komplet potencial C# tazko povedat. Ruky prec od javy

mikrom

Re:C# pro linuxového uživatele
« Odpověď #2 kdy: 06. 10. 2018, 15:52:16 »
Ma zmysel pokracovat v C# aj ked nepozivam Windows a nemam ho rad?
Mimo windows C# zmysel nema.
Ale ak uz vies C# nemoze byt pre teba problem naucit sa aj Javu.

Sadam

Re:C# pro linuxového uživatele
« Odpověď #3 kdy: 06. 10. 2018, 16:03:31 »
Nauc se QT, go, Python... na Javu a C# srat

mikrom

Re:C# pro linuxového uživatele
« Odpověď #4 kdy: 06. 10. 2018, 16:14:06 »
Nauc se QT, go, Python... na Javu a C# srat
... ale on uvazuje iba o  C# alebo Java  :)
...
Rozmyslal som ci C# alebo Java.
...


Pep

Re:C# pro linuxového uživatele
« Odpověď #5 kdy: 06. 10. 2018, 16:30:17 »
Kedze Windows je dost otravny, pomaly a zavireny pred par rokmi som zacal pouzivat Linux. Okrem toho ze som sa naucil trochu s Linuxom pracovat ma vzdy lakalo programovanie. Rozmyslal som ci C# alebo Java. Neviem preco mam zaujal viac C#. Momentalne ma C# stale bavi a myslim ze mam aj slusne zaklady. Ma zmysel pokracovat v C# aj ked nepozivam Windows a nemam ho rad?
Pro vlastní projekty nic nehovoří proti.

Andrej Babis

Re:C# pro linuxového uživatele
« Odpověď #6 kdy: 07. 10. 2018, 08:17:29 »
Prejdete zpet do Windows a pokud mate rad prikazovou radku, pouzijte Ubuntu pod Windows nebo nejakou virtualizaci.

Neumim si predstavit duvod a logickou argumentaci proc primarne programovat v C# pod linuxem. Chapu nejake okrajove pripady existujicich reseni (treba Unity 3D aplikace, atp.), ale jinak bych volil radeji bajecny JavaScript nebo uzasne C++17.

Java je pod linuxem skareda, pomala a tam kde by spatny navrh v C++ uz davno shodil program, Java dal predstira ze je vse vporadku.

Jenda

Re:C# pro linuxového uživatele
« Odpověď #7 kdy: 07. 10. 2018, 08:38:29 »
Neumim si predstavit duvod a logickou argumentaci proc primarne programovat v C# pod linuxem.

Protože mu Windows nevyhovuje?

Jinak podle mě bez problému, teď navíc existuje pro Linux MS VS Code, takže dokonce i s IDE přímo od výrobce.

a124

Re:C# pro linuxového uživatele
« Odpověď #8 kdy: 07. 10. 2018, 08:44:40 »
Zkus nainstalovat GNOME builder a tam při založení nového projektu klikni na tři tečky (u jazyka nebo jaké tlačítko.to je) a výběr C#.

Andrej Babis

Re:C# pro linuxového uživatele
« Odpověď #9 kdy: 07. 10. 2018, 09:10:52 »
Neumim si predstavit duvod a logickou argumentaci proc primarne programovat v C# pod linuxem.

..teď navíc existuje pro Linux MS VS Code, takže dokonce i s IDE přímo od výrobce.

Ja to musel pouzivat, a to jsem linuxak od malicka, a je to v porovnani s luxusem MS VS uplna tragedie. Pokud chcete vyhrat v soutezi jak neco udelat co nejpomaleji a ziskat u toho vrasky 40 letyho borca, tak s chuti do toho. Jen mam obavy, ze vam to nikdo nezplati.

Skoda ze MS VS nebezi pod Wine, to bych mel odpoved. Ale VS Code i presto, ze je to nejlepsi IDE pod linuxem (snad s vyjimkou QTCreator pro C++), nemuze se s MS VS vubec srovnavat.

[pokud v mem textu vidite subjektivni hodnoceni, ktere vam nesedi, neberte si to osone; jen tim vyjadruji sve hodnoceni zalozene na svych zkusenostech a nechtel jsem se tim kohokoliv dotknout]

Re:C# pro linuxového uživatele
« Odpověď #10 kdy: 07. 10. 2018, 10:15:43 »
No rozhodně se s ním nemůže srovnávat v zabraném prostoru na disku. ;) Já VS Code používám a rozhodně s ním problém nemám, naopak se jmenovaným QT Creatorem by jich bylo hned několik...

Mimochodem netvrdil bych, že VS Code je IDE. :)

jpu

Re:C# pro linuxového uživatele
« Odpověď #11 kdy: 07. 10. 2018, 10:28:35 »
Nerozumiem naco znasilnovat C# na linuxe. Proste je to MS technologia, tak vyvijaj pod windowsom. Nechapem co by si asi tak vyvijal na linuxe s touto technologiou. Ked nechces windows vyber si srackovu javu a s tou vyvijaj

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:C# pro linuxového uživatele
« Odpověď #12 kdy: 07. 10. 2018, 10:30:44 »
Java i C# mě už delší dobu živí, tak přidám své €0.02.

Zmíněný VS Code je postavený na frameworku Electron, jedná se tedy o embedovaný webový prohlížeč + hromada JavaScriptu (TypeScriptu). Výsledkem je IDE, které je pomalé a těžkopádné na cokoliv většího než školní/domácí projektíky. A ano, je to horší jak Java aplikace jak rychlostí, tak spotřebou paměti :) . Tak a teď se do mě pusťte :-D . .Net Core je v současnosti zaměřený spíše na tvorbu serverových aplikací - web a REST webové služby. Loni, když jsem se na to díval víc, SOAP to umělo volat, ale ne vytvářet, což je v enterprise sféře problém. Na desktop nebo SOAP je potřeba Mono.

Java má mezi linuxovou komunitou dost špatnou pověst hlavně díky tomu, že desktop aplikace napsaná ve Swingu vypadá ve vyšperkovaném Gnome nebo KDE jako pěst na oko, zpravidla dlouho startuje a působí dost "utahaně" (např. response na stisk tlačítka je delší než u C++ aplikace). Tohle je dáno především tím, že uživatelské rozhraní je nejméně přenositelná část aplikace a linuxových desktop uživatelů je poskrovnu, především v businessu. Pokud někdo píše desktop aplikaci v Javě, obvykle se zaměří na Windows a Mac, Linux nechá stranou - když to běží, tak to běží, OK, kašlat. To samé platí o základní knihovně a celém OpenJDK. V Java světě je běžné mít vývoj na Windows/Mac a aplikační server na linuxu. Tomu odpovídá i to, na co se zaměřují vývojáři OpenJDK. Starty Javy na linuxu taky bude řešit málokdo z vývojářů JDK, narozdíl od Windows nebo Macu.

V linux desktopu dominuje C a C++. Naučit se dobře C++ je mnohem těžší než naučit se dobře Javu či C# a to je zase těžší, než naučit se dobře Python. Skriptovací jazyky jako Python mají výhodu v tom, že se v něm dá kód napsat mnohem rychleji než v ostatních zmíněných. Problém nastává při údržbě a rozvoji něčeho většího. Pokročilé nástroje pro refaktoring kódu, profiling, orientaci ve velkých projektech či dokumentaci/změny základní architektury a testování nejsou ani v PyCharmu, natožpak lightweight IDE či editorech. Budeš mít na svých projektech 20+ lidí a stráví ty projekty 5+ let ve fázi "rozvoj a údržba", jak je běžné v Java/C#/mnohých C++ projektech? Pokud ne, rozhodně bych neměl strach z Pythonu. Python má sice Global Interpreter Lock (běží vždy jen jedno vlákno z procesu; musí se obcházet buď přes multiprocessing knihovnu, která forkne celý interpret nebo přes vlastní C kód), není z nejrychlejších a garbage collector oproti tomu, co je v Javě nebo C#, je výsměch ... ale ... většina Python kódu jenom "lepí" dohromady C/C++ knihovny. Podívej se třeba na NumPy - velmi rychlá numerická knihovna, při jejímž použití máš výpočty podobně rychlé, jak kdybys to napsal všechno v C++. Od GUI frameworků pro Python nelze čekat zázraky, ale vybrat se dá - hlavně pokud Tě nezajímá, jestli Tvoje aplikace potom poběží na Win nebo Mac. Nejoblíbenější webový framework pro Python je Django. Má LTS 2 roky, security 3 - pro enterprise nepoužitelné, pro vlastní projekty by to mohlo stačit. Křivka učení Djanga je úplně někde jinde než Springu nebo MS MVC. A number crunching je v Pythonu také v pohodě díky NumPy. V práci mám kolegy, datové analytiky, kteří používají právě Python a NumPy. Na napsání algoritmů, které vevnitř volají C++ knihovnu a toho kódu navíc není extra moc (ta jejich práce je napsat to správně, ne napsat velké množství kódu), je perfektní.

Pro Python je k dispozici i slušné IDE (PyCharm), byť nedosahuje kvalit IntelliJ nebo Visual Studia. Pro .Net Core je k dispozici Rider, též od JetBrains - sice není zadarmo, ale mnohem lepší volba, než VS Code.

Jinak přechod z C# na Javu (a zpět) není nic hrozného a virtuální mašina Javy na linuxu běží lépe než Mono, které bylo tlačené na Mac a mobily, ostatní platformy přišly trochu zkrátka. .Net Core hodně těží z Mona. Umělé benchmarky sice říkají, že jsou srovnatelné, ale já jako Javista umím napsat benchmark, který dokáže, že Java je 2x rychlejší než C :-P .

Důležité je, co chceš programovat. Jestli jenom malé svoje/školní projekty, které nebudou zahrnovat desktop aplikace (případně uděláš GUI v Electron Frameworku jak VS Code - např. F# plugin je napsaný v F# a běží na pozadí jako REST služba, GUI je TypeScript a embedovaný Chrome) a chceš jít cestou C#, pak .Net Core není špatná volba. Ale jestli nemáš rád MS a Windows, poohlédl bych se po něčem jiném - Java nebo Python. Java je general purpose a hodně oblíbená v enterprise sféře - naučit se používat velká IDE jako Eclipse nebo IDEA případně profilery je běh na dlouhou trať, jsou to profesionální nástroje. Není to záležitost několika dnů. Pokud Tě láká mít vidinu stálého jobu někde v korporaci, Java je cesta. Chceš-li vytvářet menší aplikace s malým počtem kolegů či sám a s krátkým životním cyklem, nechceš spíš zkusit právě Python?

nok

Re:C# pro linuxového uživatele
« Odpověď #13 kdy: 07. 10. 2018, 12:43:33 »
Citace
Výsledkem je IDE, které je pomalé a těžkopádné

Uděláme experiment - vezmi stopky a současně spusť Ideu a VSCode :-) Sám VSCOde sice moc často nepoužívám, ale tvrdit, že je to pomalé a pak jako příklad rychlosti předhodit IDE napsané v Javě... Těžkopádné to je, ale z toho důvodu, že zaostává v uživatelské přívětivosti(oproti JetBrains rozhodně). S rychlostí jsem problémy nezaznamenal.

Andrej Babis

Re:C# pro linuxového uživatele
« Odpověď #14 kdy: 07. 10. 2018, 14:13:54 »
No rozhodně se s ním nemůže srovnávat v zabraném prostoru na disku. ;)

Jo taky mne to stvalo, ale nesrovnaval jsem to. Vyresil jsem to. Rano jsem objednal vetsi disk a ted uz je mi to jedno :-).

Co mne prudilo pod Windows u VS Code v kontextu C#:

Nase reseni obsahuje moznost dynamicky za behu spoustet a uzivatelsky 'programovat/skriptovat' jednoduche C# skripty. Uzivatel dostal editor, kde si mohl sam 'kodit' pouzitim naseho API. Hledali jsme editor s doplnovanim a prestoze VSCode to pomerne hezky umi, musi se tezkopadne instalovat (a vyzaduje specificke verze .net, registrace, atp.). Nakonec zvitezil Notepad++.