System.out.println("Programování");

Aneb místo k posezení a příjemnému rozhovoru nad jedem dle chuti.

Moderátoři: Sadako, sevencreature

Uživatelský avatar
Vlasák
Sigilan
Příspěvky: 3017
Registrován: 26.9.2005 7:56
Bydliště: Praha
Kontaktovat uživatele:

System.out.println("Programování");

Příspěvek od Vlasák »

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" ;-)
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
Uživatelský avatar
drake127
Sigil Team
Příspěvky: 2358
Registrován: 24.9.2005 22:28
Bydliště: Jihlava, Czech Republic
Kontaktovat uživatele:

Příspěvek od drake127 »

No, ClassCastException nebo type Mismatch vidí jen ti amatéři, kteří se bojí o svůj zadek. My profesionálové ujíždíme na access violation nebo ještě lépe modré obrazovce (ale to už jenom ti profíci mezi profíky).
Žralok, který štěká, nekouše.
Uživatelský avatar
Vlasák
Sigilan
Příspěvky: 3017
Registrován: 26.9.2005 7:56
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Vlasák »

drake127: ano, to je ta sorta profesionálů, která potřebuje pointer snad i k cestě na záchod ;-)
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
Uživatelský avatar
Vlasák
Sigilan
Příspěvky: 3017
Registrován: 26.9.2005 7:56
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Vlasák »

Každopádně na programování v C/C++ pod XP mě vždycky fascinuje, když člověk v kódu nechá nějakou pitominku a XP mu po spuštění hodí hlášku o odeslání problému chybovému centru MS ;-)
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
Uživatelský avatar
Bodkin
Sigilan
Příspěvky: 474
Registrován: 5.12.2005 0:32
Bydliště: Soukromá krypta

Příspěvek od Bodkin »

Někdo nám loni ve škole vykládal, že jsou dva druhy programátorů. Pečliví a drsní. Pečlivý si všechno nachystá, alokuje&dealokuje pamět a nemá problém (no i když :lol: ) Drsný nic takového nedělá... A pak se divý.
SKOČTE ŠIPKOU DO MUŠLE, JEZTE KAŠI S MRKVÍ.
JENOM JÁ JSEM NAŽIVU; VY JSTE VŠICHNI MRTVÍ.
Uživatelský avatar
sevencreature
Sigil Team
Příspěvky: 7394
Registrován: 26.9.2005 1:24
Bydliště: Země
Kontaktovat uživatele:

Příspěvek od sevencreature »

V Javě se programuje moc hezky :-P Pokud vím, tak Python je taky fajn (obzvlášť pro specifické aplikace).

.NET je ale .NET :lol: :lol: :lol: - 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 :-P
Eat all your school, stay in milk, drink your teeth, don't do sleep and get eight hours of drug.
Uživatelský avatar
Cammaris
Sigilan
Příspěvky: 433
Registrován: 30.9.2005 12:57
Bydliště: Brdská vrchovina
Kontaktovat uživatele:

Příspěvek od Cammaris »

C# je zřejmě nejperspektivnější jazyk do budoucna.(škoda že nemám zatim čas se to učit)
Uživatelský avatar
Vlasák
Sigilan
Příspěvky: 3017
Registrován: 26.9.2005 7:56
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Vlasák »

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)
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
Uživatelský avatar
Yoshi Snipo
Sigilan
Příspěvky: 245
Registrován: 4.10.2005 6:05
Bydliště: Stormrage Barrow Dens
Kontaktovat uživatele:

Příspěvek od Yoshi Snipo »

http://www.fiit.stuba.sk ... sem chodim na skolu (odpoved na otazku o programovani :-D odbor Informatika ^^ )
End of hope! - End of love! - End of time, the rest is silence! ~ Nightwish
Uživatelský avatar
krokodile
Sigilan
Příspěvky: 129
Registrován: 2.12.2005 10:34

Příspěvek od krokodile »

Vlasák píše: ...ale jinak je to Java v bledě modrém...
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++...

Co na tom pravdy nevim, Javu sem nikdy nepoužil
Uživatelský avatar
drake127
Sigil Team
Příspěvky: 2358
Registrován: 24.9.2005 22:28
Bydliště: Jihlava, Czech Republic
Kontaktovat uživatele:

Příspěvek od drake127 »

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áží.
Žralok, který štěká, nekouše.
Uživatelský avatar
Vlasák
Sigilan
Příspěvky: 3017
Registrován: 26.9.2005 7:56
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Vlasák »

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++...
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
Uživatelský avatar
drake127
Sigil Team
Příspěvky: 2358
Registrován: 24.9.2005 22:28
Bydliště: Jihlava, Czech Republic
Kontaktovat uživatele:

Příspěvek od drake127 »

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ň.
Žralok, který štěká, nekouše.
Uživatelský avatar
durana
Sigilan
Příspěvky: 281
Registrován: 28.4.2006 20:08
Bydliště: Earth:/Europe/ Slovakia/Martin
Kontaktovat uživatele:

Příspěvek od durana »

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 :-D .
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.
Uživatelský avatar
Vlasák
Sigilan
Příspěvky: 3017
Registrován: 26.9.2005 7:56
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Vlasák »

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 ;-))...
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
Odpovědět

Zpět na „Měděná čelenka“