Diskuze: java?

Java Java java?

Avatar
pan hide
Neregistrovaný
Avatar
pan hide:

dobry den,
rozhodl jsem se ucit v jave vybral jsem si spravne?
C# mi pripada slozity ale ted co vy
jak je to dnes s javou? je povazovan za zastaraly jako delphi ci ruby
nebo spise moderni jako C# zda se to mam naucit
nebo vybodnout

dekuji za jakoukoliv odpoved :-)

 
Odpovědět 5.2.2013 16:17
Avatar
Kit
Redaktor
Avatar
Odpovídá na pan hide
Kit:

Myslím si, že Java a C# si co do složitosti a modernosti nemají co vyčítat. Java rozhodně není zastaralá a určitě má význam se ji naučit.

Java má výhodu proti C# v tom, že je multiplatformní. Jinak jsou to srovnatelné jazyky.

Editováno 5.2.2013 16:24
Nahoru Odpovědět 5.2.2013 16:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na pan hide
David Jančík [sczdavos]:

A jé, tohle si neměl dělat :D
Teď začne zase válka, kde si každej bude prosazovat svůj jazyk.
Hele, vybral sis dobře, C# a Java jsou oba jazyky vyšší úrovně. Programuješ v OOP a mají oba spoustu knihoven a podpory. Nenech se zmást a nedělej v nízkoúrovňových jazycích jako je třeba čisté Céčko.
A pamatuj, že není důležité umět programovací jazyk. Když umíš myslet abstraktně, tedy víš co chceš a máš představu jak by to mělo fungovat, umíš programátorsky myslet. Pak se jazyk naučíš dá se říct za odpoledne, stačí ti znát základní syntaxi a zbytek dogooglíš, protože víš co chceš. A co se týče Javy a C#, tak to vždycky najdeš co hledáš ;)

Nahoru Odpovědět  +1 5.2.2013 16:21
Čím více času dostaneš, tím méně ho máš.
Avatar
lcet.m
Člen
Avatar
lcet.m:

Moderni, slozity stejne jako C#, C# mi prijde pro zacatecnika mozna pristupnejsi, ale to je jen nazor.

 
Nahoru Odpovědět 5.2.2013 16:22
Avatar
lcet.m
Člen
Avatar
Odpovídá na David Jančík [sczdavos]
lcet.m:

Pak se jazyk naučíš dá se říct za odpoledne

Pokud nejde o Objective-C, samozrejme :)

Editováno 5.2.2013 16:23
 
Nahoru Odpovědět 5.2.2013 16:23
Avatar
pan hide
Neregistrovaný
Avatar
pan hide:

dekuji moc :-)

 
Nahoru Odpovědět 5.2.2013 16:32
Avatar
Almion
Člen
Avatar
Odpovídá na David Jančík [sczdavos]
Almion:

Já bych čisté C tak nezatracoval, robota nebo čip v Javě nenaprogramuješ ;) (A když jo, tak výrazně hůř).

 
Nahoru Odpovědět 5.2.2013 16:35
Avatar
Odpovídá na lcet.m
David Jančík [sczdavos]:

Já spíš myslel, že když ten jazyk umíš fakt dokonale, ale nedokážeš přemýšlet a nemáš nápady, tak je ti to k ničemu.
Když si chci nakódit něco v jiném jazyce stačí mi většinou znát standardní příkazy a případně si vygooglim jak se co řeší. Nejdůležitější je pak praxe, když víš co kde použít a co ne a znáš metůdky a knihovny co použít, usnadní a urychlí ti to práci to určitě. Ale když si neumíš představit jak by to co chceš mělo fungovat a co by to vlastně mělo vůbec dělat, tak je ti kompletní příručka daného jazyka v hlavě k ničemu. Proto si myslím, že je lepší se naučit přemýšlet jak by co mělo fungovat a pak jen hledat jak se to v daném jazyku nejlépe dá udělat. Když nebudeš pak střídat jazyky jak se říká jak ponožky, tak se ho nejlíp naučíš. Číst knížky mě nikdy nebavilo, vždy jsem si našel základy a pak jsem prostě googlil co jsem potřeboval. A co jsem zatím dělal, tak převážně unikátní utilitky, které jsem na netu nenašel a tvořil je hlavně pro vlastní potřebu. Příjde mi zbytečné dělat něco, co už někdo udělal. Je to super si vyzkoušet jak je to dělaný nebo jen tak pro zábavu či když si tam chci udělat nějaký zlepšováček, ale myslím, že nejlepší je udělat si aplikaci, co není, než "kopírovat" existující. Tím ovšem nemyslím, když si udělám algoritmus, který předčí rychlost existující aplikace nebo podobné. No už se do toho zamotávám, snad mě bude pochopeno, rači toho rozepisování nechám :D

