System.out.println("Programování");
Moderátoři: Sadako, sevencreature
System.out.println("Programování");
Jednou tu už sice podobné téma bylo, ale už ho nemůžu najít, k dohledání je jen nějaký odstřihlý cancour. A myslím, že by byla škoda, kdyby se tomuto nevěnovala pražádná pozornost...
Zkoušíte programovat? Programovali jste a (ne)bavilo vás to? Živíte se tím? Baví/trápí vás to ve škole? Anebo si zkoušíte na internetu publikovat svoje stránky?
No, spíš trochu víc z reality - Tabulka na webu pořád vypadá jinak, než jak chcete, aby vypadala? Váš výtvor chodí pomalu? Anebo vůbec nechodí a nemáte tucha proč? ClassCastException a Type Mismatch vídáte častěji než je zdrávo? Anebo máte jen nějakou zajímavost, která stojí za to, aby byla sdělena? Sem s tím
...anebo třeba s tím "kolik jazyků umíš, tolikrát jsi člověkem"
Zkoušíte programovat? Programovali jste a (ne)bavilo vás to? Živíte se tím? Baví/trápí vás to ve škole? Anebo si zkoušíte na internetu publikovat svoje stránky?
No, spíš trochu víc z reality - Tabulka na webu pořád vypadá jinak, než jak chcete, aby vypadala? Váš výtvor chodí pomalu? Anebo vůbec nechodí a nemáte tucha proč? ClassCastException a Type Mismatch vídáte častěji než je zdrávo? Anebo máte jen nějakou zajímavost, která stojí za to, aby byla sdělena? Sem s tím
...anebo třeba s tím "kolik jazyků umíš, tolikrát jsi člověkem"
- sevencreature
- Sigil Team
- Příspěvky: 7394
- Registrován: 26.9.2005 1:24
- Bydliště: Země
- Kontaktovat uživatele:
V Javě se programuje moc hezky Pokud vím, tak Python je taky fajn (obzvlášť pro specifické aplikace).
.NET je ale .NET - přijde mi, že je nějak moc populární... Každopádně Microsoftí diskusní a support fóra jsou naprosto parádní věc
.NET je ale .NET - přijde mi, že je nějak moc populární... Každopádně Microsoftí diskusní a support fóra jsou naprosto parádní věc
Eat all your school, stay in milk, drink your teeth, don't do sleep and get eight hours of drug.
Bodkin: Ti drsňáci jsou profesionálové, o kterých mluvil drake
Cammaris: no, s C# bych tak jistý nebyl... Vyniká marketingem, pár vychytávkami, co současná Java nemá, ale jinak je to Java v bledě modrém. Ovšem pouze navenek... Java je dnes mnohem etablovanější, což s sebou nese takový samovzestupný prvek - spousta third party projektů a hlavně open sourceovost a komunitní přístup. Myslím, že tímhle akcie dost stoupají. Nemluvě o vážně široké šíři využití...
Ale jsem sám zvědavý, jak se to vše vyvine - vyhlídky jsou poměrně vyrovnané. MS má značku a .net podporu v masovém OS Windows (bude to tak stále?). Java pak v OS (tentokrát ve smyslu Open Source), komunitě a současné i budoucí šíři záběru...
______
BTW Tady nelze nezmínit sunovskou šoumeskou vizi o budoucnosti it světa
V představách Sunu tak bude mít absolutně každá věc svojí IP adresu, podle které bude jednoznačně identifikovatelná. Vaše brýle budou mít IP adresu, co kdybyste je náhodou někde zapomněli. Vaše bíle spodky budou mít IP adresu, aby mohla pračka před zapnutím vyhodnotit jestli jste je náhodou omylem nesmíchali s barevným prádlem. Vše bude samozřejmě řízeno softwarem napsaným v Jave. ((c) Dagy)
Cammaris: no, s C# bych tak jistý nebyl... Vyniká marketingem, pár vychytávkami, co současná Java nemá, ale jinak je to Java v bledě modrém. Ovšem pouze navenek... Java je dnes mnohem etablovanější, což s sebou nese takový samovzestupný prvek - spousta third party projektů a hlavně open sourceovost a komunitní přístup. Myslím, že tímhle akcie dost stoupají. Nemluvě o vážně široké šíři využití...
Ale jsem sám zvědavý, jak se to vše vyvine - vyhlídky jsou poměrně vyrovnané. MS má značku a .net podporu v masovém OS Windows (bude to tak stále?). Java pak v OS (tentokrát ve smyslu Open Source), komunitě a současné i budoucí šíři záběru...
______
BTW Tady nelze nezmínit sunovskou šoumeskou vizi o budoucnosti it světa
V představách Sunu tak bude mít absolutně každá věc svojí IP adresu, podle které bude jednoznačně identifikovatelná. Vaše brýle budou mít IP adresu, co kdybyste je náhodou někde zapomněli. Vaše bíle spodky budou mít IP adresu, aby mohla pračka před zapnutím vyhodnotit jestli jste je náhodou omylem nesmíchali s barevným prádlem. Vše bude samozřejmě řízeno softwarem napsaným v Jave. ((c) Dagy)
- Yoshi Snipo
- Sigilan
- Příspěvky: 245
- Registrován: 4.10.2005 6:05
- Bydliště: Stormrage Barrow Dens
- Kontaktovat uživatele:
http://www.fiit.stuba.sk ... sem chodim na skolu (odpoved na otazku o programovani odbor Informatika ^^ )
End of hope! - End of love! - End of time, the rest is silence! ~ Nightwish
Nejsem teda žádnej programátor, ještě když jsem měl počítač na programování tak jsem se někde dočetl, že Cčko a Java jsou skoro stejný, jenže Java neni optimalizovaná, takže složitější programy pod ní běží klidně i 40x pomaleji než v C++...Vlasák píše: ...ale jinak je to Java v bledě modrém...
Co na tom pravdy nevim, Javu sem nikdy nepoužil
- drake127
- Sigil Team
- Příspěvky: 2358
- Registrován: 24.9.2005 22:28
- Bydliště: Jihlava, Czech Republic
- Kontaktovat uživatele:
To není o optimalizaci, ale o jiném přístupu ke kodu - Java se kompiluje až při spuštění, proto je během spouštění aplikac napsané v Javě čas jít na kafe. Toto se myslím projevuje na výkonu nejvíc. Vlastnostem jako jsou výjimky, správu paměti bych přiznal jen řádově menší vliv na rychlost.
Stejná nebo alespoň podobná situace je s .NETem, takže tento souboj nemá vítěze. Připočtěte si k tomu nutnost Frameworku, který vám kod za běhu překládá a jste s pamětí zase o kousek jinde.
Tyto interpretované jazyky nikdy nedosáhnou rychlostí na nativní Win32 aplikace (napsané třeba v C), ovšem práce s jejím vývojem a chyby způsobené větší odpovědností ne vždy toto vyváží.
Stejná nebo alespoň podobná situace je s .NETem, takže tento souboj nemá vítěze. Připočtěte si k tomu nutnost Frameworku, který vám kod za běhu překládá a jste s pamětí zase o kousek jinde.
Tyto interpretované jazyky nikdy nedosáhnou rychlostí na nativní Win32 aplikace (napsané třeba v C), ovšem práce s jejím vývojem a chyby způsobené větší odpovědností ne vždy toto vyváží.
Žralok, který štěká, nekouše.
krokodile: java a c++ mají hodně podobnou základní syntaxi, c++ může být podobně pseudoobjektové jako java, ale jinak to je nebe a dudy, jak říkáš - jde o jazyky s diametrálně jinou filozofií. Mluvíme-li tu o faktoru rychlosti hotového programu, stručně asi takhle:
Programy v c++ jsou kompilované, zatímco v javě interpretované. Z toho plyne, že jeden a tentýž program javy lze použít kdekoliv, kde je javové prostředí - od od procesoru, přes operační systém až samotný hardware (klasikou nepřitaženou za vlasy je jeden program, který funduje na windows, unixu, macos, mobilu, palmu i xyztého pda).
Takže obé má své nevýhody a výhody - programy c++ se musí v lepším případě rekompilovat (v horším přepisovat, v ještě horším zcela nově navrhnout, v nejhorším zbastlit s koncým prostředím, hw a vším dohromady, aby si to vzájemně rozumělo) pro každý OS/HW, ale z toho plyne i větší rychlost - vše již "připravené" pro tu koncovou konfiguraci zařízení je připravené předem.
Zatímco programy javy jsou přenositelné, ale nejsou tedy "připravené" pro koncové zařízení - protože se předem a priori "neví", na čem se to bude spouštět. To znamená, že při vykonávání programu je potřebná nějaká práce navíc - tzv. virtuální stroj (VM) zdrojový kód interpretuje. To znamená, že zdrojový kód programu v javě je kódem pro virtuální počítač a je teprve přechroustán na kód cílového zařízení. Nicméně nutno říct, že takhle primitivně už to dnes není - nové VM provádějí optimalizace na úrovni kódu i překladu (JIT - určité pasáže jsou přeloženy do instrukcí koncového zařízení a neinterpretují se pořád dokola...), máme tu sporné JNI (Java Native Interface), které dovoluje kombinovat Javu s C (což je sice rychlejší, ale ne tak, jak by se zdálo; ale hlavně to odstřeluje x dalších předností javy, takže je to spíš krok vzad i přes tu rychlost).
Na zpomalení javovského programu mají pak vliv i další vychytávky (správa paměti, implementace multithreadingu, bezpečnost, atd. atd.), ale to už by bylo na obšírnější povídání.
Ale abych se začal nořit zase trochu výš - mluvíme-li tady čistě a pouze v kontextu rychlosti programu, ta je sama o sobě je dost relativní a záleží na konkrétním programu. Nevím, zda je dnes v něčem C++ 40x pomalejší, java se dost zrychlila, ale v něčem jistě bude C++ mít velký (a zřejmě nedosažitelný) náskok. V některé aplikaci je C++ rychlejší, jinde je to nastejno a onehde zase vede Java.
A teď ještě víš... Java v bledě modrém (navenek) je C# a ne C++. C# je jazyk, který si bere Javovskou ideu virtuálního stroje a interpretovaného kódu. Syntaxe je s Javou velmi, velmi podobná - ještě víc než mezi Javou a C++... A prostě je to na první pohled vůbec taková "druhá" Java... Jenže, jak píšu v předchozím příspěvku, druhá Java to není - nejen z toho, čím to jazyk je, ale jakou má šíři záběru, zavedenost v oblasti a ve věcech kolem...
EDIT: ad drake... no, a C++ zase nikdy nebude jako assembler To je prostě o tom, jak říkáš, co člověk chce a hledá. Vytrikovaný assembler může být bleskově rychlý, ale dělat v něm něco na desktop jako třeba v C++, bude peklo, pakliže člověk bude schopen to vůbec dodělat. A podobně větší desktopové a hlavně a zejména enterprise věci zase překračují hranice zvládnutelnosti v C++...
Programy v c++ jsou kompilované, zatímco v javě interpretované. Z toho plyne, že jeden a tentýž program javy lze použít kdekoliv, kde je javové prostředí - od od procesoru, přes operační systém až samotný hardware (klasikou nepřitaženou za vlasy je jeden program, který funduje na windows, unixu, macos, mobilu, palmu i xyztého pda).
Takže obé má své nevýhody a výhody - programy c++ se musí v lepším případě rekompilovat (v horším přepisovat, v ještě horším zcela nově navrhnout, v nejhorším zbastlit s koncým prostředím, hw a vším dohromady, aby si to vzájemně rozumělo) pro každý OS/HW, ale z toho plyne i větší rychlost - vše již "připravené" pro tu koncovou konfiguraci zařízení je připravené předem.
Zatímco programy javy jsou přenositelné, ale nejsou tedy "připravené" pro koncové zařízení - protože se předem a priori "neví", na čem se to bude spouštět. To znamená, že při vykonávání programu je potřebná nějaká práce navíc - tzv. virtuální stroj (VM) zdrojový kód interpretuje. To znamená, že zdrojový kód programu v javě je kódem pro virtuální počítač a je teprve přechroustán na kód cílového zařízení. Nicméně nutno říct, že takhle primitivně už to dnes není - nové VM provádějí optimalizace na úrovni kódu i překladu (JIT - určité pasáže jsou přeloženy do instrukcí koncového zařízení a neinterpretují se pořád dokola...), máme tu sporné JNI (Java Native Interface), které dovoluje kombinovat Javu s C (což je sice rychlejší, ale ne tak, jak by se zdálo; ale hlavně to odstřeluje x dalších předností javy, takže je to spíš krok vzad i přes tu rychlost).
Na zpomalení javovského programu mají pak vliv i další vychytávky (správa paměti, implementace multithreadingu, bezpečnost, atd. atd.), ale to už by bylo na obšírnější povídání.
Ale abych se začal nořit zase trochu výš - mluvíme-li tady čistě a pouze v kontextu rychlosti programu, ta je sama o sobě je dost relativní a záleží na konkrétním programu. Nevím, zda je dnes v něčem C++ 40x pomalejší, java se dost zrychlila, ale v něčem jistě bude C++ mít velký (a zřejmě nedosažitelný) náskok. V některé aplikaci je C++ rychlejší, jinde je to nastejno a onehde zase vede Java.
A teď ještě víš... Java v bledě modrém (navenek) je C# a ne C++. C# je jazyk, který si bere Javovskou ideu virtuálního stroje a interpretovaného kódu. Syntaxe je s Javou velmi, velmi podobná - ještě víc než mezi Javou a C++... A prostě je to na první pohled vůbec taková "druhá" Java... Jenže, jak píšu v předchozím příspěvku, druhá Java to není - nejen z toho, čím to jazyk je, ale jakou má šíři záběru, zavedenost v oblasti a ve věcech kolem...
EDIT: ad drake... no, a C++ zase nikdy nebude jako assembler To je prostě o tom, jak říkáš, co člověk chce a hledá. Vytrikovaný assembler může být bleskově rychlý, ale dělat v něm něco na desktop jako třeba v C++, bude peklo, pakliže člověk bude schopen to vůbec dodělat. A podobně větší desktopové a hlavně a zejména enterprise věci zase překračují hranice zvládnutelnosti v C++...
- drake127
- Sigil Team
- Příspěvky: 2358
- Registrován: 24.9.2005 22:28
- Bydliště: Jihlava, Czech Republic
- Kontaktovat uživatele:
Vlasák: No vždyť vidíš, že máme na věc velmi podobný názor. Já jen nevidím jako super výhodu tu přenositelnost, kterou v C++ (ano snaha je ale nutná) dosáhneš taky a kompilaci beru jako něco, co se stejně musí provést a je lepší ji dělat jednou při vydání a ne při každém spuštění.
Naopak vidím jako výhodu objektový model, bezpečnější správu paměti, vychytnější výjimky.
Já C++ neobhajuju, neodvažuju se hádat jeho budoucnost. Je otázka, jestli bude vždy nutnost co nejrychlejšího kódu (s ohledem na jeho chybovost a pracnost vytvoření - tady si najdeš svůj assembler) nebo budeme mít počítače tak rychlé, že se v tom kompilace algoritmu ztratí.
V C++ programuji, protože se mi jazyk líbí svým přístupem "programátor má vždycky pravdu" - "tohle číslo je pointer na okno, rozumíš?, takže k němu laskavě přičti 5 a zkus to okno otevřít." Je to ovšem *velmi* dvojsečná zbraň.
Naopak vidím jako výhodu objektový model, bezpečnější správu paměti, vychytnější výjimky.
Já C++ neobhajuju, neodvažuju se hádat jeho budoucnost. Je otázka, jestli bude vždy nutnost co nejrychlejšího kódu (s ohledem na jeho chybovost a pracnost vytvoření - tady si najdeš svůj assembler) nebo budeme mít počítače tak rychlé, že se v tom kompilace algoritmu ztratí.
V C++ programuji, protože se mi jazyk líbí svým přístupem "programátor má vždycky pravdu" - "tohle číslo je pointer na okno, rozumíš?, takže k němu laskavě přičti 5 a zkus to okno otevřít." Je to ovšem *velmi* dvojsečná zbraň.
Žralok, který štěká, nekouše.
- durana
- Sigilan
- Příspěvky: 281
- Registrován: 28.4.2006 20:08
- Bydliště: Earth:/Europe/ Slovakia/Martin
- Kontaktovat uživatele:
Ja som sa trochu ucil programovat, a najviac ma asi bavilo C++.
Najviac ma stvalo ze narozdiel od inych programov to skompiluje uplne kazdu hovadinu, a clovek to nemusi dlho opravovat, ale az po spusteni si vsimne ze to je totalne zabugovane. Ale ja som na preciznost nikdy nebol a radsej budem 2 hodiny opravovat bugy ako 2 hodiny opravovat chyby kym mi nieco vobec spusti. Ako programator stojim za h***o, ale radsej zabugovany program ako ziadny .
Najviac ma stvalo ze narozdiel od inych programov to skompiluje uplne kazdu hovadinu, a clovek to nemusi dlho opravovat, ale az po spusteni si vsimne ze to je totalne zabugovane. Ale ja som na preciznost nikdy nebol a radsej budem 2 hodiny opravovat bugy ako 2 hodiny opravovat chyby kym mi nieco vobec spusti. Ako programator stojim za h***o, ale radsej zabugovany program ako ziadny .
And if that Mocking Bird don’t sing and that ring don’t shine
I’ma break that birdie’s neck, I’ll go back to the Jeweler
Who sold it to ya
And make him eat every carat
Don’t fuck with dad.
I’ma break that birdie’s neck, I’ll go back to the Jeweler
Who sold it to ya
And make him eat every carat
Don’t fuck with dad.
drake127: co se týče přenositelnosti, to je dost široké téma k diskuzi. Já jí za výhodu a docela velkou beru - ať jde o práci s I/O, text, vlákna, GUI, bezpečnost a dalších xyz důležitějších věcí a minorit v podobě accesibility, internacionalizace atp. Vše je totéž, ať v pc bzučí unixová záležitost nebo windows - člověku je putna, jaký souborový systém a vůbec systém běží. Nemusím se hrabat s knihovnou posix vláken a jak je co v čem implementované. Tak, jak to je jednou, to pojede v x-konfiguracích bez nutnosti odkrývat lecjaké pandořiny skříňky. To by byla soft-přenositelnost.
Přenositelnost mezi hw je už zajímavější. Tady už to není takový křišťál. Při programování midletu pro mobil už člověk nemůže prdnout to, co napsal s vychytaným GUI na pc Ale základní konstrukce zůstávají stejné, protože micro edition Javy si bere podmnožinu standardní platformy. A pakliže se člověk drží specifikace (samozřejmě v micro zařízeních si výrobci přinášejí své platformy, aby šlo operovat s telefonními seznamy, bluetoothem a dalšími vychytávkami, co ovládá zrovna ta daná krabička), pak to na každém mobilu, pda, lednici a co_já_vím_na _čem pojede stejně bez jakýchkoli zásahů
Rozhodně to výhoda je - záleží pak na pohledu a situaci, jak moc velká.
Sám jsem zvědavý, jaká budoucnost C++ bude. Ono se dá těžko něco říct, protože to je dost promotané s existujícími OS... A teprve se změnou jejich koncepce se asi s C++ něco začne dít...
Je pravda, že rychlost počítačů nahrává konceptu těžit z interpretovaných programů - náklady na výkonost jsou u nich v podstatě fixní a výkon jde stále dopředu.
Otázka je taky nakonec v hw... současný koncept pc architektury je v podstatě přes 50 let starý vynález, který dnešním potřebám vyhovuje stále méně. Myšlenka "objektového" hw taky není novum, ale bohužel je stále daleko v pozadí (a přitom stačilo málo, aby před lety zvolili pro produkci tu experimentálnější verzi 386 )...
Přenositelnost mezi hw je už zajímavější. Tady už to není takový křišťál. Při programování midletu pro mobil už člověk nemůže prdnout to, co napsal s vychytaným GUI na pc Ale základní konstrukce zůstávají stejné, protože micro edition Javy si bere podmnožinu standardní platformy. A pakliže se člověk drží specifikace (samozřejmě v micro zařízeních si výrobci přinášejí své platformy, aby šlo operovat s telefonními seznamy, bluetoothem a dalšími vychytávkami, co ovládá zrovna ta daná krabička), pak to na každém mobilu, pda, lednici a co_já_vím_na _čem pojede stejně bez jakýchkoli zásahů
Rozhodně to výhoda je - záleží pak na pohledu a situaci, jak moc velká.
Sám jsem zvědavý, jaká budoucnost C++ bude. Ono se dá těžko něco říct, protože to je dost promotané s existujícími OS... A teprve se změnou jejich koncepce se asi s C++ něco začne dít...
Je pravda, že rychlost počítačů nahrává konceptu těžit z interpretovaných programů - náklady na výkonost jsou u nich v podstatě fixní a výkon jde stále dopředu.
Otázka je taky nakonec v hw... současný koncept pc architektury je v podstatě přes 50 let starý vynález, který dnešním potřebám vyhovuje stále méně. Myšlenka "objektového" hw taky není novum, ale bohužel je stále daleko v pozadí (a přitom stačilo málo, aby před lety zvolili pro produkci tu experimentálnější verzi 386 )...