Po více než roce, co jsem se bavil s PHP 4 a potom s PHP 5, pociťuji nesmírnou úlevu a potěchu, že zase něco smysluplně produkuji ve skutečném programovacím jazyku, a to hned v tom nejlepším a nejmocnějším, tedy v C++.
Pokud si člověk zvykne na věci jako header files, šablony, přetěžování operátorů, properties, exceptions, thready, a mraky dalších věcí, dělá se mu z jazyků jako je PHP dokonale špatně. C++ je jazyk pro špičkové programátory, na rozdíl od Javy, C# či Object Pascalu (Delphi) pro střední programátorskou třídu či VisualBasicu pro naprosté začátečníky.
Historicky jsem programoval v assembleru, C, QBasicu, Borland Pascalu, Borland C++ pro DOS, PL/SQL v Oracle, Paradoxu a Accessu, Borland C++ pro Windows (VCL) a Sun Forte C++, Object Pascalu (Delphi), PHP 4/5, Javě a Pythonu, ale C++ je z těchto jazyků bezkonkurenčně nejmocnější. Na druhou stranu, jeho mocnost znamená pro méně nadané programátory noční můru, a spíše obtěžuje, než by jim pomáhala.
Psát v C++ aplikace, které nejsou real-time, je zřejmě zbytečné, jazyky jako je Java s garbage collector a bez řady pokročilých rysů C++ zde postačí, osobně ale stejně C++ i na takovéto projekty preferuji, možnosti tohoto jazyka nemají totiž konkurenci, a já se nerad omezuji 🙂
Programování v C++ je pro mě typicky zábavnější věcí než šéfovat pár desítkám lidí. To druhé je totiž mnohem méně intelektuálně náročné, a osobně nerad "krním". Nechci tím říci, že takové řízení lidí je snadné (dosáhnout třeba po několik let po sobě nulové fluktuace zaměstnanců, jejich vysokou motivaci, funkční controling, nezvyšované fixní platy, a pracovní dobu minimálně 10 hodin denně je skutečně již mírně složité), ale s vývojem v C++ se to nedá srovnávat. A to mám dlouhodobé zkušenosti z obou oblastí 🙂

