Archief - [PROG] welke programeertaal beste leren?

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.

Unzip Attack

Legacy Member
mmm ik heb persoonlijk nooit gesnapt wat iemand toch in Java kan zien. Tis ongelooflijk traag, heeft niet eens een fatsoenlijke grafische omgeving en is niet eens 100% OO... i don't get it... maarja

eneuhm persoonlijk vind ik dat PHP in't algemeen veel korter bij C aanleunt dan bij Java hoor :-)

Emerxill

Legacy Member
Unzip Attack zei:
mmm ik heb persoonlijk nooit gesnapt wat iemand toch in Java kan zien. Tis ongelooflijk traag, heeft niet eens een fatsoenlijke grafische omgeving en is niet eens 100% OO... i don't get it... maarja

eneuhm persoonlijk vind ik dat PHP in't algemeen veel korter bij C aanleunt dan bij Java hoor :-)

Voor de 100duizendste keer: :cry:
Java traag...
GUI: akkoord, maar daar is de laatst tijd redelijk vooruitgang in aant komen. En als ge toch met java MOET werken en ge wordt wild van dieje "trage" Swing: kies voor SWT. Daar zal uwe C/C++ kennis wel van pas komen ;)
Maar langs de andere kant heeft die tragere Swing wel veel voordelen door de MVC.

Niet-GUI (back-tier dus): verre van akkoord, hier moet hij niet onderdoen voor C++, sommigen beweren dat hij sneller is, mja da is prolly native compiled ed. Hier ga ik mij ni verder over uitspreken, maar et is toch snel zenne

Netwerking: Hier heb ik (nog) ni genoeg ervaring mee (noch in C++ noch in Java) om hier deftig over te oordelen. Maar naar wat ik zoal heb gehoord: hoeft Java ook nie echt meer onder te doen.

En @ "I dont get it..." tja dat is puur een markting kwestie eh. "Goed zijn" is geen forumule voor succes (in sommige gevallen zelfs een formule voor falen). Tis allemaal maar hoe ge et aan de man brengt en hoe ge et verkocht krijgt.
Daar is Java goed in gelukt lijkt me ;)

QplQyer

Legacy Member
Unzip Attack zei:
mmm ik heb persoonlijk nooit gesnapt wat iemand toch in Java kan zien. Tis ongelooflijk traag, heeft niet eens een fatsoenlijke grafische omgeving en is niet eens 100% OO... i don't get it... maarja

eneuhm persoonlijk vind ik dat PHP in't algemeen veel korter bij C aanleunt dan bij Java hoor :-)

Platformonafhankelijk, enorm uitgebreide bibliotheek die tamelijk helder gedesignt is, OO ben je haast verplicht van te gebruiken, programmeert dankzij die vele bibliotheken (en memory management ed) enorm snel, dus kleinere ontwikkelingstijd nodig... noem maar op (definieer 100% OO dan eens ^^).
+ de Micro Edition.

En waarom zou Swing/SWT geen fatsoenlijke grafische omgeving zijn, wat ontbreekt er dan?

Traag .. daar valt al bij al met te leven.
En traag, dat valt al bij al nog wel mee.

Unzip Attack

Legacy Member
QplQyer zei:
Platformonafhankelijk, enorm uitgebreide bibliotheek die tamelijk helder gedesignt is, OO ben je haast verplicht van te gebruiken, programmeert dankzij die vele bibliotheken (en memory management ed) enorm snel, dus kleinere ontwikkelingstijd nodig... noem maar op (definieer 100% OO dan eens ^^).
+ de Micro Edition.

En waarom zou Swing/SWT geen fatsoenlijke grafische omgeving zijn, wat ontbreekt er dan?

Traag .. daar valt al bij al met te leven.
En traag, dat valt al bij al nog wel mee.

platformonafhankelijkheid wordt véél te hoog over gedaan vind ik persoonlijk, het brengt ook zeer veel nadelen met zich mee, waaronder zeker al de snelheid. Snelheid in laagniveau werken met files is in Java beduidend trager, of als we kijken naar z'n webgerichte Java Applets, daar krijg ik rillingen van...

