Archief - [Discussie] Java vs. C++

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Curahee Q

Legacy Member
Aangezien ik in de examens zit en toch wel wat andere leesvoer wil hebben de komende week dan nen boek Chemie zou ik graag nu en dan is een discussie willen opstarten.

Er ontstaan altijd random discussies in topics die daar meestal niets mee te maken hebben. Dus als eerste zou ik graag willen weten wat jullie zowat de voordelen/nadelen van java vs. c++ en andersom offcourse.


Ikzelf ben begonnen met Java als eerste taal, lekker objectgeorienteerd. Een voordeel van deze taal die iedereen al wel kent is "Write once, run anywhere". En dat vind ik echt wel een groot voordeel tegenover C++, zeker omdat ik zowel op windows als op linux werk. GUI programmeren in Java is ook weer niet zo moeilijk dan tegenover C++.

Aan de andere kant is het voor beginners misschien iets gemakkelijker om met C++ te beginnen. Bestanden inlezen en dergelijke is in C++ toch pakken gemakkelijker als in java. Al kan je in Java wel zelf je class schrijven zodat dit even gemakkelijk wordt, al is dit voor een beginner natuurlijk niet evident. Ook is C++ op elk besturingssysteem iet of wat anders (qua headerfiles scheelt dat vooral zeker?). Ook pointers zijn natuurlijk een pain in the ass voor beginners.

Als ik moet kiezen tussen de 2 zou ik toch altijd voor Java kiezen. Ik denk niet dat deze qua snelheid dezer dagen nog moet onderdaan voor C++. Ik vind Java precies gewoon gestructureerder in elkaar zitten dan C++, maar dat kan ook aan mijn programmeerstijl liggen.

Graag jullie meningen.

[EDIT]
Zie net dat ik hem in webdesign heb geplaatst. Kan deze verhuist worden?

Tyfius

Legacy Member
Ik plaats Java en C# hier even op hetzelfde niveau. Mijn persoonlijke voorkeur gaat uit naar C# daar ik het iets makkelijker en logischer vindt maar dat is naast de kwestie.

Ik zou elke beginner aanraden met C# of Java te beginnen. Je hebt veel meer sneller resultaat en het laat minder ruimte voor idiote rookie mistakes die je in C++ of C veel sneller hebt. Vaak wordt aangehaald dat C of C++ de basis is en dat het nadien veel makkelijker is om een andere taal te leren. Misschien is dat ergens wel waar maar het is absoluut geen noodzaak om deze talen te kennen. Je kan je hele professionele leven programmeren zonder ooit C of C++ kennis nodig te hebben.

Echter, ik ben van mening dat programmeren een passie moet zijn, anders ga je jezelf nooit kunnen uitdagen. En dan kom je al snel bij andere talen uit. Je kan mijns inzien perfect eerst een hogere taal leren om dan pas naar C of C++ over te schakelen als je maar de interesse hebt en de inspanning wil doen. Het kennen van verschillende talen is ook altijd handig omdat elke taal wel bepaalde positieve aspecten heeft die een andere niet of in mindere mate heeft. En je begrijpt sneller de achterliggende delen van je C# of Java framework.

C en C++ zijn nog steeds sneller dan C# of Java, wat ergens logisch is, maar op een hedendaagse desktop PC is dat verwaarloosbaar. Kritieke aspecten van een applicatie kan je wel best nog in C of C++ schrijven aangezien dat ook iets meer portable is. Ik denk bijvoorbeeld aan een bestandssysteem of netwerk communicatie laag. Als je dat in C (in C++ moet je met een aantal dingen rekening houden) schrijft kan je dat vrij snel en eenvoudig implementeren in Java, C#, C of C++. Als je zoiets in Java schrijft en morgen de vraag krijgt om een C# alternatief te schrijven kan dat wel is tegen vallen.

Kortom, begin als beginner met een hogere taal. Daarmee kan je perfect nagaan of programmeren je wel ligt, heel veel dingen maken die snel een duidelijk resultaat geven en als je echt interesse vertoont dan komende de andere talen, tips en tricks vanzelf wel.

adrianhates

Legacy Member
het gaat dus duidelijk over c++ en niet c# ( je haalt anders wel sterke punten aan om direct c# te verkiezen. Net zoals Java kan je C# gebruiken voor webdevelopment en c++ dacht ik niet )

Java geniet mijn voorkeur omdat ik er meer ervaring bij heb. Ik vind trouwens Java ook super easy inzake bestandsbeheer

Tyfius

