Platy C/C++ vs Java vs .Net

expert

Platy C/C++ vs Java vs .Net
« kdy: 08. 09. 2014, 18:44:31 »
Zajímalo by mě, proč Java a .Net programátoři vydělávají obecně víc než C/C++ programatoři (zdroj: http://www.mesec.cz/clanky/mzdy-v-it-o-kolik-si-rict-na-pracovnim-pohovoru/ ), vzhledem k tomu, že:

  • na C/C++ programování jsou obecně potřeba větši znalosti
  • v C/C++ se na rozdíl o Javy neudělá nic samo (memory management apod.)
  • C/C++ má blíže k OS a CPU
  • v C/C++ se na rozdíl od Javy dělají mission-critical programy (operační systémy, zdravotnictví, letectví, průmysl apod.)
  • prostě u C/C++ musí člověk víc přemýšlet, znát a umět
« Poslední změna: 08. 09. 2014, 20:49:33 od Petr Krčmář »


Kremovy Kolacek

Re:platy C/C++ vs Java vs .Net
« Odpověď #1 kdy: 08. 09. 2014, 18:53:14 »
Slozitejsi technologie != prakticka vyuzitelnost.

Nebudu platit team programatoru co to budou patlat v C++ mesic, kdyz rozdil v rychlosti programu je zanedbatelny a v Jave to maji ti dobri za tyden.

v

Re:platy C/C++ vs Java vs .Net
« Odpověď #2 kdy: 08. 09. 2014, 18:57:18 »
v Javě a C# se dělají takové ty velké byznys softwary, banky a a podobně, moc peněz všude okolo, ty fyzicky (tj. selže to a někdo umře) kritické věci jsou vyvíjeny pod BDSM procesy v okleštěných dialektech (např. MISRA), proč jsou tam platy takové jaké jsou netuším

v

Re:platy C/C++ vs Java vs .Net
« Odpověď #3 kdy: 08. 09. 2014, 19:01:43 »
Slozitejsi technologie != prakticka vyuzitelnost.

váš příspěvek se mi zdá mimo téma, řekl bych, že tazateli jde o situace, kdy je praktická využitelnost podmíněna použitím oné "složitější" technologie (např. embedded)

Juro

Re:platy C/C++ vs Java vs .Net
« Odpověď #4 kdy: 08. 09. 2014, 19:10:52 »
Nemoze to suvisiet s tym, ze cast C/C++ programatorov tvoria rozni automatizeri a podobni programatori, ktori maju vo vseobecnosti (z dorazom na "vo vseobecnosti") nizsie platy?


Ivan

Re:platy C/C++ vs Java vs .Net
« Odpověď #5 kdy: 08. 09. 2014, 19:17:08 »
Java je ted desne v kurzu. Ten jazyk byl zamyslen jak COBOL pro 21. stoleti a taky se tak pouziva. Kazda vetsi instituce ted do Javy neco prepisuje. Navic nekdo nakukal top-managerum, ze Java programatori se daji nakupovat jako housky na krame, a vsichni Java programatori jsou navzajem nahraditelni. "Coz pry u ostatnich technologii neni pravda". Malokdo uz ale dodava, ze nad jednoduchym jazykem vznikla spousta frameworku, ktere delaji i primitivnich uloh slozity problem, a ze jen mala cast Java programatoru doopravdy tusi co ty frameworky delaji, jak se spravne pouzivaji a jak se resi problemy, kdyz to nefunguje.

Takze to nakonec dopada tak, ze vyvoj v Jave je vlaste porad levnejsi nez v tom COBOLu.


Re:platy C/C++ vs Java vs .Net
« Odpověď #6 kdy: 08. 09. 2014, 19:25:30 »
Java je v kurzu pro aplikace, kde se točí velké peníze - jazyk je jednodušší než C++, když se k tomu přičtou knihovny, frameworky, různé nástroje, tak je Java výrazně složitější než C++. a Javistů s přehledem není zas až tolik vzhledem k rozšíření Javy. V C++ se dělají kritičtější aplikace, nicméně je to už prostředí, kde je vyšší konkurence, nebo jsou menší marže - C++ je potřeba výrazně méně, aplikací, které potřebují C++ a kde se C++ používá je méně. Navíc tady v ČR není moc firem, které by dělali HiTech v C++ a tomu odpovídají i platy.

OMG

Re:platy C/C++ vs Java vs .Net
« Odpověď #7 kdy: 08. 09. 2014, 19:30:40 »
To, že korelace mezi obtížností oboru a platy jeho absolventů je velmi volná je snad všeobecně známo. Proč by to zrovna v IT mělo být jinak a mělo by to být "spravedlivé"?

Základní důvod, proč se za vývoj v javě bere více je ten, že se v javě dělají velké projekty pro velké a bohaté firmy za velké peníze - tak zbyde i více na programátory.
Další důvod je ten, že ten trh s projekty, které se typicky dělají v javě rostl rychleji než ostatní trhy a prací programátorů - a tak bylo potřeba přetahovat/přitahovat/přeplácet lidi odjinud (i z toho C/C++).

Také je potřeba si uvědomit, že zdaleka ne každý programátor C/C++ dělá nějaké mission-critical aplikace. Do průměru se počítají i ti, co programují dálkové ovládání k domácí elektronice.

Další prvek je ten, že právě ty technické věci, které se píší v C/C++ jsou navázány na různé průmyslové podniky, které jsou různě po republice. Což znamená venkovské platy. Zatímco ty java projekty pro banky, telco operátory, a velké korporace se píší za platy pražské a brněnské.

javaman

Re:platy C/C++ vs Java vs .Net
« Odpověď #8 kdy: 08. 09. 2014, 19:38:55 »
Vždycky mě pobaví, když si někdo obecně myslí, že spravovat si sám paměť je něco cool. V Javě se staví systémy, které by v C++ ani nikdo nepostavil. Hrát si s pamětí je věc jedna, ale dělat složitou architkturu věc druhá. Hraní s pamětí se naučí skoro každý, ale kvalitně dělat v Javě ne. Proto to stojí tolik. Kvalita něco stojí.

v

Re:platy C/C++ vs Java vs .Net
« Odpověď #9 kdy: 08. 09. 2014, 19:55:05 »
Vždycky mě pobaví, když si někdo obecně myslí, že spravovat si sám paměť je něco cool. V Javě se staví systémy, které by v C++ ani nikdo nepostavil. Hrát si s pamětí je věc jedna, ale dělat složitou architkturu věc druhá. Hraní s pamětí se naučí skoro každý, ale kvalitně dělat v Javě ne. Proto to stojí tolik. Kvalita něco stojí.

překvapivě v C/C++ se staví systémy, které by nikoho rozumného ani nenapadlo dělat v Javě (obligátní řízení nebo třeba JVM), zoufale vám chybí perspektiva

OMG

Re:platy C/C++ vs Java vs .Net
« Odpověď #10 kdy: 08. 09. 2014, 20:05:49 »
Vždycky mě pobaví, když si někdo obecně myslí, že spravovat si sám paměť je něco cool. V Javě se staví systémy, které by v C++ ani nikdo nepostavil. Hrát si s pamětí je věc jedna, ale dělat složitou architkturu věc druhá. Hraní s pamětí se naučí skoro každý, ale kvalitně dělat v Javě ne. Proto to stojí tolik. Kvalita něco stojí.

Ano, někdo si opravdu myslí, že spravovat si sám paměť je hrozně cool a je to to jediné správné programátorské řemeslo. A není to pravda, není to vůbec cool. Ale je to těžké - hodně těžké - proto různými typy chyb při práci s pamětí trpí naprostá většina C/C++ programů. A bylo to tak i v době, kdy programátor nebylo řemeslo, co se dá zvládnout stylem pokus-omyl samouka. V době, kdy nikdo nezpochyňoval, že programátor potřebuje vysokoškolský titul.
Je to tak těžké, že v mnoha skutečně mission-critical programech je zakázána dynamická alokace paměti. Opravdu bezchybně pracovat s pamětí se totiž nenaučí každý, ale naopak pouze minimum těch nejlepších - a na to se nedá spoléhat, že všichni v týmu jsou tací.

Ano, v javě je hodně těžké udělat správný objektový návrh - tak aby ten kód byl maximálně udržovatelný, znovupoužitelný atd. To rozhodně velmi těžké - ale to je především věc analytiků a architektů. A to jsou přesně ty pozice "javistů", které tu statistiku táhnout hodně nahoru.

Ale že by ty peníze byly za kvalitu? Hmm, to opravdu nevím. Drtivá většina těch draze placených banko/telco systémů, které jsem viděl, měla architekturu ukrutně zprasenou. Když jsem se ptal po autorovi, abych ho obrazně řečeno vzal klackem, tak už tam většinou nepracoval, protože si právě na tomhle projektu udělal jméno a šel tu svou "kvalitu" prodávat do ještě naleštěnější firmy ještě za víc. Čest výjimkám, které dokáží správně navrhnout architekturu obřího systému. Samozřejmě nevím přesně kolik kdo bral, ale z obecného povědomí jsem přesvědčen, že ti kvalitní rozhodně nebrali více než ti patlalové :-)

