Als je rekening houdt met je inzetbaarheid op de arbeidsmarkt zou je voor VB .NET, C# of Java moeten kiezen, in die volgorde.
Als je voor C++ gaat, zijn je opties minder talrijk: waarschijnlijk legacy apps onderhouden of embedded systems programmeren. Die taal is gewoon niet aantrekkelijk meer voor de toepassingen die tegenwoordig het populairst zijn: webapplicaties. Het ding bestaat al sinds 1979 en buiten een hoopje containers en algoritmes is er nog altijd geen deftige standard library. Hoe is dat nu mogelijk? Reflection, dat tegenwoordig zo populair is in de frameworkjes, heeft het ook al niet.
De toekomst van Qt zie ik ook somber in: wie gaat dat nog gebruiken om desktopapplicaties te schrijven als je met VB/C#/Java hetzelfde kan doen in pakweg 20% van de tijd, met veel minder (geheugengerelateerde) bugs. Bovendien gaan ze die zaken in de toekomst toch declaratief maken, zodat je geen duizenden lijnen code moet schrijven om GUI te maken.
Ik ben tegenwoordig ook weer wat intensiever met C++ bezig, enerzijds omdat ik op het werk effectief zo'n legacy app moet onderhouden, en anderzijds omdat ik me wat meer met het programmeren met spelletjes wil bezighouden. Mijn voornaamste probleem met C++ is dat de taal zo complex en uitgebreid is, terwijl dat niet altijd tot betere code leidt. Voor die templates moet ik altijd eventjes gaan zitten, impliciete conversies, expliciete conversies, typedefs en operator overloading maken de code onleesbaar, en het allocaten/deallocaten van geheugen is allesbehalve evident. Smart pointers okee, maar dan stop je nog wat meer van die <>-rommel in je code, zodat je weer wat gaat typedeffen. Initializer lists: hadden ze dat nu niet wat eleganter kunnen oplossen, op wat trekt dat nu zeg? Je hebt drie fucking statements nodig om een int aan een string te plakken! En die iterators zijn in pakweg Java toch ook een stuk eenvoudiger dan dat begin() en end()-gezeik.
Voor de rest amuseer ik me er trouwens wel mee.
VB.NET raak ik van mijn leven niet aan: ik wil programmeren, geen fucking boeken zitten typen tot ik zulke forsbollen op mijn vingers heb.
Met C# heb ik ook nog niet gewerkt, en ik ben het niet van plan ook niet. Naar het schijnt hebben ze alles gewoon van Java afgekeken en er wat verbeteringen aan aangebracht. Tot daar alles okee, maar dat het enkel voor Windows geschikt is, staat me helemaal niet aan (jaja, Mono), en ze hebben er toch weer die operator overloading ingestopt zeker! En wat is dat met die hoofdletters allemaal? Die naming conventions van Java waren toch goed?
Java, tot slot. Ja, een verademing ten opzichte van C++ omdat je inderdaad meer kan focussen op het design en minder met de taal zelf moet vechten. Er zitten hier en daar wat design flaws in en hun backwards compatibility mogen ze ondertussen wel eens gaan ditchen. Er is zodanig veel wildgroei van frameworks zodat je door de bomen het bos niet meer ziet. Ze zijn die taal ook weer zo complex aan het maken dat we binnenkort weer met een nieuwe C++ zitten. Closures? Ik ben eerlijk gezegd tijdens het programmeren nog nooit een probleem tegengekomen waarvan ik dacht: "hmm, hiervoor zouden closures wel handig kunnen zijn."
Ik heb al goede dingen gehoord over Python, dus als ik nog eens een taal leer, zal het die zijn.
Wat ik hier neergepend heb, is ook niet bepaald coherent te noemen, maar ik moet dan ook dringend mijn bed in kruipen. Je moet zelfde de voordelen en nadelen van elke taal eens afwegen en kijken of je plezier dan wel werkzekerheid verkiest. En de meningen van de mensen boven en onder mij ook in beschouwing nemen, natuurlijk.