Výhodou C++ je i to, že pokud je člověk dobře zná, je schopen programovat téměř v čemkoliv jiném na solidní úrovni během 24 hodin…
PS: pro lidi, co to nechápou, nesrovnávám zde možné a vhodné použití jazyka, ale jeho obecné možnosti, koncepci a návrh. Skuteční programátoři to pochopí 🙂
"Nejlepší programovací jazyk je C++"
by malo byt:
"Múj nejlepší programovací jazyk je C++"
programujem v Jave (J2EE) a co sa tyka vecsich enterprise aplikacii, tak Java ma urcite navrch.
Vo svete internetu je nepomerne viacej zastupena ako C++, ktore ma navrch v realtime aplikaciach, ale ani tam nie je najlepsie.
[1] pro enterprise aplikace je J2EE rozhodně lepší, ale jinak J2EE postrádá řadu rysů C++, kdybys znal oba jazyky (jako já), pochopíš... Potom z čistě intelektuálního hlediska je C++ rozhodně "nejlepší" jazyk, jeho praktické použití je již jiná věc.
Ale mluvit v případě Javy o realtime, to je sranda, ne? 😉
no ja sa učím céčko. javu pre pecečka sa nechcem a ani nebudem učit, lebo netúžim po tom aby moje programy ťahali so sebou nejaký hovadský pomalý framework. java mozno len pre mobily
Vřele souhlasím, dále bych rád řekl, že ač je již léta naším rodinným autem škoda felicie, nyní jsem došel k názoru že jablka jsou daleko lepší ovoce....
(já se nezbláznil, jen jsem se také pokusil srovnat dvě položky, z nihž každá slouží jinému účelu)
hmm, jak moc ste se setkal s PHP? evidentně moc ne, protože pokud vidím, tak jste vyjmenoval všechny rysy, které má PHP s C++ společné(např. exceptions), popř. C++ vůbec nemá (properties), a tvrdíte, že kvůli nim je PHP horší céčka
[5] nestudoval jsem nikdy PHP cíleně, pokud člověk zná třeba C++, tak se podívá na (v té době) na syntax PHP 4, a během hodiny v tom normálně dělá.. Neříkám, že kvalitně, ale dělá..
Začínám uvažovat, že bych se začal C++ učit, nechci si ale zbytečně kupovat nějakou učebnici, nebo začít číst nějaký neprofesionální seriál, který je k ničemu. Můžete mi říct jaký je Váš zdroj informací o tomto jazyku, popř. kde jste se tento jazyk naučil Vy? Díky moc.
[7] http://myego.cz/item/jak-se-naucit-profesionalne-programovat...
[5] C++ je mnohonásobně lepší než PHP (které si z céček také vzalo své). Sáhneme-li do historie, je zřejmé že PHP nebylo pro účel srovnávání s C++ stavěno. Naopak, mělo se jednat o naprosto jednoduchý preprocesor, který se ale později patrně rozšířil.
[6] Tak takto se dá učit každý programovací jazyk a nic proti tomu. Ale človek pak nemá mandát o tom jazyku cokoliv říci nebo srovnávat (mimo opravdu záklandích věcí) - je to jak přijet do cizí země kde se mluví třeba arabsky, zkusit na ně posunky - dostanete od nich najíst, napít, asi vás i ubytují... ale není to dobrý výchozí stav na to přijet dom a říct - arabština je jazyk nanic, nepopovídal jsem si o kultuře a ani o ničem jiném a neumí souvětí.
[7] Pokud už programovat umíte (tzn. víc než hello world, ale opravdu jste napsal něco netriviálního v jiném jazyce), měl by stačit nějaký tutoriál typu "c++ za 21 dní", nebrat to moc doslova, zkoušet a zkoušet. A mít k ruce referenční příručku (ať už živou v podobě člověk na telefonu/icq nebo knihu) - ideální je MSDN. Pokud jste neprogramoval nikdy, měl byste se nejprva (dle mého názoru) zaměřit na jiný jazyk... python nebo pascal bývají označovány jako dobrý start v učení se programovat (naučit se C++ je jako naučit se anglicky... ale ve chvíli kdy nedáte dohromady ani větu v češtině je to nanic, musíte umět vyjádřit CO chcete programovat, a až pak se hodí znalost jak [třeba v c++])
[10] vzhledem k tomu, že ostatní jazyky obsahují maximálně 10-60% vlastností C++, tak je to naprosto možné, člověk se jen musí naučit mírně jinou syntax, a některé věci nepoužívat, nelze to ale dělat naopak, tedy pokud někdo zná Visual Basic, C++ za 21 dní nemá šanci pochopit, a hlavně správně používat konstrukce a možnosti jazyka.
Zjevně programovat (příliš dobře) neumíte. Je to jako s autem, pokud umím řídit supersport, či super-výkonnou motorku, zvládnu i Skodovku a moped, ale naopak to neplatí.
Srovnávat C++ a PHP je nesmysl; oboje má svoje využití a účel. BlogCMS přece nebudeš psát v C++, stejně jako 3D engine nebudeš psát v PHP 🙂
[12] nikdo také nemluví o použití jazyka, ale o jeho "čistotě" a koncepci
C++ je nejlepší jazyk pro lidi, co si jsou hrát 🙂. Pro lidi kteří chtějí psát dokonale nepřehledný kód šablonovým metaprogramovím, pro odvážné lidi co se nebojí vícenásobné a virtuální dědičnosti (POZN:virtuální je následek vícenásobné🙂. Pro lidi, co mají čas ladit utelké pointery a Access Violation (Segmentation Fault) je neděsí. Občas z toho leze rychlý kód.
Ale stejná aplikace v C#/Javě je pětkrát rychleji hotová a obsahuje desetkrát méně chyb. Pomaleji startuje a žere trochu víc paměti. Jenže gigo paměti se dá koupit za X-denní plat programátora, kde X je hodně malé číslo.
A co takhle psát v Adě? To je jazyk ze kterého jsou amatéři dokonale nešťastní (silná typová kontrola...), ale profíci na obrovitých projektech si ji nemůžou vynachválit.
[14] hezký komentář 🙂 Existují ale i projekty, kde záleží na milisekundách zpoždění (třeba obchodování s akciemi na burze, když těch CP je kolem 50.000 a každý má L1 a L2 hloubku trhu), a toto zpracovat jinak než v C++ prostě nelze, Java a podobné věcičky na to výkonově nestačí.. Takový program v C++ je pochopitelně těžší odladit, chce to top programátory, a když se do toho přimíchá ještě pár (desítek) konkurujících si threadů, a člověk něco zapomene zamčít, to je poté teprve paráda na ladění 😉
java a realtime:
to je tak, kup si dost paměti,
udělej gc, když je burza zavřená a už nikdy se nemusíš podívat na to, co umí neplatnej pointer. Pokud si myslíš, že JIT je pomalejší nez cečkovej kód (počítám, že o grafiku ti moc nejde, spíš o db, transakce a bussiness logiku), tak na bytekod pusť gcc a zkompiluj si to předem.
Že po c++ zvládneš do 24h cokoliv není pravda, u perlu budeš tápat stejně jako novic od VB.
Na závěr řecnická: podíl c++ na sf.net projektech klesá, že by lidé nakonec našli lepší zábavu a využití času než hodiny honit memory-leaky?
[16] k té řečnické otázce: co je to memory-leak? 😉 C++ je pro top programátory, pokud někdo neumí pracovat s pamětí a pointery, budiž, potřebuje zjevně Javu či C#, ale jsou i lidé, kteří s C++, přes jeho mocnost (=složitost) problém nemají 🙂
Srovnávat C++ s Javou nebo dokonce s C# je jako porovnávat gazika s linkolnem, oboje jsou taky auta a gáz má dokonce redukci a naviják, někdy taky kompresor 😉 Ovšem nemá synchronizovanou převodovku, ani nemá klimatizaci a navíc mu chybí ten skvělej CD přehrávač s měničem na 12CD ...
Srovnáváte nesrovnatelné, protože Gáz je auto pro opravdový chlapi (😛) co uměj chtnout za řadící páku a maj bicáky ns kroucení volantem bez posilovače.
S Javou nebo C# se vozíte na vymoženostech, které podporujou rapidní vývoj aplikací a nemusíte se šťourat v detailech které vás zrdžují od dosažení cíle... C++ je silně nízkoúrovňové s našroubovaným OOP, Java je o kus dál, C# je (dovolim si tvrdit, Javaři odpusťe) ještě o kousek napřed. Zkušenosti mám nejen s zmiňovanými jazyky, ale s mnohem víc a nejvíc mi vyhovuje C#, ale každému jeho Poděbrady.
[18] pokud tomu člověk rozumí, tak jej právě možnosti C++ přibližují dosažení cíle 🙂
IMHO by pro programátora měl být nejlepší ten jazyk, kterým zvládne daný problém vyřešit co nejefektivněji (tzn. za splnění všech požadavků, bez chyb a s minimem námahy). C++ je pravda asi nejuniverzálnější programovací jazyk, ale pro malý web proste použijes PHP nebo Javu (a nebo něco jiného), ne C++. Na real-time aplikaci zase pujdeš s C++.
Taky bych si netroufl tvrdit, že když umíš programovat v C++ jsi lepší programátor. Pokuď budu šéf a budu chtít naprogramovat právě ten web, tak pro mě budeš stejně dobry programátor ty s C++ jako maník, co to naprogramuje v PHPku za stejnou dobu.