Legacy Member
adrianhates zei:
het gaat dus duidelijk over c++ en niet c# ( je haalt anders wel sterke punten aan om direct c# te verkiezen. Net zoals Java kan je C# gebruiken voor webdevelopment en c++ dacht ik niet )

Java geniet mijn voorkeur omdat ik er meer ervaring bij heb. Ik vind trouwens Java ook super easy inzake bestandsbeheer
Ik heb het toch over C++? Ik plaats ze op hetzelfde niveau maar ik vermeld altijd Java of C#. Je moet die samen discussiëren. Of Java of C#, Of C++.

Dozzeh

Legacy Member
Kun je dat ook argumenteren of mogen we die reply gewoon negeren? :ironic:

dJeez

Legacy Member
adrianhates zei:
Net zoals Java kan je C# gebruiken voor webdevelopment en c++ dacht ik niet
Je kan C++ ook perfect gebruiken voor webdevelopment hoor (check vb. http://www.webtoolkit.eu/wt maar eens), maar de hoeveelheid werk die je daar in steekt weegt niet op tegen het gemak waarmee je dat in Java of C# kan... Maar tijdrovende processen kunnen perfect in een C++ backend geschreven worden en dan opgeroepen worden vanuit eender welke beter voor het web geschikte taal.

Als het gaat over een keuze tussen Java en C++ zou ik persoonlijk ook voor Java gaan, zelfs al kan je ook perfect cross-platform gaan ontwikkelen in C++ met toolkits zoals Qt. De Write Once, Run Anywhere mantra is overigens wel lichtjes overroepen, maar dat merk je wel als je effectief cross-platform gaat ontwikkelen met Java :p. Het zit hem dan meestal in de details (om er een fictief getal op te plakken : 99% van de zaken lukt zonder enig probleem, maar in die resterende 1% goed draaiende te krijgen steek je wel veel tijd).

Zero Grav

Legacy Member
'k Zie nu pas uw edit in de eerste post Curahee Q, met dank aan Tyfius. :)
Wordt dus bij deze verplaatst.

NeverwinterX

Legacy Member
Curahee Q zei:
Aan de andere kant is het voor beginners misschien iets gemakkelijker om met C++ te beginnen. Bestanden inlezen en dergelijke is in C++ toch pakken gemakkelijker als in java. Al kan je in Java wel zelf je class schrijven zodat dit even gemakkelijk wordt, al is dit voor een beginner natuurlijk niet evident.

Huh, is dat zo? Ben eigenlijk niet zo bekend met het lezen/schrijven van bestanden in C++. De Scanner is in Java toch lekker makkelijk? Wat zijn de voorzieningen daarvoor in C++?

Scrimrage

Legacy Member
adrianhates zei:
dieje reply moogde gewoon negeren :D haha

:cool:


waarom altijd argumenten nodig :sop:

c# is mss voor snel iets te hebben eenvoudiger, met al de wizards, slepen, ...
maar ik vind java gewoon handiger. Wss om dezelfde redenen als adrianhates ;)

Cycloon

Legacy Member
Je kan in C# ook perfect zonder al die wizards en designer werken...

Dozzeh

Legacy Member
Cycloon zei:
Je kan in C# ook perfect zonder al die wizards en designer werken...

Inderdaad, beetje kort voor de bocht die opmerking.

maw je hebt gewoon meer ervaring met Java, goed voor je. Maar om dan te zeggen dat "C# brol van Microsoft is".. :ironic:

Scrimrage

Legacy Member
staat er ergens dat dat niet gaat?



ik haal het gewoon aan als het feit dat dat handig kan zijn, zeker in het begin ...
vandaar ook javafx, kunde ook wa design slepen enzo :p

Curahee Q

Legacy Member
Zo lees je in C++ iets in
Code:
#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main() {
	ifstream bestand("test.txt");
	string invoer;

	getline(bestand, invoer);

	while(!bestand.fail()) {
		cout << invoer << endl;

		getline(bestand, invoer);
	}

	bestand.close();

	return 0;
}

Zo schrijf je in C++ iets weg
Code:
#include <fstream>
#include <string>
using namespace std;

int main() {
	ofstream bestand("test.txt");

	bestand << "Een tekst" << endl;

	bestand.close();

	return 0;
}

Cycloon

Legacy Member
Scrimrage zei:
staat er ergens dat dat niet gaat?



ik haal het gewoon aan als het feit dat dat handig kan zijn, zeker in het begin ...
vandaar ook javafx, kunde ook wa design slepen enzo :p

