Jaký jazyk zvolit pro začátečníka

blizz

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #135 kdy: 21. 05. 2011, 19:21:02 »
Ja by som na tvojom mieste začal s F#

http://cs.wikipedia.org/wiki/F_Sharp

alebo niečim čo vychádza z rodiny jazykov ML (F#, Caml, Ocaml).

jazyk F# má jednoduchú a ľahko pochopiteľnú syntax aj pre začiatočnikov je multiparadigmický takže umožňuje programovať všetkými možnými spôsobmi hlavne funkcionálne ale aj imperatívne (narozdiel od haskellu obsahuje aj mutable premenné a cykly, ale ideálne je ich nepoužívať). A hlavne je minimalistický, kód v F# je niekedy až o 50% kratší ako v Jave alebo C#.

Ak chceš začať s F#, tak by som ti odporučil tento tutorial od Tomáša Petríčka

http://channel9.msdn.com/Blogs/JanSteberl/Uvod-do-jazyka-F-I
http://channel9.msdn.com/Blogs/JanSteberl/Uvod-do-jazyka-F-II
http://channel9.msdn.com/Blogs/JanSteberl/Uvod-do-jazyka-F-III
http://channel9.msdn.com/Blogs/JanSteberl/Uvod-do-jazyka-F-IV

viac info o jazyku je na:
-MSDN (http://msdn.microsoft.com/library/dd233154(VS.100).aspx)
-a na tomto blogu http://blogs.msdn.com/b/chrsmith/


eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #136 kdy: 22. 05. 2011, 14:06:09 »
Multiparadigmový jazyk typu F#, Scala nebo Clojure je možná vhodný pro začátečníka, ale s dobrým vedením. Určitě ne pro samouka, který se jej chce začít učit z pár tutoriálů na netu.

Je potřeba vědět, kdy které paradigma použít, na které problémy se hodí, co v konkrétním případě přinese a jaká bude výsledná čitelnost kódu. Bez předchozích zkušeností nebo vedoucího, který Ti neustále stojí za zadkem, vždycky vznikne polofungující bastl, čímž se každému programování tak možná znechutí.

Zrovna u F# musíš řešit napojení na C# (F# a C# kolekce jsou občas trochu problém, neb jsou jiné, v F# nefungují některé implicitní konverze - např. když vytváříš XElement, tak nefunguje implicitní konverze System.String na XName, což znamená, že v C# můžeš napsat XElement elem = new XElement("můjPrvníXmlElement");, ale v F# už musíš vytvořit něco takového:
let xn s = new XName(s)
let elem = new XElement(xn "můjPrvníElement)
atp.; jenomže tohle Ti málokdo dopředu řekne). Je tam prostě pár temných zákoutí a "ostrých hran". A pokud budeš chtít dělat grafické rozhraní, určitě ho nebudeš chtít psát ručně, ale sáhneš po grafickém editoru, který je ve Visual Studiu ... ten Ti ale generuje jen C# kód, takže se řešení podobných kravin nevyhneš a de facto se budeš muset učit oba jazyky.

Tvůrci F# se sice chvástají, že je F# plně integrovaný do VisualStudia, ale není to pravda. Je to jenom takový "chudý příbuzný". Nefunguje tam např. zobrazování hierarchie funkcí a tříd (musíš procházet každý modul shora dolů, když něco hledáš ... nějaké "class view" nebo něco takového neexistuje), v F# shellu nefunguje doplňování kódu, zdroje informací jsou trochu omezené ... furt Tě prostě bude něco štvát.

F# je zajímavý jazyk, ne že ne, ale neustále Tě bude něco štvát. A ani další dva mnou jmenované jazyky nejsou úplnou výhrou - Scala je "scalable language", což s sebou nese to, že spoustu věcí v syntaxi lze vynechat a celkově komplexní syntax (neříkám složitou, jen je jí hodně a program může vypadat pokaždé jinak). Zato je ale její základ shodný s Javou. Clojure má sice krásnou a jednoduchou syntax, ale LISPového typu. Vzhledem k tomu, že se stejně nevyhneš spolupráci s Javou (minimálně u grafického rozhraní), tak se budeš muset učit, stejně jako v případě F#(ML syntax)/C# (Céčkoidní syntaxe), 2 syntakticky rozdílné jazyky.

Spíš se poohlédni po jazyuku jako je Ruby nebo Python. Jsou to sice "jen" skriptovací jazyky, ale mají dobré informační zdroje a slušná vývojová prostředí (např. Eclipse/NetBeans) a přestože jejich interprety jsou občas dost omezené (např. o konkurenčním programování si můžeš nechat jen zdát kvůli tomu, že všechno běží "v jednom vlákně") a dělat v nich opravdu rozsáhlé aplikace není z hlediska paměťových ani výkonnostních moc dobrý nápad, na naučení se a psaní jednoduchých skriptů či okenních aplikací jsou super. A informačních zdrojů je, zvlášť v případě Pythonu, opravdu přehršel.

Inkvizitor

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #137 kdy: 23. 05. 2011, 20:49:04 »
Podľa mňa je blbosť učiť sa viac jazykov / prechádzať z jazyku na jazyk atď, lebo sa to dosť pletie.. napr. my sa v škole (gymnázium) učíme pascal, doma sa učim programovať v C++ (chcem ísť na matfyz študovať info :)) (základy OOP už mám za sebou, teraz sa učím SDL a OpenGL), a nehorázne sa mi to pletie, ešte si neviem predstaviť čo budem robiť keď náhodou budem potrebovať dačo spraviť v niečom inom :)

S trochou praxe se Ti to plést nebude. Já můžu psát v několika odlišných jazycích (C++, Scala, Python...) ten samý den a nemám s tím problém. Problém je, když s nějakým jazykem začínáš a mozek si na něj teprve zvyká. Kdysi jsem musel (trochu z jiného soudku) po několikaměsíčním každodenním používání Vimu použít Visual Studio, pořád jsem chtěl mačkat Escape a měnit režimy editoru. Dnes mi nedělá problém psát v jednom editoru "klasicky" a pak přejít do Vimu a zase zpět.

Inkvizitor

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #138 kdy: 23. 05. 2011, 20:56:25 »
F# je zajímavý jazyk, ne že ne, ale neustále Tě bude něco štvát. A ani další dva mnou jmenované jazyky nejsou úplnou výhrou - Scala je "scalable language", což s sebou nese to, že spoustu věcí v syntaxi lze vynechat a celkově komplexní syntax (neříkám složitou, jen je jí hodně a program může vypadat pokaždé jinak). Zato je ale její základ shodný s Javou. Clojure má sice krásnou a jednoduchou syntax, ale LISPového typu. Vzhledem k tomu, že se stejně nevyhneš spolupráci s Javou (minimálně u grafického rozhraní), tak se budeš muset učit, stejně jako v případě F#(ML syntax)/C# (Céčkoidní syntaxe), 2 syntakticky rozdílné jazyky.

Spíš se poohlédni po jazyuku jako je Ruby nebo Python. Jsou to sice "jen" skriptovací jazyky, ale mají dobré informační zdroje a slušná vývojová prostředí (např. Eclipse/NetBeans) a přestože jejich interprety jsou občas dost omezené (např. o konkurenčním programování si můžeš nechat jen zdát kvůli tomu, že všechno běží "v jednom vlákně") a dělat v nich opravdu rozsáhlé aplikace není z hlediska paměťových ani výkonnostních moc dobrý nápad, na naučení se a psaní jednoduchých skriptů či okenních aplikací jsou super. A informačních zdrojů je, zvlášť v případě Pythonu, opravdu přehršel.

Nemůžu mluvit za uživatele F#, ale se Scalou je možné začít v Java stylu (OOP a mutable proměnné) a možnosti FP přidávat postupně. Co se týče Pythonu, mám zkušenosti s opravdu velkými projekty a paměť ani rychlost nejsou problém (a místo vláken používáme procesy). Několikrát jsme ale narazili na meze typového systému (hlavně promíchané konstanty) - to je ale problém většiny často používaných jazyků. Jinak ale souhlasím; Python nebo Ruby do začátku nejsou špatné a F#, Scala nebo Clojure (to je fakt mezi dnešními jazyky trochu "exot") nebyly navrhovány pro potřeby začátečníků.

enachod

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #139 kdy: 24. 05. 2011, 08:07:20 »
Nedávno jsem psal článek na toto téma Programujte snadno a zábavně. Koukni na to třeba tě to bude inspirovat.

http://novinky.enachod.cz/microsoft_small_basic/


aj

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #140 kdy: 24. 05. 2011, 09:11:00 »
Nedávno jsem psal článek na toto téma Programujte snadno a zábavně. Koukni na to třeba tě to bude inspirovat.

http://novinky.enachod.cz/microsoft_small_basic/


Ten článek je dost o ničem, spíš to vypadá jako reklama. Mě by zajímalo proč je ten jazyk vhodný pro začátečníky a v čem je třeba lepší než konkurence (kromě toho, že to je "ideální řešení pro programovací prostředí pro začátečníky"). Můžu si to najít, ale jsem líný, tak radši budu dál doporučovat osvědčeného karla.

Inkvizitor

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #141 kdy: 24. 05. 2011, 10:06:18 »
Nedávno jsem psal článek na toto téma Programujte snadno a zábavně. Koukni na to třeba tě to bude inspirovat.

http://novinky.enachod.cz/microsoft_small_basic/


Ten článek je dost o ničem, spíš to vypadá jako reklama. Mě by zajímalo proč je ten jazyk vhodný pro začátečníky a v čem je třeba lepší než konkurence (kromě toho, že to je "ideální řešení pro programovací prostředí pro začátečníky"). Můžu si to najít, ale jsem líný, tak radši budu dál doporučovat osvědčeného karla.

Souhlas, reklama na článek, který je naprosto o ničem.

bary

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #142 kdy: 24. 05. 2011, 14:34:25 »
Thread jsem jen v rychlosti prolitl a chtel bych pridat svuj nazor.
K vyberu jazyka:
  • pokud vas zajmaji webove, kancelarske a vsemozne enterprise aplikace a jde vam jen o to "nejak" programovat naucte se javu, popr C#
  • pokud se chcete naucit programovat PORADNE naucte se C/C++
  • z vlastni zkusenosti: jakykoliv bastl bude rychleji napsany v jave a bude pravdepodobne i rychleji bezet, nicmene kod od profika v C++ je proste kod od profika c C++ :)
Kdyz jsme tedy u C/C++ tak k vyberu prostredi:
  • nekdo tu psal ze VS je nej ide na C++, to je bohuzel totalni nesmysl, bylo tomu tak pred nekolika lety, dnes silne zaostava jak za qt-creatorem tak kdevelopem (pravdepodobne i za netbeans a eclipse s C++ pluginem, ale to nemam overene)
  • osobne vyvyjim v qt-creatoru s emulatorem vimu, projekty vetsinou v cmake (btw spousta lidi si mysli ze qt-creator je jen na Qt a C++, neni tomu tak, napsal sem v tom tisice radek v C pro embedded ARMy, tisice radek CUDA a desetitisice C++, ktere s Qt nemelo nic spolecneho

Radovan

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #143 kdy: 24. 05. 2011, 17:01:42 »
Nedávno jsem psal článek na toto téma Programujte snadno a zábavně. Koukni na to třeba tě to bude inspirovat.

http://novinky.enachod.cz/microsoft_small_basic/

Začínáš dobře: "Květen 17th,2011 V minulém týdnu představila společnost M..." Jenže on ten minulý týden byl v říjnu 2008!
Věta "Programovací prostředí se velice podobá QBasicu." se také poněkud nezakládá na pravdě, v mých vzpomínkách QB vypadá dost odlišně, tohle mi připomíná spíš nejnovější verze MS Office, bohužel. Není problém si nějaký QB stáhnout a vyzkoušet, uvidíš sám ten rozdíl ;-)
Takže abych to neprotahoval, jediná kladná věc na Small Basicu by mohla být zabudovaná želví grafika, ale pokus zkřížit Logo se zbytky zkomolených basicových příkazů opravdu není šťastný nápad. A ještě ho navíc tlačit do .NETu.
Navíc jako pamětník osmibitových dob, s vědomím že BASIC je dodnes můj nejoblíbenější jazyk a často ho používám, prohlašuji: "Ne, nic co má společného s jakýmkoliv Basicem (zejména od Microsoftu) není vhodné pro výuku, tím méně začátečníků!". To už radši Baltík, ten napáchá méně škody.
Takže jak výše zmínil aj, pro úplné začátečníky a děti Karel (v něm se dají dělat i hodně složité věci), potom Pascal nebo Python, dál podle toho k čemu bude dotyčný inklinovat. Případně podle zájmu zkusit to zmíněné Logo, Scratch, Alice...

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #144 kdy: 25. 05. 2011, 09:58:03 »
Nedávno jsem psal článek na toto téma Programujte snadno a zábavně. Koukni na to třeba tě to bude inspirovat.

http://novinky.enachod.cz/microsoft_small_basic/

Upřímně tohle je dost o ničem. Když už by s tím chtěl někdo začít, tak muže rovnou začít na Visual Basicu (Express) se vším všudy a ne na téhle zvláštní verzi. 

Shimon

Re:Jaký jazyk zvolit pro začátečníka
« Odpověď #145 kdy: 17. 01. 2012, 19:50:45 »
Prosim poradte:

S programovanim som zacal asi pred 5 mesiacmi, dovtedy som som ovladal akurat zaklady Pascalu, no predsalen nejake zaklady algoritmizacie som uz mal. Ako prvy jazyk som si zobral C++, snazil som sa osvojit si aj veci ako je pointrova aritmetika a OOP. Doteraz som robil ale iba prevazne male programy. Chcel by som sa posunut od konzoly dalej no neviem sa rozhodnut, ktory smer je pre mna najvhodnejsi. Z toho, co som v roznych forach vycital, mam asi tieto moznosti:

1. Zostat pri C++ + naucit sa urcitu GUI kniznicu, napr. Qt alebo C++ Builder
2. Zostat pri C++ + naucit sa nieco z grafiky, napr. SDL alebo OpenGL
3. Prejst na nieco rydzo prakticke: Java, C#
4. Na urcity cas sa venovat databazam, napr. MySQL
5. nechavam na vas...

Este by som chcel dodat, ze s programovanim to myslim vazne, pretoze sa o rok chystam IT studovat. Velakrat som cital, ze to, co najviac treba, je stanovit si urcity ciel, napr. vytvorenie urciteho konkretneho programu a az potom hladat prostriedky k tomu potrebne. Mam pocit, ze prave takyto ciel mi chyba, preto by som chcel, aby ste mi poradili, s cim ste vy zacinali.

Dakujem za rady  :)

KapitánRUM

Re:Jaký jazyk zvolit pro začátečníka
« Odpověď #146 kdy: 17. 01. 2012, 20:51:24 »
Citace
Jaký jazyk zvolit pro začátečníka
Třeba Slovenštinu a pak Polštinu :P
Ale Angličtina se hodí víc  8)

jehovista

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #147 kdy: 17. 01. 2012, 21:39:33 »
  • pokud se chcete naucit programovat PORADNE naucte se C/C++
  • z vlastni zkusenosti: jakykoliv bastl bude rychleji napsany v jave a bude pravdepodobne i rychleji bezet, nicmene kod od profika v C++ je proste kod od profika c C++ :)
A v Jave nesmi programovat profici? Nebo se v Jave nesmi/neda programovat poradne? Ja nevim, jen se ptam. Doted jsem myslel, ze kvalita programu zavisi na programatorovi, ne na programovacim jazyku.

jozin z bazin

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #148 kdy: 17. 01. 2012, 21:51:44 »
  • pokud se chcete naucit programovat PORADNE naucte se C/C++
  • z vlastni zkusenosti: jakykoliv bastl bude rychleji napsany v jave a bude pravdepodobne i rychleji bezet, nicmene kod od profika v C++ je proste kod od profika c C++ :)
A v Jave nesmi programovat profici? Nebo se v Jave nesmi/neda programovat poradne? Ja nevim, jen se ptam. Doted jsem myslel, ze kvalita programu zavisi na programatorovi, ne na programovacim jazyku.

no to je tak ze sa musis naucit TEN PRAVY programovaci jazyk a to je c++. c++ je pre chlapov, java je pre deti ... proste bez c++ si s profesionalmi ruky nepodavaj. lebo oni sa naucili nechutne zlozite c++ aby boli tymi spravnymi programatormi :) ty nikdy nebudes TEN PRAVY programator pretoze programujes v tom co ta bavi, ked robis v jave alebo c# tak si lepic lepovy. 

Radovan

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #149 kdy: 18. 01. 2012, 00:15:32 »
  • pokud se chcete naucit programovat PORADNE naucte se C/C++
  • z vlastni zkusenosti: jakykoliv bastl bude rychleji napsany v jave a bude pravdepodobne i rychleji bezet, nicmene kod od profika v C++ je proste kod od profika c C++ :)
A v Jave nesmi programovat profici? Nebo se v Jave nesmi/neda programovat poradne? Ja nevim, jen se ptam. Doted jsem myslel, ze kvalita programu zavisi na programatorovi, ne na programovacim jazyku.
no to je tak ze sa musis naucit TEN PRAVY programovaci jazyk a to je c++. c++ je pre chlapov, java je pre deti ... proste bez c++ si s profesionalmi ruky nepodavaj. lebo oni sa naucili nechutne zlozite c++ aby boli tymi spravnymi programatormi :) ty nikdy nebudes TEN PRAVY programator pretoze programujes v tom co ta bavi, ked robis v jave alebo c# tak si lepic lepovy.

Ale houby! Skuteční chlapi programují ve FORTRANu, všichni ostatní jsou jen pojídači koláčů 8) Tedy s výjimkou Mela Kaye...