eneuhm Java is simpelweg geen 100% OO, er zijn er zelfs die zeggen dat het niet OO is omdat het basisprincipes als operator-overerving, functie pointers,...mist. *laat duidelijk zijn zo ver wil ik het niet trekken*

eneuhm "memory management" is het laatste sterke punt dat ik in Java zou aanhalen vermits je dingen als destructors etc... niet eens zelf in handen hebt...

heeft er ooit iemand in jsp gescript hier? dan pas zie je hoe traag java eigenlijk wel niet is ten opzicht van alternatieven...

Hale

Legacy Member
zaken zoals memory management is juist super handig , want ge hoeft u als programmeur er ni mee bezig te houden wat tot minder bugs leidt en snellere ontwikkelings tijd.

dat het daardoor trager wordt is geen deftig argument, want in praktisch alle gewone business software is snelheid absoluut ondergeschikt aan boven genoemde voordelen.
Alleen als ge killer aps wilt maken, dan kunt ge misschien zeggen : JAVA is hier ni op zijn plaats, maar hoeveel percent van alle gemaakte software is een killerap ?

wat het doorgeven van functie pointers nog maar in de verste verte met OO te maken heeft , is me trouwens ook ni echt duidelijk. ipv uw functie mee te geven ... geeft ge het object dat de functie definieerd mee.. wat het principe is van OO :D

Tyfius

Legacy Member
jsp is toch java based, niet ? :)

hetzelfde voor C#, het is een stuk sneller dan java, even OO, ...

Ik vraag me af wat jij dan exact onder een OO taal verstaat (wat jsp ook niet volledig is) en kom niet af met VB want dan lach ik u vierkant uit...

edit: php is gebaseerd op C, dus logisch dat het daar kort bij samenhangt.

Unzip Attack

Legacy Member
@ tyfius : jsp is java based en POKKE traag.

en OO versta ik onder programmeertechniek die er voor zorgt dat code makkelijker herbruikbaar wordt aan de hand van klasses, objecten maar ook dingen als triggering, overloading, ... encapsulation, polymorfisme, inheritance, overloading dé hoofdpijlers van een OO taal dit alles overgoten met een sausje van public/private en protected rights. Eén van de neven dingen die bij zo'n OO taal bij komt is het feit dat je met referenties (pointers) naar bepaalde objecten kan werken, dit zal ook het geheugenmanagment ten goede komen.

vermits Java 1 van die pijlers mist is het niet voor 100% OO, simple as that. Die "echte" pointers tel ik dan nog niet mee...

eneuhm wie spreekt er hier over speelgoed als VB ? en dat PHP korter bij C zei ik reeds, ik sprak enkel iemand tegen die het tegendeel beweerde :-)

QplQyer

Legacy Member
Unzip Attack zei:
platformonafhankelijkheid wordt véél te hoog over gedaan vind ik persoonlijk, het brengt ook zeer veel nadelen met zich mee, waaronder zeker al de snelheid. Snelheid in laagniveau werken met files is in Java beduidend trager, of als we kijken naar z'n webgerichte Java Applets, daar krijg ik rillingen van...
Platformonafhankelijkheid is één van de belangrijkste dingen dat er bestaan. Het verkort de ontwikkeltijd van een programma voor meerdere platforms aanzienlijk en dat is tenslotte wat telt bij de meeste software, hoe snel het gemaakt wordt en niet of het nu 5ms sneller draait dan een ander of niet.
Hoe je het ook draait of keert, de GUI van java is nu ook niet zo extreem traag en er valt zeker met te werken, daarenboven is het nog eens snel ontwikkeld zonder al teveel gevaarlijke bugs zoals eventuele buffer overflows.

eneuhm Java is simpelweg geen 100% OO, er zijn er zelfs die zeggen dat het niet OO is omdat het basisprincipes als operator-overerving, functie pointers,...mist. *laat duidelijk zijn zo ver wil ik het niet trekken*
Operator-overerving is het enige wat ik af en toe zou willen hebben, maar sinds wanneer zijn functiepointers iets dat bij OO hoort? OO programmeren betekent nog altijd gewoon dat je alles in objecten verdeelt zodat je die objecten kunt hergebruiken. Dat is de key feature en het doel van OO, dat je dingen kunt hergebruiken zonder iets te herschrijven, Java leent zich daar uitermate toe.

