Diskuze: Voľba programovacieho jazyka

Tvůrce

Zobrazeno 50 zpráv z 51.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Záleží především na osobní preferenci, kde bych volil mezi C# a
Javou
Java:
C#
Neexistuje "lepší" jazyk, jsou odlišné.
Mna by skôr zaujímalo ktorý ma lepšiu dokumentáciu a čo ostatné jazyky ? Počul som že aj Python je možnosť ...
C# .NET - okenné aplikácie vo WPF (Windows Presentation Foundation). Na všetko tu máš výborné tutoriály a čo nie je tu, nájdeš na nete.
A ktora volba je lepsia do buducnosti ?
Lidi, proberte se... Přednost Javy před C# už není multiplatformnost... Tu umí C# už nějaké ty měsíce taky.
Vše potřebné je popsáno v článku http://www.itnetwork.cz/…ace-programy
Bohužel ta "multiplatformnost" je stále ta hlavní věc, kterou ti budou
argumentovat javisti . Pokud
jde o můj názor, v dnešní době nevidím snad žádný důvod, proč dát
přednost Javě před C# (jedině snad Android, ale i tam to jde jinak)
A moje odpověď na OP: Pokud chceš dělat desktop aplikace pro Windows, zvol rozhodně C#. Je to na to nejen nejpoužívanější jazyk, ale také nejpřívětivější, s obrovskou komunitou a perfektní dokumentací od Microsoftu.
C#.
Java už dneska nenabízí nic navíc, spíš naopak.
Pokud se bavíme o desktopové aplikaci složitější než nějaká
primitivní kalkulačka, tak nic nenabízí takový komfort jako Java + Netbeans
platform, pokud vím tak pro C# pořád ještě žádné pořádné RCP není,
takže vyvíjet složitější aplikaci znamená ztrácet čas
znovuvynalézáním kola. Pokud už nějaké použitelné RCP pro C# je, rád se
nechám poučit
Cože? Popravdě o něčem jako RCP slyším poprvé a z letmého hledání
na googlu jsem moc nepochopil, ale C# je dnes naprostý standart pro všechny (i
velesložité) aplikace a rozhodně nevím, proč by tam mělo docházet k
nějakému znovuvynalézání kola. Pokud je řeč o komfortu, hází Java
programátorům zbytečné klacky pod nohy a je nemoderní. Ale nechci, aby se
tady z toho vlákna stala hádka
Kto dnes v dobe IoT a webapps pouziva desktopove aplikacie? Este horsie to je ked ich treba instalovat...
Netbeans platform je platforma vytvořena přímo pro vývoj desktopových aplikací, vlastně je to taková sada knihoven, které řeší všechnu tu infrastrukturu na pozadí, je na ní postavené samotné Netbeans IDE. Použití je snadné, dokumentace jsou na netu tuny, a ušetří to při vývoji složitější aplikace neskutečné množství času. Viz https://netbeans.org/…eatures.html
O tom že je C# je nějaký standard bych si dovolil silně pochybovat, že je celkem populární zde na ITnetwork, to nic moc neznamená. Ale taky nemám v úmyslu se tady hádat, jen jsem nadnesl možnost na vývoj desktopové aplikace, kterou já osobně považuju za nejlepší.
Například já. S instalací problém nemám a ta dnešní móda přesunování všeho na internet se mě opravdu hnusí (a to říkám jako šestnáctiletý student)
Kto dnes v dobe IoT a webapps pouziva desktopove aplikacie?
Každý, kdo není třináctiletý frikulín
Windows je dělaný na instalace. Jinak na cloudu nemůže běžet všechno (pokud nemáš vlastní servery). Desktop aplikace rozhodně mají budoucnost, s tím nejde nesouhlasit. A ano i pro mě by byla jasná volba C#, ale protože moje znalosti Javy pokulhávají na obě nohy, nechtěl jsem to srovnávat. Nicméně není od věci umět obojí. Třeba teď se právě učím Javu, protože se mi ji podařilo rozběhat na Legu, ale to je off topic. A navíc Java je stále ještě favoritem na Androidu.
@Atrament, @Jakub Sarnik
Myslim, ze si tu nepotrebujeme nadavat do trinastrocnych frkulinov...
Vacsina pouzivatelov pravdepodobne nebudu ludia z oblasti vyvoja SW, alebo inaksie technicky zamerani ludia ak sa prave nejedna o to, ze by op chcel vyvyjat IDE, herny engine, server alebo nieco podobneho rozmeru. Ak by aj chcel, tak je volba Java/C# aj tak zla, lebo C++ a nativny vyvoj bude z oblasti vykonu najlepsi.
Jedna vec je co sa paci vam, druha vec je co sa paci potencionalnym pouzivatelom. A teda zlozite 10 krokove instalacie to urcite nie su.
Chapem, tiez ma ako 13 rocneho bavilo robit zlozite instalacia podobne hovadiny, lebo som si pripadal viac profesionalny. Ale ide o uzivatelov, nie o niekoho dobry pocit.
Ak by teda tie desktopove aplikacie boli take popularne, preco nemame desktop app Facebooku, Youtubu alebo aj Itnetwork?
Protože to je web a ne software?
Pffff. Webove aplikacie nie su software?! To hadam nemyslis
vazne? Vysvetli mi prosim
ta rozdiel medzi softwareom, aplikaciou a
webovou aplikaciou / strankou, nech sa nieco nove naucim.
Koncovy uzivatel velmi rozdiel medzi oknom a strankou nevidi, ak robia to iste. Jedine co si vsimne, je to, ze na to aby mu isla stranka mu staci prehliadac a nepotrebuje nejake instalatory, ktorym ani nerozumie...
Vacsina veci sa dnes da spravit aj cez web app. Tak preco nie? Ako nahle mas
web app, o ziadnu kompatibilitu medzi Windowsom a Macom ci Linuxom sa nemusis
starat. Samozrejme, urcite nikto nechce webove aplikacie typu
regedit
...
Zabíháš silně off-topic. Tazatel založil vlákno o desktopových aplikacích, když sem přijdeš a začneš hlásat svoji webapp víru, nediv se že se ti nedostane vlídného přijetí. Normální člověk ví, že desktopové aplikace se hodí na něco a webové aplikace zas na něco jiného a nemá potřebu ostatní přesvědčovat o tom že jenom jedna možnost je ta pravá cesta.
No, pokud jde o první bod, tak v tomhle případně by nemusela být Java/C# špatná volba. Netuším jak u Javy, ale C# kód dokáže být srovnatelně rychlý s C++ a plno her je právě v C# (zase, netuším jak u Javy, tam vím jenom Minecraft), namátkou Space/Medieval Engineers, Cities Skylines, Endless Legend atd... U IDE také nevidím problém v Javě/C#. Servery se pravda dělají prakticky jen v C/C++, ale ani to není bez vyjímek.
Moderní instalace rozhodně nejsou nijak složité (snad kromě MSSQL Serveru atd...) a snad kromě většiny starších lidí (kterým se do toho pochopitelně nechce) je zvládne každý s jen minimálním využitím mozku. Rozhodně nemluvím jen za sebe, plno lidem se prostě líbí víc desktopové aplikace.
Facebook používám na svým stolním PC jako Win 10 app, takže vlastně desktopovou a Youtube je natolik jednoduché z hlediska UI/UX, že není potřeba dělat mu desktopovou aplikaci. Bylo by to zbytečné i proto, že je stejně zcela závislé na internetovém připojení.
Desktopové aplikace mají totiž i tu výhodu, že si je spustíme kdykoliv i bez internetu (alespoň většinu z nich)
Facebook i Youtube desktopovou aplikaci má tedy vezneme-li v potaz Metro
aplikace
Webové aplikace jsou webové, protože využívají služeb webu. Když je od
nich odstřihneme, nefungovaly by. Nedává proto smysl dělat WPF aplikaci
YouTube (stejně by se tam švihl WebView).
Zkus vytvářet wrbové aplikace pro fyzikální simulace nebo systémy pro
nemocnice (například). Fyzikální simulace to neutáhne a systém pro
nemocnice by byl mnohem více vytížený, kdyby se kromě samotného
zpracování dat musel starat ješte i o grafické rozhraní.
Jinak za mě - desktopové aplikace mají smysl, ale v jiném měřítku, než
jsme byli zvyklí. Co se jazyka týče, pokud Windows tak jednoznačně C#.
@Atrament: Ani tak celkom nie. Jedine co som napisal, je to, ze pre koncovych uzivatelov su webove aplikacie pohodlnejsie. Ak mas iny nazor, neberiem ti to. Iba sa skus pozriet po okoli inom ako technicky zameranych ludi a precitaj si nieco o UX / usability. OP si z toho moze zobrat to, ze pouzivat webove aplikacie je hovadina a ja som iba zaslepeny webdev, ktory je sprosty a nepozna nejakeho jeho "caro" desktop apps, alebo sa moze zamysliet a prehodnotit svoje rozhodnutie napriklad robit dalsi todolist ako desktopovu aplikaciu, ked je omnoho pouzitelnejsia webova aplikacia v tomto pripade.
Neviem, preco mas TY potrebu utocit na druhych a neustale ich piamo, ci nepriamo urazat... Ja som ti aspon odpovedal na tvoj utok na moju osobu s odpovedov, ktora ti prinasa nove informacie, z ktorych sa mozes nieco naucit, zatial co ty iba na mna hlupo utocis.
Zamysli sa nad tym.
Ať se ti to líbí nebo ne, desktop aplikace tu mezi námi budou vždycky a člověk se znalostí jejich vývoje se prostě uplatní. Samozřejmě že je dnes výhodnější udělat plno věcí jako webové aplikace, ale to na tom faktu nic němění.
Tak to mě dostalo, až mě ukážeš třeba nějaký CAD co je čistě v cloudu, tak uznám, že desktopové aplikace nemají budoucnost. Desktopové aplikace tu ještě dlouho budou.
Jinak k tématu. Vybral bych si C#, pokud tedy nepotřebuješ z počítače vytáhnout úplné maximum(v tom případě by byla vhodná volba C/C++). C# má hodně syntaktického cukru, často to co uděláš v C# na jeden krátký článek musíš v Javě složitě vypisovat(např. gettery a settery). Navíc co jsem slyšel Microsoft má líp popsanou dokumentaci.
Nevýhodou C# je zatím jeho multi-platformost, která sice už existuje, ale není tak dobrá jako u Javy. Nicméně můžeš svoji aplikaci dostat na nejpoužívanější platformy dneška.
@Denis Homolik: Trochu som googlil a nasiel som toto: https://www.tinkercad.com/. Nevyrovna sa to autocadu a podobnym softom, to je pravda. HTML5 a webgl umoznuju rovnaky vykon co sa tyka vykreslovania ako desktop apps. Ak nieco take neexistuje, preco to nevytvorit? Preco sa nesnazit posunut dalej?
A uprimne, naozaj pochybujem, ze OP ide programovat CAD riesenie. Nech sa OP vyjadri. Kedze som bol zly, a nedopovedal som mu, tak to teraz napravim.
@Dominik "Gavrilo" Gavrecký: Java a C# poskytuju pohodlie pri programovani a dalsich veciach. V pohode v nich vies naprogramovat rozne veci. Co sa tyka multiplatformovosti tak su na tom podobne. Desktopove aplikacie sa ale daju robit aj v C++ s napriklad QT a vela ludi prave tento jazyk preferuje pri aplikaciach, ktorym pouzivanie GC (system spravi pamati) nevyhovuje.
C++ je urcite obtiaznejsi jazyk ako Java / C#. Ak prave zacinas, tak si vyber Javu / C#. S GUI Programmingom v Pythone nemam az take velke skusenosti, ale ak sa ti ten jazyk velmi paci, kludne do toho chod. GUI sa da ale robit prakticky skoro v kazdom viac popularnom jazyku (ano, aj v PHP).
S co sa tyka dokumentacie a supportu, tak aj Java aj C# ma velku developersku zakladnu a dokumentaciu.
Ak ale chces robit nejake aplikacie pre ludi, ktore im maju byt napomocne, skus zvazit pouzitie webu.
@Atrament: Odmietam pokracovat v tejto primitivnej debate. Svoj nazor som povedal. Ty sa z nejakeho dovodu nad tou pouzitelnostou nedokazes zamysliet. Tvoja vec. Tvoji zakaznici budu musiet na pouzitie aplikacie aplikaciu nainstalovat.
A aby som ti odpovedal:
Odpovídá na dobrakmato
Kto dnes v dobe IoT a webapps pouziva desktopove aplikacie?
Každý, kdo není třináctiletý frikulín
Pre tvoje potesenie som svoju odpoved preformulovat tak, aby bola ultra uzitocna pre OP.
Každý nějak začíná. Pokud teď udělá desktopovej "todo list", jak jsi zmínil, je možné, že za 10 let bude právě psát CAD. Tenhle typ softwaru se lidi už nějakou dobu snaží přenést na web, ale prostě je to marná snaha, protože webapp se v tomhle nikdy nevyrovná desktopu (mluvím o CADu, Office, IDE, nástrojích na tvorbu grafiky atd...).
Desktopové aplikace nakonec zůstanou doménou těch chytřejších, kteří
je budou využívat v práci, budou řídit složité systémy, stejně jako
teď. Obyčejná jednodušší konzumní společnost se přesune jen na web a
vystačí jim FB, Google a YouTube
Zákazníci si obvykle řeknou jaký typ aplikace chtějí a takový dostanou. Případně jsem plně schopen obhájit svůj návrh. Nad použitelností se zamyslet dokážu bez problémů, nad arogancí člověka co přijde do diskuse hlásat svoji víru v pravou a jedinou cestu vývoje software, aniž by vůbec věděl co chce OP vyvíjet se zamýšlet nehodlám. Tím tuto diskusi končím. Hezký den.
Good point o uceni. Neviem ci je mudre tvrdit ze desktopove aplikacie su domenou chytrejsich. Osobne sa necitim ako hlupak a aj tak rad pouzivam veci, ktore sa pouzivaju jednoducho.
Říkal jsem snad že jsi hlupák? Já jsem to myslel spíš tak, že zatímco desktopové aplikace pro profesionály tu budou vždy, většinová (průměrná) společnost si vystačí jen s webem.
Myslíš, že aplikace na webu a v Javascriptu bude stejně výkoná jako desktop aplikace napsaná v Céčku? Takovej CAD má několik GB a je celkem výkonostně náročnej. Pokud by to mělo být na webu tak by to buď muselo být přes server, což by firmu stálo nemalé peníze. Nebo by to muselo být v Javascriptu a firma by musela kupovat nové počítače, což jsou znova velké peníze pro firmu.
Časem k tomu určitě dojde, ale aktuálně je nejlevnější a nejjednodušší řešení mít tyto aplikace na desktopu.
IMHO je na tento typ aplikací world wide Web zastaralý, chtělo by to něco nového s lepším výkonem, novým jazykem, kde by OOP nebylo za trest a určitě by se dalo přijít na další věci. Až potom se velké věci přesunou do cloudu. Sice jsem si to vycucal z prstu, ale asi nebudu daleko od pravdy.
Existuju rozne sialenosti ako napriklad linux beziaci v browseri, asm.js. Mozne je, ze coskoro bude mat JavaScript naozaj taky vykon ako nativne apps, alebo este lepsi. Co je aj trosku smutne, kedze vieme aky je js jazyk. Nastastie je tu ES6 a vyvoj, ktory by ho mohol dostat na nohy.
Co sa tyka rendrovania tak WebGL by sa malo vyrovnat nativnemu OpenGl okrem processovania (nacitavania a set-upovania) dat.
Jediny velky problem su teraz asi tie assety aplikacii. Do local storage sa obvykle neda strcit viac ako 5mb dat, co je pre taku velku app naozaj zalostne malo.
Urcite je vyhodnejsie spravit CAD riesenie v dnesnej dobe v C++ nativne.
Linux v browseri: https://s-macke.github.io/…os/main.html?…
Celkom popularny port hry z XNA do JS: https://channel9.msdn.com/…-HTML5-Style
Zoznam roznych asm.js portov: https://github.com/…es-and-Demos
Ako to myslis, ze OOP je za trest?
Vsetky poriadne web aplikacie ktore som v svojom zivote robil (okrem tych prvych v phpcku) boli OOP. Ci uz to bol Laravel a PHP, Ruby a Ruby on Rails, Java EE. Dokonca existuju rozne superscripty pre JS na front end dev, ktore robia programovanie v nom omnoho pohodlnejsie, napriklad CoffeScript alebo TypeScript. Popripade su rozne riesenia ktore spajaju backend a frontend.
Ak myslis HTML a templating, co by si tam vylepsil? Dokonca vela desktopovych
UI frameworkov smeruje k XML. Binarne dokumenty namiesto plain textovych? Mame
PDF ako binarny format a teda mi to nepride ako velka vyhra
Zřejme myslel (pseudo)OOP v čistým JS. A tam to teda za trest je
Tak tam to je tragedia a nie len kvoli tomu prototypovemu OOP. Nastastie mam svoj oblubeny http://www.typescriptlang.org/.
Ano, to vyladá jako řešení, ale stejně se kompiluje do JS. Ohledně
těhle webových jazyků jsem dost radikální a myslím si, že celýmu
HTML/CSS/JS by prospělo kompletní znovunavržení od základů
Pre Win pozui C#.
Ak chces pisat multiplatfomovo tak jedna z moznosti je C++ s QT.
Ak ti nevyhovuje C++ tak mozes pouzit GTK ktore ma jadro v C a preto ma
jednodychy binding na ostatne jazyky (C#, python, C, C++, D...).
Da sa pouzit aj Java (osobne by som sa jej vyhol v pripade desktopovych
aplikacii).
Mozne je, ze coskoro bude mat JavaScript naozaj taky vykon ako nativne apps, alebo este lepsi. Co je aj trosku smutne, kedze vieme aky je js jazyk.
Tohle je myšleno vážně nebo jako vtip?
Ano, myslel jsem OOP v čistém JS, a asi se shodneme, že to nic moc
hezkého není už jako jazyk, potom ještě debugging...
Vše, co bych ještě rozepsal už bylo řečeno.
Jinak co se týče předělání HTML/CSS.. XML-like zápis GUI je nejspíš
(kromě klikání) nejpohodlnější způsob, jak navrhovat GUI, to je v
pořádku a nechal bych to, desktop v tomto ohledu zatím web dohání.
A ještě k Javě- připadá mi naprosto nepochopitelné, proč žádné (které jsem zkoušel) Java IDE nemá vestavěný WYSIWYG editor pro Javafx, místo toho používají 3rd-party editor, který sice "ujde", ale protože to není součást IDE, minimálně nevidíš většinou změny, co napíšeš real time.
Netbeans má plugin http://plugins.netbeans.org/…-integration který ten builder dokáže integrovat do ide, ale jak dobře to funguje nevím, JavaFX nepoužívám tak jsem to nezkoušel.
A proč nezavrhnout C/C++ úplně? Protože tu máme C# nebo Javu které jsou na tom výkonnostně skoro stejně dobře.
A bude ten Javascript lepší než assembler?
Je blbost aby jazyk s dynamickým typováním, automatickou zprávou paměti atd. Byl lepší než jazyk který pracuje přímo s pamětí a je staticky typovaný.
Samozrejme, ze JS nebude rychlejsi ako assembler.
Inak C# a Java ma GC, takze tiez nie je s tou spravou pamati najlepsie. V niektorych veciach mozu byt kvoli tomu ze su kompilovane az u klienta na pc rychlejsie ako C++/C, a v niektorych zase pomalsie rovnako ako JS.
asm.js prave toto dymanicke typovanie riesi tym, ze v pozadi je akurat velka array, ktora predstavuje pamat. Takze typovanie je v podstate staticke. Automaticka sprava pamati tam nie je. Vdaka tomu dokaze byt to asm.js, tak rychle.
Zobrazeno 50 zpráv z 51.