Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Prazak123 23. 10. 2015, 11:48:10
-
Ahoj, jsem začátečník-stařec, který má malou a dávnou zkušenost s Pascalem. Rád bych si jako hobby zkusil napsat nějakou jednoduchou aplikaci na PC, která "hezky vypadá". Jako vhodný jazyk mi byl doporučen C#, ale chci se zeptat, zda není vhodné předtím začít s C ? Díky
-
chci se zeptat, zda není vhodné předtím začít s C ?
Ne.
-
Odpověď přede mnou je naprosto vpořádku .); Pro vysvětlení: C# je více podobný Pascalu/Delphi než C++ natož C, takže ho bez obav překroč.
-
C případně až potom.
-
neni
-
Ahoj, jsem začátečník-stařec, který má malou a dávnou zkušenost s Pascalem. Rád bych si jako hobby zkusil napsat nějakou jednoduchou aplikaci na PC, která "hezky vypadá". Jako vhodný jazyk mi byl doporučen C#, ale chci se zeptat, zda není vhodné předtím začít s C ? Díky
C# je zde opravdu nejvhodnější a C je navzdory názvu jazyk podstatně jiný. Myslím, že učit se ho by v tomto případě nadělalo víc škody než užitku (nehledě na zbytečně vynaložený čas).
-
No z pascalovsko-zaceticnickeho pohledu si jsou C# a C preci jenom trochu podobne.
Slozene zavorky, promenne, for/while/if a dalsi se pisou vicemene stejne.
Ale samozrejme neni potreba se kvuli C# ucit C, v podstate uplne zaklady C se nauci tak jako mimochodem.
-
Když jsem viděl titulek s čím začít dřív, jestli s C# a nebo s Cčkem, tak sem chtěl napsat, že začít bys rozhodně měl se sexem ... a až pak C#. Ale když si napsal začátečník-stařec postrádalo by to kontext...
Začni s C++. Dá ti to velmi dobrou představu o železe na kterém vše běží, vyzkoušíš si prostředí bez GC a raw pole. To ti dá hodně. Na druhou stranu znáš pascal, takže tydle věci asi už dávno znáš. Pokud to tak je, tak jdi na C# a na C ser. Ačkoli, u C# bych pochyboval o moudrosti investice, je to M$hit technologie, která "prorazila" jen ve wokním světe (což nění tak úplně pravda, ale dovoluju si trošku přehánět). Velká opice v redmondu může C# zabít během chvilky, stačí chtít. Já osobně bych šel do Javy (osobně ji neumím a ani to neplánuji v příštím století změnit, ale lepší jak C# z mého pohledu).
-
Jak aplikace vypadá spíš záleží na GUI knihovnách, než na jazyku. Jestli trváte na C#, tak asi s WPF (místo WinForms), místo C spíš C++ s Qt. Jestli C#, ani C není podmínkou, tak snad Python s Qt.
-
Začni s C++. Dá ti to velmi dobrou představu o železe na kterém vše běží, vyzkoušíš si prostředí bez GC a raw pole. To ti dá hodně. Na druhou stranu znáš pascal, takže tydle věci asi už dávno znáš. Pokud to tak je, tak jdi na C# a na C ser. Ačkoli, u C# bych pochyboval o moudrosti investice, je to M$hit technologie, která "prorazila" jen ve wokním světe (což nění tak úplně pravda, ale dovoluju si trošku přehánět). Velká opice v redmondu může C# zabít během chvilky, stačí chtít. Já osobně bych šel do Javy (osobně ji neumím a ani to neplánuji v příštím století změnit, ale lepší jak C# z mého pohledu).
Trochu tě poopravím. Specifikace jazyka C# je samozřejmě veřejná ale je to jazyk vyvinuty Microsoftem stejně jako .NET. Zhruba pře rokem Microsoft oznámil rozšíření .NET na Linux a OSX/iOS od Apple. Zároveň došlo open sourcouvání .NET core v rámci .NET foundation a otevřeli k aspoň k prohlížení naprosto celý .net framework. Ten je na této adrese
http://referencesource.microsoft.com/
Součástí .NET foundation není jen otevřený kód pro .NET, ale i pro nextgen platformu kompilátorů Roslyn, Entity Framework, WCF (komunikační platforma postavená na XML).
A tady pro tazatele:
Co se týká vývojového prostředí tak si pro začátek můžeš stáhnout Express edici, ale lepší je Visual Studio Community 2013/2015. Je to Visual Studio na úrovni proffesional, se všemi fičurami, ale je pro malé týmy a domácí kodování zdarma, legálně od microsoftu.
Visual studio 2015 má ještě jednu pěknou fičurku, můžeš program napsaný v C# zkompilovat přímo do binárního kódu stejně jako program v C, nebo C++. Samozřejmě je možné ho zkompilovat i do IL, jako dříve. Když je program v IL tak se při prvním zavolání metody tato metoda zkompiluje z IL do binárního kódu a potom už to běží stejně jako program v C++.
Jestli to budeš chtít dělat pod Linuxem tak je možnost použít MonoDevelop, a SharpDevelop, a nebo před nedávnem vydaným Visual Studiem pro Linux.
Můj názor: Bež do .NET, Java vypadá na odpis, aspoň podle toho jak ji její majitel ORACLE dává do čím dál většího pozadí. A co se týká rychlostí kódu napsaných v Javě a .NET....jde vidět, že .NET je dále.
Pokud budeš chtít dělat GUI aplikaci, tak je pro začátek nejlepší Windows forms, ale z dlouhodobého hlediska je určitě lepší věnovat čas WPF. Windows forms jsou jen v udržovací fázi a nemyslím, že na tom Microsoft chtěl něco měnit.
Přeju hodně štěstí
-
Když je program v IL tak se při prvním zavolání metody tato metoda zkompiluje z IL do binárního kódu a potom už to běží stejně jako program v C++.
To není tak úplně pravda, kód je sice nativní, ale pořád se používá GC se všemi jeho výhodami a nevýhodami (alokuje deterministicky, ale když je málo volné paměti, značně klesá výkon).
-
Začni s C++...
Tady bych nesouhlasil. Sice je to od c++14 příjemný jazyk, ale má nehezkou minulost. Pro začátečníka to znamená hlavně že většina dostupných učebních materiálů se hodí spíš na podpal. Jakkoliv mám c++ rád, začátečníkům, co chtějí programovat jen tak mimochodem, bych ho nedoporučoval.
-
No z pascalovsko-zaceticnickeho pohledu si jsou C# a C preci jenom trochu podobne.
Slozene zavorky, promenne, for/while/if a dalsi se pisou vicemene stejne.
Ale samozrejme neni potreba se kvuli C# ucit C, v podstate uplne zaklady C se nauci tak jako mimochodem.
Podobnost C# a C se dá najít pouze v syntaxi. Pascalu je syntakticky podobný například Visual Basic. Ovšem syntaxe je je jen detail, který při zápisu programu v dobrém editoru nehraje roli - ve všech jazycích místo složených závorek používám :<Enter> stejně jako v Pythonu, for/while/switch také všude stejně - však on si to editor přebere a opraví podle jazyka, ve kterém má psát program. Proč bych si měl pamatovat, ve kterém jazyce se píše use, using nebo import nebo jestli se ve switch píše else, otherwise nebo default?
Zbývá však sémantika. V C nehrozí, abych napsal return string; který se v Pascalu či v C# dá napsat zcela normálně. Jakákoli složitější struktura se v C musí předávat jako pointer v parametrech, což zcela demoluje představu o funkcích. Předávání funkce (objektu) jako parametru procedury v C také nejde dělat tak přirozeně jako v Pascalu nebo C#.
-
Chystám se do ciziny. Doporučili mi španělštinu. Neměl bych předtím začít s italštinou?
-
Když jsem viděl titulek s čím začít dřív, jestli s C# a nebo s Cčkem, tak sem chtěl napsat, že začít bys rozhodně měl se sexem ... a až pak C#. Ale když si napsal začátečník-stařec postrádalo by to kontext...
Začni s C++. Dá ti to velmi dobrou představu o železe na kterém vše běží, vyzkoušíš si prostředí bez GC a raw pole. To ti dá hodně. Na druhou stranu znáš pascal, takže tydle věci asi už dávno znáš. Pokud to tak je, tak jdi na C# a na C ser. Ačkoli, u C# bych pochyboval o moudrosti investice, je to M$hit technologie, která "prorazila" jen ve wokním světe (což nění tak úplně pravda, ale dovoluju si trošku přehánět). Velká opice v redmondu může C# zabít během chvilky, stačí chtít. Já osobně bych šel do Javy (osobně ji neumím a ani to neplánuji v příštím století změnit, ale lepší jak C# z mého pohledu).
Kolikrat je potreba rikat, ze C/C++ neni dobry jazyk do zacatku?
-
Chystám se do ciziny. Doporučili mi španělštinu. Neměl bych předtím začít s italštinou?
Pokud jedes do Latinske Ameriky, tak spis zacit s portugalstinou. Abys nedopadl jako Feynman - ten se ucil spanelsky a pak skoncil v Brazilii. ;)
-
To není tak úplně pravda, kód je sice nativní, ale pořád se používá GC se všemi jeho výhodami a nevýhodami (alokuje deterministicky, ale když je málo volné paměti, značně klesá výkon).
Nechtěl jsem ho zatěžovat detaily. Ano pořád to používá garbagecollector. Ale na druhou stranu musím říct, že jsem pracoval na systémech programovaných pro servery kde docházelo k masívním přesunům dat a výraznější problémy v rychlosti jsem nezaznamenal a to jsem nepoužíval kod zkompilovaný do natívní formy.
Mám za sebou i programování v C a C++, takže jsem osobně poznal jakou paseku můžou i v jednoduchých metodách napáchat memory leaky a osobně jsem nepotkal žádného guru, který by programoval úplně bez nich. Spíše se ty problémy vychytávaly v rámci bugfixingu. GC tyhle problémy čístečně odstraňuje. Sice se občas vyskytne nějaká nullreferenceexception, ale na rozdíl od problémů v C++ jdou tyhle problémy poměrně snadno vyřešit.
V případě velkých problémů s pamětí jde použít i metody třídy GC. Nebo v případě problémů s pamětí použít nějaký buffer, nebo queue a sám si to ohlídat aby se to včas uvolnilo.
A nebo použít unsafe kód a přistupovat přímo do paměti pomocí ukazatelů a referencí jako v C++.
Možností je celkem dost jak se vyrovnat s problémy s pamětí, ale nemyslím, že se s tím ten tazatel ze začátku potká. GC dneska používá třeba i ten nový jazyk D, který vznikl přepracováním C++.
-
GC dneska používá třeba i ten nový jazyk D, který vznikl přepracováním C++.
2001 je nový? A mezi jazyky které skoro nikdo nepoužívá se navíc vyskytují podstatně zajímavější kousky. :)
-
To není tak úplně pravda, kód je sice nativní, ale pořád se používá GC se všemi jeho výhodami a nevýhodami (alokuje deterministicky, ale když je málo volné paměti, značně klesá výkon).
Nechtěl jsem ho zatěžovat detaily. Ano pořád to používá garbagecollector. Ale na druhou stranu musím říct, že jsem pracoval na systémech programovaných pro servery kde docházelo k masívním přesunům dat a výraznější problémy v rychlosti jsem nezaznamenal a to jsem nepoužíval kod zkompilovaný do natívní formy.
Mám za sebou i programování v C a C++, takže jsem osobně poznal jakou paseku můžou i v jednoduchých metodách napáchat memory leaky a osobně jsem nepotkal žádného guru, který by programoval úplně bez nich. Spíše se ty problémy vychytávaly v rámci bugfixingu. GC tyhle problémy čístečně odstraňuje. Sice se občas vyskytne nějaká nullreferenceexception, ale na rozdíl od problémů v C++ jdou tyhle problémy poměrně snadno vyřešit.
V případě velkých problémů s pamětí jde použít i metody třídy GC. Nebo v případě problémů s pamětí použít nějaký buffer, nebo queue a sám si to ohlídat aby se to včas uvolnilo.
A nebo použít unsafe kód a přistupovat přímo do paměti pomocí ukazatelů a referencí jako v C++.
Možností je celkem dost jak se vyrovnat s problémy s pamětí, ale nemyslím, že se s tím ten tazatel ze začátku potká. GC dneska používá třeba i ten nový jazyk D, který vznikl přepracováním C++.
Okenní aplikaci s GUI bych klidně psal s GC, ale na zatíženém serveru bych to moc neriskoval, mám s tím špatné zkušenosti. BTW v C++ jde psát bez leaků, stačí dodržovat jednoduchá pravidla.
-
Můj názor: Bež do .NET, Java vypadá na odpis, aspoň podle toho jak ji její majitel ORACLE dává do čím dál většího pozadí.
Aha, pan je expert. :-/ Java nie je na odpis, velka cast serverovych aplikacii bezi na jave.
-
GC dneska používá třeba i ten nový jazyk D, který vznikl přepracováním C++.
2001 je nový? A mezi jazyky které skoro nikdo nepoužívá se navíc vyskytují podstatně zajímavější kousky. :)
No spíš "mladý" než "nový", to je pravda. A když chce člověk něco podobnýho C# nebo Javě s aktivní komunitou, je to celkem solidní volba.
-
Můj názor: Bež do .NET, Java vypadá na odpis, aspoň podle toho jak ji její majitel ORACLE dává do čím dál většího pozadí.
Aha, pan je expert. :-/ Java nie je na odpis, velka cast serverovych aplikacii bezi na jave.
Tak se podívej co dělá ORACLE s vývojáři co programují JAVA. Odvolali, hlavního architekta, hlavního "evangelizátora" a možná se pletu, ale myslím že jim přiškrtili rozpočet.
-
java absolutne neni mrtva. vyvoj ide dopredu, bude java 9.
ziaden hlavny architekt nebol odvolany, mark reinhold by o tom nieco vedel.
dajte si fakty dohromady a aspon nazov piste poriadne
-
java absolutne neni mrtva. vyvoj ide dopredu, bude java 9.
ziaden hlavny architekt nebol odvolany, mark reinhold by o tom nieco vedel.
dajte si fakty dohromady a aspon nazov piste poriadne
Javě vývoj přeju. Má co dohánět. ale co tyhle zprávy?
http://www.infoq.com/news/2015/09/oracle-purges-java-evangelists
-
Dobrý den, možná pokud jste kdysi pracoval s Pascalem, zkuste se podívat na Delphi,vycházející přímo z pascalu.Na internetu se dají starší funkční verze nalézt. Popřípadě, tedy i některe jiné moderní projekty Pascalu, třeba Lazaurus..
Místo toho ,pokud Vám jde o to "napsat nějakou jednoduchou aplikaci na PC, která "hezky vypadá"-čímž tedy myslíte určitě i graficke rozhraní, tak tedy platformu .NET která obsahuje jak Vámi zmíněný C#,tak i Visual Basic,záleží na tom co Vám bude bliž ..
Vracet se k jazyku C? Pokud by jste ho chtěl pak skutečně profesně využívat-jinak je to dost pomalá (a drsná) cesta. Odhadem tak několik měsíců na učení se psaní programů pracujících v příkazové řádce, potom k tomu přidat API Windows aby jste mohl začít tvořit grafické rozhraní...Přičemž tedy až příjdete k C#, tak zjistíte že řada z toho se nedá využít, protože se tam řeší úplně jinak.
-
java absolutne neni mrtva. vyvoj ide dopredu, bude java 9.
ziaden hlavny architekt nebol odvolany, mark reinhold by o tom nieco vedel.
dajte si fakty dohromady a aspon nazov piste poriadne
Vyvoj sice ide dopredu ale akym tempom?je rok 2015 a java len teraz prisla s lambdami ktore sa stali beznou sucastou inych jazykov niekedy v roku 2005.
Inak java ako jazyk je hnus vsetci kolegovia z prace co v nej musia kodit na nu nadavaju aj C# ma svoje muchy a je ich dost (osobne mi svojou filozofoiu a pramociarostou noznostami viac vyhovuje F# pripadne z ineho sudka c++ alebo objective C) ale oproti jave je c# vykupenie. Mna uz len koli jave k androidu nikto nedostane.
Ale javu nebrzdi len kvalita samotneho jazyka, ale aj patentovy troll Oracle. Boli casy ked v oblasti Enterprise dominoval COBOL dnes po nom ani pes nestekne a rovnako moze dopadnut aj Java.
-
Tak se podívej co dělá ORACLE s vývojáři co programují JAVA. Odvolali, hlavního architekta, hlavního "evangelizátora" a možná se pletu, ale myslím že jim přiškrtili rozpočet.
Zase tak zlé to nebude, ale i kdyby – je celkem jedno, co dělá Oracle – máme OpenJDK, zdrojáky jsou svobodný software vydaný pod GNU GPL (navíc s class path výjimkou) a dá se pokračovat i bez Oraclu. Je tu silná komunita vývojářů (kolem GNU, Apache, Eclipse, Spring… + spousty frameworků a middlewarů + prakticky v každé SW firmě někdo dělá Javu). A je řada jazyků/platforem, které fungují i bez nějakého Oraclu (Perl, Python, PHP, Ruby, Haskell, Erlang, D, Rust…).
-
java absolutne neni mrtva. vyvoj ide dopredu, bude java 9.
ziaden hlavny architekt nebol odvolany, mark reinhold by o tom nieco vedel.
dajte si fakty dohromady a aspon nazov piste poriadne
Vyvoj sice ide dopredu ale akym tempom?je rok 2015 a java len teraz prisla s lambdami ktore sa stali beznou sucastou inych jazykov niekedy v roku 2005.
Inak java ako jazyk je hnus vsetci kolegovia z prace co v nej musia kodit na nu nadavaju aj C# ma svoje muchy a je ich dost (osobne mi svojou filozofoiu a pramociarostou noznostami viac vyhovuje F# pripadne z ineho sudka c++ alebo objective C) ale oproti jave je c# vykupenie. Mna uz len koli jave k androidu nikto nedostane.
Ale javu nebrzdi len kvalita samotneho jazyka, ale aj patentovy troll Oracle. Boli casy ked v oblasti Enterprise dominoval COBOL dnes po nom ani pes nestekne a rovnako moze dopadnut aj Java.
Java je konzervativna a (zpetne) kompatibilna. To je ako nadavat psovi, ze brese. Kto chce exprimenty, skusi clojure, alebo scalu. (O clojure ma pan Tisnovsky na rootovi pekny serial)
-
Este dodam, ze kto nevie v jave kodit, tak na nu nadava. Ja mam svoje odsedene na riti a odkodene. Dodam, ze je to ako so vsetkym.
Kdo sedi na riti a kodi v C#, asi ze bude dobry v C# a nie tak dobry v jave.
-
Inak java ako jazyk je hnus vsetci kolegovia z prace co v nej musia kodit na nu nadavaju
Java je jednoduchý jazyk a nemá takové vyjadřovací schopnosti jako třeba C++ nebo Perl, nemá přetěžování operátorů, nemá milion různých jazykových konstrukcí… všechno je prostě buď třída, metoda (+ pár základních operátorů a konstrukcí, generika, anotace), tím to končí a zbytek řeší knihovny/frameworky (tzn. volání metod, ke kterým si zobrazíš JavaDoc a IDE ti je napovídá).
Kvůli téhle vlastnosti ji nemají rádi někteří příliš „kreativní“ vývojáři, individualisti. Ale zase se díky tomu skvěle hodí pro týmový vývoj, kde musíš často sáhnout do kódu, který psal někdo cizí (kdo už často není v dosahu a není možné se ho zeptat, proč a jak to funguje).
Dalším faktorem je důraz na zpětnou kompatibilitu – na aktuálních verzích Javy (8) můžeš provozovat i aplikace psané pro prastaré verze (třeba 1.4); pro rozbití něčeho musí být sakra dobrý důvod (zavedení klíčového slova enum – pak bylo potřeba upravit kód aplikací, pokud jsi tam měl proměnné pojmenované enum), ale to se stalo asi tak jednou za celou dobu.
-
Vyvoj sice ide dopredu ale akym tempom?je rok 2015 a java len teraz prisla s lambdami ktore sa stali beznou sucastou inych jazykov niekedy v roku 2005.
to su tie drble nazory ze java je mrtva lebo sa mi nepaci syntax.
primarna featura je konzervativnost. navyse bol X rocny hiatus kde sa nevedeli dohodnut co vlastne s jazykom. odtial zmeskane lambdy. ten zastaveny vlak sa rozbieha
jak vravel klasik, ked chcete inu syntax pre jvm, zoberte scalu / groovy / whatever
dalsia vec je ze syntax je jedna vec, ekosystem druha, ked chcete mat velky stabilny vyvoj deploynuty na linuxy, java je X rokov stabilna volba
aj keby oracle javu dnes zakilloval, komunita ten vyvoj udrzi, je tam hafo velkych hracov co v tom maju biznis
-
java absolutne neni mrtva. vyvoj ide dopredu, bude java 9.
ziaden hlavny architekt nebol odvolany, mark reinhold by o tom nieco vedel.
dajte si fakty dohromady a aspon nazov piste poriadne
Vyvoj sice ide dopredu ale akym tempom?je rok 2015 a java len teraz prisla s lambdami ktore sa stali beznou sucastou inych jazykov niekedy v roku 2005.
Abychom byli fér, C++ a Objective-C dostaly lambdy taky dost pozdě. Nicméně pravdou zůstává, že inovace se v Javě dějí hlemýždím tempem. Už aby byl .NET na Linuxech (v nějaké použitelné formě).
-
Vyvoj sice ide dopredu ale akym tempom?je rok 2015 a java len teraz prisla s lambdami ktore sa stali beznou sucastou inych jazykov niekedy v roku 2005.
to su tie drble nazory ze java je mrtva lebo sa mi nepaci syntax.
primarna featura je konzervativnost. navyse bol X rocny hiatus kde sa nevedeli dohodnut co vlastne s jazykom. odtial zmeskane lambdy. ten zastaveny vlak sa rozbieha
jak vravel klasik, ked chcete inu syntax pre jvm, zoberte scalu / groovy / whatever
dalsia vec je ze syntax je jedna vec, ekosystem druha, ked chcete mat velky stabilny vyvoj deploynuty na linuxy, java je X rokov stabilna volba
aj keby oracle javu dnes zakilloval, komunita ten vyvoj udrzi, je tam hafo velkych hracov co v tom maju biznis
U nas vo firme kde robime .NET, iOS, OSX aj Android, najviac na svoju platformu nadavaju prave javisti. Jednemu eklips neustale pada zere prostriedky spomaluje pocitac, druhemu Android Studio "blbne" SVNka a ma tam furt konflikty atd atd. Zlate VISUALKO ktore mi este nikdy nespadlo. Tiez to neni dokonale IDE, ale je na mile vzdialene tej hroze. Okrem toho je java neskutocne orezany a ukecany jazyk, ktory sa tvari hilevel jak svina aby v nom dokazala kodit aj cvicena opica, poritom v nej programator neustale riesi nejake low level zalezitosti. Nechcem z toho vyvodzovat ziadne zavery, ale java mi naozaj nepride ako zrela platforma, ci uz ide o jazyk, alebo cely ekosystem.
-
Jednemu eklips neustale pada zere prostriedky spomaluje pocitac, druhemu Android Studio "blbne" SVNka a ma tam furt konflikty atd atd. Zlate VISUALKO ktore mi este nikdy nespadlo. Tiez to neni dokonale IDE, ale je na mile vzdialene tej hroze. Okrem toho je java neskutocne orezany a ukecany jazyk, ktory sa tvari hilevel jak svina aby v nom dokazala kodit aj cvicena opica, poritom v nej programator neustale riesi nejake low level zalezitosti. Nechcem z toho vyvodzovat ziadne zavery, ale java mi naozaj nepride ako zrela platforma, ci uz ide o jazyk, alebo cely ekosystem.
Ja mam netbeans, ktory mi nepada, low level veci za mna riesi spring a co teraz?
-
Vyvoj sice ide dopredu ale akym tempom?je rok 2015 a java len teraz prisla s lambdami ktore sa stali beznou sucastou inych jazykov niekedy v roku 2005.
Inak java ako jazyk je hnus vsetci kolegovia z prace co v nej musia kodit na nu nadavaju aj C# ma svoje muchy a je ich dost (osobne mi svojou filozofoiu a pramociarostou noznostami viac vyhovuje F# pripadne z ineho sudka c++ alebo objective C) ale oproti jave je c# vykupenie. Mna uz len koli jave k androidu nikto nedostane.
Tak pomalý vývoj ještě nutně nemusí být špatně. Takové C se za posledních 15 let téměř nezměnilo, ale kdybych si měl tipovat jaký jazyk se bude za 50 let pořád aktivně používat, bylo by to asi právě C.... ne že by pomalý vývoj zaručoval kvalitu, Javě se hodlám vyhýbat jak to jen půjde.
-
Vyvoj sice ide dopredu ale akym tempom?je rok 2015 a java len teraz prisla s lambdami ktore sa stali beznou sucastou inych jazykov niekedy v roku 2005.
Inak java ako jazyk je hnus vsetci kolegovia z prace co v nej musia kodit na nu nadavaju aj C# ma svoje muchy a je ich dost (osobne mi svojou filozofoiu a pramociarostou noznostami viac vyhovuje F# pripadne z ineho sudka c++ alebo objective C) ale oproti jave je c# vykupenie. Mna uz len koli jave k androidu nikto nedostane.
Tak pomalý vývoj ještě nutně nemusí být špatně. Takové C se za posledních 15 let téměř nezměnilo, ale kdybych si měl tipovat jaký jazyk se bude za 50 let pořád aktivně používat, bylo by to asi právě C.... ne že by pomalý vývoj zaručoval kvalitu, Javě se hodlám vyhýbat jak to jen půjde.
C je tenká vrstva nad asemblerem, tam není co přidat. Naposled tam clang dal bloky.
Za 50 let se bude používat realtime Prolog ;)
-
Tak pomalý vývoj ještě nutně nemusí být špatně. Takové C se za posledních 15 let téměř nezměnilo, ale kdybych si měl tipovat jaký jazyk se bude za 50 let pořád aktivně používat, bylo by to asi právě C.... ne že by pomalý vývoj zaručoval kvalitu, Javě se hodlám vyhýbat jak to jen půjde.
To je smutne, nechciet sa nieco naucit a vyhybat sa. Zrovna koderina je oblast, kde sa treba ucit stale. Prave sa ucim funkcionalne programovanie, lebo dost strasia, ze sa to bude pouzivat. (vid haskell) Ista miera pragmatizmu nie je na skodu.
-
Tak pomalý vývoj ještě nutně nemusí být špatně. Takové C se za posledních 15 let téměř nezměnilo, ale kdybych si měl tipovat jaký jazyk se bude za 50 let pořád aktivně používat, bylo by to asi právě C.... ne že by pomalý vývoj zaručoval kvalitu, Javě se hodlám vyhýbat jak to jen půjde.
To je smutne, nechciet sa nieco naucit a vyhybat sa. Zrovna koderina je oblast, kde sa treba ucit stale. Prave sa ucim funkcionalne programovanie, lebo dost strasia, ze sa to bude pouzivat. (vid haskell) Ista miera pragmatizmu nie je na skodu.
Už se používá
-
Tak pomalý vývoj ještě nutně nemusí být špatně. Takové C se za posledních 15 let téměř nezměnilo, ale kdybych si měl tipovat jaký jazyk se bude za 50 let pořád aktivně používat, bylo by to asi právě C.... ne že by pomalý vývoj zaručoval kvalitu, Javě se hodlám vyhýbat jak to jen půjde.
To je smutne, nechciet sa nieco naucit a vyhybat sa. Zrovna koderina je oblast, kde sa treba ucit stale. Prave sa ucim funkcionalne programovanie, lebo dost strasia, ze sa to bude pouzivat. (vid haskell) Ista miera pragmatizmu nie je na skodu.
Už se používá
Zatial vedie imperativne, lebo na funkcionalne, treba zmenu myslenia. Aby to nedopadlo tak, ze sa bude kodit imperativne vo funkcionalnych jazykoch. (vid niektore "perly" nakodene v emacs lispe)
-
Dalším faktorem je důraz na zpětnou kompatibilitu – na aktuálních verzích Javy (8) můžeš provozovat i aplikace psané pro prastaré verze (třeba 1.4)
Ale vysvetlil to nekdo programatorum? Protoze bastly v Jave padaji s kazdym upgradem jako hrusky na podzim.
-
Dalším faktorem je důraz na zpětnou kompatibilitu – na aktuálních verzích Javy (8) můžeš provozovat i aplikace psané pro prastaré verze (třeba 1.4)
Ale vysvetlil to nekdo programatorum? Protoze bastly v Jave padaji s kazdym upgradem jako hrusky na podzim.
Jak co.
-
Dalším faktorem je důraz na zpětnou kompatibilitu – na aktuálních verzích Javy (8) můžeš provozovat i aplikace psané pro prastaré verze (třeba 1.4)
Ale vysvetlil to nekdo programatorum? Protoze bastly v Jave padaji s kazdym upgradem jako hrusky na podzim.
Prosim o uvedenie prikladu "bastlu" co pada po upgrade javy. Zijeme v paralelnych vesmiroch?
-
ked chcete inu syntax pre jvm, zoberte scalu / groovy / whatever
IMO hlavní problém je v JVM a tam další jazyky nepomohou. Například reifikovaná generika a hodnotové typy nebo optimalizace tail callů.
-
Java je jednoduchý jazyk
Je zajímavé, proč má tak jednoduchý jazyk tak dlouhou specifikaci. Osobně mám za to, že jednoduchý jazyk jde popsat na pár stránek, ale specifikace Javy má více než 700 stran.
-
Java je jednoduchý jazyk
Je zajímavé, proč má tak jednoduchý jazyk tak dlouhou specifikaci. Osobně mám za to, že jednoduchý jazyk jde popsat na pár stránek, ale specifikace Javy má více než 700 stran.
C++ ma 1400, scheme 90, brainfuck 2.
-
Jednemu eklips neustale pada zere prostriedky spomaluje pocitac, druhemu Android Studio "blbne" SVNka a ma tam furt konflikty atd atd.
"java je mrtva lebo kolegovi pada eclipse". dafuq?
riesi nejake low level zalezitosti.
vojine kefaline co je pre vas taka ta low level zalezitost v jave?
-----
@radek micek:
reifikovane generika nemozu byt lebo backward compatibility
value types su planovane do java 9
tail calls su problem, jedine naozaj je nejaky monkey patch ala scala @tailrec
Je zajímavé, proč má tak jednoduchý jazyk tak dlouhou specifikaci.
did you say intercal?
-
ked chcete inu syntax pre jvm, zoberte scalu / groovy / whatever
IMO hlavní problém je v JVM a tam další jazyky nepomohou. Například reifikovaná generika a hodnotové typy nebo optimalizace tail callů.
V clojure sa na tail-cally pouziva vyhradene slovo "recur". Nie je to az take elegantne, ale umoznuje to setrit stackom aj na jvm. (priznam sa, ze neviem, co su reifikovana generika a honotove typy)
-
Java je jednoduchý jazyk
Je zajímavé, proč má tak jednoduchý jazyk tak dlouhou specifikaci. Osobně mám za to, že jednoduchý jazyk jde popsat na pár stránek, ale specifikace Javy má více než 700 stran.
Nutno dodat, ze je to docela upovidana specka a je dost zamerena na citelnost.
-
Tak pomalý vývoj ještě nutně nemusí být špatně. Takové C se za posledních 15 let téměř nezměnilo, ale kdybych si měl tipovat jaký jazyk se bude za 50 let pořád aktivně používat, bylo by to asi právě C.... ne že by pomalý vývoj zaručoval kvalitu, Javě se hodlám vyhýbat jak to jen půjde.
To je smutne, nechciet sa nieco naucit a vyhybat sa. Zrovna koderina je oblast, kde sa treba ucit stale. Prave sa ucim funkcionalne programovanie, lebo dost strasia, ze sa to bude pouzivat. (vid haskell) Ista miera pragmatizmu nie je na skodu.
Tak ona Java není v principu špatná a má i nějaké podstatné výhody (no, spíš výhodu), ale když člověk zná C# a C++, tak není moc nového co by mu Java jakožto jazyk mohla dát. Pokud to zrovna nepotřebuji kvůli platformě, nemám důvod se jí učit. Tím spíš když člověk vidí všechny ty javisty co si na javu stěžují.
Je zajímavé, proč má tak jednoduchý jazyk tak dlouhou specifikaci. Osobně mám za to, že jednoduchý jazyk jde popsat na pár stránek, ale specifikace Javy má více než 700 stran.
Tak když člověk chce aby to bylo přenositelné, tak se to na velikostí standardní knihovny projeví...
-
reifikovane generika znamenaju ze ArrayList<KitovMutableString> za behu umozni zistovat informaciu nielen o tom ze to je arraylist, ale aj o tom ze prvky su typu KitovMutableString
v jave vdaka type erasure sa na genericky typ v case behu zabudne.
.net to zaviedol myslim v c# 2.0 kde to hodili do virtualmasiny. v jave to nemohli kvoli spatnej kompatibilite spravit
value types umoznuju zlepsit performance a finty pre vecicky ako komplexne cisla. definujete si value typ KomplexneCislo, ten bude v pamati ulozeny bez class overheadu (menej narocne na ram), dve komplexne cisla mozete porovnat cez ==, a dalsie vecicky. viac o tom http://cr.openjdk.java.net/~jrose/values/values-0.html
-
reifikovane generika znamenaju ze ArrayList<KitovMutableString> za behu umozni zistovat informaciu nielen o tom ze to je arraylist, ale aj o tom ze prvky su typu KitovMutableString
v jave vdaka type erasure sa na genericky typ v case behu zabudne.
.net to zaviedol myslim v c# 2.0 kde to hodili do virtualmasiny. v jave to nemohli kvoli spatnej kompatibilite spravit
value types umoznuju zlepsit performance a finty pre vecicky ako komplexne cisla. definujete si value typ KomplexneCislo, ten bude v pamati ulozeny bez class overheadu (menej narocne na ram), dve komplexne cisla mozete porovnat cez ==, a dalsie vecicky. viac o tom http://cr.openjdk.java.net/~jrose/values/values-0.html
Aha, takze klasicke javisticke generika. To uznavam, su dost fail, aj na certifikacii bolo par pikosiek ohladom toho. No holt, treba vediet, co do toho strkam :-/
-
reifikovane generika nemozu byt lebo backward compatibility
Nevidím důvod, proč by to muselo pokazit zpětnou kompatibilitu. IMO kolekce a jiný negenerický kód mohli nechat tak, jak byl, a jen přidat generickou variantu.
tail calls su problem, jedine naozaj je nejaky monkey patch ala scala @tailrec
To bohužel funguje jen, když funkce volá sama sebe - nefunguje to, když je volána jiná funkce v tail pozici.
-
value types su planovane do java 9
Pokud je přidají bez reifikovaných generik, neztratí se výhody hodnotových typů (tj. nebude je třeba boxovat při vkládání do kolekcí)?
-
Chystám se do ciziny. Doporučili mi španělštinu. Neměl bych předtím začít s italštinou?
Pokud jedes do Latinske Ameriky, tak spis zacit s portugalstinou. Abys nedopadl jako Feynman - ten se ucil spanelsky a pak skoncil v Brazilii. ;)
Pokud do Latinské Ameriky, tak samozřejmě latinu. Bez té se tam neobjedeš. To je takový jazykový ekvivalent C.
-
value types su planovane do java 9
Pokud je přidají bez reifikovaných generik, neztratí se výhody hodnotových typů (tj. nebude je třeba boxovat při vkládání do kolekcí)?
oni to riesia
http://cr.openjdk.java.net/~briangoetz/valhalla/specialization.html
-
a este k reifikovanym generikam: v jave by to rozdrbalo celu stdlib. vid clanok z 2006
2006/11/reified-generics-for-java.html?m=1
-
value types su planovane do java 9
Pokud je přidají bez reifikovaných generik, neztratí se výhody hodnotových typů (tj. nebude je třeba boxovat při vkládání do kolekcí)?
oni to riesia
http://cr.openjdk.java.net/~briangoetz/valhalla/specialization.html
V podstatě tedy mohou mít reifikovaná generika pro hodnotové typy?
-
zatial to tak vyzera ze to taj bude ako dosledok
-
este k tym problemom reifikacie a value types, brian goetz z java language summitu
http://www.oracle.com/technetwork/java/jvmls2015-goetz-2637900.pdf
-
Ahoj, jsem začátečník-stařec, který má malou a dávnou zkušenost s Pascalem. Rád bych si jako hobby zkusil napsat nějakou jednoduchou aplikaci na PC, která "hezky vypadá". Jako vhodný jazyk mi byl doporučen C#, ale chci se zeptat, zda není vhodné předtím začít s C ? Díky
???
Proč se to tu většinou zvrhne v načechrávání peříček a poměřování údů?
-
Ahoj, jsem začátečník-stařec, který má malou a dávnou zkušenost s Pascalem. Rád bych si jako hobby zkusil napsat nějakou jednoduchou aplikaci na PC, která "hezky vypadá". Jako vhodný jazyk mi byl doporučen C#, ale chci se zeptat, zda není vhodné předtím začít s C ? Díky
???
Proč se to tu většinou zvrhne v načechrávání peříček a poměřování údů?
Zřejmě proto, že původní otázka již byla zodpovězena (C skutečně není potřebné a možná ani vhodné se učit před C#, protože ty dva jazyky toho nemají mnoho společného), mnozí mají potřebu sdělit, že existují i další alternativy (Visual Basic, Java, Scala, Haskel, PHP, Python, Lisp, ...) a dalším se něco z toho nelíbí a také to chtějí dát najevo. A protože pocity a sympatie se dnes tolik nenosí, začnou všichni argumentovat.