eneuhm "memory management" is het laatste sterke punt dat ik in Java zou aanhalen vermits je dingen als destructors etc... niet eens zelf in handen hebt...
Wat dan weer tot minder bugs of memory leaks leidt en zo dus ook tot een kortere ontwikkeltijd.

Altijd maar die snelheidsdrang, er zijn belangrijkere dingen dan snelheid bij het programmeren, waaronder zo min mogelijk bugs creeëren, snel kunnen ontwikkelen en eventueel platformonafhankelijk zijn.

Maar dit lijkt uit te draaien op een fanboydiscussie en ik allesbehalve een fanboy, ik weet java echter wel te appreciëren. Het is zoals bij elke taal, gebruik ze waarvoor ze nuttig is (en Java heeft wel degelijk een nut).

dJeez

Legacy Member
Unzip Attack zei:
mmm ik heb persoonlijk nooit gesnapt wat iemand toch in Java kan zien. Tis ongelooflijk traag, heeft niet eens een fatsoenlijke grafische omgeving en is niet eens 100% OO... i don't get it... maarja
En wanneer is de laatste keer dat je iets met Java hebt gedaan dan? Zo'n 3-4 jaar geleden of zo (sowieso nooit JDK 1.5 gebruikt vermoed 'k)? Het is allesbehalve pokketraag en het is platform onafhankelijk (voorzover je geen beroep doet op JNI uiteraard).

En JSP pokketraag? De eerste keer dat je de pagina oproept na een wijziging misschien wel ja, maar daarna toch niet meer... Anders is asp.net ook traag te noemen (nothing beats plain HTML :p).

Sedert wanneer heb je trouwens exceptions (try/throw/catch) constructies in C, om over de OO syntax nog maar te zwijgen (classes, interfaces, inheritance, overloading). De OO syntax in PHP leunt heel dicht aan bij de OO syntax in Java. Er valt daar dus niks over tegen te spreken.

wlibaers

Legacy Member
(over Javascript)
killgore zei:
dat leert je wat algemene syntaxis

that's it, programmeren leer je daar niet mee hoor imho :).
en wees eerlijk, de syntaxis is het makkelijke gedeelte van een programmeertaal he :).

Het ironische hieraan is dat Javascript als programmeertaal eigenlijk krachtiger is dan Java, maar in een platform zit (webbrowser) dat velen niet als de ideale omgeving zien om grote programma's te schrijven.

Kijk bijvoorbeeld naar:
http://www.paulgraham.com/accgen.html
Javascript staat ertussen. Java niet. Probeer de opdracht eens uit te voeren ;)


Hale zei:
Het probleem met een taal leren zoals C is het gevaar dat ge u de denkwijze van C eigenmaakt,
which kinda sucks als ge daarna naar OO wil overstappen...

C is daarbij ook gigantisch low level, wat de instap drempel ook wel verhoogt...

En het gevaar van meteen een OO taal te leren, en altijd bij die taal te blijven, is dat je elk probleem op de OO manier zal willen aanpakken, al zou je betere alternatieven zien als je ze maar zou kennen. Zie bovenstaande voorbeeld, hoeveel OO aanhangers zouden eraan denken een functie te schrijven die als resultaat geen gewone waarde maar een functie oplevert? Zeer weinig, omdat de meeste OO programmeurs een taal gebruiken waarin dat geen standaardpraktijk is (of niet mogelijk is). Terwijl dit je code tegelijk korter en duidelijker kan maken in een taal waar het wel normaal is.




Wat prestaties betreft moet er ook nog gewezen worden op individuele variabiliteit van de programmeurs. Wat is de taal waarin je de snelste programma's kan schrijven? Assembly, gewoon omdat je daarin de meeste low-level controle krijgt. Maar geef een gemiddelde programmeur een opdracht om hetzelfde programma in assembly en C te schrijven, en ik vermoed dat de C-versie in de meeste gevallen sneller zou zijn. Waarom? Omdat assembly je extra mogelijkheden geeft, niet alleen om dingen beter te maken, maar ook om ze slechter te maken, en iemand die er niet veel ervaring mee heeft maakt veel kans om knoeiwerk af te leveren.