Nahoru Odpovědět 5.2.2013 16:36
Čím více času dostaneš, tím méně ho máš.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Almion
Kit:

Robota v Javě naprogramuješ, ale podle mne je pro robota vhodnější Lisp. V C bych se o to raději ani nepokoušel, připadá mi to dost masochistické.

Nahoru Odpovědět 5.2.2013 16:39
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Almion
David Jančík [sczdavos]:

Já ho nezahazuji, například v té robotice nebo algoritmech, kde potřebuji co nejvíce optimalizovat výkon jsou odlehčené jazyky lepší, o tom žádná. Ale modernější jazyky mají větší využití. Nedělá se v nich jen tak. Dá se v nich dělat od programů, přes hry a dokonce jsou i kity, které se dají programovat přímo pod .NET nebo které jedou na Javě. I do ledniček, televizí, mobilů se dělá třeba v C# a Javě. Ale nechci tu rozpoutat válku jazyků. Každý jazyk má své uplatnění, své klady a zápory. A záleží na programátorovi, co potřebuje udělat a který uzná za vhodné použít.

Dívej: http://techcrunch.com/…get-toolkit/

Editováno 5.2.2013 16:42
Nahoru Odpovědět 5.2.2013 16:40
Čím více času dostaneš, tím méně ho máš.
Avatar
Зайчик
Člen
Avatar
Odpovídá na Almion
Зайчик:

Jestli se můžu vložit do diskuse, tak bych řekl že C je stará záležitost co se desktop, system app týče, ale co se týče čipů a podobně, tak myslím že je to jasná volba. ASM dneska umí málo kdo. ;)

Nahoru Odpovědět  +1 5.2.2013 16:43
Коммунизм для нашего будущего!
Avatar
Almion
Člen
Avatar
Odpovídá na Kit
Almion:

Mám zkušenosti jen z vyložene low pohledu (psaní firmwaru pro kamery, švábi přímo řídící motory pro pohyb, feedback control atp) a tam prakticky není jiná možnost.

@sczdavos: Jojo, s tim souhlasim. Nechtěl jsem rozpoutávat boj, jen tvrdím, že i ANSI C má v dnešním světě svá smysluplná využití.

Editováno 5.2.2013 16:46
 
Nahoru Odpovědět 5.2.2013 16:45
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
Kit:

Používat C jen kvůli výkonu není opodstatněné, protože rychlost programů v C, C++, Javě, C#, Lispu, Forthu a dalších jazycích je dnes již srovnatelná. Programovací pohodlí je však u C nejhorší. Jazyk se musí vybrat vždy podle typu aplikace.

Nahoru Odpovědět 5.2.2013 16:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
David Jančík [sczdavos]:

Já to myslel tak, že třeba vyloženě pro složitější výpočty je vhodné použít tvůj oblíbený Fortran. Pro multiplatformní okení aplikaci bych zase dal přednost Javě. Céčko a C++ na roboty a šváby. Lisp na sondy atd. Podle toho, kde se přímo nabízí, že se pro to hodí.

Nahoru Odpovědět  +1 5.2.2013 16:50
Čím více času dostaneš, tím méně ho máš.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Almion
Kit:

Je tam jiná možnost. Lisp se vejde do 30 KB, Forth dokonce do 6 KB včetně editoru. Ovšem pokud ti C vyhovuje...

Nahoru Odpovědět 5.2.2013 16:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Jančík [sczdavos]
Lukáš Hruda (Luckin):

Osobně si myslim že čistý C je pro začátek uplně nejlepší jazyk. Jednak je dost nízkoúrovňovej na to abys pochopil základní věci jako jak funguje správa paměti (což by měl znát, nehledě na to v jakym jazyce programuje a je to docela základní věc) a nemusel v něm hned na začátku řešit třídy a objekty, když ani nemáš páru co to je, jednak když pochopíš pointery, je pak mnohem jednodušší pochopit referenční typy ve vyšších jazicích, zároveň je dost jednocuchý na naučení, protože v něm neni moc co se učit narozdíl od Javy, C# nebo nedejbože C++ (ačkoliv C++ mam nejradši, uznávam že pro začátek je to asi nejhorší C-based jazyk vůbec). Netvrdim že by měl u C zůstat a programovat v něm, ale myslim že začít s nim je lepší než se vrhnout rovnou na OOP jazyk. Když se učíš základy, tak stejně o OOP nic nevíš a nepoužíváš ho, dokud se nenaučíš základní prvky procedurálního programování. Nehledě na to, že po C mu bude učení se Javy nebo C# připadat mnohem jednodušší. Neni dobrý když začátečník hned zezačátku nabyde dojmu, že programování je jednoduchý a Java i C# podle mě nabytí tohohle dojmu docela podporujou, protože programy který začátečník dělá v nich jednoduchý budou, v C tolik ne. Předevšim mnohem líp pochopí jak to vevnitř funguje (např. řetězce jako pole znaků a podobně).

 
Nahoru Odpovědět  +1 5.2.2013 16:52
Avatar
Зайчик
Člen
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Зайчик:

já osobně si myslím že z C přejít na C++ a poté kamkoli je ideální... v C se pochopí základy programování v C++ když se pobere OOP tak pak už si můžeš vybrat cokoli :D

Nahoru Odpovědět 5.2.2013 16:55
Коммунизм для нашего будущего!
Avatar
Kit
Redaktor
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Kit:

Pro naučení je nejjednodušší Lisp. Dobře je na tom i Python. C od počátku vytváří v programátorovi špatné návyky, kterých se v OOP těžko zbavuje. Java a C# jsou dost rozsáhlé a proto se o dost pomaleji učí, ale určitě bych jim dal přednost před C.

Nahoru Odpovědět 5.2.2013 16:58
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Lukáš Hruda (Luckin)
David Jančík [sczdavos]:

Já v Céčku taky dělal. Donutí tě to myslet, protože tam spousta fcí není a ty nevíš, jak přidat knihovny, tak si je prostě napíšeš. Tím se učíš algoritmizaci. Ovšem stejně tak můžeš začínat i v C#. Ten tě ovšem vybízí, používat již vestavěné metody a ty mu podlehneš a pak nevíš jak bys ji nakódil, protože jsi to neřešil. Kdežto céčko, to tě k tomu dokope. S tím souhlasím. Ale nevyděl bych to jako problém začít dělat v Javě. Pokud chceš, tak si budeš ty metody zkoušet dělat vlastní. Sám si občas taky napíšu vlastní metodu, protože potřebuju, aby fungovala trochu jinak. A když nevím jak funguje a ani mě to nenapadá, podívám se do dokumentace, kde je rozepsaná její struktura a najdeš i mnoho dalších metod, které dělají to samé. Takže se můžeš inspirovat.
Java tě zas dokope k OOP. To pak vidíš, jak když někdo na to přejde z Céčka všechen kód cpe do jedné třídy. Což pak není moc hezké. Znám i také, co se jim OOP nelíbí a na třídy si nehrajou. Ale takhle bych nechtěl dělat ani menší prográmek, natož projekt :D OOP je nádherná věc a já ji uznávám.

Editováno 5.2.2013 17:02
Nahoru Odpovědět 5.2.2013 16:59
Čím více času dostaneš, tím méně ho máš.
Avatar
Odpovídá na Зайчик
Lukáš Hruda (Luckin):

Ten přechod přes C++ neni uplně nutnej, pokud v něm nechceš vážně programovat, jelikož C++ je kure...y složitý, a je toho v něm hodně co se musíš naučit, tak pokud v něm neplánuješ do budoucna dělat, je možná lepší ho přeskočit a dělat rovnou třeba v Javě (aspoň nebudeš mít někdy pocit, že ti v tej Javě něco chybí :D ). Já v C++ dělam, protože se mi dost líbí, v čistim C bych už nedělal.

 
Nahoru Odpovědět  +1 5.2.2013 17:03
Avatar
Kit
Redaktor
Avatar
Odpovídá na Зайчик
Kit:

Z C++ bych se OOP učit nechtěl. Opravdu je lepší C++ přeskočit.

Nahoru Odpovědět 5.2.2013 17:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Jančík [sczdavos]
Lukáš Hruda (Luckin):

Já uznávam svobodu jazyka kterej tě nechá si vybrat jestli programovat objektově, strukturově nebo kombinovaně. Já v C++ běžně se snažim psát co nejvíc objektově ale časem vždycky narazim na něco co se mi prostě nelíbí dávat do jakýchkoliv zbytečných tříd, tak to rozepíšu do samostatných funkcí. Většinou mam tak 80 - 90 % kódu objektově a zbytek strukturově. To s těma knihovnama dělam pořád, občas si prostě napíšu svojí, tak, aby mě vyhovovala :) .

 
Nahoru Odpovědět  +1 5.2.2013 17:15
Avatar
Kit
Redaktor
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Kit:

Jenže v C++ se moc objektově programovat nedá.

Nahoru Odpovědět 5.2.2013 17:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

Proč se v C++ moc objektově programovat nedá?

Nahoru Odpovědět 5.2.2013 17:28
:)
Avatar
Odpovídá na Kit
Lukáš Hruda (Luckin):

Podle mě dá, jenom tě k tomu přímo nenutí a neni to v něm tak přirozený.

 
Nahoru Odpovědět  +1 5.2.2013 17:29
Avatar
lcet.m
Člen
Avatar
Odpovídá na David Jančík [sczdavos]
lcet.m:

Jojo, rozumím. Jen mám takovou zkušenost, že pár běžných jazyků jsem celkem rychle dokázal na nějakou základní úroveň vstřebat, ale to OC jsem prostě nedal ani trošku - dali si hodně záležet, aby syntaxe nepřipomínala nic jiného :)

Jen nesouhlasím s tím přístupem ke knížkám - vůbec není podle mě na škodu si vzít nějakou podrobnější knihu o technologii, kterou se chci vážně zabývat, a pročíst ji +- celou, od začátku do konce. Není problém přeskočit co počítáš, že se v případě potřeby doučíš později, ale výhoda je, že se mnohdy dočteš o věcech, které bys jinak jaksi ani nevěděl že máš hledat.

Myslím, že cíl není zaklapnout knihu na poslední straně a říct si "super, umim to", ale spíš když narazíš na nějaký problém, tak si řekneš "na to by se možná dalo použí to ono, co jsem o tom onehdá četl"

 
Nahoru Odpovědět  +1 5.2.2013 17:29
Avatar
Kit
Redaktor
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Kit:

Asi jsi ještě nepřičichl ke skutečně objektovému programování, protože v C++ se dá dělat jen omezená část OOP.

Nahoru Odpovědět 5.2.2013 17:34
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

To platí pro téměř každý programovací jazyk, i pro javu a C#.

Nahoru Odpovědět 5.2.2013 17:37
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

Ale jistě uznáš, že Java a C# mají k OOP mnohem blíž než C++. To už raději Lisp, ten umí OOP lépe než C++, i když je přes 50 let starý.

Nahoru Odpovědět 5.2.2013 17:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Lukáš Hruda (Luckin):

Možná, ale C++ má třeba podle mě mnohem rozsáhlejší možnosti práce s třídama než Java a C# dohromady.

  • Mocnější šablony, konverzní funkce na cokoliv, konverzní konstruktory, přetěžování všech operátorů, všeobecně možnost vytvořit třídu tak, aby se s ní dalo zacházet jako se základním datovým typem, přičemž takové zacházení je ve výsledku imho mnohem logičtější než neustálé volání metod, vícenásobná dědičnost, kterou jsem použil jenom jednou a zjistil jsem, že je to skvělá věc.

Jenom člověk tohle všechno musí znát a ovládat.

EDIT: Nevím jak je to v C# ale v C++ jsou rozhodně mnohem větší možnosti co se týče konstruktorů při dědění než v Javě.

Editováno 5.2.2013 17:57
 
Nahoru Odpovědět 5.2.2013 17:55
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

C++ umí v tomhle směru téměř to samé, jako java/c#, v některých ohledech je na tom dokonce i líp.

Nahoru Odpovědět  +1 5.2.2013 18:11
:)
Avatar
Almion
Člen
Avatar
Odpovídá na Kit
Almion:

V Lispu jsem nedělal, takže se rád nechám poučit. Řekněme pokud mám problém (například ono zpracování obrazu v kameře), mám k němu matematicky optimální algoritmus a znám čip, takže vím, jak ho v C (nebo asm) nejlépe implementovat. Pokud to napíšu v Lispu, můžu očekávat stejně rychlý výsledek? S tím, že 10x pomalejší považuji za velký rozdíl, protože zpracovávat 7fps a 70fps na běžící lince rozdíl opravdu je. Tomu se mi nechce věřit.

 
Nahoru Odpovědět 6.2.2013 10:39
Avatar
Kit
Redaktor
Avatar
Odpovídá na Almion
Kit:

10× pomalejší by to mohlo být třeba v PHP, ale Lisp na tom bude mnohem lépe. Tipuji tak o 20 % pomalejší. Pokud by to bylo o víc, tak se do Lispu dopíše v C jádro té kritické funkce, např. DCT a zbytek se píše v Lispu.

Lisp je kompilovaný jazyk, který se tváří jako interpretr. Tedy vlastně JIT kompilátor.

Nahoru Odpovědět 6.2.2013 10:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Almion
Člen
Avatar
Almion:

Ok, v tomhle už se asi shodneme a že už si rozumíme - také nejsem takový masochista, abych psal velké projekty přímo v C, ale právě ono psaní jádra nejkritičtějších funkcí považuji obvykle za nutné.

 
Nahoru Odpovědět 6.2.2013 11:01
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Almion
David Čápka:

I ta Java nevycházela špatně, možná by to stálo za pokus.

Nahoru Odpovědět 6.2.2013 11:06
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
nextx
Neregistrovaný
Avatar
nextx:

priste se na takovy topicy vykaslu :D jen to zpusobuje hadky co je lepsi :D priste se zeptam jestli windowsy nebo linuxy XD

ps: dekuji kite a davosi za radu jdu se ucit javu :-)

 
Nahoru Odpovědět 6.2.2013 11:23
Avatar
Kit
Redaktor
Avatar
Odpovídá na nextx
Kit:

Kde vidíš jakou hádku?

Java ve výkonnostních testech obvykle vychází velmi dobře.

Nahoru Odpovědět 6.2.2013 11:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
nextx
Neregistrovaný
Avatar
nextx:

hadaji se jaky jazyk je lepsi :D
C# , C++, C atd... :D a vyhlasil jsem tim spor ktery jazyk je ted lepsi :D

 
Nahoru Odpovědět 6.2.2013 12:13
Avatar
Kit
Redaktor
Avatar
Odpovídá na nextx
Kit:

Vždycky záleží na tom, jaký problém řešíš. Jestli je to drcení čísel, umělá inteligence, součást OS nebo okenní aplikace. Na každý se hodí něco jiného a občas se hodí je zkombinovat. Kdysi se mi podařilo u jedné úlohy zkombinovat 5 jazyků. Celý program byl v jednom zdrojáku, který měl 65 znaků.

Nahoru Odpovědět 6.2.2013 12:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
nextx
Neregistrovaný
Avatar
Odpovídá na Kit
nextx:

twl fakt? :D co to bylo za jaziky a program celkovej :D
tak tohle by se mi asi nikdy nepodarilo...
ps: pocita se za spojeni jazyku kdyz napr. v GM dam start na program v batchi?

 
Nahoru Odpovědět 6.2.2013 13:22
Avatar
Kit
Redaktor
Avatar
Odpovídá na nextx
Kit:

Už přesně nevím, ale myslím si, že jsem tam zkombinoval programy Bash, Curl, AWK, Mail a Cron. Každý z nich měl nějaké parametry, což by se dalo označit za skripty. Program každý pracovní den zpracovával nějaká data z webu, porovnal s daty předchozího dne a výsledek mi posílal SMS na mobil.

Nahoru Odpovědět 6.2.2013 14:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 41 zpráv z 41.