En waarom dan JavaFX? Voor gewone Java hebt ge ook designers. Tenzij je direct richting animaties wil gaan heeft JavaFX geen enkel voordeel tov Java of C#, ik zou zelf eerder zeggen nadelen omdat het toch wel zaken anders aanbrengt.

Fraggie

Legacy Member
Ik heb ervaring met Java en ben nu bezig met C++.

Mijn voorkeur als taal gaat naar Java omdat deze 100% OOP is, daar waar C++ dingen bestaan als globale functies. Iets waar ik een hekel aan heb.

Qua performance gaat mijn voorkeur naar C++. Om maar te zeggen, ik zit met oude hardware en als je 2 identieke programma's maakt, maar de ene is echt gemaakt voor de hardware waarop je werkt en de andere niet..

Ook voor hardware met elkaar te doen praten zie ik dat niet gebeuren met Java. Het feit dat alles signed is kan ik echt niet bij. Het rare is dat ik overal lees dat Java als doel om op verschillende hardware te draaien en niet aan de bak kwam, maar gered is o.w.v. de applets. Maar Java en hardware, die link kan ik niet maken?

Op gebeid van development moet ik toch terug kiezen voor Java, gezien ik nog maar één keer een externe bibliotheek heb moeten toevoegen om met MySQL te praten. Terwijl ik nu bij C++ niet anders moet doen dan importeren en compilen. Java heeft zo veel ingebakken klassen en dat versnelt het programmeren.

Maar op het gebied van leerrijk is C++ dan toch weer koploper. Er gebeurt zo veel in Java waar ik geen weet van heb. Terwijl ik in C++ kan bewijzen hoe een integer opgeslagen wordt door ze byte voor byte uit te lezen. Foefelen met het geheugen en pointer is echt tof :p.

En om dit lijstje volledig af te maken, ik denk dat ik al rap naar C# zal overstappen gezien die het beste van de 2 talen heeft imo :p.

Manjak

Legacy Member
Vind dit een enorm interessante discussie aangezien ik momenteel zelf in een 'talencrisis' zit. Er zijn er zoveel die allemaal hun voordeel hebben. En ik vind het enorm moeilijk om nu te kiezen welke taal ik mij in wil verdiepen. Want er is zodanig veel te leren dat je er , imo , niet voor kan kiezen alles diep te kennen. Om over onderhouden dan nog maar te zwijgen.

Mijn vorige grote projecten waren in C++, aangezien ik voornamelijk focus op games is dit begrijpbaar. Vind het, zoals hierboven gezegd, leuk om te weten wat er allemaal gebeurt. Hoewel pointers eerst een struikerblok waren (prille begin he :) ) vind ik het gewoon heerlijk om mee te werken. Daarnaast zijn ook de meeste render-engines in C++ of C gedaan, wederom een reden om daar te blijven plakken.

In Java heb ik minder intresse, en zou eigenlijk graag is worden overtuigd waarom ik Java zou willen kunnen. Java is in mijn ogen trager als C++ qua performance en minder diepgaand. Terwijl dat je voor rapid development (de troef van Java tegenover C++ in mijn ogen) dan inderdaad beter uitwijkt naar C# fzo.

Momenteel ben ik met iet totaal anders bezig, ik ben namelijk Haskell aan het verkennen, moest van school uit het begin kennen, maar ben nu toch benieuwd how deep the rabbit hole goes. Nog iemand ervaring met Haskell? En hoe beviel die ervaring?

En om op topic start te reageren: Ik zou beginnen met C++ en dan pas Java. Heb Java wel al is bekeken en het komt over als: C++ maar dan hier en daar iets verstopt. C# is dan nog wat meer verstoppertje spelen.

Soulless

Legacy Member
Op school (EHB Toegepaste Informatica) zijn we in het eerste jaar enkel bezig met c++. Het voordeel is volgens mij, dat c++ enorm strict is en je hierdoor "verplicht" bent goed te programmeren om iets te laten werken. Het nadeel is dat het allemaal relatief "droog" is. Het eerste jaar zijn we niet anders bezig dan met het maken van console applicaties. Een ander ding dat ik niet zo leuk vindt aan c++ zijn pointers :p, het is enorm krachtig, maar volgens mij niet erg evident om het juiste gebruik ervan aan te leren.

Ik kijk wel uit naar Java en/of C#, het meest kijk ik wel uit naar ABAP :p aangezien ik mij wil verdiepen in SAP ERP development ^_^
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan