Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Petros84 04. 09. 2012, 08:35:34

Název: Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Petros84 04. 09. 2012, 08:35:34
Dobrý den,
Zajímal by mne názor programátorů profíků na to, zdali pro absolutní začátečníky programování ve věku 15-16 let (1. ročník střední školy) je lepší jazyk C++ nebo Java. Pár názorů už jsem dostal a vesměs byl závěr něco ve smyslu, že začínat v Javě je zabijárna (nejspíš i onen věk v tom hraje roli). Proto bych rád sesbíral co nejvíce názorů na toto téma.

Předem děkuji za odpovědi a hlavně věcné názory.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: neron 04. 09. 2012, 08:44:09
Pokud je na výběr pouze jeden z těchto 2 jazyků, pak Java. Nevím proč by to měla být zabijárna, Java je v mnoha směrech jednodušší a přehlednější. Osobně bych se ale vyprdnul i na Javu a s ohledem na to, že Pascal už to má asi za sebou zvolil Ruby.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 04. 09. 2012, 08:47:45
Ani jedno. Na toto téma již byly napsány tuny knih a ještě víc článků a diskusních příspěvků různě na netu (a dokonce i tady na rootu). UTFG ;-)

Pokud se ale vyloženě chceš rozhodnout mezi těmito dvěma, pak určitě ber Javu. Díky garbage collectoru (= nemusíš po sobě uklízet) Ti ubude velká spousta práce, zvlášť, pokud s programováním nemáš vůbec žádné zkušenosti, tak se to bude dost hodit.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Fil 04. 09. 2012, 08:56:37
Ahoj,
jen tak se ucit jazyk nema smysl.
Spise zacni delat nejaky projek a podle toho ti vypadne jazyk ve kterem ho zrealizujes.
Vetsina jazyku ma dost omezenou oblast vhodneho vyuziti.

Otazka zni co by jsi chtel naprogramovat?

Jo a hlavne se nauc anglicky at mas pristup k literature.
Hlavne never hipikum z fora. :-)

Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Petros84 04. 09. 2012, 09:12:05
Ještě abych upřesnil situaci. Ten věk co píšu, se netýka mé osoby. Mě 15 bylo už dávno :-) Učím na SŠ C++, teď nás sloučili s jinou školou, kde programují v Javě. Ale právě už prváci (15-16 letý děcka). No a naši "programátoři" se bijí s těma jejich, že C++ je na naučení a pochopení problematiky lepší. S Javou nemám osobně zkušenosti, proto se ptám :-) A děkuji za názory.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: schd 04. 09. 2012, 09:29:15
Nechápu, jak by C++ mohlo být lepší. Java je pro děti ideální, protože se tam nedá nic pokazit a program stejně funguje. Že hned sebere všechnu paměť a poběží pomalu, je věc jiná. U C++ bude hodiny luštit, proč to někde padá.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Petr 04. 09. 2012, 09:31:57
Ono jde vazne o to, co chcete tvorit.

Pokud bych chtel vyrabet nejake hejbatko, pouzil bych Arduino a s nim tedy jeho jazyk, ktery je odvozeny z C.
Pokud bych chtel studenty naopak zaujmout jednoduchou grafikou nebo jim jen umoznit videt jejich vytvory (okamzita zpetna vazba a moznost debugingu), pouzil bych Processing.

Oboji je primitivni a bezi na Jave, takze je to multiplatformni. Dokonce mam pocit, ze v tom Processingu se da v Jave i programovat.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Martin Hudec 04. 09. 2012, 09:32:42
Nechápu, jak by C++ mohlo být lepší. Java je pro děti ideální, protože se tam nedá nic pokazit a program stejně funguje. Že hned sebere všechnu paměť a poběží pomalu, je věc jiná. U C++ bude hodiny luštit, proč to někde padá.

No alespon by se odelilo zrno od plev uz na zacatku  8)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Kit 04. 09. 2012, 09:35:17
Javu sice moc rád nemám, ale určitě bych jí dal přednost před C++. Zejména pokud pro výuku používají BlueJ, se kterým to vypadá velmi názorně.

Ověřil jsem si, že Java není pomalá. Pomalé jsou jen chybně napsané aplikace a některé populární knihovny. Zejména pokud se přibalí všechny...
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 04. 09. 2012, 09:39:25
Tak to se omlouvám za cynický příspěvek.

Každopádně na záčátek pro Tvé studenty bude Java snazší. Java je jako jazyk jednodušší, většinu potřebných knihoven máš hned "po ruce", vynucuje OOP (což se sice nehodí na všechny problémy, ale v praxi se používá nejvíc; např. můj zaměstnavatel o funkcionálních jazycích nechce ani slyšet :) ), nestaráš se o správu paměti, což usnadní hlavně práci s kolekcemi (nemusíš používat delete na každý prvek kolekce, prostě jenom napíšeš "myCollection = null;" a on si to GarbageCollector pošéfuje sám). Nevýhoda Javy je to, že nevíš, kdy a jestli vůbec se zavolá destruktor objetku (přestože v paměti viset nezůstane).

S tím, že jsi učitel, do toho vstupuje ještě další věc, mnohem důležitější než cokoliv jiného - pokud Javu neznáš, tento rok uč C++ a na něco se vymluv - není nic horšího, než učitel, který si není jist tím, co učí :) . Velice hezká učebnice pro Javu je Thinking in Java - http://www.mindview.net/Books/TIJ/ - má sice hodně stránek, ale tím, že programovat umíš, můžeš spoustu kapitol jenom projít.

Co se týče vývojového prostředí - BlueJ je určen přímo na výuku (a pro praxi je skoro nepoužitelný). Hlavní výhoda spočívá v tom, že ddykoliv můžeš pauznout program a přímo se podívat na to, jaké objekty máš v paměti a můžeš s nimi cokoliv dělat - vizualizované jsou celkem hezky.

Jak ta knížka, tak vývojové prostředí jsou k dispozici zdarma.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Kit 04. 09. 2012, 09:53:55
pokud Javu neznáš, tento rok uč C++ a na něco se vymluv - není nic horšího, než učitel, který si není jist tím, co učí :) .

To bych nedělal. Pokud umí C++, potřebné základy Javy se naučí za víkend.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 04. 09. 2012, 10:03:34
To sice ano, ale bude se muset učit i v průběhu roku.

Možná moc rýpu, ale kamarádi, co šli studovat pajdák, tak na 1 odučenou hodinu počítají 1 hodinu přípravy doma (alespoň prvních pár let ze začátku). Pak člověk chce taky trávit víkendy nebo odpoledne s rodinou/kamarády atd.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: sdfsadfsadfsadf 04. 09. 2012, 10:10:34
pro deti bych asi fakt doporucil Java.

sam si rychle neco napisu v Jave kdyz chci mit rychle klikaci programek ve Swingu.
ciste C zase pouzivam pro propgramy bez GUI, servery, vypocty atd.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Kit 04. 09. 2012, 10:22:06
Možná moc rýpu, ale kamarádi, co šli studovat pajdák, tak na 1 odučenou hodinu počítají 1 hodinu přípravy doma.

To platilo a platit bude bez ohledu na to, zda bude učit C++ nebo Javu a jak dlouho to bude učit.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 10:28:42
Což takhle zkusit Sikuli? viz. http://www.sikuli.org/

Umožňuje skriptovat uživatelské akce pomocí ovládání myši a klávesnice, je to založené na počítačovém vidění kdy lze rozpoznat nějaký prvek na obrazovce (třeba tlačítko). Student tak hned vidí, co aplikace dělá. Využít se to dá například k dělání botů do her, udělal jsem si kdysi třeba bot s farmlistem do travianu co posílal útoky. Vůbec se to hodí na skriptování různých webových her, to by mohlo omladinu i bavit.

Je to založeno na jpython, tedy javové implementaci pythonu, jdou ale importivat i třídy z javy a pak je použít. Trochu to blbne na některých verzí windows, pak je třeba použít nějaký nightly build, a pro změnu klávesových zkratek je třeba pustit skriptík v javě, GUI toho IDE není úplně nejlepší z hlediska nastavení.

Určitě mrkněte na dema, abyste získal představu co to umí a jak vypadá zdrojkák:
http://www.sikuli.org/demo.shtml

Pro opravdové programování může pak být ale lepší přejít na opravdový python, z hledsika knihoven je stále nejlepší python2, ale ten skok nemusí být tak velký. Stejně tak lze začít přidávat věci z javy do programu v sikuli pro seznámení se.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 10:31:41
A nebo mohou pěstit ;)

Pot Farm Bot with Sikuli: http://www.youtube.com/watch?v=ZZk3goL33lo
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Honza DVB 04. 09. 2012, 10:36:01
Ještě abych upřesnil situaci. Ten věk co píšu, se netýka mé osoby. Mě 15 bylo už dávno :-) Učím na SŠ C++, teď nás sloučili s jinou školou, kde programují v Javě. Ale právě už prváci (15-16 letý děcka). No a naši "programátoři" se bijí s těma jejich, že C++ je na naučení a pochopení problematiky lepší. S Javou nemám osobně zkušenosti, proto se ptám :-) A děkuji za názory.
O jaký jde předmět a specializaci SŠ? Jaké programátorské techniky by se měli studenti naučit? Jaký způsob použití nabytých znalostí se dá očekávat (typ aplikací, oblast, technologie)?

Podle toho bych vybíral jazyk já.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: vyvojar 04. 09. 2012, 11:09:54
Podle mě totální kravina začínat s Javou. Nejlíp začni s C a pak případně C++ nebo Javu. C se překládá přímo do strojovýho kódu, takže si případně můžeš i v nějakém disassembleru jako ollydbg prohlédnout, co to vlastně vygenerovalo, pročíst si nějaké základy assembleru, aby jsi tak nějak pochopil tu filosofii, že se programy překládají do strojového kódu procesoru, který pak ten kód vykonává a že Java např. se překládá do kódu, který je pak interpretován jiným programem, který byl naprogramován třeba v tom C. Pochopíš, jak funguje paměť, že musíš alokovanou paměť taky uvolňovat, že máš nějaké ukazatele, které drží adresy jiných entit v paměti a že se někdy vyplatí předávat spíš ukazatel atd. atd. Pod C už máš akorát assembler, java už je další level abstrakce, navíc C je hodně spjaté s operačními systémy, protože se začlo vyvíjet spolu s unixem. R.I.P Dennis Ritchie.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: pk13 04. 09. 2012, 11:21:30
Napíšu z vlastní zkušenosti (sice jsem s programováním nezačínal v 15-16 ale o pár málo let později). Nicméně úplný (ten nejúplnější) začátek mi byl položen v pascalu a pak hned navázalo C (ta odlišnost od pascalu mi přišla minimální) a C++, později pořádně objektově Java a pak další...

Tato cesta mi přišla hodně dobrá, neboď když člověk narazil na Javu tak už měl trochu potuchy jak programy pracují a co on ten JVM asi všechno dělá, navíc že bych měl začít od nuly v čistě objektově orientovaném jazyku si nedokážu moc dobře představit. V C/C++ člověk dostane takové dobré návyky a myslím, že bolestivější to mají ti, co z Javy se učí C/C++ než ti co se z C++ chtějí naučit Javu. (Zatímco v prvním případě je to opruz, že musí člověk myslet na věci, které mu Java hlídala sama, ti druzí zažijí "WOW efekt", jakože já si nemusím hlídat alokovanou paměť :) apod... )

Na druhou stranu, musím se přiznat že paradigma OOP začínat v C++ bylo hooodně nepříjemné (pro mě osobně) a vlastně jsem do něj pronikl až s tou Javou.


