Thread: Java vs C++/Qt
-
16-09-2009, 15:26 #1Member
- Registered
- 23/10/07
- Location
- Turnhout
- Posts
- 102
- iTrader
- 11 (100%)
- Mentioned
- 0 Post(s)
Java vs C++/Qt
Hey,
Ik heb vorig jaar de basis van C en C++ gehad op school en dit jaar kregen we normaal de keuze tussen Java of C#. Toen dacht ik meteen aan Java, omdat ik zelf op een Mac werk en liever crossplatform ontwikkel. Nu krijgen we echter ook de mogelijkheid om voor C++/Qt te gaan, wat me niet oninteressant lijkt.
Op het eerste zicht lijkt mij dat je met Qt mooiere resultaten kunt behalen die veelal ook sneller werken, maar dat Java gemakkelijker is en er meer documentatie over beschikbaar is. Ik twijfel dus nog steeds tussen beide.
Hebben jullie enige ervaring met die twee en welke beviel jullie beter of zou je aanraden?
Alvast bedankt.
no votes
-
-
16-09-2009, 19:30 #2Member
- Registered
- 03/11/03
- Location
- Hove
- Posts
- 6,718
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/3
oh dear

krijgt ge ook nog deftige lessen "hoe develop ik in OO?" Indien ja - java (in b/4/ 'c is ook OO' - als leerling kunt ge beter java dan oo hebben omdat abstracter is, ge verkloot geen tijd met pointers e.d.). Anders - c++ en QT. Java zulde later nog genoeg moeten doen wschl.Look down at me and you see a fool; look up at me and you see a god; look straight at me and you see yourselfno votes
-
16-09-2009, 19:45 #3Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
Kan je dat op een iets coherentere manier formuleren Zombie? Ik kan namelijk niet echt volgen.
Ik zal straks ook mijn duit in het zakje doen, eerst avondschool.no votes
-
16-09-2009, 20:42 #4Member
- Registered
- 17/07/02
- Location
- Sol System
- Posts
- 10,064
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/78
Zonder te flamen kan je wel aanraden te kijken naar wat de markt vraagt. C++/Qt ligt niet goed in de markt (alle voordelen die het heeft ten spijt), Java en C# echter wel.
BTW Om uw keuze nog moeilijker te maken : ooit al gehoord van Mono? C# is dan ook nog een optie (hoewel Mono uiteraard steeds achterloopt op het .NET platform)
En om 't compleet te maken : er zijn ook Qt bindings voor Java en Mono...PSN: dJeezBE - Delicious bookmarks
Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alienoPastafarian by choiceno votes
-
16-09-2009, 20:47 #5Member
- Registered
- 03/11/03
- Location
- Hove
- Posts
- 6,718
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/3
Mono moet ge vooral aanraden aan de menzen ja, naargelang dat dat kwaliteit enzo bied <_<.
Wat ik wou zeggen: met java moet je niet zo rond al die "beperkingen" van de taal werken, pointers en dergelijke. Je kan je ipv met geheugenbeheer ed bezighouden met de architectuur.Look down at me and you see a fool; look up at me and you see a god; look straight at me and you see yourselfno votes
-
17-09-2009, 00:51 #6Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
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.Last edited by forloRn_; 17-09-2009 at 00:57.
no votes
-
17-09-2009, 03:07 #7Member
- Registered
- 17/07/02
- Location
- Wilrijk
- Posts
- 1,994
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 9/16
Naar het schijnt? amai wat een nogal sterk onderbouwde beschrijving van c#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
matsg: als ge toch een mac-type zijt dan zult ge u wel beter thuisvoelen in de java-community
no votes
-
17-09-2009, 08:33 #8Crew Member
- Registered
- 01/09/02
- Location
- Peutie
- Posts
- 7,664
- iTrader
- 0
- Mentioned
- 4 Post(s)
- Reputation
- 13/105
True.
Amen.
I beg to differ. Ik vind persoonlijk de naming conventions van Java brak. Ik heb ervaring met beiden, al heb ik de laatste 4 jaar geen Java meer aangeraakt en ik ben toch vrij tevreden van C#. Zelfs als het cross-platform moet zijn zal ik, zover mogelijk, WPF wordt bijvoorbeeld (nog) niet ondersteund door Mono, maar al de nieuwe C# 3.5 en zelfs al de 4.0 features zijn beschikbaar. De laatste versie van het boek Pro C# 2008 something something heeft zelfs een hoofdstuk aan Mono gewijd.
Python is handig, snel en eenvoudig. Ik heb nu zelf hier thuis al liggen experimenteren met Ruby (gewoon de taal, niet het oR framework) want Ruby is echt puur OO terwijl je met python nog redelijk wat procedureel kunt doen. Ik zou het niet meteen gebruiken om echte applicaties in te schrijven maar als scripting taal voor hopen helper scriptjes zijn beiden ideaal.Vanaf nu gaan we verder op BeyondGaming!
In deze thread wordt uitgelegd hoe je jouw account kan migreren.no votes
-
17-09-2009, 19:15 #9Member
- Registered
- 03/11/03
- Location
- Hove
- Posts
- 6,718
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/3
eigenlijk zou ik het gewoon moeten laten vallen bij "naar't schijnt" maar kom, 't is om een noobke wa verder te helpen é
- c# is inderdaad afgeleid van java, so fucking what? gaan we weer de retarded "omg MFC is teh only true windows programming y0" toer op? En als we dat nog verder gaan doortrekken: omg java is afgeript van c++! dat op zijn beurt van c!
- ja, er is vanalles mis met de java naming convention. maar dat maakt geen twee fucks uit zolang het consistent is in de applicatie/taal.
- vb.net is serieus minder in gebruik dan je zou denken. wij zitten in een vrij grote pro microsoft shop waar niks draait in vb.net (merk op, vba zeg ik niks van
). dus om te zeggen "ja, daar ga je zeker werk mee vinden" is misschien wat overdreven
- over python moet ik u gelijk geven, alhoewel het in mijn ogen geen voordelen heeft tegenover de andere scriptingstalen.Look down at me and you see a fool; look up at me and you see a god; look straight at me and you see yourselfno votes
-
17-09-2009, 20:17 #10Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
De pot verwijt de ketel: sterke tegenargumenten die je daar hebt. Bovendien citeer je me nog verkeerd ook. Join the debate team.

Mijn voornaamste problemen met C# staan er, voor de rest kijk ik er niet op neer, integendeel. Ook niet op Java of C++ (die doe ik zelf met veel plezier), wel op VB want dat is een stuk onleesbare rommel.
Wat die naming conventions betreft: geef me eens een goeie reden waarom methods met een hoofdletter beginnen in C#. Vind je ook niet dat dat op een constructor lijkt dan? En waarom beginnen public fields met een hoofdletter en protected/private fields met een kleine letter? Als je ze kan aanroepen is het goed, en als je ze niet kunt aanroepen, komt de compiler klagen. Voor de rest maakt die visibility toch geen lor uit zeker.no votes
-
17-09-2009, 20:27 #11Member
- Registered
- 03/11/03
- Location
- Hove
- Posts
- 6,718
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/3
Look down at me and you see a fool; look up at me and you see a god; look straight at me and you see yourselfno votes
-
17-09-2009, 21:34 #12Member
- Registered
- 17/07/02
- Location
- Wilrijk
- Posts
- 1,994
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 9/16
[QUOTE]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./QUOTE]De pot verwijt de ketel: sterke tegenargumenten die je daar hebt. Bovendien citeer je me nog verkeerd ook. Join the debate team.
Alles gewoon van Java afgekeken is typische Java-evangelisten praat, dat dan gewoon maar hier komen herhalen zonder kennis van zaken is een beetje dwaas imo.
Zal de wikipedia pagina der eens bijhalen -> C Sharp (programming language) - Wikipedia, the free encyclopedia)
Influenced by: Object Pascal, C++, Modula-3, Java, Eiffel, C
Influenced: F#, Nemerle, D, Java, Vala, Windows PowerShell
En dan vooral influenced Java, C# was een beetje een wake-up call voor Sun, der was eindelijk eens concurrentie en in de nieuwe versies van Java zitten er gewoon language-features die uit C# zijn afgekeken.
Dus als Java programmeur moogt ge blij zijn dat er C# is en andersom ook, wat gezonde competitie gaat voor ons allemaal goed zijn.
Dat lijkt mij een eindeloze discussie, iedereen gaat toch verdedigen wat hij gewoon is om te gebruikenWat die naming conventions betreft: ...no votes
-
18-09-2009, 00:34 #13Approved 9-lifer
- Registered
- 27/08/04
- Location
- Leuven
- Posts
- 930
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 11/38
Ik heb met alle drie ervaring (C++ in wat mindere mate).
C# en Java zijn inderdaad heel erg gelijkend, zijn beide nieuwere talen en zijn dus wat "moderner" dan C++, dewelke een aantal oudere moeilijker te begrijpen constructies bevat (pointers, destructors e.d.).
Als je kijkt naar de moeilijkheid, waarmee ik dan voornamelijk bedoel het aantal features, dan kan je de drie talen rangschikken van veel features (en dus moeilijker, trager om aan te leren) naar weinig:
C++
C#
Java
Java is dus waarschijnlijk het meest eenvoudige om aan te leren.
Java biedt de meeste platformonafhankelijkheid van de drie. Als je wilt programmeren voor de mac in C#, zal je de opensource implementatie Mono moeten gebruiken, dit is niet van Microsoft zelf en loopt dan ook wat achter. Voor C++ bestaan wel compilers voor mac en dit zal prima lukken.
In C++ kan je over het algemeen de snelste code schrijven. Hoewel zowel Java als C# in de buurt komen op sommige vlakken en in andere vlakken zelfs sneller zijn. Veel hangt af van hoe je test en met welke settings enzo.
Qua development kan je waarschijnlijk in C# en Java het snelst je applicatie schrijven. Hoewel ik betwijfel of het verschil met C++ noemenswaardig is eenmaal je de taal onder de knie hebt.
Qua libraries vind je voor alledrie de talen erg veel. De standaard library van C++ is echter het kleinste. De documentatie van deze libraries is het beste in Java en C#, waarbij ik die van Java iets beter vind (bij C# zijn sommige methodes te kort uitgelegd).
Je zal zelf moeten kiezen, zoek wat meer op. Uiteindelijk maakt het niet zoveel uit: eens je een van de talen onder de knie hebt is het zeer eenvoudig om een van de andere aan te leren. Alledrie de talen zijn erg populair.Last edited by NeverwinterX; 18-09-2009 at 01:20. Reason: Foutje over C# op de mac
no votes
-
18-09-2009, 00:47 #14Member
- Registered
- 17/07/02
- Location
- Wilrijk
- Posts
- 1,994
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 9/16
Bij C# kunt ge ook voor een groot deel de source code inkijken van het framework(bij C# zal je dan bij Mono moeten gaan kijken).no votes
-
18-09-2009, 00:57 #15Approved 9-lifer
- Registered
- 27/08/04
- Location
- Leuven
- Posts
- 930
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 11/38
Waar? Ik was op zoek naar de source code voor hun hashtable implementatie, maar ik vond het nergens. Ben dan maar bij Mono gaan kijken.
Edit: gevonden http://www.microsoft.com/downloads/d...displaylang=enLast edited by NeverwinterX; 18-09-2009 at 01:19.
no votes

