Uz pol roka sa snazim programovat v pythone a bol som snim zatial mimoriadne spokojny...Kedze na internete(hlavne v slovencine,(pokrocilejsia uroven) nie je dostatok materialu, rozhodol som zacat aj v inom jazyku programovat...vedeli by ste mi poradit ja
byť tebou by som šiel do Javy alebo nejakého Cčka ale to je komplikovanejšie než Java ... ak máš základy Javu sa rýchlo naučíš materiálov je veľké množstvo, taktiež aj cz/sk fór tam by si problém nemal a keď už ovládaš základy na appky napr. do Android je Java ako stvorená alebo by si keď tak mohol skúsiť Flash a jeho ActionSript
je to jazyk ktorý vyzerá tak ako by vyzerala Java, keby sa niekto pred jej tvorbou zamyslel "hmm, ako spravím jazyk ktorý bude elegantný a bude dávať zmysel"?
ale inak... čím viac si ich vyskúšaš, a v čím viacerých budeš vedieť aspoň základy, tým lepšie po všetkých stránkach
Urcite sa nauc po anglicky, bez toho sa ako programator len tazko zaobides. Ja osobne som postupoval Pascal -> Delphi -> PHP -> Java -> C++ -> C# -> Python. Pascal / Delphi je dobre akurat tak na naucenie sa zakladov ( slovenske materialy, ktore sa ti mozu hodit » pascal.input.sk/index.php/Progr... ), mas pravdu, je to mrtvy jazyk. Pre programatora najprivetivejsi sa mi zda asi C# a Python. C++ sa mi zda asi najvacsi zmrd jazyk / najmenej intuitivny (ak neratam exoticke srandy ako Malboge, Brainfuck).
Kodim v Jave 2,5 roka a s usmevom na tvary Ziadne smerniky, ziadne uvolnovanie pameti, multiplatformovost, rychlost a knihy od Herouta su super na ucenie
zameraj sa anglictinu hlavne a mozes zacat interaktivny java kurz na udacity napriklad. na ucenie sa programovania ani netreba nejak velmi pokrocilu anglictinu, technicky jazyk tu nema nejaku velku slovnu zasobu.
@ninus ja javu povazujem za jazyk ktory je dobre ucit sa ako zaklad a potom prejst idealne na iackrat spominane C++ (moje ucenie sice smerovalo smerom C C++ Java ale C++ povazujem za to najlepsie v com je mozne programovat)
a co sa tyka slovenskych zdrojov na nete to je dost problem pri vsetkych jazykoch takze odporucam ucit sa anglicky popripade si daj do prehliadaca nejaky plugin co ti bude prekladat automaticky slova ktore nepoznas... to vie dost urychlit robotu v tomto smere
@midnight uznavam ze hlavne s balikmi awt a swing sa java fakt "vyznamenala" a tiez nenavidim to jej uplne nerogicke citanie a zapis z a do suborov (ktore je v C# rovnako zle) ale inak si myslim ze narozdiel od C# java myslela na to ze programovaci jazyk by nemal byt zamerany na uzku cast problemov (myslim tym ze je iba na pracu s tou .NET blbostou) ... s tou druhou myslienkou sa uplne stotoznujem
@jozo100 ja javu považujem za jazyk ktorý je dobre sa neučiť vôbec, alebo keď už, tak ROZHODNE nie ako základ, lebo to človeku úplne dokrúti a zdeformuje myslenie.
"uznavam ze hlavne s balikmi awt a swing sa java fakt "vyznamenala" a tiez nenavidim to jej uplne nerogicke citanie a zapis z a do suborov (ktore je v C# rovnako zle)"
detaily, to zaprvé, a zadruhé čo je nelogické na ich čítaní a zápise do súborov (okrem toho že v čave vyzerá tak, že vytvoríš nejaký stream lebo ho potrebuješ dať ako paramater konštruktoru nejakého iného objektu, lebo ten potrebuješ dať ako parameter konštruktoru nejakého tretieho objektu, lebo až ten tretí objekt vie actually čítať súbory... ). a všeobecne proste, Java nie je objektová, ale objektoFILNÁ...
"ale inak si myslim ze narozdiel od C# java myslela na to ze programovaci jazyk by nemal byt zamerany na uzku cast problemov (myslim tym ze je iba na pracu s tou .NET blbostou)"
...hm. okej, nejdem po slovách rozoberať preto táto myšlienka v podstate nedáva zmysel (v skratke: mýliš si pojmy), ale skúsim sa prispôsobiť tvojmu vnímaniu daných pojmov, a:
Java je zas "zameraná na úzku časť problémov", keďže je len "na prácu s tou JVM blbosťou".
...ach jaj, nedá mi to...
1. pojem "úzka časť problémov" dáva zmysel a existuje, ale znamená niečo úplne iné, absolútne nesúvisiace s tým čo sa snažíš povedať.
2. tá ".NET blbosť" je PLATFORMA/FRAMEWORK/VM, rovnako ako JVM je platforma/framework/vm javy. jediný rozdiel medzi nimi (z praktického hľadiska) je ten, že tá JVM blbosť má implementácie pre prakticky všetky momentálne systémy, a .NET len pre microsoftie.
3. c# nie je "na prácu s .NET blbosťou", .NET framework je základ na ktorom stojí a existuje celý jazyk a jeho funkcionalita (obdobne Java a JVM), čiže ten tvoj výrok je ako keby si vyhlásil, že "C je zamerané na prácu so stdin/stdout".
4. c# nie je zameraný na žiadnu úzku časť problémov, je to regulérny highlevelový univerzálne použiteľný jazyk ktorý má elegantné a logické a občas priam nápadité riešenia na veľkú väčšinu základných vecí (case in point, pozri si XDocument knižnicu a ako sa s ňou robí, prípadne LINQ
P.S.
čo je postihnutého na c#povom zápise do/čítaní zo súborov?
(toto je prvý, najjednoduchší spôsob, keď ťa netrápia encodingy ani nič, len si chceš niečo rýchlo prečítať/zapísať. existujú asi ďalšie tri spôsoby, odstupňované podľa komplexity a miery kontroly ktorú nad celým procesom máš.)
pozri si "c# wpf binding", síce na začiatku na pochopenie trochu náročná vec, lebo komplexná a úplne nová paradigma, ale akonáhle sa do nej dostaneš, tak ...by si mal byť schopný pochopiť že je to vec úplne geniálna a v tejto chvíli ešte stále bezkonkurenčná.
a moja anglictina nieje az taka zla...dohovorim sa a tiez nemam problem s pozeranim filmov v anglictine...problem je ze ked si chce napr nastudovat basic python library....tak nemam sancu zistit co tieto moduly a funkcie vykonavaju(je tam prilis vela odbornych pojmov pricom niektore veci je tiez tazke pochopit v slovencine)
zalezi co chces robit, väcsina napr. hovori, ze java je lepsia na velke projekty, pre C je trochu menej pracovnych pozicii, potom od toho c++, celkom bezi aj C# .. skoda ze mne sa do kodenia nechce nejak radsej ine veci ohladom IT ale urcite by som išiel do PHP a veci okolo toho a potom sa dost hovori aj o Ruby, ktory je teraz popularny, konkretne Ruby On Rails (framework).
Kvôli admin veciam som chcel zacat tiez Python, ale syntax mi prisla pre mna nie prilis priatelska...uff neviem, niekedy sa ktomu dostanem
@midnight java pouziva OOP co podla mna potrebuje ovladat kazdy programator a navyse si to vynucuje to je na ucenie urcite dobre ... a tiez aj to ze nuti programatora odchytavat vynimky... ked sa niekto chce naucit radsej vynechava take veci ... preto si myslim ze java je na naucenie dobra... v pripade C++ si zacinajuci programator pravdepodobne bude vypustat objekty ked moze mat globalne premenne a funkcie... tiez naco osetrovat vynimky ked to nieje nutne ... on este nevie ze to nevadi kym sa uci ale ked bude robit neico skutocne bez toho to nepojde
vyraz "úzka časť problémov" si pochopil tak nechapem kde je problem ... a kedze C# je pouzitelna ina na windowse pre mna je nemyslitelne pouzivat ten jazyk (teda ani ziadne WPF ma neohuri) ... uz len z toho pohladu univerzalny nebude... ale aj keby sa nanho mam pozret objektivne nie je to najlahsie pochopitelny jazyk ... napriklad ked priniesol vlastnosti ... naco je nova konstrukcia ktorej funkcia sa vyuzivala aj pred jej vymyslenim? ... aby sa bolo treba naucit viac konstrukcii? alebo aby programator usetril 3 riadky kodu? uz len preco to neurobit jednoduchsou starou cestou je nepochopitelne...
a na zaver clovek ktory je zatazeny na windows by urcite jazyk C# nemal obist a urcite sa mu zide ale vseobecne sa urcite jazyku C++ nevyrovna
...lebo C#, python, ruby, JavaScript, VB.NET, nepoužívajú, hej? skrátka, toto nie je argument pre Javu, ale pre OO jazyk, a tých je veľa, a väčšina z nich je rozumnejšia
"vyraz "úzka časť problémov" si pochopil tak nechapem kde je problem"
v tom že som ho pochopil len vďaka tomu že mi došlo že si ho použil maximálne nesprávne, mne to môže byť jedno, ale tebe by nemalo byť
"a kedze C# je pouzitelna ina na windowse pre mna je nemyslitelne pouzivat ten jazyk (teda ani ziadne WPF ma neohuri)"
...a zistenie že existuje vec menom "Mono" ktorá je, síce neoficiálnou a open-sourcovou, ale implementáciou .NET frameworku pre Linux a Mac OS, by ťa ohúrilo? nespomínal som ho, lebo ako hovorím, nie je to oficiálne MSková implementácia, ale existuje,a pokiaľ viem, tak už v dnešnej dobe funguje dosť spoľahlivo.
"uz len z toho pohladu univerzalny nebude"
...počkaj 3 roky, potom si pozri market share operačných systémov, a potom mi toto prípadne zahlás znova
"ale aj keby sa nanho mam pozret objektivne nie je to najlahsie pochopitelny jazyk"
...pretože (napríklad) to, že v Jave sú polovica toho čo by človek čakal ako najzákladnejšie funkčné base objekty (List, Dictionary, Stream), to je úplne ľahko pochopiteľné a intuitívne, a hlavne... "logické"... -.-
" napriklad ked priniesol vlastnosti ... naco je nova konstrukcia ktorej funkcia sa vyuzivala aj pred jej vymyslenim?"
na vychovávanie k správnej sémantickej metodológii, napríklad? pretože funkcia má vykonávať logiku algoritmu, a nie slúžiť miesto " = "? ale zároveň z toho že programátori takto funkcie často používali, lebo pri priradení nejakej property skrátka potrebovali spraviť aj ďalšie veci? plus volanie funkcie má vyšší overhead, pokiaľ viem.
každopádne nikto ťa nenúti gettery/settery používať, môžeš si si písať ťuťkavým setFoo() a getFoo() spôsobom, a vo všeobecnosti, všetok jeho syntactic sugar môžeš ignorovať, ak ho nechceš.
...každopádne pokiaľ ti gettery/settery prídu nie najľahšie pochopiteľné, tak... hmmm...
...plus príde mi to tak trochu ako vyhlásiť že nejaká kniha nie je práve najľahšie porozumiteľná, keďže sa (okrem tvojho materského) dá zohnať aj v cudzom jazyku ktorému nerozumieš.
" uz len preco to neurobit jednoduchsou starou cestou je nepochopitelne..."
...v skratke? preto, že keby sa jazyky a technológie vyvíjali na základe tejto myšlienky, tak by sme dnes stále kódili v Cčku a COBOLe, a moju správu by si si čítal na BBS terminále?
closures, lambda funkcie, DependencyProperties (mimochodom, toto je ďalší vývojový stupeň getterov/setterov, vlastnosť, ktorá môže byť previazaná s kusom UI, a keď ju zmeníš v kóde, tak automaticky notifikuje UI a updatne ho, prípadne keď ju zmeníš cez UI, tak automaticky notifikuje dátový model, MVVM? CRUD appky pracujúce s SQL a XML databázami sa vďaka tomu dajú nakódiť tak na tretinu času čo by trvali v niečom inom
"uz len preco to neurobit jednoduchsou starou cestou je nepochopitelne..."
nikto ťa nenúti, ak nemáš rád, že ti jazyk poskytuje nové spôsoby ako robiť veci jednoduchšie a efektívnejšie, kľudne ich ignoruj, používaj svoje staré klasické overené, a len si užívaj krásnu čistú jasnú syntax a zmysluplné usporiadanie core knižníc.
(alebo LINQ, schopnosť pracovať s poliami, Listami, Dictionaries, a vlastne akýmkoľvek IEnumerable pomocou SQL výrazov, príde ti to zbytočné? tvoja vec, ignoruj to, ja som tiež 2 roky ani nevedel že to existuje, ale keď som to objavil, tak som bol nadšený, lebo narozdiel od teba užitočnosť vidím, a keby som si obdobnú funkcionalitu chcel nakódiť sám, tak je to projekt na tri-štyri mesiace, a musel by som danú funkcionalitu narvať do hraníc existujúcej syntaxe, takže by to bolo hnusné a používalo by sa to nemotorne).
"a na zaver clovek ktory je zatazeny na windows by urcite jazyk C# nemal obist a urcite sa mu zide ale vseobecne sa urcite jazyku C++ nevyrovna"
a na záver, áno, výrazná nevýhoda C# je že na newin platformách nemá oficiálnu implementáciu, len neoficiálnu, ale porovnaním s C++ v tomto kontexte šliapaš trochu mimo, c++ je low/mid-level, c# je high-level.
v preklade, keď ti poviem "nakóď appku čo bude pravidelne čekovať updaty/zmeny na nejakej stránke, a keď ich objaví, spraví z nich lokálnu zálohu a oznámi ti to popup bublinou", tak mi povieš "okej, daj mi týždeň a budeš ju mať", lebo C++. a keď také povieš mne, tak ti poviem "okej, daj mi tri-štyri hoďky a budeš ju mať". a neviem ako pre teba, ale pre mňa je efektivita a vyjadrovacia sila druhou najpodstatnejšou vlastnosťou jazyka (hneď po logike syntaxe a core libs). a mimochodom uvedený príklad je aj hlavným dôvodom, "prečo to neurobiť jednoduchšou starou cestou". nepovažujem nutnosť manuálne alokovať/dealokovať pamäť, v každej sekunde rozlišovať medzi pointermi a premennými, manuálne pumpovať message queue, atď., za "jednoduchšiu cestu". každopádne máš pravdu, staršia (a omnoho otravnejšia, a z hľadiska doby implementácie omnoho neefektívnejšia) rozhodne je.
c#, javu.. su to podobne jazyky.. c# je kus novsi, teda neprebral niektore somariny z javy
klady, zapory spomenuli uz chlapci vyssie..
Java je ukecana, treba to tak brat. Ja osobne by som nesiel do c/c++ pokial si nechces trhat vlasy .. c#, java su uz abstraktnejsie jazyky na vyssej urovni.. mas tam uz kopu veci naprogramovanych, ktore v c/c++ by si si musel napisat sam aby si ich mal.. ma to aj minus, niektori ludia kodia v highlevel jazykoch a nevedia co je napr. za beznymi udajovymi strukturami, ci niektorymi algoritmami.
dnes pisat v c/c++, tak uz len kriticke aplikacie, s ktorymi je problem v c#, jave..
" java pouziva OOP co podla mna potrebuje ovladat kazdy programator a navyse si to vynucuje to je na ucenie urcite dobre"
...java zneužíva a nadužíva OOP, čo podľa mňa nie je dobré, a navyše si vynucuje aby sa programátor prispôsobil a zvykol si zneužívať/nadužívať ho tiež, čo podľa mňa rozhodne nie je dobré. proste programátor ktorý sa programovať (alebo aj "len OOP", lebo už programovať vedel v niečom inom) naučil na Jave, buď bude zlý programátor, alebo bude mať problém zvyknúť si ako sa OOP na architektúru kódu aplikuje korektne a rozumne/s tou správnou mierou.
...totiž dependency grafy javovských programov práve vďaka tomu ako veľmi núti do OOP, a akým spôsobom núti OOP používať (a ako si na to vďaka Jave človek zvykne) vyzerajú veľmi často takto:
...a takto si rozhodne nepredstavujem "dobré naučenie sa OOP"
ja ovládam python veľmi dobre ale nerob veľké veci v pythone je to interpretovaný jazyk nekompiluje sa ale to asi už vieš a to čo sa nekompiluje je pomalé a nespoľahlivé ako napr. FL Studio "fajn software na tvorbu hudby ale pomalý" no čo už ked tak tak C#
Roleta je špeciálny inkognito mód, ktorým skryješ obsah obrazovky pred samým sebou, alebo inou osobou v tvojej izbe (napr. mama). Roletu odroluješ tak, že na ňu klikneš.
23 komentov
je to jazyk ktorý vyzerá tak ako by vyzerala Java, keby sa niekto pred jej tvorbou zamyslel "hmm, ako spravím jazyk ktorý bude elegantný a bude dávať zmysel"?
ale inak... čím viac si ich vyskúšaš, a v čím viacerých budeš vedieť aspoň základy, tým lepšie po všetkých stránkach
a co sa tyka slovenskych zdrojov na nete to je dost problem pri vsetkych jazykoch takze odporucam ucit sa anglicky popripade si daj do prehliadaca nejaky plugin co ti bude prekladat automaticky slova ktore nepoznas... to vie dost urychlit robotu v tomto smere
@midnight uznavam ze hlavne s balikmi awt a swing sa java fakt "vyznamenala" a tiez nenavidim to jej uplne nerogicke citanie a zapis z a do suborov (ktore je v C# rovnako zle) ale inak si myslim ze narozdiel od C# java myslela na to ze programovaci jazyk by nemal byt zamerany na uzku cast problemov (myslim tym ze je iba na pracu s tou .NET blbostou) ... s tou druhou myslienkou sa uplne stotoznujem
"uznavam ze hlavne s balikmi awt a swing sa java fakt "vyznamenala" a tiez nenavidim to jej uplne nerogicke citanie a zapis z a do suborov (ktore je v C# rovnako zle)"
detaily, to zaprvé, a zadruhé čo je nelogické na ich čítaní a zápise do súborov (okrem toho že v čave vyzerá tak, že vytvoríš nejaký stream lebo ho potrebuješ dať ako paramater konštruktoru nejakého iného objektu, lebo ten potrebuješ dať ako parameter konštruktoru nejakého tretieho objektu, lebo až ten tretí objekt vie actually čítať súbory... ). a všeobecne proste, Java nie je objektová, ale objektoFILNÁ...
"ale inak si myslim ze narozdiel od C# java myslela na to ze programovaci jazyk by nemal byt zamerany na uzku cast problemov (myslim tym ze je iba na pracu s tou .NET blbostou)"
...hm. okej, nejdem po slovách rozoberať preto táto myšlienka v podstate nedáva zmysel (v skratke: mýliš si pojmy), ale skúsim sa prispôsobiť tvojmu vnímaniu daných pojmov, a:
Java je zas "zameraná na úzku časť problémov", keďže je len "na prácu s tou JVM blbosťou".
...ach jaj, nedá mi to...
1. pojem "úzka časť problémov" dáva zmysel a existuje, ale znamená niečo úplne iné, absolútne nesúvisiace s tým čo sa snažíš povedať.
2. tá ".NET blbosť" je PLATFORMA/FRAMEWORK/VM, rovnako ako JVM je platforma/framework/vm javy. jediný rozdiel medzi nimi (z praktického hľadiska) je ten, že tá JVM blbosť má implementácie pre prakticky všetky momentálne systémy, a .NET len pre microsoftie.
3. c# nie je "na prácu s .NET blbosťou", .NET framework je základ na ktorom stojí a existuje celý jazyk a jeho funkcionalita (obdobne Java a JVM), čiže ten tvoj výrok je ako keby si vyhlásil, že "C je zamerané na prácu so stdin/stdout".
4. c# nie je zameraný na žiadnu úzku časť problémov, je to regulérny highlevelový univerzálne použiteľný jazyk ktorý má elegantné a logické a občas priam nápadité riešenia na veľkú väčšinu základných vecí (case in point, pozri si XDocument knižnicu a ako sa s ňou robí, prípadne LINQ
P.S.
čo je postihnutého na c#povom zápise do/čítaní zo súborov?
» msdn.microsoft.com/en-us/library/v...
(toto je prvý, najjednoduchší spôsob, keď ťa netrápia encodingy ani nič, len si chceš niečo rýchlo prečítať/zapísať. existujú asi ďalšie tri spôsoby, odstupňované podľa komplexity a miery kontroly ktorú nad celým procesom máš.)
p.s.
pozri si "c# wpf binding", síce na začiatku na pochopenie trochu náročná vec, lebo komplexná a úplne nová paradigma, ale akonáhle sa do nej dostaneš, tak ...by si mal byť schopný pochopiť že je to vec úplne geniálna a v tejto chvíli ešte stále bezkonkurenčná.
a vôbec, celé WPFko.
Kvôli admin veciam som chcel zacat tiez Python, ale syntax mi prisla pre mna nie prilis priatelska...uff neviem, niekedy sa ktomu dostanem
vyraz "úzka časť problémov" si pochopil tak nechapem kde je problem ... a kedze C# je pouzitelna ina na windowse pre mna je nemyslitelne pouzivat ten jazyk (teda ani ziadne WPF ma neohuri) ... uz len z toho pohladu univerzalny nebude... ale aj keby sa nanho mam pozret objektivne nie je to najlahsie pochopitelny jazyk ... napriklad ked priniesol vlastnosti ... naco je nova konstrukcia ktorej funkcia sa vyuzivala aj pred jej vymyslenim? ... aby sa bolo treba naucit viac konstrukcii? alebo aby programator usetril 3 riadky kodu? uz len preco to neurobit jednoduchsou starou cestou je nepochopitelne...
a na zaver clovek ktory je zatazeny na windows by urcite jazyk C# nemal obist a urcite sa mu zide ale vseobecne sa urcite jazyku C++ nevyrovna
"java pouziva OOP"
...lebo C#, python, ruby, JavaScript, VB.NET, nepoužívajú, hej? skrátka, toto nie je argument pre Javu, ale pre OO jazyk, a tých je veľa, a väčšina z nich je rozumnejšia
"vyraz "úzka časť problémov" si pochopil tak nechapem kde je problem"
v tom že som ho pochopil len vďaka tomu že mi došlo že si ho použil maximálne nesprávne, mne to môže byť jedno, ale tebe by nemalo byť
"a kedze C# je pouzitelna ina na windowse pre mna je nemyslitelne pouzivat ten jazyk (teda ani ziadne WPF ma neohuri)"
...a zistenie že existuje vec menom "Mono" ktorá je, síce neoficiálnou a open-sourcovou, ale implementáciou .NET frameworku pre Linux a Mac OS, by ťa ohúrilo? nespomínal som ho, lebo ako hovorím, nie je to oficiálne MSková implementácia, ale existuje,a pokiaľ viem, tak už v dnešnej dobe funguje dosť spoľahlivo.
"uz len z toho pohladu univerzalny nebude"
...počkaj 3 roky, potom si pozri market share operačných systémov, a potom mi toto prípadne zahlás znova
"ale aj keby sa nanho mam pozret objektivne nie je to najlahsie pochopitelny jazyk"
...pretože (napríklad) to, že v Jave sú polovica toho čo by človek čakal ako najzákladnejšie funkčné base objekty (List, Dictionary, Stream), to je úplne ľahko pochopiteľné a intuitívne, a hlavne... "logické"... -.-
" napriklad ked priniesol vlastnosti ... naco je nova konstrukcia ktorej funkcia sa vyuzivala aj pred jej vymyslenim?"
na vychovávanie k správnej sémantickej metodológii, napríklad? pretože funkcia má vykonávať logiku algoritmu, a nie slúžiť miesto " = "? ale zároveň z toho že programátori takto funkcie často používali, lebo pri priradení nejakej property skrátka potrebovali spraviť aj ďalšie veci? plus volanie funkcie má vyšší overhead, pokiaľ viem.
každopádne nikto ťa nenúti gettery/settery používať, môžeš si si písať ťuťkavým setFoo() a getFoo() spôsobom, a vo všeobecnosti, všetok jeho syntactic sugar môžeš ignorovať, ak ho nechceš.
...každopádne pokiaľ ti gettery/settery prídu nie najľahšie pochopiteľné, tak... hmmm...
...plus príde mi to tak trochu ako vyhlásiť že nejaká kniha nie je práve najľahšie porozumiteľná, keďže sa (okrem tvojho materského) dá zohnať aj v cudzom jazyku ktorému nerozumieš.
" uz len preco to neurobit jednoduchsou starou cestou je nepochopitelne..."
...v skratke? preto, že keby sa jazyky a technológie vyvíjali na základe tejto myšlienky, tak by sme dnes stále kódili v Cčku a COBOLe, a moju správu by si si čítal na BBS terminále?
closures, lambda funkcie, DependencyProperties (mimochodom, toto je ďalší vývojový stupeň getterov/setterov, vlastnosť, ktorá môže byť previazaná s kusom UI, a keď ju zmeníš v kóde, tak automaticky notifikuje UI a updatne ho, prípadne keď ju zmeníš cez UI, tak automaticky notifikuje dátový model, MVVM? CRUD appky pracujúce s SQL a XML databázami sa vďaka tomu dajú nakódiť tak na tretinu času čo by trvali v niečom inom
"uz len preco to neurobit jednoduchsou starou cestou je nepochopitelne..."
nikto ťa nenúti, ak nemáš rád, že ti jazyk poskytuje nové spôsoby ako robiť veci jednoduchšie a efektívnejšie, kľudne ich ignoruj, používaj svoje staré klasické overené, a len si užívaj krásnu čistú jasnú syntax a zmysluplné usporiadanie core knižníc.
(alebo LINQ, schopnosť pracovať s poliami, Listami, Dictionaries, a vlastne akýmkoľvek IEnumerable pomocou SQL výrazov, príde ti to zbytočné? tvoja vec, ignoruj to, ja som tiež 2 roky ani nevedel že to existuje, ale keď som to objavil, tak som bol nadšený, lebo narozdiel od teba užitočnosť vidím, a keby som si obdobnú funkcionalitu chcel nakódiť sám, tak je to projekt na tri-štyri mesiace, a musel by som danú funkcionalitu narvať do hraníc existujúcej syntaxe, takže by to bolo hnusné a používalo by sa to nemotorne).
"a na zaver clovek ktory je zatazeny na windows by urcite jazyk C# nemal obist a urcite sa mu zide ale vseobecne sa urcite jazyku C++ nevyrovna"
a na záver, áno, výrazná nevýhoda C# je že na newin platformách nemá oficiálnu implementáciu, len neoficiálnu, ale porovnaním s C++ v tomto kontexte šliapaš trochu mimo, c++ je low/mid-level, c# je high-level.
v preklade, keď ti poviem "nakóď appku čo bude pravidelne čekovať updaty/zmeny na nejakej stránke, a keď ich objaví, spraví z nich lokálnu zálohu a oznámi ti to popup bublinou", tak mi povieš "okej, daj mi týždeň a budeš ju mať", lebo C++. a keď také povieš mne, tak ti poviem "okej, daj mi tri-štyri hoďky a budeš ju mať". a neviem ako pre teba, ale pre mňa je efektivita a vyjadrovacia sila druhou najpodstatnejšou vlastnosťou jazyka (hneď po logike syntaxe a core libs). a mimochodom uvedený príklad je aj hlavným dôvodom, "prečo to neurobiť jednoduchšou starou cestou". nepovažujem nutnosť manuálne alokovať/dealokovať pamäť, v každej sekunde rozlišovať medzi pointermi a premennými, manuálne pumpovať message queue, atď., za "jednoduchšiu cestu". každopádne máš pravdu, staršia (a omnoho otravnejšia, a z hľadiska doby implementácie omnoho neefektívnejšia) rozhodne je.
klady, zapory spomenuli uz chlapci vyssie..
Java je ukecana, treba to tak brat. Ja osobne by som nesiel do c/c++ pokial si nechces trhat vlasy .. c#, java su uz abstraktnejsie jazyky na vyssej urovni.. mas tam uz kopu veci naprogramovanych, ktore v c/c++ by si si musel napisat sam aby si ich mal.. ma to aj minus, niektori ludia kodia v highlevel jazykoch a nevedia co je napr. za beznymi udajovymi strukturami, ci niektorymi algoritmami.
dnes pisat v c/c++, tak uz len kriticke aplikacie, s ktorymi je problem v c#, jave..
" java pouziva OOP co podla mna potrebuje ovladat kazdy programator a navyse si to vynucuje to je na ucenie urcite dobre"
...java zneužíva a nadužíva OOP, čo podľa mňa nie je dobré, a navyše si vynucuje aby sa programátor prispôsobil a zvykol si zneužívať/nadužívať ho tiež, čo podľa mňa rozhodne nie je dobré. proste programátor ktorý sa programovať (alebo aj "len OOP", lebo už programovať vedel v niečom inom) naučil na Jave, buď bude zlý programátor, alebo bude mať problém zvyknúť si ako sa OOP na architektúru kódu aplikuje korektne a rozumne/s tou správnou mierou.
...totiž dependency grafy javovských programov práve vďaka tomu ako veľmi núti do OOP, a akým spôsobom núti OOP používať (a ako si na to vďaka Jave človek zvykne) vyzerajú veľmi často takto:
...a takto si rozhodne nepredstavujem "dobré naučenie sa OOP"