Een voorbeeldje (oude studie, niet als relevant beschouwen voor huidige prestaties, ik gebruik dit gewoon als illustratie omdat de grafieken die fenomeen zo duidelijk weergeven):
http://www.flownet.com/gat/papers/lisp-java.pdf
Vooral de tweede grafiek (run time detail) is duidelijk: de snelste programma's waren in C en C++ gemaakt, maar het gemiddelde Lisp programma was sneller dan het gemiddelde C/C++ programma.

wlibaers

Legacy Member
Unzip Attack zei:
@ tyfius : jsp is java based en POKKE traag.

en OO versta ik onder programmeertechniek die er voor zorgt dat code makkelijker herbruikbaar wordt aan de hand van klasses, objecten maar ook dingen als triggering, overloading, ... encapsulation, polymorfisme, inheritance, overloading dé hoofdpijlers van een OO taal dit alles overgoten met een sausje van public/private en protected rights. Eén van de neven dingen die bij zo'n OO taal bij komt is het feit dat je met referenties (pointers) naar bepaalde objecten kan werken, dit zal ook het geheugenmanagment ten goede komen.

vermits Java 1 van die pijlers mist is het niet voor 100% OO, simple as that. Die "echte" pointers tel ik dan nog niet mee...

References zijn grotendeels vergelijkbaar met pointers. Berekeningen uitvoeren op die pointers zit er wel niet in, maar dat is toch iets dat je beter achterwege laat behalve bij low-level programmeerwerk. Bij meer algemene datastructuren dan arrays is het doorgaans geen goed idee daarmee te beginnen, daar heb je iterators voor.

References hebben soms, afhankelijk van de taal, nog het gebrek dat je ze niet aan een ander object kan koppelen. Bij sommige talen is dat wel het geval. Python voorbeeldje:


Code:
>>> class c:
	i = 0

>>> a = c()
>>> a.i = 1
>>> b = c()
>>> b.i = 2
>>> c = a
>>> print c.i
1
>>> a.i = 3
>>> print c.i
3
>>> c = b
>>> print c.i
2
>>> c.i = 4
>>> print b.i
4



Verder heb ik de indruk dat jouw beeld van OO gewoon een enkel specifiek geval van OO is, en niet bijzonder algemeen. Public, protected en private bijvoorbeeld zijn geen algemene OO eigenschappen. Iets zoals inheritance is eigenlijk alleen nogig voor interfaces, meer overerven is mogelijk maar niet echt nodig. Je idee dat pointers nodig zijn voor OO komt misschien van C. Uit de C standaard (C99), 3.14:
object
region of data storage in the execution environment, the contents of which can represent values
Pointers verwijzen dus naar objecten in C (int, float types, structs,...), maar C wordt doorgaans niet als OO beschouwd.

Je kan een aantal mogelijke eigenschappen opnoemen die een taal OO maken
http://mumble.net/~jar/articles/oo.html
Voor zover ik weet voldoet geen enkele taal aan alle punten.

Unzip Attack

Legacy Member
references zijn simpelweg geen pointers, oké het gelijkt er op maar de mogelijkheden zijn toch duidelijk beperkter...

eneuhm wanneer ik voor het laatst java programmeerde ? dat moet denk ik 2 weken geleden zijn, jsp ? eergisteren nog.
jsp's foutenafhandeling is trouwens erbarmelijk en eigenlijk niet geschikt om een vollédig website mee te maken vermits je énorm veel tijd verliest...

Emerxill

Legacy Member
Unzip Attack zei:
references zijn simpelweg geen pointers, oké het gelijkt er op maar de mogelijkheden zijn toch duidelijk beperkter...