....snad pomohlo :)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 11:43:58
Pokud jde o nějakou elektrotechniku, tak je čisté C určitě dobrá volba, možná učit spolu s C++ ale programovat strukturně a využívat STLkové kontejnery. Céčko se hodí i pro programování různých embedded systému a proto je to velmi univerzální jazyk. Z hlediska dostupných knihoven je C/C++ stále asi nepřekonatelné.

Pokud nejde vyloženě o budoucí informatiky, potom velmi zajímavou možnost představuje Python, který má také hodně knihoven a jsou snad ještě přístupnější než v C/C++. Něco o výuce pythonu se rozebírá zde: http://howto.py.cz/uvod.htm

Jinak já jsem na C++ začínal, ale vím že ostatní s tím měli problémy. Aby se to jeden naučil, musí si to prostě odsedět sám, jiná možnost není, a to platí pro jakýkoliv programovací jazyk.

Jinak místo javy můžete zkusit C#, protože java je po přebrání sunem v podstatě ve stejně "problematické" pozici takže je to z hlediska ideologického už jedno. Pro multiplatformní vývoj jde použí monodevelop(http://monodevelop.com/), pokud ale jedete na windows, můžete zkusit i sharp develop(http://www.icsharpcode.net/OpenSource/SD/). Má to klikátka pro GUI a je to o něco responzivnější než java, ta se stejně hodí spíš na psaní middlewaru.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: alef0 04. 09. 2012, 11:48:02
Vy máte dosť špecifickú dilemu: nízkoúrovňové C++ alebo pohodlnejšiu Javu, ktorú neviete. Ja by som tento rok zvolil C++, čisto z dôvodov zachovania zdravého rozumu Vás i žiakov, nejak to pretrpel, a popozeral si nezávisle od toho Javu. Lebo už je september a nie je nič horšie, ako keď vyučujúci tápe, lebo sám nevie, čo učí.

Ale C++ ako "môj prvý jazyk" je do budúcna odvážny počin, hlavne pre 14-15 ročné deti, ktoré nevedia programovať. Ony totiž potrebujú hlavne zvládnuť princípy, vysokoúrovňové koncepty (OOP) a boj s technickými detailami C++ je kontraproduktívny, lebo nielenže im nič nedá, ale dokonca ich môže odradzovať.

Ten, kto sa chce učiť programovať a nevie nič, nepotrebuje vedieť, čo sa deje vo vnútri. Rovnako ako človek, čo sa chce naučiť šoférovať, nepotrebuje vedieť na začiatku, ako funguje spaľovací motor: preňho najlepšie je sadnúť do auta s automatickou prevodovkou a rozbehnúť sa.

Ono tie deti aj tak potom začnú kódiť stránky v PHP :-)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 12:05:03
PHP jako první programovací jazyk? Kdyby nebyl dynamicky tovaný, tak by bylo velmi vhodné, už kvůli své rozšířenosti a možnosti tvořit weby. Takhle by to byl velmi odvážný krok. Možná někde na gymplu, kde se dá předpokládat že většina studentů se programováním nebude dále zabývat by to za to stálo, protože takhle získají znalost co je velmi užitečná. Naučit je nainstalovat XAMPP(http://www.apachefriends.org/en/xampp.html), pak udělat hello world v php, připravit šablonu HTMLka do které budou dál psát a hodit to na GIT nebo někam, aby to bylo dostupné, by taky šlo.

V prvním ročníku naučit základy programování a jak nainstalovat LAMP a dostat se na free hostingy, v dalším možná zkusit používat nějaký ten framework jako Nette a nebo CakePHP. Možná by se s tím ale dalo začít hned, nechat framework vygenerovat základní strukturu aplikace a programování vysvětlovat na nějaké stránce tím bastlem vygenerované. Výhodou PHPka a webů je, že takový přístup mnohé odpustí a je to všude. Studenti navíc ocení to, že tyto znalosti jdou použít k získání nějaké té brigády či jiného přivýdělku...
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Kit 04. 09. 2012, 12:20:40
PHP jako první programovací jazyk? Kdyby nebyl dynamicky tovaný, tak by bylo velmi vhodné, už kvůli své rozšířenosti a možnosti tvořit weby. Takhle by to byl velmi odvážný krok.

Dynamické typování by nevadilo. Vadí slabé typování.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: DK 04. 09. 2012, 12:28:59
Waseihou: tvrdit, ze C# je multiplatformni jenom proto, ze existuje mono, je dost odvazny krok :) mono je takova sra*ka, ze k multiplatformnosti to ma hodne daleko... nehlede na to, ze C# je z velke casti jenom okopirovana java
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 12:32:26
Jo, jsem zapoměl jak se tomu nadává, nějaký času už pracuji jako opice v C++ a PL/SQL a nic jiného neřeším ;)

Myslel jsem právě tu slabou typovanost PHP, která by podle mě mohla být pro mnohé matoucí. Ale pro výuku bude asi opravdu nejlepší onen python, ten odkaz co jsem našel výše je součástí učebnice: http://howto.py.cz/index.htm a ta se dá rovnou použít k výuce, není tedy co řešit, kromě vytváření příkladů a úkolů.

Pro python existuje IDE eric (http://eric-ide.python-projects.org/), eric4 pro python2, eric5 pro python3. Python2 má výhodu možnosti použít časem Django i na ty weby, jinak je dobrý nápad přidat na začátek souborů řádku vynucující používání UTF-8, což je velká výhoda pythonu3. Se stabilitou toho GUI jsem měl v linuxu promlémy, ale to bylo dané mojí verzí knihovny qt. Zkuste chvíli používat eric4 pod windows, a pokud pojede stabilně, použijte na výuku i to. Obojí je zdarma, studenti to ocení.

Jo a nerozjíždějme flame o monu, jede na tom třeba i mindtouch(dříve dekiwiki) a zas taková hrůza to není, funguje to. Dobře uznávám, že C# má své mouchy ohledně multiplatformnosti. SharpDevelop by se těm děckám ale stále mohl líbít, a pokud mají nějakého linuxáka tak balíček poslední záchrany stále existuje... Jinak prosím dále nerozvádět, no flame!
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 04. 09. 2012, 12:36:04
Jinak místo javy můžete zkusit C#

Kurňa, jenom to ne! :-) . C# je splácanina všeho možného a míchá se v něm objektový, deklarativní a funkcionální přístup. Což samo o sobě není špatně (v C# 4 se nám pracuje hezky a s nadšením čekáme na C# 5), ale na učení (zvlášť pro začátečníky ve věku 14-15) je nevhodný.

Kdo se chce učit vrtat, taky si rovnou nevezme příklepovou vrtačku nebo sbíječku a nejde dělat velkou díru do železobetonu, neb to dopadne špatně.

---

Jinak myslím, že se toto vlákno vzdaluje od tématu, který byl Java vs. C++. Kdybych měl volnou ruku, tak vezmu Scheme, příp. Python, ale zavádět do školy zcela nový jazyk je běh na dlouhou trať a pochybuji, že k tomu bude politická vůle "na vyšších místech".

Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: matuss 04. 09. 2012, 12:52:23
Osobne som zacinal v cistom C (v 16), to ma kus chytilo, principy imperativneho stylu som pochopil takmer hned, neskor som skusal Javu, ale nesedela mi, potom som presiel na C++.

IMHO je blbost zacinat s OOP, imperativne jazyky su ovela lahsie na pochopenie preco to vtedy spravi toto a vtedy toto...

Myslim ze by si mal zacat s C a potom im povedat nieco o C++ a nieco o Jave a nech sami povedia co z toho by sa im mohlo pacit viac.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Kit 04. 09. 2012, 13:26:29
Osobne som zacinal v cistom C (v 16), to ma kus chytilo, principy imperativneho stylu som pochopil takmer hned, neskor som skusal Javu, ale nesedela mi, potom som presiel na C++.

Osobně jsem začínal se strojovým kódem a pak teprve přešel na Pascal. Pro mne to nebylo špatné, ale moc tento postup nedoporučuji. Ani nedoporučuji C či C++, jsou to na můj vkus příliš nízkoúrovňové. To už by byl lepší strojový kód nějakého virtuálního procesoru.

Na Pythonu se bez problémů dá začít třeba imperativně, pokračovat funkcionálně a dokončit objektově.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Honza 04. 09. 2012, 13:42:01
Já jsem prošel Pascal -> C -> C++ -> Java, což je pro učení docela fajn. Ale Pascal už je skoro mrtvý, tak bych asi začínal C - ale žádné drsárny typu pokročilý preprocesor, pointerová aritmetika nebo pointer na funkci vracející pole pointerů na pointer na funkci... S objekty bych na ně šel až budou něco umět. Nemá cenu dětem vysvětlovat, co je objekt, když ti hloupější nevědí, co je to funkce.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Honza DVB 04. 09. 2012, 13:42:15
To já začal od assembleru ručně přepisovaného do strojáku přes Pascal, Céčko, assembler, objektový Pascal, C++ a Javu až do stavu, kdy v podstatě není problém se naučit nový jazyk.
Ale rozhodně tenhle postup nedoporučuji. Spousta věcí jde udělat lépe a efektivněji - je ale každopádně si říci, co je cílem, a podle toho vybírat postup a jazyk(y).
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Pavouk106 04. 09. 2012, 13:45:03
Z mého laického pohledu a z mojí hlavy - sáhnul bych po C++.

Důvody nevím, ale když se zamyslím (hluboce), našel bych:
- schopnost pochopit (nebo alespoň se snažit) spousty programů, které používám, případně je upravit (připomínám - jsme na Linux serveru)
- možnost napsat si vlastní malé prográmky na různé pitomosti, které dokážu vymyslet
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 14:02:16
No tak google našel třeba že na nějaké SPŠ (http://www.uzlabina.cz/) učí python, viz. první lekce zde:
http://www.uzlabina.cz/file/python-lekce01.pdf
takže je skustet kontaktovat a získejte více informací, můžete třeba nějak spolupracovat, zlepšit časem učební texty atp. Python se zdá být dobrá volba.

Jinak - abychom se mohli dál bavit, bylo by dobré vědět o jaký typ školy jde a na co se nejvíce zaměřuje. Nakonec na jazyku až tak nezáleží, prim bude stejně hrát kvalita vyučujícího. Volba ale může ovlinit dobu nutné přípravy pro kvalitní výuku, a u toho pythonu nejspíše dosáhnete lepších výsledků za stejný čas. Ale ani zde nesmíte podcenit kvalitu přípravy, hlavně vytvořte a napište dobrou příručku jak si to nainstalovat a jaké nástroje použijete.

Třeba ten SharpDevelop jsem předtím navrhoval hlavně proto, že program .exe lze naklikat velmi snadno, což může být pro studenty lákavé a přimět je k zájmu o programování, samotný C# a .NET platforma je na druhou trochu problém který bude překážkou ke kvalitnímu zvládnutí programování. Pokud jde ale třeba o nějakou algoritmizaci, základní programové konstrukce, řazení atp., je to C# opravdu překážkou? Myslím že ne. Stejného efektu jako s tímto balíkem dosáhnete asi i s tím ericem, ale budete muset nainstalovat python a několik knihoven do něj, než to spustíte. Takže buď nakonec vytvoříte jeden zip kde bude všechno a spustí se to jedním exe souborem, a nebo složitou příručku k instalaci. Psát programy v notepadu není dobré, chce to zvýrazňování syntaxe a něco co ten program spustí. Java má NetBeans, to je taky plus pro Javu. Pro C++ je zde DevCpp IDE, CodeBlocks a free verze visual studia. Uvažujte proto nejenom jazyk, ale také ty věci okolo. Třeba proti javě mluví GUI, standardně vypadá děsně a naprosto se nehodí do systému, byť jde taky naklikat.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: yankee 04. 09. 2012, 14:13:33
Visual Basic 6
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Petr 04. 09. 2012, 14:28:50
Jak jsem psal vyse, Arduino nebo jeste lepe Processing! Na nauceni zakladu jako jsou ify, for cykly a whily je to bezkonkurencni, protoze studenti okamzite vidi, co jejich kod dela (= kresli).

Pro zacinajici programatory, kteri nikdy nic nenapsali a nemaji o tom proste paru, je zbytecne travit cas prokousavanim se slozitym GUI, kompilaci a debugovanim. Kdo sahl na Processing, da mi zapravdu.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Tomez 04. 09. 2012, 14:38:08
Pro začátečníky je nejvhodnější Python. Je jednoduchý a podobný C++. Co nedoporučuju je Java nebo C#, protože z toho člověk zmagoří a naučí se nehorázný zlozvyky a navíc bude kydat hnůj na nízkoúrovňový jazyky.
A Visual Basic? Na škole nám ho vnucovali jako jazyk, který má budoucnost a do teď toho lituju.  >:(

Každopádně pro C++ se najde větší uplatnění než pro Javu. To samý platí o Pythonu vs Visual Basic.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 04. 09. 2012, 14:46:00
Každopádně pro C++ se najde větší uplatnění než pro Javu.

V 15 se člověk potřebuje hlavně naučit základy programování, nedá se předpokládat, že by po střední šel rovnou do praxe a hledal uplatnění. Takže tohle je celkem jedno. Stejně i kdyby ti lidi šli na výšku, kde se v prváku studenti drtí na C (např. FIT VUT), tak stejně nebude moc rozhodující, jestli se v 15 budou učit C++, Javu, Pascal nebo Python.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 15:28:37
Vliv může být v tom, co můžou s daným jazykem dělat. Je velmi dobré, pokud se v tomto věku pokusí naprogramovat nějakou to jednodušší počítačovou hru, a správná volba jazyka může ovlivnit jak snadné bude dosáhnout dobrého výsledku. Z hlediska výuky se mi přirozeně zdá nejlepší python, ale z hlediska nahlédnutí "pod kapotu" počítačových programů je opravdu asi nejlepší to C/C++, které má navíc hodně knihoven. Nejlepší by samozřejmě bylo učit oba jazyky a vzájemně je kombinovat, ale vymyslet to tak aby to šlo snadno pochopit by asi bylo obtížné a vyžadovalo více vyučovacích hodin. Nakonce je to ale stejně jedno, protože dobré věci mají stejně binding na jiné jazyky - viz. třeba Ogre3D (http://www.ogre3d.org/). Kdyby mi bylo 15 a měl jsem tedy čas na voloviny, tak pokud bych se učil programovat, nejspíše bych byl rád už jenom zato, že by mi někdo třeba o tom Ogre3D řekl. Dobře pojatá vyučovací hodina by měla tedy také úkázat, čeho všeho je možné programováním dosáhnou a naznačit, že dosažení prvních viditelných výsledků lze dosáhnout v poměrně krátkém čase. Přehled existujícíh programových knihoven by tudíž měl být součástí výuky, a žáci by se měli alespoň naučit stáhnou a spustit exámply, což je velmi důležité pro jejich další rozvoj.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Honza DVB 04. 09. 2012, 15:32:34
Opět se budu opakovat - nejdříve je nutné definovat cíl (studijní obor, očekávané uplatnění v praxi, návaznost na další předměty, zvládnutí některých konkrétních technologií) a teprve potom prostředky (osnovy, jazyk, cvičení, ...).
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: balki 04. 09. 2012, 15:49:08
pokud Javu neznáš, tento rok uč C++ a na něco se vymluv - není nic horšího, než učitel, který si není jist tím, co učí :) .

To bych nedělal. Pokud umí C++, potřebné základy Javy se naučí za víkend.

A potom to tak vyzera, clovek nekodi, ale hovni.  Ja som javista, ale v pripade ze ucitel ovlada C++,  tak by som volil C++.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: A.S. Pergill 04. 09. 2012, 15:56:27
Já rezignoval na představu, že ze mě někdy bude programátor velkých systémů, a vydal se pro začátečníky nepříliš doporučovanou cestou: Perl. Je to na každém linuxu (na win plnohodnotný perl do nedávna nebyl k dispozici, jen jakýsi "ActivePerl" a ten bylo nutno "pro pohodlí uživatelů" po stažení nainstalovat speciálním instalačním prgramem - snad za peníze, alespoň jsem ho nikde zdarma ke stažení nenašel - byla to "poslední kapka" k mému přechodu na linux). Menší věci si udělám bez problémů v něm a do větších (natož třeba ovladače k zařízení apod.) se nepouštím.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 04. 09. 2012, 16:02:47
Nejlepší by samozřejmě bylo učit oba jazyky a vzájemně je kombinovat, ale vymyslet to tak aby to šlo snadno pochopit by asi bylo obtížné a vyžadovalo více vyučovacích hodin

To bezpochyby. Učit 2 věci zároveň může skončit hodně špatně (a je to i proti Komenského principům). Nedávno jsem dělal školní projekt jednomu borcovi z FEI VUT a nedokázal rozlišit mezi C, C++ a C#. Tomu borcovi bylo přes 20. Pochybuji o tom, že průměrný středoškolák by to byl schopný rozlišit, kdyby se to učilo zároveň.

Nakonce je to ale stejně jedno, protože dobré věci mají stejně binding na jiné jazyky

Binding na jiný jazyk je vždy ofuk a omezí Tě to. Takže jedno to není - pokud z té knihovny chceš vyždímat maximum, tak se na binding musíš vykašlat a použít jazyk té dané knihovny (je-li ta 3d knihovna v C, pak svoje rozšiřující věci k zobrazování si taky musíš napsat v C ... logiku hry pak klidně v Haskellu).
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 16:21:36
Pokud onen učitel umí C++, tak asi bude nejlepší se ho při výuce držet, a zároveň se daný rok učit jiný jazyk, třeba ten python. Je tu ale ještě jedna možnost - ať sice učí v C++, ale dovolí studentům ať si programují v čem chtějí, pokud projeví zájem. My jsme na střední vždycky dostali úlohu a pak se měla odevzdat, a my co jsme to už všechno znali ze základky jsme si kódili v C++ a zbytek v pascalu (ten jsem samozřejmě uměl taky, protože jsem měl knížku Algoritmy a programovací techniky kde všechny příklady byly v pascalu a taky četl výheň (http://nuane.com/vyhen/) kde byly nějaké ty exámply). Vždycky to dopadlo tak že jsem třeba nějakou blbost typu spočítej řešení kvadratické rovnice hodil vyřešil jako malé demíčko kde na pozadí běžela nějaká blbůstka typu oheň a nebo plazma a text s řešením lítal v popředí ;)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: NoFlame 04. 09. 2012, 16:37:32
Opět se budu opakovat - nejdříve je nutné definovat cíl (studijní obor, očekávané uplatnění v praxi, návaznost na další předměty, zvládnutí některých konkrétních technologií) a teprve potom prostředky (osnovy, jazyk, cvičení, ...).
Prosím opište to tu ještě několikrát, snad to někomu dojde.

1. je potřeba si ujasnit, co to je za školu a jaké si ve výuce programování dává cíle. Bez toho, je celá diskuze jenom mlácení prázdné slámy. Kdo se tam učí programovat? Celý ročník, nebo vybraná skupina studentů? Je to jediný jazyk na škole, nebo na něj později navazuje další? Co dalšího z IT se tam učí?
Obecně lze říci, že čím má škola blíže k elektru/HW, tak tím více je potřeba učit C (a později třeba i rozšířit na C++). A čím více je to všeobecná SŠ, tím vhodnější bude Java.

2. tak jako tak je dilema Java vs. C++ rozhodnutí mezi špatným a ještě horším. Nejlepší jazyk k výuce programování (jako takového) pro 15letého začátečníka je python. Kdybysme se bavili, jakým jazykem začít na univerzitě, tak chápu Javu a C++ jako logické kandidáty, ale na SŠ je nejlepší python. Takže pokud je cílem naučit studenty programovat (a fungovat vlastně jako přípravka na VŠ) a není požadavek na nízkoúrovňovost (kvůli práci s HW), tak bych výuku směřoval k pythonu a tam by java byla logičtější přestupní stanice než C++. Nicméně to píši pouze hrubě všeobecně - rozhodující je bod 1.

3. SŠ učitel C++ nemá s Javou žádné zkušenosti? To si proboha za ty roky, co je Java na světě (a je to komerční jazyk č. 1) nezkusil stáhnout NetBeans s JDK a nezkusil si projet nějaký programovací kurz v Javě?
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Airywave 04. 09. 2012, 17:45:55
za sebe bych volil C s tím že jim napřed vysvětlíš základy algoritmizace, ukaž jim pár strukturogramů vysvětli jak počítač myslí a jak postupuje, předveď jim výrokovou logiku a postupně do toho zapojuj Cčko, jen ty pointry vynech, pointry jsou něco co i jako vysokoškolskej student IT nesnáším a nikdy nepochopím k čemu to proboha existuje
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Martin Huněk 04. 09. 2012, 18:05:47
Jak tady psal už člověk předemnou: Pokud se později mají vaši studenti setkat např. s mikrokontroléry (SŠ se zaměřením elektro), tak rozhodně C/C++.
Pokud se jedná o školu IT zaměření, tak se dá o Javě uvažovat, ale i potom by měli vědet co se na těch nižších úrovní děje a na VŠ se s Cčkem taky potkají, takže nevím, zda-li bych i s nima neprolít nějákej ten nízkoúrovňový jazyk.
Pokud by se jednalo o školu nějákého jiného (ne IT/elektro), tak bych se přikláněl taky k pythonu. Javu bych je neučil, stejně jako OOP všeobecně. Můj názor je, že se OOP na SŠ nemají šanci naučit tak kvalitně, aby si nevytvořili nějáké zlozvyky, které by jim pak akorát přidělávali práci na VŠ.

Nás kdysi na SŠ učili nejdřív pascal, pak C++ a potom C pro 8051. Rozhodně myslím, že měli rovnou začít C++kem, případně Cčkem a ušetřil bych si dost starostí.
Na VŠ jsme se pak učili nejdřív JSA pro 8051 (assembler), pak C a pak C# (kdo chtěl mohl dělat v C++).

Takže osobně, pokud mají vaši studenti pokračovat v programování dál, tak bych volil C++ nebo samotný C. Nemá smysl zabíhat moc do OOP, hlavně ať vědí co je to pointer a jak se používá. Ze zkušenosti vím, že potom na VŠ není na čem stavět a nebo ty jejich programy nemají žádnou kultůru.
Možná bych jim ještě ukázal jak udělat nějáký to jednoduchý GUI (ke konci studia) a k tomu může v C++ stačit třeba Qt Creator. Ale hlavní je ať uměj dobře procedurální přístup, to potom nebudou mít až takový problém na VŠ.
Pokud ale jde jen o to aby uměli jen něco jednoduchýho naprogramovat, s tím, že se s tím už nesetkaji, tak nemá smysl je mordovat s OOP, takže buď ten python anebo pokud se ho učit nechcete, tak nějáký základ C. Java pro ně bude zbytečně matoucí.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 18:07:56
Hm, nainstalovat python+eric pro windows nemusí být pro každého úplně triviální záležitost. Takže přikládám návod pro win32:

1. stáhněty .msi instalátor pythonu27 z http://www.python.org/download/ (tento odkaz: http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi) a nainstalujte jako výchozí python

2. stáhněte PyQT4 (http://www.riverbankcomputing.co.uk/software/pyqt/download) instalátor pro 2.7 (http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-Py2.7-x86-gpl-4.9.4-1.exe) a nainstalujte vše

3. stáhněte eric4 (http://eric-ide.python-projects.org/eric-download.html) - viz. http://heanet.dl.sourceforge.net/project/eric-ide/eric4/stable/4.5.6/eric4-4.5.6.zip a rozbalte do nějakého adresáře a poklepejte na install.py a chvíli čekejte než se to nainstaluje

4. V adresáři C:\Python27 je soubor eric4.bat, na ten poklepte a nebo udělejte zástupce na plochu, tím se spustí IDE

5. nakonfigurujte, v podstatě stačí odklepnout, časem prostudujte možnosti UTF-8 pro python2 (situace je o něco horší než v python3, ale dá s v pohodě použí a změňte kódování souborů na UTF-8)

6. Ukončete IDE a spusťe znova, třeba přes zástupce, můžete si pohrát s jeho nastavením aby nevyskakovalo černé okno baťáku.

A máte to spuštěné, včetně konzole python. Nyní si můžete hrát, protože toto je to co studenti uvidí, když poprvé "spustí python".
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 18:13:36
Zkuste třeba zadat do té konzole: print "Hello, world!"

a jinak ten původní adresář kam jste rozbaloval ten eric4 a pak klepal na install.py můžete nejspíše smazat nebo zabalit, vše potřebné se nakopírovalo do python27. Leda že byste chtěl ten eric4 odinstalovat z python27, pak tam jsou nějaké soubory k tomu vytvořené právě při instalaci. To by ale mělo význam jenom kdybyste si svou intalaci pythonu hýčkal...
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Jarda D. 04. 09. 2012, 18:46:59
Tak nevím, když si tady přečtu některé rady, tak nevím co bych si s tím měl jako počít:
... a postupně do toho zapojuj Cčko, jen ty pointry vynech, pointry jsou něco co i jako vysokoškolskej student IT nesnáším a nikdy nepochopím k čemu to proboha existuje

...tak bych volil C++ nebo samotný C. Nemá smysl zabíhat moc do OOP, hlavně ať vědí co je to pointer a jak se používá. Ze zkušenosti vím, že potom na VŠ není na čem stavět a nebo ty jejich programy nemají žádnou kultůru.

A tak taky považuju za nejlepší radu, která tady zatím zazněla, tuhle:

Opět se budu opakovat - nejdříve je nutné definovat cíl (studijní obor, očekávané uplatnění v praxi, návaznost na další předměty, zvládnutí některých konkrétních technologií) a teprve potom prostředky (osnovy, jazyk, cvičení, ...).
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Martin Huněk 04. 09. 2012, 19:06:54
Ten pointer pochopitelně jen v případě, že by se programováním měli výhledově zabývat. Rozhodně nemá cenu do nich hustit takové pointery na fce a podobné pokročilejší věci. Ale určitě je nutný, aby si dokázali rozdělit program na jednotlivé funkce a uměli si mezi něma předávat proměné pomocí pointerů a vysvětlit jim, kdy je to lepší předat pointerem a kdy hodnotou (opět pouze pokud se mají programováním zabývat). Pokud se totiž s Cčkem setkají na VŠ tak můžou mít bez znalosti základů koncepce pointerů problém.
Pokud se tím zabývat dál nebudou, tak to cenu nemá (i když to nejspíš uvidí v podobě char*).
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: neron 04. 09. 2012, 19:38:41
Vtipná diskuze. řekl bych, že všichni zapomínají na to, že jde o výuku programování - takže je celkem jedno, jestli v tom či onom jde napsat hra nebo jiný program ale jde přece o základy algoritmizace, o to naučit se "myslet", pochopit základní principy, vědět co je to funkce, procedura, proměnná. Na to se Java hodí výborně, je to staticky typovaný jazyk, má to prvky moderních programovacích jazyků, takže pokud jde jenom o výběr mezi C++ a Javou, není co řešit. C++ s pointerovou aritmetikou, vícenásobnou dědičností a virtuálními metodami bych nechal pro pokročilejší.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: DK 04. 09. 2012, 19:46:30
neron: ona ani java neni vhodna pro absolutni zacatecniky -> prisvoji si blbe techniky a poveze to s nima dlouho

mozna me nekdo ukamenuje, ale zacal bych na pascalu pro algoritmizaci, pak python (a aspon se nauci strukturovat si kod :) ) a az pak treba tu javu nebo cecko
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: neron 04. 09. 2012, 20:05:02
DK: Nevim sice jako konkretni blbe techniky, ale budiz. Ja bych take radil Pascal, ostatne to je jazyk urceny k vyuce, ale otazka byla, jestli C++ nebo Javu.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 04. 09. 2012, 20:07:15
zacal bych na pascalu pro algoritmizaci, pak python (a aspon se nauci strukturovat si kod :) ) a az pak treba tu javu nebo cecko

Na střední škole, a to většinou ani tam, kde se učí IT, není IMHO reálné učit 3 a více jazyků.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Martin Huněk 04. 09. 2012, 20:10:56
DK: Tak pascal bych už mezi použitelné jazyky neřadil. Kdysi nám sice říkali, že je názornej a pro začátečníky dobře srozumitelnej, ale nikdy mi nepřišlo, že by byl lehčí na pochopení než C ve kterým se dá dobře pracovat i dnes. A to aby se učili velké množství jazyků asi také nebude nejlepší, dle mého názoru je lepší aby se naučili jeden nebo dva jazyky, ale pořádně.

neron: Myslím, že je zbytečný začínat učit OOP a pokud to člověk vynechá, tak v tom výčtu zůstane u C++ jen ten pointer. Bylo by asi lepší začínat u procedurálního přístupu. Přece jenom se studenti prvně zeptají "jak to mám udělat" než "co budu mít za data a jak s něma budu pracovat." Vzhledem k tomu, že C++ vyšlo z Cčka které je procedurální, tak se mi zdá lepší začínat v něm...
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 20:31:27
Ono také velice záleží na přístupu. Já když jsem byl v 9. třídě tak jsem se zapsal do kroužku programování a pořídil jsem si knihu Jazyk C od Dalibora Kačmáře a tu jsem měl celou přečtenou asi za tři dny a pochopil jsem tak 70% toho co tam bylo (u těch stromů jsem se trochu zasekal), pak jsem ji asi měsíc každý den četl znovu a znovu a dělal si příklady co tam byly v Borland C++ takové to dosové IDE s modrou obrazovkou. Pak se mi podařilo rozjet grafiku, z toho jsem měl tehdy velkou radost protože jsem nevěděl že knihovnu je třeba zatrhnou někde v IDE tak jsem si kvůli tomu vytvořil .bat soubor který to kompiloval s potřebný parametrem (takže jsem se vlastně vytvořil jakýsi makefile, ale to jsem tehdy nevěděl že se tomu tak říká). No a pak hrátky s grafikou a pokus o vymyšlení způsobu jak zobrazit 3D objekt, ale na to už jsem sám nepřišel a muselo to počkat až do doby kdy se mi dostaly do rukou dokumenty o tom jak to naprogramovat, vzorec co jsem tehdy objevil ale umožňoval otáčení hmotného bodu kolem kružnice, a to mi trvalo tři dny přemýšlení než jsem z učebnice s přehledem učiva pro ZŠ a SŠ vymyslel x=r*cos(2*pi*t) a y=r*sin(2*pi*t) a pak po malých to krocích foroval t od 0.0 do 1.0 a po obrazovce obíhal zelený bod kolem červeného středu. A někdy v té době se zbytek třídy dostal právě k cyklům...

Ve své mladické nerozvážnosti jsem byl extremista, a věřil že kód je můj, pokud vznikl mým ťuknutím do klávesnice. A proto pokud jsem chtěl použít cizí kód, tak místo copy-paste jsem ho ručně přepisoval, abych si ho "přivlastnil". Našel se tam kód jednoho týpka který už na tý škole nebyl a v něm byly classy a to jsem taky ručně přepsal aniž bych to plně chápal, a teprve při tom přepisování mi trochu doklaplo, jak to funguje. Tak jsem začal používat classy na členění kódu, hlavní program jsem ale psal vždy do mainu či funkcí a classy používal jen jako pomocné objekty. Dědičnost jsem neřešil, přistupoval jsem k tomu jen jako k lepší struktuře.

Pochopit základy pointerů není naprosto problém, v porovnání s takovými ADT je to brnkačka. Akorát se to musí dobře vysvětlit. To je tak těžké říct že pamět je v podstatě jedno obrovské pole bajtů(...) číslovaných od nula do něco (dnes obvykle 4 miliardy), a pointer je vlastně proměnná ve které je uložen index(číslo) do toho pole bajtů (unsigned char) na místo kde je "něco" uložené, a když se před něj dá hvězdička pak teprve získáme to "něco", s tím že pokud to "něco" má více jak jeden bajt tak se načtou i nějaké další za ním, přesně sizeof(něco)? Každý kdo pochopil co je to pole, tak nutně musí pochopit i pointery, zbytek už je pouze problém pochopení syntaxe, a zde nehraje roli ani tak rozum jako spíš talent na jazyky. Největší chybou při vysvětlování je říct, že pointer "ukazuje na něco" a udělat z něj něco "magického". Dereferovat pointer tedy znamená získat obsah paměti na místě v tom jednom velkém poli jménem pamět na indexu který je v tom pointeru uložen, a dvojitá derefernce pak vezme opět to číslo co se takto získalo a znovu ho použije stejným způsobem a teprve pak se získá to, co tam opravdu je. Opět nic nepochopitelného.

Vůbec kdybych byl učitel a vyučoval C/C++, tak bych alespoň nějaké zjednodušující abstarkce systému na kterém celý program běží zavedl, aby se mohly použít k vysvětlování. Takže třeba pamět je v podstatě velké pole čísel indexovaných od nuly do 4 miliard, ale je jakýmsi způsobem chráněná takže si nemůžeme zapisovat kam chceme jinak program spadne. Ale když deklarujeme proměnnou tak tím počítači mimojiné říkáme, aby nám vyčlenil nějaké místo kam nám povolí ty data zapsat. Každý program má nějaký zásobník, tam se při deklaraci nějaké proměnné bere místo, ze druhé strany roste jakási halda. Proměnné na zásobníku jdou obvykle v paměti po sobě, takže i přes to že je pamět chráněná se nám může povést přepsat si pomocí pointeru něchtěně data. Také to že počítač nemusí mít ty 4GB paměti nevadí, prostě se tváří že je má dokud pamět nedojde a většinou nic stejně tolik paměti nechce. Každý program má jakoby svojich celých 4GB.

V takovém pythonu programátor nejspíše jakousi abstrakci paměti vůbec nepotřebuje znát, protože to jazyk řeší za něj, ale pro pochopení C/C++ je nějaká abstrakce paměti klíčová. Učení se C++ tedy klade větší nároky jak na žáka, tak na učitele, to je bez debat.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: TrollWarLord 04. 09. 2012, 21:21:47
V skole sa u nas uci asm+C --> C++\+Java --> ruby --> haskell (cize v podstate historia --> sucastnost).
Imho najlepsi pristup
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: TrollWarLord 04. 09. 2012, 21:22:49
ad pointre
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Kit 04. 09. 2012, 22:16:21
mozna me nekdo ukamenuje, ale zacal bych na pascalu pro algoritmizaci, pak python (a aspon se nauci strukturovat si kod :) ) a az pak treba tu javu nebo cecko

Trochu mi uniká, v čem má Pascal výhodu proti Pythonu v algoritmizaci. Pascal je podle mne jen obstruktivnější a výhodu oproti Pythonu nemá žádnou.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 04. 09. 2012, 22:25:52
Pascal je už mrtvola, byť to nebyl špatně navržený jazyk. Když se ale dnes někdo naučí Python, tak pokud by to měl být jediný jazyk u kterého zůstane, tak mu to díky všemožným knihovnám nebude k hovnu. Největší nasíračka je tím odsazováním, nekvalitní editor či špatn nastavený editor může dělat problémy. Osobně jsem v programování zastáncem používání tabů, protože jim lze nastavit libovolnou velikost co se zobrazení týče, ale u Pythonu bude třeba udělat výjimku a raději vždy nahrazovat taby vždy mezerami a držet se pep8. Kvalitní textový editor je tedy nutnost.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Pavel 05. 09. 2012, 00:16:43
DK: Tak pascal bych už mezi použitelné jazyky neřadil. Kdysi nám sice říkali, že je názornej a pro začátečníky dobře srozumitelnej, ale nikdy mi nepřišlo, že by byl lehčí na pochopení než C ve kterým se dá dobře pracovat i dnes. A to aby se učili velké množství jazyků asi také nebude nejlepší, dle mého názoru je lepší aby se naučili jeden nebo dva jazyky, ale pořádně.

neron: Myslím, že je zbytečný začínat učit OOP a pokud to člověk vynechá, tak v tom výčtu zůstane u C++ jen ten pointer. Bylo by asi lepší začínat u procedurálního přístupu. Přece jenom se studenti prvně zeptají "jak to mám udělat" než "co budu mít za data a jak s něma budu pracovat." Vzhledem k tomu, že C++ vyšlo z Cčka které je procedurální, tak se mi zdá lepší začínat v něm...

Ohledně výuky má Pascal jednu velkou výhodu - má jednodušší návrh ohledně práce s proměnnými - předávání proměnné hodnotou nebo referencí. Za mých časů pak další velkou výhodou byla rychlost kompilace a IDE. Samozřejmě i knihovny jsou v Pascalu jednodušší. Cčkové jsou příliš napasované na Unix, což je super pro praxi, ale pro výuku je to horší.

Běžnému středoškoláku klidně stačí BASIC - jde o to, aby pochopili, že počítač je přerostlá rychlá kalkulačka a úlohy, které budou stejně prográmky na 20 řádek typu - výpočet kvadratické rovnice. Kolik z nich se tím bude živit - důležitější je, a to už tu zaznělo - aby existovala koncepce - aby svou znalost programování mohli studenti zužitkovat ještě v dalších cvičeních. Dovedu si představit, že pro hromadu studentů by bylo praktičtější je naučit VBA, Rko nebo Matlab
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Ovrscout 05. 09. 2012, 00:39:36
Já začínal  na pascalu a přejít na c nebyl žádný velký problém, je to skoro to samé. Myslím ale že dnes by už bylo lepší začít rovnou C.

Co se týká programování, myslím že je vhodné se ho učit po vrstvách, které v podstatě rozšiřují možnosti zapouzdření/abstrakce

Jazyk:C/Pascal/...
1)Proměnné a operátory, nějaké jednoduché počítání a podmínky
2)datové struktury
3)Rozdělění programu do funkcí (Předávání parametrů a návratové hodnoty,jednoduché ukazatele,reference(c++))
4)algoritmizace (převod myšlenky do algoritmu, zmínka o standardních algoritmech-vzorech)
5)způsoby odstraňování chyb (ladění,logování,asertace,...)
6)Rozdělení programu na Moduly (oddělený překlad souborů, knihovny)
Doplňkové pokročilé znalosti) složité ukazatele + ukazatele na funkce,...
Doplňkové zaměření na jazyk C)Pokročilé funkce preprocesoru

Jazyk:C++/Java
7)Objekty základ =(ve smyslu kombinace modulu a struktury)
8a)Objekty dědičnost (základ)
8b)Objety  interface    (základ)
9)přetěžování operátorů a funkcí

Programy řízené událostmi
modelování UML,abstrakce
..........
metodologie vývoje .. .. .

Za bodem 8 je to už takové hodně otevřené a ani to pořadí není tak jisté, ale to už nejsou tak úplně základy a i toho ostatního je docela dost, pokud to má člověk pochopit a ne jen nabiflovat a splácat/odladit program aby prošel zkouškou jak to často bývá.

Také by asi šlo použít C++ hned od začátku a místo modulů začít objekty, ale mně přijde přechod z C na C++ jako psychologická výhoda, nový začátek (C++)  umožní se odpoutat od strukturálního programování a algoritmizace a začít pohledem z jiného úhlu.

Rozhodně nesouhlasím s tím že by se mnělo začínat objekty. Ty slouží hlavně jako nadstavba/abstrakce/zapouzdření aby se dal kód udržovat/znovupoužít a byl přehledný. Je to jiný způsob zápisu(a má své výhody), ale není to jediný ani nutný předpoklad k programování.Koneckonců dobře napsaný modul nebo knihovna v C/Pascalu může v mnoha ohledech(samozřejmně né ve všech) objekt nahradit.

