Page 1 of 3 123 Last

Thread: Java vs C++/Qt

  1. #1

    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  

  2. #2
    Bubbling Zombie's Avatar
    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 yourself
    no votes  

  3. #3
    forloRn_'s Avatar
    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  

  4. #4
    dJeez's Avatar
    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 alieno
    Pastafarian by choice
    no votes  

  5. #5
    Bubbling Zombie's Avatar
    Registered
    03/11/03
    Location
    Hove
    Posts
    6,718
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/3
    Quote Originally Posted by dJeez View Post
    This quote is hidden because you are ignoring this member. Show
    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...
    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 yourself
    no votes  

  6. #6
    forloRn_'s Avatar
    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  

  7. #7
    Moto's Avatar
    Registered
    17/07/02
    Location
    Wilrijk
    Posts
    1,994
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    9/16
    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
    Naar het schijnt? amai wat een nogal sterk onderbouwde beschrijving van c#

    matsg: als ge toch een mac-type zijt dan zult ge u wel beter thuisvoelen in de java-community
    no votes  

  8. #8
    Tyfius's Avatar
    Registered
    01/09/02
    Location
    Peutie
    Posts
    7,664
    iTrader
    0
    Mentioned
    4 Post(s)
    Reputation
    13/105
    Quote Originally Posted by forloRn_ View Post
    This quote is hidden because you are ignoring this member. Show
    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.
    True.
    Quote Originally Posted by forloRn_ View Post
    This quote is hidden because you are ignoring this member. Show
    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.
    Amen.
    Quote Originally Posted by forloRn_ View Post
    This quote is hidden because you are ignoring this member. Show
    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?
    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.
    Quote Originally Posted by forloRn_ View Post
    This quote is hidden because you are ignoring this member. Show
    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.
    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  

  9. #9
    Bubbling Zombie's Avatar
    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 yourself
    no votes  

  10. #10
    forloRn_'s Avatar
    Registered
    23/11/03
    Location
    Landeurp
    Posts
    1,791
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    10/17
    Quote Originally Posted by Moto View Post
    This quote is hidden because you are ignoring this member. Show
    Naar het schijnt? amai wat een nogal sterk onderbouwde beschrijving van c#

    matsg: als ge toch een mac-type zijt dan zult ge u wel beter thuisvoelen in de java-community
    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  

  11. #11
    Bubbling Zombie's Avatar
    Registered
    03/11/03
    Location
    Hove
    Posts
    6,718
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/3
    Quote Originally Posted by forloRn_ View Post
    This quote is hidden because you are ignoring this member. Show
    Voor de rest maakt die visibility toch geen lor uit zeker.
    als ge er van uit gaat dat iedereen zich even hard gaat houden aan de OO principes is dat dik in orde.

    Maar met zo'n uitspraken twijfel ik daaraan.
    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 yourself
    no votes  

  12. #12
    Moto's Avatar
    Registered
    17/07/02
    Location
    Wilrijk
    Posts
    1,994
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    9/16
    De pot verwijt de ketel: sterke tegenargumenten die je daar hebt. Bovendien citeer je me nog verkeerd ook. Join the debate team.
    [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]

    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.

    Wat die naming conventions betreft: ...
    Dat lijkt mij een eindeloze discussie, iedereen gaat toch verdedigen wat hij gewoon is om te gebruiken
    no votes  

  13. #13
    NeverwinterX's Avatar
    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  

  14. #14
    Moto's Avatar
    Registered
    17/07/02
    Location
    Wilrijk
    Posts
    1,994
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    9/16
    (bij C# zal je dan bij Mono moeten gaan kijken).
    Bij C# kunt ge ook voor een groot deel de source code inkijken van het framework
    no votes  

  15. #15
    NeverwinterX's Avatar
    Registered
    27/08/04
    Location
    Leuven
    Posts
    930
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    11/38
    Quote Originally Posted by Moto View Post
    This quote is hidden because you are ignoring this member. Show
    Bij C# kunt ge ook voor een groot deel de source code inkijken van het framework
    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=en
    Last edited by NeverwinterX; 18-09-2009 at 01:19.
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in