eneuhm wanneer ik voor het laatst java programmeerde ? dat moet denk ik 2 weken geleden zijn, jsp ? eergisteren nog.
jsp's foutenafhandeling is trouwens erbarmelijk en eigenlijk niet geschikt om een vollédig website mee te maken vermits je énorm veel tijd verliest...

Over die references ga ik mijne mond houden of we komen in een straatje zonder einde terecht :D

Maar over die jsp:
Ik weet niet wat ge precies onder jsp verstaat, maar als ge alleen jsp gaat gebruiken om een volledige én deftige website te maken gaat jsp idd lichtjes tekort schieten. Maar gebruik jsp/servlets/struts in combinatie en we gaan toch al een eind verder geraken.

Ook vraag ik mij eigenlijk af waar ge die "haat" tegenover java gekweekt hebt? (een of andere die-hard C-prof die u heeft gebrainwashed :p?)
Als java en alles daarrond zo slecht is, waarom kiezen de meeste grote bedrijven allemaal voor een oplossing in een java omgeving?
Omdat ze geld teveel hebben en ze goesting hebben om dat maar tegen veel te dure java developers aan te smijten?
Als java dan toch zo slecht is, waarom zijn die bedrijven dan niet allang op de fles gegaan: slechte werking software -> slechte werking personneel -> slechte werking bedrijf -> nie heel gezond bedrijfsklimaat.

Waarom laat M$ zich zo hard inspireren door het java-platform bij zijn .net framework? Geef toe: CLR en MSIL is toch lichtjes geinspireerd op java's manier van werken.
Is microsoft zijn positie als marktleider dan zo beu om deze zomaar effe te vergooien en zich te laten inspireren door java en heel zijn nieuw framework hierop te laten baseren?

Effe een paar vraagskes die door mijne kop schoten (nee da doet gene pijn :p).

Ok, toegegeven, Java is niet perfect (welke taal is dat wel?) maar het is toch een van de betere programmeer-omgevingen om in te werken.

En tot slot: in veel gevallen is het de programmeur die inefficient met zijn programmeertaal omgaat en zo crappy code schrijft (ik zeg niet dat ge een slechte programmeur zou zijn eh ;))

killgore

Legacy Member
Emerxill zei:
En tot slot: in veel gevallen is het de programmeur die inefficient met zijn programmeertaal omgaat en zo crappy code schrijft (ik zeg niet dat ge een slechte programmeur zou zijn eh ;))
ter verduidelijking: ik meng me niet in uw discussie ;)

Dit is dus wat imho de meeste anti-c/c++ posts perfect weerlegt :).

Unzip Attack

Legacy Member
Emerxill zei:
Over die references ga ik mijne mond houden of we komen in een straatje zonder einde terecht :D

true die discussies kunt ge in het oneindige trekken. ik zeg enkel references zijn niet gelijk aan pointer, punt uit.

Emerxill zei:
Maar over die jsp:
Ik weet niet wat ge precies onder jsp verstaat, maar als ge alleen jsp gaat gebruiken om een volledige én deftige website te maken gaat jsp idd lichtjes tekort schieten. Maar gebruik jsp/servlets/struts in combinatie en we gaan toch al een eind verder geraken.

true true, ik zie zéker wel de voordelen in, onder andere servlets,SOAP,jax-rpc,... zijn allemaal dingen die goed gaan met java, daar totaal geen opmerkingen. Alleen staat het pokketrage gedoe mij gewoon niet aan, en tov php en zelfs asp.net ofzo is het gewoon traag.

Emerxill zei:
Ook vraag ik mij eigenlijk af waar ge die "haat" tegenover java gekweekt hebt? (een of andere die-hard C-prof die u heeft gebrainwashed :p?)

totaal niet, ik heb beide talen vrij uitgebreid gezien. op vlak van programmeeromgeving (NetBeans of Eclipse ofzo) tov VS6 (met Visual Assist 6) , doet java al ongelooflijk veel onder. méteen daar komt de traagheid van java bovendrijven... natuurlijk hechten bedrijven daar weinig belang aan maar ga eens kijken in wetenschappelijke kringen en tel daar eens het aantal java programmeurs... ik heb persoonlijk gewoon graag de touwtjes in handen, hoe meer ik projecten maar hoe sneller ik zie dat indien ik dingen uit handen geef er problemen komen opduiken, nuja dit is meer algemene opmerking. Anyway ik hou niet van de "maak het zo makkelijk mogelijk"-techniek voor programmeurs, oké dit heeft grote voordelen maar voor andere doeleinden evenzeer zware nadelen.

Emerxill zei:
Ok, toegegeven, Java is niet perfect (welke taal is dat wel?) maar het is toch een van de betere programmeer-omgevingen om in te werken.

En tot slot: in veel gevallen is het de programmeur die inefficient met zijn programmeertaal omgaat en zo crappy code schrijft (ik zeg niet dat ge een slechte programmeur zou zijn eh ;))

qua interface vind ik daarboven Java zoals reeds gezegd tekort schieten. Oke daar komt verandering in maar van een "volmaakte" omgeving zou je meer verwachten...

Java maakt een grote opgang mee, maar geef toe niet altijd op de mooiste manier, kijken we naar bijvoorbeeld Java applets van banken bijvoorbeeld... dat zijn toch dingen waar je écht kan op vloeken qua installatie,gebruik,interface,... voor een groot deel te wijten aan Java's snelheid en interface...

Anyway laat het duidelijk zijn ik vind java _geen_ slechte taal, alleen heb ik een uitgesproken voorkeur voor C-talen omwille van bovenstaande puntjes onder meer. Platformonafhankelijkheid is iets mooi maar die kan een goeie programmeur évenzeer bereiken met C(++) en dergelijke...

killer bel

Legacy Member
Deguchi zei:
en nog een laatste raad: leer het niet alleen, zo geeft ge makkelijker op!
zoek dus iemand die het ook wil leren, of u wil aanleren, dan gaat het vlotter gaan ;)

best wel goede raad, is hier iemand die van plan om zicht tijdens het verlof ook met C bezig te houden?

@rest: spijtig dat ik niet in de discusie kan meegaan, 'garbage selections', 'pointers'. allemaal chinees voor mij

Tombo

Legacy Member
wlibaersKijk bijvoorbeeld naar: [url zei:
http://www.paulgraham.com/accgen.html[/url]
Javascript staat ertussen. Java niet. Probeer de opdracht eens uit te voeren ;)
Vreemde test... die methodes zijn echt wel niet gelijk van ene progtaal naar andere.. ene gebruikt I/O (vb. haskell) terwijl andere gewoon met meegekrgen waarden gaan rekenen. (bv. js, vbs, ...)

Op zich heeft het er niet echt iets mee te maken natuurlijk.

Maar als ik naar vbs kijk, is dat echt wel te porten naar java, imo... geeft object terug met methode inc. Enige dat niet gaat is sterke typering van java...

Hale

Legacy Member
de haskell oplossing ziet er idd raar uit met die IO
ik zou eerder :

foo::Int->Int->Int
------------------
foo n = (+n)

als oplossing geven voor hun probleem

wlibaers

Legacy Member
Unzip Attack zei:
true die discussies kunt ge in het oneindige trekken. ik zeg enkel references zijn niet gelijk aan pointer, punt uit.

Uiteraard. Maar references zijn ook niet gelijk in alle talen, en niet alle pointerfunctionaliteit is aanvaardbaar in alle talen (als je kan rekenen met adressen maakt dat bijvoorbeeld garbage collectors veel minder handig, daarom dat er gewoonlijk geen GC gebruikt wordt bij die talen, te gevaarlijk als je rare dingen met je pointers begint te doen).




Wat die pagina betreft met die functie: je kan zelf voorstellen insturen als je daar zin in hebt.

Tombo

Legacy Member
Hale zei:
de haskell oplossing ziet er idd raar uit met die IO
ik zou eerder :

foo::Int->Int->Int
------------------
foo n = (+n)

als oplossing geven voor hun probleem

let me guess... demoen.. :D

[mierenneuk modus aan]
En ik zou der foo::Int->(Int->Int) maken :p
mer ja, met currying is het toch ni echt nodig
[mierenneuk modus uit]
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