P.S. Doporučuji používat nějaké rozumné IDE a využít jeho výhod, nechápu ty kteří IDE zakazují a trvají na používání notepadu a překladu z příkazové řádky. Programování není (dle mne) o tom aby se někdo nabifloval příkazy a parametry kompilátoru. To si můžu vždy najít když to bude třeba. Programování, to je způsob myšlení a vnímání.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: KapitánRUM 05. 09. 2012, 01:00:48
Java je na učení naprosto výborná, C++ tě nijak nenutí používat objekty a je lepší objekty chápat už od začátku a vzít je jako něco přirozeného.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Inkvizitor 05. 09. 2012, 09:05:12
Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 05. 09. 2012, 09:14:47
Kde je ten Petros84 aby nám dodal více informací o škole kde učí? Když někdo něco chce, tak ať sám aktivně participuje ;)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Honza DVB 05. 09. 2012, 09:16:38
Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.

Takže jedním z nejlepších jazyků pro výuku programování je command line ve Windows - tam stačí napsat "echo Hello World!" a je to. Pro složitější projekty je potom možné využít BAT soubory...

Také názor.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Inkvizitor 05. 09. 2012, 09:41:03
Ano, dovedu si představit, že výuka programování prakticky začne úvodem do příkazové řádky, klidně pod Windows. Otázka je, jak bude výuka probíhat, jaké při ní budou studenti vstřebávat principy. Pro výuku OOP je Java nevhodná, protože je to kompromisní kočkopes míchající C s principy OOP. Pro výuku procedurálního programování je nevhodná, protože to je kompromisní kočkopes míchající C s principy OOP. Nemluvě o dost strašných knihovnách a třeba o tom, že když chceš pracovat s většími čísly, nemůžeš použít normální operátor jako v jiných jazycích, ale jakousi metodu, na což student narazí už u tak primitivního programu, jako je výpočet faktoriálu - pro výuku tedy perfektní. Jediné, k čemu je Java jako první jazyk vhodná, je k výchově budoucích javistů, kteří zůstanou nepolíbeni jakýmkoliv jiným jazykem až do konce života. Což chápu, že určité praktické výhody má, ale pokud se škola snaží dát studentům všeobecný přehled, tak to jaksi nestačí...

Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.

Takže jedním z nejlepších jazyků pro výuku programování je command line ve Windows - tam stačí napsat "echo Hello World!" a je to. Pro složitější projekty je potom možné využít BAT soubory...

Také názor.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Straces 05. 09. 2012, 09:46:23
Myslím si že pro absolutní základy je jedno který z uvedených jazyků se použije, osobně sem začínal jak na javě tak poté na c++, jde oto se naučit pracovat s operátory, datovými strukturami, třídami, atd... nejde o to, do začátků ani tak naučit se perferně znát syntaksi, ale spíše pochopit programování jako takové..  ;)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Honza DVB 05. 09. 2012, 10:16:09
Ano, dovedu si představit, že výuka programování prakticky začne úvodem do příkazové řádky, klidně pod Windows. Otázka je, jak bude výuka probíhat, jaké při ní budou studenti vstřebávat principy....

To je ten zásadní problém - tazatel stále nevysvětlit co má v úmyslu studenty naučit (nemyslím tím konkrétní jazy) a k čemu by své znalosti měli dále využívat. Bez těchto informací je to tu jen žvanírna se spoustou doporučení založených na subjektivních dojmech a zkušenostech.

Jinak jsem narážel na to, že počet řádků potřebných pro hello world je kritérium, které nic nevypovídá o vhodnosti toho kterého jazyka pro výuku programování. A command line processor nepovažuji za prostředí, ve kterém by výuka programování (základních principů) měla probíhat.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: YaDo 05. 09. 2012, 10:45:13
Zdravim...
Moj osobny nazor je, ze pokial si musite vybrat medzi C++ a Javou tak by to malo byt C++.
Preco? Prave preto, ze nuti mysliet na memory management a ostatne veci, ktore Java robi automaticky. Tym sa vybuduje u studentov ten spravny styl programovania. Prechod na ine pokrocilejsie programovacie jazyky je potom uz hrackou a spravny styl programovania zostava. Len musite dat pozor, aby ho naozaj dodrziavali. Teda nesmiete tolerovat neporiadnost, neupratovanie pamate atd. atd.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Ondřej Novák 05. 09. 2012, 10:47:10
Citace
Re:Java nebo C++ pro absolutní začátečníky?

Záleží, jak moc vážně se chce programováním zabývat a jakou chce mít v budoucnosti mzdu.

Pokud to má mít jako koníček, nebo jako povinnost na škole ale jinak ho spíš baví hrát na kytaru, fotbal, jezdit na kole, chodit do hospody, tak doporučuju Javu. Ale ať předpokládá nižší průměrnou mzdu (čest výjimkám).

Pokud je to šílenec, který ve volném času sedí u compu a neustále něco vyvíjí, tak rozhodně C++. Profesionální C++ programátoři se platí zlatem
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 05. 09. 2012, 11:55:24
Profesionální C++ programátoři se platí zlatem

Protože memory leak. When you see it you wil sh*t brix. :)

Teď vážně, pokud nejde o programování embedded zařízení nebo specifických aplikací, kde potřebuješ opravdu maximální výkon (např. grafický engine), pak má málokdo nervy na vlastní memory management nebo si sahat přímo na železo. Nehledě na to, že to prodražuje již tak drahý vývoj.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Ondřej Novák 05. 09. 2012, 12:05:23
Protože memory leak. When you see it you wil sh*t brix. :)

Teď vážně, pokud nejde o programování embedded zařízení nebo specifických aplikací, kde potřebuješ opravdu maximální výkon (např. grafický engine), pak má málokdo nervy na vlastní memory management nebo si sahat přímo na železo. Nehledě na to, že to prodražuje již tak drahý vývoj.

Programátor C++, který neustále řeší memory managment a hledá leaky ve své aplikaci není možné nazývat špičkovým profesionálem. Ne že bych občas leaky nehledal taky, ale nejsou jen memory leaky, třeba resource leaky, ty nepořeší ani Java. A pokud máte memory leaky dobře řešené v C++ (třeba chytré ukazatele) netrápí vás ani resource leaky (takový leakovaný zamknutý semafor, nebo běžící vlákno, to jsou nádherné situace)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: klw 05. 09. 2012, 13:27:15
Jelikož asi nemá cenu reagovat na konkrétní příspěvky, tak jen ve stručnosti v bodech (rýpání do C++ berte prosím s velkou rezervou, nechci rozpoutávat klasický flame C++ vs. Java ;-):
- Absolventi SŠ (především průmyslovek) s výukou IT/programování mají často problém dostat se, případně udržet se na VŠ s IT zaměřením. Gymnazisti programováním netknutí nikoliv.
- Je úplně jedno, jaký jazyk pro výuku používat – pokud to bude rozumný jazyk.
- Ti, co se dostanou na VŠ a případně ji i absolvují, beztak nebudou mít problém přejít na jiný jazyk.
- S ohledem na pragmatickou stránku bych volil jazyk se syntaxí jazyků z rodiny C, tedy přímo C, Javu, nebo klidně D. Kvůli nevýhodám C++ tento jazyk raději ne.
- C++ je zprasený hybrid nevhodný pro výuku začátečníků.
- Ti, co doporučují C++, to dělají jen proto, že oni sami v něm začínali a cítili by jakousi zhrzenost, kdyby někdo jiný měl začít v něčem jiném.
- Některé zhůvěřilosti C++, které se začátečník naučí, bude brát jako dogma, a bude se je snažit používat při případném přechodu do jiného jazyka.
- C++ programátoři se cítí být něčím víc, než ostatní (protože C++ je zbytečně složité a náchylné na chyby), nicméně jejich případné snahy vytvořit něco v Javě jdou na první pohled poznat a často je stejně nutné je přepsat (viz předchozí bod). Jímá mě hrůza, když v OOP jazyce vidím něco jako:
Kód: [Vybrat]
akce(objekt1, vysledek, objekt2);namísto:
Kód: [Vybrat]
vysledek = objekt1.akce(objekt2);PS: Já měl tu slušnost v tomto příkladu naznačit, co je vstup, a co výstup ;-)

- To, že C++ je zbytečně složité, neznamená, že by programátoři v něm byli lepší než ostatní, protože byli schopni se to naučit, ale naopak že dělají zbytečně moc práce navíc v něčem, co je špatně navrženo.
- V C se začátečník naučí myslet nízkoúrovňově, v Javě zase objektově, C++ mu pomotá hlavu. Volte pragmaticky podle zaměření školy s ohledem na budoucnost absolventů (viz první bod).
- Proč vůbec neučit první dva jazyky zároveň + důsledně vysvětlovat rozdíly?
- Java patří mezi mainstream (nikoliv zde na root.cz), berte na to ohledy (na obojí).
- I v Javě lze psát čistě procedurálně, byť je to k ničemu. Pro prvotní výuku to ale stačí a nějakou tu deklaraci třídy a main metody se začátečník naučí nazpaměť. Pak ale rychle na objekty, aby to nedopadlo jako v případě přechodu z C(++) na Javu ;-)

Učte především psát čitelně a přehledně. Jako se prvňáčci učí (nebo alespoň za mě učili) krasopis.
Tedy něco jako tohle – vykopíroval jsem to z jiného nedávného threadu, to opravdu ne(!):
Kód: [Vybrat]
if(hmotnost<minimalhmotnost)pocet++;
Učte také myslet a psát správně a přenositelně. Kód, kterému rozumí počítač, umí psát skoro každý. Ne každý ale umí psát kód, kterému rozumí i lidé.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Ondřej Novák 05. 09. 2012, 14:56:41
...

Já jsem to asi nepochopil. Buď si tady pletete jednotlivé jazyky, nebo jste C++ viděl z rychlíku, nebo vám ho prezentoval někdo, kdo v C++ neumí. Každopádně Java je jen trochu osekané C++. Co se naučíte v Javě jde pak většinou s měnší modifikací použít v C++ a naopak. Postavit vedle sebe C a Java to je jako postavit vedle sebe trabanta a audi.

Že je C++ kombinací nízkoúrovňového jazyka s prvky vysokoúrovňového programování, o tom se nikdo nehádá. Myslím si ale, že to v současné době nejlepší kompromis mezi jednoduchostí a efektivitou, přestože současné JIT překladače tomu dost dýchají na záda. Pořád ale nedošlo ke zlomu, jsou systémy, kde nepochodíte s C a jsou systémy, kde nepochodíte s Javou, ale vsadím se, že ve všech těchto systémech bude možné použít C++ (byť třeba ne úplně, například při programování pro Atmely jsem musel ožele nemožnost používat výjimky, což je ale drobnost)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: aoeu 05. 09. 2012, 15:08:54
U nas v skole nam predhodia 500 riadkove (a nejednoznacne) zadanie na projekt a deadline.
Priprava na real-life ako vysita, prax je azda horsia.

C++ vs Java, to je jedno, C++ pamatovy manazment nuti aj novacikov aby sa o pamat starali (teoreticky) ale oba jazyky su relativne komplexne a zaciatocnik nema sancu ich dostatocne pochopit, nie to naucit sa kodit.
A navacik bude aj tak robit prasaciny v kode, tym si asi kazdy presiel. Ja by som hlavne doporucil jazyk co ma slusne IDE a pluginy na bezplatnu staticku analyzu kodu a slusny debugger.

C++ by u mna vyhralo pretoze je relativne standardizovane.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: klw 05. 09. 2012, 15:33:47
Ondřej Novák: Postavit vedle sebe Javu a C je podle mě naopak žádoucí, protože oba jazyky mají průnik snad jen v syntaxi. Já bych rozhodně neřekl Trabant vs. Audi, ale spíše sportovní vs. nákladní automobil. Co se týče C++, já se zde ohrazuji vůči možnosti psát jak čistě procedurálně, tak objektově (v druhém případě ne úplně ideálním způsobem, napsáno o tom bylo dost), což umožňuje vytvořit hezkého kočkopsa. V praxi ano – výhoda, pro učení nevýhoda. Nováček by si podle mě měl zkusit striktně a názorně jedno a striktně druhé, aby viděl jasný rozdíl, co mu který z obou jazyků přináší za výhody a nevýhody, a aby naučil se myslet oběma způsoby a nebyl přitom ochuzen o žádný z obou světů.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: klw 05. 09. 2012, 15:43:08
...a samozřejmě zkusit si striktně nízkoúrovňovost a striktně vysokoúrovňovost, ale to je doufám zřejmé.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Viky 05. 09. 2012, 16:44:22
Nechci působit příliš staromilecky, ale zatím jsem nepoznal snad nikoho z generace těch, co začínali na C++, Javě atp., kteří by se svými návyky, čistotou kódu a elegantností algoritmů blížili odchovancům Pascalu. Ti, co začínali na FORTRANu 77 blahé paměti, mají naprosto úděsný styl (nicneříkající jména proměnných, dekomposice a faktorace ve stylu "jak to přišlo pod ruku"...), zato častokrát dělají různé zelegantňující vychytávky algoritmů. Programy těch, co začínali C++kem nebo Javou mi připadají šíleně ukecané, vždycky si kladu otázku "pro boha, co může být na řešení takové blbosti tak dlouhého?" Obvykle se ukáže, že vůbec nic, že jen zvolili tak blbý algoritmus a tak blbé datové struktury, že i kdyby se člověk hodně snažil, netrumfnul by to. Ale neříkám, že to je jazykem. Spíš dobou, v níž s programováním začínali, a všeobecným nárůstem hlouposti v IT oborech.
Zkrátka - nechci zevšeobecňovat -, ale pokud jsem poznal někoho fakt dobrého, zatím se pokaždé ukázalo, že mnoho času ve svých začátcích strávil na Pascalu. Ať už před 20 lety nebo před 5 na MFF nebo FJFI třeba, kde na Pascalu v úvodních kursech pořád jedou.
Osobně si pak myslím, že nejlepším jazykem pro někoho, kdo chce do programování opravdu proniknout do hloubky, je Scheme. V něm si může vyzkoušet prakticky všechny možné přístupy k programování, aniž by se pokaždé musel učit novému jazyku a ztrácet čas s věcmi, jež jsou pro tyto účely málo podstatné (jako třeba konkrétní syntax). Přitom je to jazyk jednoduchý, čistý, přehledný, tvárný a není ani příliš těžké v něm napsat překladač sebe sama. Ostatně - že ho používají pro tyto účely na M.I.T. asi taky o něčem svědčí. Ale na střední bych ho asi necpal.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 05. 09. 2012, 17:14:05
že ho používají pro tyto účely na M.I.T. asi taky o něčem svědčí.

Pokud máš na mysli kurz 6.001 (Structure and Interpretation of Computer Programs) tak nedávno buď přešli na python, nebo o tom hodně vážně uvažovali. Důvod byl ten, že PLT Scheme (dnes Racket language), ve kterým se to učilo, se v praxi i v jiných kurzech používá minimálně.

Citace: aoeu
oba jazyky su relativne komplexne

Z čistě formálního hlediska ... ne. C++ je jeden z nejsložitějších a nejkomplexnějších, Java je relativně jednoduchá - moc konstrukcí nenabízí a de facto Tě nemá co překvapit, i když extrém typu Smalltalk (který má jen 2 operátory) to samozřejmě není. Co je horší je struktura a používání základních funkcí a knihoven.

Citace: aoeu
C++ by u mna vyhralo pretoze je relativne standardizovane

Hm, nechci rejpat, ale nemůžu se zbavit dojmu, že Java o dost je na tom lépe.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Ondřej Novák 05. 09. 2012, 17:33:08
Citace: aoeu
C++ by u mna vyhralo pretoze je relativne standardizovane

Hm, nechci rejpat, ale nemůžu se zbavit dojmu, že Java o dost je na tom lépe.

Tohle je o diskuzi. Je lepší, když máme stabilní platformu, kde se standard upravuje jednou za 10 let a to ještě velice střízlivě (zavedení lambda a auto je asi největší revolucí), nebo máme platformu, která se mění několikrát za rok (často vidím update Java RT).
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: alef0 05. 09. 2012, 17:59:03
Update Java RT znamená oprava chýb vo virtualmachine a v špecifickom správaní niektorých metód: API ostáva medzi major verziami stabilné. (Ono sa často pletie Java ako základná knižnica, Java ako syntax jazyka a Java ako virtuálny stroj.)

Úpravy "niekoľkokrát za rok" spadajú do tohto chlievika.

Najväčšie zmeny v syntaxi boli v Jave 5 (rok 2005): generiká, for-eache a milión vecí. Java 6 nepriniesla žiadne zmeny v jazyku: len pribudli nové metódy v základnej knižnici. Ďalšie syntaktické zmeny boli v JDK7 (2011), ale ani po roku nevidím žiadne veľké projekty, ktoré by na to migrovali: všetci sa držia päťkovej syntaxe. A ďalšia megavárka bude v JDK 8 budúceho roku: tam pribudnú lambdy, ale na tie sa čaká už asi tak sto rokov a debaty o nich bežia minimálne 5 rokov.

V porovnaní s C# je to ešte pomerne pomalý dinosaurus.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Rado2 05. 09. 2012, 22:10:18
Na strednú školu kde je predpoklad že sa programovaniu bude ďalej venovať tak 1% žiakov stačí hocijaký jazyk, ideálne taký, v ktorom sa na 2 riadky dá niečo vykresliť na obrazovku, čo má nejaký for loop a jednoduchú matematiku, kde sa dá žiakov zaujať a prebudiť záujem o programovanie. Java a C++ je najlepší spôsob, ako tento predmet znechutiť väčšine žiakov.

