Dan moet je toch eens beter leren lezen, want dat heb ik gewoon niet gezegd. Ik zei zelfs al dat bijvoorbeeld games/simulaties logischerwijs in C++ (voor een groot deel) geschreven worden, omdat elke frame per seconde daar telt. Ook zei ik eerder al dat oude software die uitgebreid moet worden (COBOL shit bijvoorbeeld) ook niet zondermeer 'even' herschreven worden in Java.
Maar het gros van de developers op aarde maakt al geen NIEUWE systemen meer. Ga dan niet jouw ervaringen projecteren op de groep developers als zijnde 'de waarheid' want die is echt wel even anders, hoe hard jij ook wilt gaan roepen dat wat jij meemaakt toch echt erop lijkt alsof iedereen dat meemaakt.
Gast, wat is jouw probleem zeg? Ik zeg LETTERLIJK dat nieuwe software over het algemeen in Java of C# ontwikkeld wordt. Dat er ik-weet-niet-hoeveel programmeurs oude software BEHEREN zal me een zorg wezen, ik zal nooit software beheren. Ik wil nieuwe dingen bedenken, geen bugs fixen in andermans zooi.
Hoe kun je een discussie houden wanneer jij niet kunt hebben dat iemand anders een andere mening heeft en wellicht verstand van zaken heeft? Of denk jij dat ik geen reet verstand heb van waarover ik praat?
Nee, het punt is dat je doet alsof IK geen reet verstand heb van waarover ik praat. Ik heb in de 6 jaar werkervaring die ik heb bij tientallen verschillende klanten van ons minstens evenzoveel projecten gedaan, die allemaal 'nieuwe' maatsoftware waren, en eigenlijk allemaal in Java of .Net ontwikkeld werden. Onze klanten zitten in een flink aantal marktsegmenten (HR, eCommerce, Biometrics), en daar zie ik overal vraag naar Java en C# developers. Wij doen ook wel eens wat C++ werk, maar dat zijn over het algemeen simpele kleine dingetjes.
Dus, als jij ervaring hebt met grote commerciele systemen (multi-tier, backend, frontoffice en website) waarbij het systeem op dit moment from scratch in C++ geschreven wordt hoor ik het graag. Ik geloof best dat jij weet waar je het over hebt, maar ik hoop dat jij ook het respect kunt hebben om wat anderen aandragen niet meteen als volslagen onzin af te doen.
Leuke theorie, maar in de praktijk werkt dit toch iets anders. De verschillende C++ libraries die je bij het ontwikkelen van software nodig hebt zijn vaak niet uniform, (MFC, *braak*), en C++ nodigt veel meer dan bijvoorbeeld Java uit tot gegochel met de prepocessors en pointers bijvoorbeeld. Een goeie programmeur zal in theorie natuurlijk in een willekeurige taal prachtige code schrijven, maar in de praktijk zijn de meeste programmeurs lui (of hebben tenminste een deadline). Daarbij komt ook nog eens dat dingen als garbage collection gewoon een hoop tijd schelen, en het op zich best fijn is dat je een nette exception krijgt in plaats van een coredump op 't moment dat je buiten je array aan 't schrijven bent.
Mja, wat is doorsnee programmeur. Ik wil niet arrogant overkomen, maar de doorsnee programmeur op .NET is echt niet zo productief bezig, omdat deze zich veelal meer laat verleiden door het spenderen van veel tijd in designers en andere tijdvreters en minder in het goed opzetten van code en het schrijven van slimme classes.
Je doet nu alsof een .Net programmeur gemiddeld genomen minder nadenkt over z'n uiteindelijke oplossing dan een C++ programmeur.
Ik ben het wel met je eens dat beginners wellicht iets meer uit .net krijgen dan uit C++. Maar beginners moeten zich geen illusies maken: ze zijn in alle talen een beginner en dat heeft niets met de taal te maken, het zijn beginnende programmeurs, dus prutsen ze zich een slag in de rondte. Dat is niet erg, daar zijn het beginners voor. Maar programmeren heeft niet zoveel met talen an sig te maken, dus welke taal je kiest is eigenlijk irrelevant. Vind je de taal WEL relevant, dan beschouw je de programmeur als een menselijke code generator. Nu is het echter zo dat een digitale code generator het er meestal wat beter vanaf brengt, dus om nu in te gaan zetten op het noeste typewerk, dat lijkt me niet erg slim.

De taal zelf is niet enorm relevant, het SOORT taal wel. Java of C# zijn een andere categorie dan C++. C++ is een beetje als een oude raceauto. Je moet er een hoop aan knutselen, maar dan gaat 'ie retehard. C# is meer een Opel. Iedereen kan zo'n ding gebruiken en besturen, en voor normaal gebruik gaat 'ie hard zat. Je mag hier toch niet harder dan 120.
Maar een C++ programmeur kent ook zn libraries.
En onderhoudbaarheid heeft geen ruk met taalkeuze te maken! Ik vind het overigens knap dat mensen die aan nieuwe dingen sleutelen, een voorstelling kunnen maken hoe onderhoudbaar .NET code is tov. hoe onderhoudbaar C++ code is. Immers, wanneer zijn deze experts op het gebied van onderhoudbaarheid dan bezig met een project dat een grote applicatie van versie x naar versie y migreert? (en waarbij de software al een tijdje bestaat)
Anekdote: Wij hebben bij een klant te maken met een datatransport programma dat in C++ is geschreven waar regelmatig onderhoud op gepleegd moet worden (niet door mij). Ik heb die code wel eens onder ogen gehad, en zit me, ondanks redelijk wat C++ ervaring te hebben, behoorlijk achter m'n oren te krabben. De klant is nu bezig met een Java versie.
Feit blijft dat Java (en C#) als talen simpeler zijn. Je kunt er ook een enorme rotzooi van maken (en trust me, ik heb ook complete Java rotzooi gezien), maar je ziet enorm simpel wat de code doet, je hoeft niet te gaan zitten nadenken over tyische pointer truukjes of ranzige operator overloads (persoonlijk vind ik als je als platform met dingen als cout<< aankomt mensen uitnodigt operator overloading voor de meest ranzige dingen te gebruiken)
Hint: erg belangrijk bij onderhoudbaarheid is dat je begrijpt wat de code doet. Een transactional graph versioner in C# is voor jou abracadabra als jij niet weet wat een graph versioner is en hoe transacties werken op graphs van objects in-memory.
Tja. Ik denk dat als je veel in Java doet, je Java code leesbaarder vindt dan C++ code, en vice versa. Maar Java code is weldegelijker simpeler te lezen dankzei de afwezigheid van pointers en preprocessing spul.
Waarom niet? Omdat jij dat vindt? Ik zie allerlei mensen uitspraken doen mbt .NET en andere VM based platforms mbt onderhoudbaarheid, tijd die het kost om software te schrijven en wat al niet...
Als je daar dan geen kanttekeningen bij mag plaatsen, mij best, maar hou dan geen discussie.
Kanttekeningen plaatsen prima, maar je beweert dat coden in C++ net zo snel is als in Java. Toch grappig dat de 'markt' dat niet zo ziet.
[
Voor 50% gewijzigd door
Hydra op 26-10-2007 12:27
]