Platy javistů jsou vyšší v celém spektru - od testerů, přes juniory/seniory až po architekty, analytiky a IT manažery - čili i u těch, kteří žádnou extra kvalitu nemají a kteří umí na obřím systému akorát pracovat na dílčích úkolech, ale v životě by ho nenavrhli, tak aby fungoval aspoň "zpraseně".

Re:platy C/C++ vs Java vs .Net
« Odpověď #11 kdy: 08. 09. 2014, 20:25:34 »
Výdělek nezávisí na tom, co je potřeba znát a umět, ale je to prostě výsledek střetu nabídky a poptávky. Kdybyste to porovnával podle platů, byly by programátoři v C/C++ retardované opice ve srovnání s těmi, kteří musí znát a umět
  • kopnout do míče pravou nohou
  • kopnout do míče levou nohou
  • trefit míč hlavou
  • trefit protihráče čímkoli

Jinak pokud by musel při použití C/C++ programátor víc přemýšlet, znát a umět, a výsledkem by byl stejný program, jako program napsaný v nějakém "jednodušším" jazyce, byla by to pro C/C++ špatná vizitka, nemyslíte? Takže by možná stálo za to přehodnotit, jak je to s implikacemi v tom vašem seznamu.

OMG

Re:platy C/C++ vs Java vs .Net
« Odpověď #12 kdy: 08. 09. 2014, 20:27:40 »
jsou vyvíjeny pod BDSM procesy
Představuji si vývojářský BDSM proces jako teamleadera s maskou a bičíkem a programátory svázané :-)
Asi jsi myslel DSDM, že?