Čo sa týka tej správy pamäte v C++, robil som v C++ roky, teraz sa motám okolo C# a Javy (android) a skôr teraz mám problém s pamäťou, v C++ som deklaroval class a mohol som ho používať, zásobník sa staral o uvoľňovanie pamäte, existujú smart pointre, nebol problém. Teraz musím všade dávať aj new() na čo občas zabudnem a zbytočne oveľa viac debugujem a odchytávam výnimky. Na ten new sa dá zabudnúť tak, že pri testovaní sa to neprejaví, až u zákazníka a potom nie je sranda to riešiť.
Čo sa týka memory leako, v C občas môže niečo ujsť, v jazykoch s GC niečo uteká stále (aj keď väčšinou len dočasne).

S javou doslova len bastlím podľa skúseností s C# a s pomocou googla bez toho aby som si prečítal o nej čo len riadok, len kvôli novej androidovej hračke, takže ju nemôžem veľmi súdiť, nie je mi sympatická. Musím ale uznať, že C# veľmi šikovný, pár mesiacov v ňom robím biznis aplikácie a pokiaľ nie je problém s viazaním sa na Windows platformu, v tejto oblasti neviem či má konkurenciu (jazyk, .NET, vývojové prostredie). Nevýhodou je ale logicky menej špecializovaných (free) knižníc ako pre C++. A mám obavy, či po pár mesiacoch nezostanem blbý z C++  :'(
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: alef0 05. 09. 2012, 22:35:25
Citace
Teraz musím všade dávať aj new() na čo občas zabudnem a zbytočne oveľa viac debugujem a odchytávam výnimky. Na ten new sa dá zabudnúť tak, že pri testovaní sa to neprejaví, až u zákazníka a potom nie je sranda to riešiť.
Ako sa dá zabudnúť na new, keď to je kompilačná chyba?

Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: aaa 05. 09. 2012, 23:06:30
Z tychto dvoch skor Javu, mimo to na proceduralne mozno Pascal.

Dovody su:
-bounds checking - nic nepotrapi novacika viac ako chyba, ktoru ma na riadku 30 ale vdaka malemu polu a prepisovaniu si vlastnej pamate sa prejavi az na riadku 300 len ak sa tam nieco vyvola v nejakom poradi (inak nie).
-pomerne zrozumitelne exception pri pade oznamujuce chybny riadok namiesto nic nehovoriaceho "segmentation fault"
-obmedzuje "prasacke pouzitie" - ono je pekne mat viacnasobnu dedicnost, "public/private dedicnost", pretypovanie prakticky lubovolneho typu na lubovolny iny atd, ale u zaciatocnikov (a mnohokrat nielen u nich) su tieto moznosti len na skodu a vedu k divne navrhnutym programom.

Toto je z mojich vlastnych zazitkov - nehovorim, ze to nejde riesit, ale myslim si, ze zaciatocnik by riesenim stratil kopec casu, ktory by mohol vyuzit na rozumnejsie veci.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 06. 09. 2012, 06:09:02
Pro prvotní výuku programování by mohlo posloužit i GNU Octave, zvláště někde na gymnáziu které je obecně zaměřené. Ono se totiž daleko víc studentů kteří potom půjdou na VŠ setká s Octave/Matlabem než s "normálním" programováním. Pokud vím tak i takoví strojaři a nebo stavaři mají kurzy matematiky kde se toto používá. Základní programová konstrukce (sekvence, podmínka, cyklus) to má, na obrazovku to také dovede kreslit, IDE se pro to dá taky sehnat. A ani ti kteří půjdou studovat informatiku tomu nejspíše neuniknou, byť pro ně by neměl být problém naučit se základy za večer a pak zplácat cokoliv za pomoci dokumentace. Největší nevýhodou Octave či Matlabu je, že nemá příliš mimoškolní využití - aplikaci či web v tom nenaprogramujete. Na druhou stranu, mají před sebou roky matematiky, fyziky a jiných předmětů, a ze znalosti Octave mohou těžit po celou tu dobu.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: NoFlame 06. 09. 2012, 09:08:18
Pro prvotní výuku programování by mohlo posloužit i GNU Octave, zvláště někde na gymnáziu které je obecně zaměřené. Ono se totiž daleko víc studentů kteří potom půjdou na VŠ setká s Octave/Matlabem než s "normálním" programováním.

Právě pro lidi u kterých většinou programování nebude hlavním profesním směrem to chce něco, co nemá všelijaká omezení. A to prakticky všechny matematické balíky mají. Není to programovací nástroj a některé (programovací) věci se tam dělají přes ruku. Nejlepší je něco, kde studenti nebudou řešit věci, které řešit nemají. A mají řešit pochopení obecných věcí a naučit se algoritmicky myslet a vyjádřit to kódem. A to byl dříve pascal, dneska to je python.
Někdo potom bude programovat v excelu, někdo v matlabu, někdo si bude scriptovat photoshop - to už se naučí. Začínat rovnou v nějakém matematickém balíku je hloupost.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Jarda D. 06. 09. 2012, 18:34:51
Tak koukám, že pan učitel si s námi už nepovídá. Škoda, mohli jsme se dostat k tomu, koho, co a proč chce učit. A pak bychom se mohli bavit o tom jak by to bylo nejlepší a mohlo by to vést i k nějakému závěru. Takhle z toho zase nejspíš nic nebude.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: iwtu 06. 09. 2012, 19:00:44
zacat s C problem neni, lebo C je vcelku priamociary jazyk a kto uvazuje priamociaro, tak mu pride prirodzeny. Samo, treba nieco vediet o tom, ako procesy a celkovo PC funguje.

Java vynucuje OOP, ale koncept OOP podla mna nie je trivialny a nie nutny pri zaciatkoch. premenne/ify/cykly/funkcie su nutne. Teda ak nechce zacat s Haskellom :-)

Pisat v C++ ceckovskym sposobom je prasarna a C++ nie je priamociari jazyk a aj par prvych pohladov, pokial clovek skutocne presne nevie, co ako a preco, tak je taka cierna magia. Mne ako studentovi cierna magia nikdy nerobila dobre.

alef0 je na VS, kde mozno vymysleli prelomovy sposob ako zacat s Javou. Vlastne, on asi vie. Ja som videl zaverecne testy, ktore boli super z obecnej znalosti programovania a algoritmov... Ale on potom informatikov asi uci Javu, tak vie, ako zvladaju Javu a OOP take.

A zalezi mozno aj na tom, ci chcete ucit Javu/C++ alebo programovanie. Ja osobne kedy som mal ucit uvod do programovania, tak vyberiem C, Pascal, Python ... Deti by asi najviac bavil Python, predpokladam. Koncept OOP nepovazujem za nutny a C++ obsahuje pre zaciacnika nesmierne mnozstvo ciernej magie.

Joj, clovek ma romanticku naladu a taka diskusia ho dnes posadi do normalu :D
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Rado2 06. 09. 2012, 19:51:02
Citace
Teraz musím všade dávať aj new() na čo občas zabudnem a zbytočne oveľa viac debugujem a odchytávam výnimky. Na ten new sa dá zabudnúť tak, že pri testovaní sa to neprejaví, až u zákazníka a potom nie je sranda to riešiť.
Ako sa dá zabudnúť na new, keď to je kompilačná chyba?

ak chcem objekt ako member variable tak to nie je (a nemôže byť) chyba pri kompilácii.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Petros84 06. 09. 2012, 19:56:56
Pánové (možná i dámy), děkuji všem za velmi cenné a obohacující příspěvky a omlouvám se za nereakce na některé podněty. Myslím, že napsáno toho bylo vcelku dost a pokud se tato diskuze dá uzavřít, tak ji tím to uzavírám. Co se týče zaměření školy, oboru, využití apod. párkrát se mi tu dostalo odpovědi přímo pro můj konkrétní případ, takže i to bylo pro mne přímosné. Tedy pro ty, kteří se zapojovali píšu info o škole atd. Jedná se o elektro průmku a konkrétné tento problém (C++ vs. Java) pro obor IT. Takže se předpokládá širší znalost a dovednost než u ostatních oborů. OOP by měli začít až ve 3. ročníku. Na mé škole (než nás sloučili) se přešlo z Pascalu na C++, jelikož studenti ve valné většině chodiny na elektro vejšku, kde nám za tuto změnu i děkovali :-) Ale problém je právě ve sloučení, jelikož nejsme nástupnická organizace a musíme se přizpůsobit jejich zvykům. Jejich škola měla zaměření na IT (ovšem pozor jednalo se o integrovanou střední školu).

Takže ještě jednou stručněji:
1) naše škola je přes 100 let elektro průmka - přešlo se z Pascalu na C++
2) jejich škola je za měřená na IT - studenti, kteří nezvládali naši školu šli na jejich - jednalo se o integrovanou sš (dříve učňák)
3) v současnosti jsme oficiálně elektro a IT průmka ovšem podle zvyklostí "jejich" školy

Z výše popsaného možná vyjde jaasná odpověď, že když to děláme nějak a je to minimálně v návznosti na VŠ, proč tak nepokračujeme. Problém je že jsme nenašli dostatečné proti argumenty nové šéfové, která je tvrdohlavá a obhajuje Javu horem spodem :-)
Výsledkem pro v této diskuzi měly být argumenty pro a proti C++ a Java, což se mi podařilo a na závěr ještě jedno děkuji.

Přeji všem pěkné dny :-)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Jarda D. 06. 09. 2012, 20:27:12
Stručně tedy můj názor - v tomto případě začít obecné programování v C (elektro průmka) a ve 3 OOP dělat v Javě. Toť můj názor.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Pavel Tisnovsky 06. 09. 2012, 20:59:44
Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.

Tak pokud ta decka nebudeme hned tlacit do OOP, tak si vystaci s peti radky a jeste se vynecha pitoma metoda main (u ktere je pro zacatecniky strasne mnoho magickych slov a znaku :)

Ja bych osobne pri vyuce zacal se Scratchem, potom asi podle chuti studentu C ci Python...
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Pavel Tisnovsky 06. 09. 2012, 21:09:43

Pokud máš na mysli kurz 6.001 (Structure and Interpretation of Computer Programs) tak nedávno buď přešli na python, nebo o tom hodně vážně uvažovali. Důvod byl ten, že PLT Scheme (dnes Racket language), ve kterým se to učilo, se v praxi i v jiných kurzech používá minimálně.


Hmm LISPari prave SICP radi argumentovali, no je to myslim i dost skoda, bylo zajimavy si ty prednasky porovnavat treba s tim, co se prednasi u nas (i styl vyuky atd.).
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: st 06. 09. 2012, 21:54:57
Vite o nejakem nastroji na vizualni programovani, ktery by mel primocarost Scratche a pritom dospelejsi neodrazoval svym na mladsi uzivatele zamerenym vzhledem? Jestli sem se vyjadril dobre .)

Jak je na tom Lua s vhodnosti pro vyuku?
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: eMko 06. 09. 2012, 22:52:47
Hmm LISPari prave SICP radi argumentovali, no je to myslim i dost skoda, bylo zajimavy si ty prednasky porovnavat treba s tim, co se prednasi u nas (i styl vyuky atd.).

Škoda to rozhodně je, každopádně na původní knížku k SICP se dá stále proklikat přes stránky Racket language.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Natix 06. 09. 2012, 23:03:04
Citace
Teraz musím všade dávať aj new() na čo občas zabudnem a zbytočne oveľa viac debugujem a odchytávam výnimky. Na ten new sa dá zabudnúť tak, že pri testovaní sa to neprejaví, až u zákazníka a potom nie je sranda to riešiť.
Ako sa dá zabudnúť na new, keď to je kompilačná chyba?

ak chcem objekt ako member variable tak to nie je (a nemôže byť) chyba pri kompilácii.

Pokud můžu, tak fieldy vždycky zásadně inicializuji in-line, odkládání inicializace do konstruktoru (ve chvíli, kdy to samé můžu udělat rovnou při deklaraci) nebo kdo ví kam jinam je strašlivý zlozvyk.

Zároveň pokud nepotřebuji do hodnoty fieldu znovu přiřazovat, tak automaticky přidávám klíčové slovo final, díky kterému mě kompilátor vyřve, pokud bych zapomněl jeho hodnotu inicializovat in-line nebo alespoň v konstruktoru (v případě objektů, které se do konstruktoru injectují).

Kód: [Vybrat]
public class Container {
    private final List<Object> objects = new ArrayList<>(); // nutné přiřadit, jinak compile error
    private final String name;
    // private final long id; -> zde by byl compile error

    public Container(String name) {
        this.name = name; // kdybych tohle zapomněl -> compile error
    }
}
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Natix 06. 09. 2012, 23:07:19
...

Samozřejmě že v případě hloupých datových bean s gettery a settery tohle použít nejde (byť v určitých situacích jde udělat beany taky immutable), ale to je zvláštní případ. V objektech, které mají nějaké chování, většinou není problém. Člověk by se až divil, kolik proměnných ve skutečnosti vůbec "proměnných" být nemusí.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Plameňobojovník 06. 09. 2012, 23:25:37
Hlavne v Jave je každý neinicializovaná inštančná premenná null.

Kolega Natix veľmi jasne povedal, ako na to.

Neviem ako je to v C++, ale v Jave sa pokojne môže stať, že objekt nemá implicitný konštruktor a v tom prípade je veľmi ťažké "domyslieť si", ktorý z nich sa má automaticky zavolať pri inicializácii inštančnej premennej (popravde, netuším ako je to v C++).
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: klw 07. 09. 2012, 00:09:08
Neviem ako je to v C++, ale v Jave sa pokojne môže stať, že objekt nemá implicitný konštruktor a v tom prípade je veľmi ťažké "domyslieť si", ktorý z nich sa má automaticky zavolať pri inicializácii inštančnej premennej (popravde, netuším ako je to v C++).

V Javě má každý objekt implicitní konstruktor, může ale být private, jestli jste měl namysli tohle? Asi většina běžně používaných "beanových"/komponentových frameworků ale stejně vynucuje přítomnost implicitního public konstruktoru.

Jinak pokud jde o chyby zapomenutí inicializace, ale i o spousty jiných chyb způsobených nejen nepozorností, jsou zde k jejich odhalování k dispozici nástroje a knihovny typu Findbugs, JSR 305, PMD, @Required anotace ve Springu...
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Plameňobojovník 07. 09. 2012, 00:21:09
Keď mám


public class Troll {
    private int level;
    public Troll(int level) {
        this.level = level;
    }
}


a niekto si vyrobí inštančnú premennú


private Troll najväčšíTroll;


tak Java nemá veľa možností, čo spraviť: tak či onak by to viedlo ku kadejakým prapodivným prípadom. Tento najväčšíTroll je null.

Tak či onak mi súčasné správanie prijde prirodzené: neinicializovaná premenná je null, a očakáva sa explicitná inicializácia.

Ako je to v C++, neviem, povedzte niekto znalý.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: hulislav 07. 09. 2012, 01:04:48
A aky mate nazor na priradovanie null-u pri clenskej premennej do deklaracie? Napr.

Kód: [Vybrat]
class X {
    public String retazec = null;
    ...
}

Ide o to, ci ma vyznam tam ten null pisat, ked to je null defaultne, aj napriek tomu, ze pocas inicializacie tej triedy este nieco do retazca priradim. Ja tam ten null pridavam, hned tak vidim, ze to je naozaj null a treba s tym tak zaobchadzat a mat to na ociach, ked tam ten null nie je, tazsie sa to cita.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: hulislav 07. 09. 2012, 01:25:04
a teda, v tomto pripade je este zaujimave to, ze sa nemozno pomylit a napisat nieco ako

class X {
    public final String retazec = null;
    ...
}

tym sme si vlastne odstrihli moznost premennu normalne inicializovat, lebo sa to uz prave stalo.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Natix 07. 09. 2012, 01:48:52
"Null sucks." -Doug Lea

"I call it my billion-dollar mistake." - Sir C. A. R. Hoare, on his invention of the null reference
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Pavel Tisnovsky 07. 09. 2012, 09:33:51
Člověk by se až divil, kolik proměnných ve skutečnosti vůbec "proměnných" být nemusí.

Tesat do kamene - vyresi to spoooustu problemu, zejmena ve chvili, kdy si nekdo vzpomene, ze nasi/vasi tridu pouzije nekde v multivlaknove aplikaci.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Pavel Tisnovsky 07. 09. 2012, 09:42:50
Vite o nejakem nastroji na vizualni programovani, ktery by mel primocarost Scratche a pritom dospelejsi neodrazoval svym na mladsi uzivatele zamerenym vzhledem? Jestli sem se vyjadril dobre .)

Jak je na tom Lua s vhodnosti pro vyuku?

Na Scratch docela primo navazuje BYOB a Panther:
http://www.root.cz/clanky/scratch-plnohodnotny-programovaci-jazyk-nebo-jen-detske-puzzle-5-cast-projekt-panther/
http://www.root.cz/clanky/scratch-plnohodnotny-programovaci-jazyk-nebo-jen-detske-puzzle-3-cast-scratch-a-byob/

Vsechny tri systemy se daji upravit tak, ze se vyhodi "detske" sprity, takze to bude vypadat dospeleji - vsechny zmeny se ukladaji do jedineho souboru, ktery se muze jednoduse rozkopirovat na pocitace v ucebne. Navic si skutecne myslim, ze strukturovat programy a vubec resit nejaky ukol jeho rozdelenim na podproblemy se jde v techto systemech naucit velmi dobre a studenti nemaji pocit, ze jsou buzerovani prekladacem za to, ze nekde zapomeli strednik nebo spravne neodsadili nejaky radek.

Lua - popravde receno dneska studenti "vyzaduji" plnohodnotne IDE s kontextovou napovedou, automatickym doplnovanim kodu atd., tady Lua trosku ztraci (i kdyz ja sve skripty v Lua pisu stale ve Vimu :)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Hahah 07. 09. 2012, 12:32:24
Co se učit?
1. Kouknu na jobs.cz, napíšu programátor a vejrám  :o. Vidím java programátor 100 tisíc Kč. V textu se snadno dočtu, že musím bezvadně umět J2EE, JSP, JSF, MVC; Spring, EJB, Hibernate, SQL a anglicky.
Co udělám chcili být programátor? Se to naučím  :D.
2. Zjistím, že to na střední vysoké škole neuměj, tj. dám si odhlášku a jdu se učit sám.
3. Získám čas a ještě volno si užívat.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: klw 07. 09. 2012, 16:04:10
V Javě má každý objekt implicitní konstruktor...

Pardon, tohle beru zpět, psal jsem příspěvek o půlnoci ;-)
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Ondřej Novák 07. 09. 2012, 21:06:26

private Troll najväčšíTroll;


Ako je to v C++, neviem, povedzte niekto znalý.

Bude to compile error.

Troll najväčšíTroll(10);
Troll *najväčšíTroll = new Troll(10);
auto_ptr<Troll> najväčšíTroll = new Troll(10);
foo(Troll(10));
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: yeezy 07. 09. 2012, 22:47:36
ja byt na tvojom mieste tak skoncim s programovanim a zacnem sa venovat nejakej zabavnejsej cinnosti, napriklad miesanie drinkov, maser, alebo tanecnik.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Rudolf Klusal 08. 09. 2012, 02:26:54
Ahoj, moje rada je rozhodně začít Javou. C++ je šílená prasárna a leccos ti povolí.

Samozřejmě ale, jak se zde píše výše, je nutno počítat s tím, že jeden jazyk nestačí. V javě se naučíš snadno, trošku procvičíš, ale vzdělávat později je potřeba ve všech jazycích. Ale pro začátek z těchto dvou rozhodně Javu. Je striktní, nic ti neodpustí.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Waseihou 08. 09. 2012, 09:34:50
Vzhledem k tomu, že autor tématu již diskuzi zavřel, je toto téma volné pro flame ;)

Každopádně víme, že se jedná o elektro průmku. Takže po nějakém tom uvažování jsem došel k závěru, že nejlepší bude jazyk C podle normy ANSI C89 a postupně vysvětlit ty ostatní, třeba C99. Protože ne všechny překladače hlavně pro různé mikroprocesory budou podle nejnovější normy, je nějaká starší norma to nejlepší co může být. Dovedu si i představit i praktické pokusy třeba na Atmelech, rozblikat diodu, motorek a podobné srandy. Pokud ještě mají kompy s paralelním portem, tak napájet kabel vhodný na programování těch atmelů by neměl být problém...
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: Ondřej Novák 08. 09. 2012, 11:36:47
Vzhledem k tomu, že autor tématu již diskuzi zavřel, je toto téma volné pro flame ;)

Každopádně víme, že se jedná o elektro průmku. Takže po nějakém tom uvažování jsem došel k závěru, že nejlepší bude jazyk C podle normy ANSI C89 a postupně vysvětlit ty ostatní, třeba C99. Protože ne všechny překladače hlavně pro různé mikroprocesory budou podle nejnovější normy, je nějaká starší norma to nejlepší co může být. Dovedu si i představit i praktické pokusy třeba na Atmelech, rozblikat diodu, motorek a podobné srandy. Pokud ještě mají kompy s paralelním portem, tak napájet kabel vhodný na programování těch atmelů by neměl být problém...

Člověče, nemluvte o něčem, co jste viděl z rychlíku. Nemáte vůbec ale vůbec pravdu. Zrovna ty atmely. Arduion jede přes USB a programuje se v jazyce Wiring, což není nic jiného, než trochu vylepšené C++ (vylepšené zejména o knihovnu pro ovládání vstupů a výstupu, plánování a časování a seriovou komunikaci). Pokud tam nahrajete poslední verzi GCCčka, tak to zvládne normu  i C++11.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: KapitánRUM 08. 09. 2012, 12:18:42
Jak už jsem řekl, C++ nikoho do objektů nenutí a OOP je dneska základ pro všechno, proto Java.
Možná bych uvážil i ten hnus PHP a jeho "PARA OOP", že by si děcka mohla hodit i nějaké svoje "Nazdar debile" na web a chlubit se rodičům. Má určitě smysl učit i to C++ k vůli těm Atmelům a podobně, ale Java by na první dva roky byla určo jednodušší.
Pokud vynechám J2EE a ty čuňárny, který by zasloužily delete (RoR ukazuje, že nepotřebujete miliardu 3.14ovin na WEB), tak je Java jednoduchá a krásná.

PS: Až PHP bude alespoň tak striktně typové jako Java, tak mě vzbuďte.
Název: Re:Java nebo C++ pro absolutní začátečníky?
Přispěvatel: ezdiy 08. 09. 2012, 20:01:47
Jak uz tu zaznelo. Pokud si decka hrajou s dratkama, 8bitama a LEDkama tak nejdriv AVR assembler, a AZ PAK C. Delat to obracene dopada katastrofalne, protoze dobry C kod lze psat jenom kdyz ma clovek potuchy co je pod tim.

Psat uzivatelske aplikace v C je dneska uz sebevrazda, nicmene v systemovem programovani a na UNIXu to bude mit svoje misto navzdy. Necht Dennis Ritchie nerotuje v hrobe na prilis vysoke obratky.

C++ maximalne az potom co ma clovek za sebou poradnou davku OO v Jave, Pythonu nebo C#. Do te doby se nelze naucit dostatek kazni aby se to nesypalo jak domecek z karet.

ObjC se krci nekde mezi, ale ne kazdemu bastard smalltalku a C sedne.