Juro

Re:platy C/C++ vs Java vs .Net
« Odpověď #13 kdy: 08. 09. 2014, 20:31:09 »
Platy javistů jsou vyšší v celém spektru - od testerů, přes juniory/seniory až po architekty, analytiky a IT manažery - čili i u těch, kteří žádnou extra kvalitu nemají a kteří umí na obřím systému akorát pracovat na dílčích úkolech, ale v životě by ho nenavrhli, tak aby fungoval aspoň "zpraseně".

S tvrdenim, ze platy javistov su v celom spektre vyssie sa da teda polemizovat, lebo pozicie, ktore boli menovane do toho spektra nepatria. Firmy naplnuju poziciu tester a nie "java tester" alebo "c++ tester". Ci to implementuju programatori v jednom alebo druhom jazyku (pripadne v oboch) skonci to u tych istych ludi. Podobne analytik je proste clovek, ktoreho ulohou je podchytit poziadavky a spravit specifikaciu, nie je to javista (odhliadnuc od buzzwordu programator/analytik).  Rovnako, ako nie je javista IT manazer, ktory ma mat celkom ine kvality a znalosti.

OMG

Re:platy C/C++ vs Java vs .Net
« Odpověď #14 kdy: 08. 09. 2014, 20:34:00 »
Jinak pokud by musel při použití C/C++ programátor víc přemýšlet, znát a umět, a výsledkem by byl stejný program, jako program napsaný v nějakém "jednodušším" jazyce, byla by to pro C/C++ špatná vizitka, nemyslíte?
A ono to tak v některých (mnoha) typech aplikací přesně je. Právě proto se C/C++ přestalo používat pro vývoj těch věcí, které se dneska buší v javě.
A používá se pouze tam, kde mám nějaké speciální požadavky jako přímou práci s HW, minimální paměťová náročnost, různé druhy ověřitelnosti zkompilovaného kódu.
C++ tady byl dávno před javou a C jako takové dokonce o mnoho desítek let. To přece není žádná špatná vizitka a ostuda, že něco novějšího je lepší pro velkou část SW projektů.