Page 1 of 2

wat is uw favoriete programmeertaal ?

Posted: Mon Nov 27, 2006 10:38 pm
by HyperQuantum
Er gebeurt hier toch ni zo veel 'interessants' op het forum ... ineens maar een poll neergezet :)

Welk is uw favoriete programmeertaal? Of als ge het woord 'favoriet' er wat over vindt, welke taal geniet uw voorkeur als de keuze vrij is?

Ik heb even een lijstje opgesteld met een aantal talen uit de top-20 van de TCPI. Heb het beperkt gehouden tot talen voor applicaties in het algemeen (geen PHP bvb). Anders werd de lijst te lang.

Posted: Mon Nov 27, 2006 11:19 pm
by Norfolk
C++

Oberon had er ook wel bij gemogen :lol: :lol:

Posted: Mon Nov 27, 2006 11:33 pm
by HyperQuantum
Norfolk wrote:C++
Ook mijn keuze.
Norfolk wrote:Oberon had er ook wel bij gemogen :lol: :lol:
Nee, aan Oberon heb ik bijna een trauma aan overgehouden :wink:

Posted: Tue Nov 28, 2006 3:14 pm
by EagleEye812
C++... De andere taal die ik ken is Oberon :p

Posted: Sun Dec 03, 2006 10:06 pm
by Shinta
Java.

Holy shit C++ :p it's not that good :|

Posted: Sun Dec 03, 2006 11:16 pm
by Foundation
C++ . bloedlelijke taal, geef ik grif toe, maar eens ge het deftig beheerst zo ongelooflijk krachtig...

Multiple inheritance, operator overloading - eat that Java
omvat C, inline assembly mogelijk - alle controle en kracht die ik wil

Favoriet wil natuurlijk ni zeggen da'k er alles in doe. Als het platformonafhankelijk moet zijn en performantie is niet belangrijk, pak ik ook wel Java...

Posted: Mon Dec 04, 2006 12:56 am
by HyperQuantum
C++ is inderdaad lelijk, maar wel heel expressief. Multiple inheritance hebt ge normaal gezien ni veel nodig, maar operator overloading is wel heel handig. Probleem is wel dat C++ nen hoop rommel uit het verleden meesleurt, bagage uit C zoals arrays=pointers, die vreselijke preprocessor en knoeien met header files (+bij het compileren van elke .cpp file weer nen hoop headers moeten inlezen is traag).

Java heeft die nadelen niet maar mist dan weer operator overloading, user defined value types en heeft een inconsistentie tussen de ingebouwde value types ('int', 'boolean' etc...) en de reference types. Java code is ook iets(?) trager dan C++ code. Groot voordeel van Java is de uitgebreide bibliotheken die de programeur standaard tot zijn/haar beschikking heeft, en natuurlijk ook de mogelijkheid om op een eenvoudige manier portable code te schrijven.

Ik heb een lichte voorkeur van C++ boven Java. Maar ik heb het dus niet zo met de bovengenoemde nadelen van beide en daarom ben ik bezig met een zelfgebrouwen mix van de twee. Ik wil natuurlijk zo veel mogelijk de voordelen van beide combineren. Probleem is wel dat ge voor elke gegeven taal altijd mensen zult hebben die erover klagen.

Posted: Mon Dec 04, 2006 10:14 am
by wem
Om tot een mooi besluit te komen:

C# heeft de voordelen van C++ (operator overloading, kracht da 't nimmer schoon is, ...) gecombineerd met de voordelen van Java (grote bibliotheek, geen geknoei met pointers als het ni nodig is, ...)

Ik wijt de lage score van C# dan ook volledig toe aan het feit dat de meeste mensen er nog nooit mee gewerkt hebben ;-)

Posted: Mon Dec 04, 2006 11:00 am
by slimmy
tja da's het verhaaltje bij vele van deze programmeertalen. Niet iedereen heeft met ze allemaal al is gewerkt :)

als ge alleen nog maar met Oberon en C++ hebt gewerkt zoals de 2de jaars, dan is het wel logisch dat je in deze poll 'C++' aanvinkt :D

voor mij ist Java all the way, maar ik heb nog nooit in C# geprogrammeert.

Posted: Mon Dec 04, 2006 11:48 am
by Norfolk
slimmy wrote:tja da's het verhaaltje bij vele van deze programmeertalen. Niet iedereen heeft met ze allemaal al is gewerkt :)

als ge alleen nog maar met Oberon en C++ hebt gewerkt zoals de eerste jaars, dan is het wel logisch dat je in deze poll 'C++' aanvinkt :D

voor mij ist Java all the way, maar ik heb nog nooit in C# geprogrammeert.
de eerste jaars kennen normaal nog geen C++

Posted: Mon Dec 04, 2006 11:49 am
by slimmy
voila edited ;)

Posted: Mon Dec 04, 2006 2:21 pm
by HyperQuantum
wem wrote:Om tot een mooi besluit te komen:

C# heeft de voordelen van C++ (operator overloading, kracht da 't nimmer schoon is, ...) gecombineerd met de voordelen van Java (grote bibliotheek, geen geknoei met pointers als het ni nodig is, ...)

Ik wijt de lage score van C# dan ook volledig toe aan het feit dat de meeste mensen er nog nooit mee gewerkt hebben ;-)
Ik heb zelf nog niet met C# gewerkt (wel met VB.NET een aantal jaar geleden), maar ik zie toch wel al een aantal nadelen. C# werkt met een virtual machine, en het is een (semi-)proprietaire taal. Als ge niet met Windows werkt zijt ge ervoor aangewezen op Mono, en dat project loopt altijd wel een stukje achter op de laatste nieuwe officiële versie van de taal. C# heeft ook voor zover ik weet hetzelfde type-inconsistentie probleem als ik voor Java heb uitgelegd.

En het is weeeeral een taal dat de C syntax gebruikt, en daar ben ik ook niet zo'n fan van.

I.v.m. uw opmerking over pointers: als een taal (expliciete) pointers ondersteunt dan hoeft dat niet noodzakelijk tot knoeiwerk te leiden. Alleen maar als ge ook pointer-aritmetiek zou toelaten. Of bedoelt ge nog iets anders?

Posted: Mon Dec 04, 2006 3:03 pm
by wem
C# wordt standaard inderdaad naar bytecode gecompileerd, en niet naar native code die zomaar uitvoerbaar is. Maar ik beschouw dit heeft z'n eigen voordelen en nadelen. Verder maakt dit voor het gros van de programma's amper uit denk ik.
Verder is het het .NET platform dat naar linux geport aan het worden is, wat niet hetzelfde is als C#, vermits dit laatste wel volledig ondersteund wordt in Mono.

Ook zie ik het probleem niet in van het type-inconsistentie, integendeel. Van standaard type 1 naar standaard type 2 is geen enkel probleem, maar je weet wel waar je mee bezig zijt.
HyperQuantum wrote:I.v.m. uw opmerking over pointers: als een taal (expliciete) pointers ondersteunt dan hoeft dat niet noodzakelijk tot knoeiwerk te leiden. Alleen maar als ge ook pointer-aritmetiek zou toelaten. Of bedoelt ge nog iets anders?
Pointers blijven een oorzaak van ellende. En het lukt niemand om vanaf de eerste letter code geen fouten te maken (redeneerfouten, typfouten, ...). Dus het niet moeten gebruiken van pointers zie ik als een groot pluspunt. Iedereen die al een beetje C++ geprogrammeerd heeft, heeft zeker al het at runtime gebruiken van een null-pointer tegengekomen, door een of ander foutje. En dat (de run-time fouten) zijn mijn inziens een van de lastigste (naar de programmeur en de gebruiker toe).
Dus daar is zelfs nog geen pointer-aritmetiek voor nodig.

Posted: Mon Dec 04, 2006 3:33 pm
by HyperQuantum
wem wrote:Ook zie ik het probleem niet in van het type-inconsistentie, integendeel. Van standaard type 1 naar standaard type 2 is geen enkel probleem, maar je weet wel waar je mee bezig zijt.
Het probleem is dat ge zelf geen value-types kunt definieren die zich gedragen zoals bvb 'int'. Als ge zelf een klasse definieert, dan kun je alleen met references ernaar werken.
wem wrote:Pointers blijven een oorzaak van ellende. En het lukt niemand om vanaf de eerste letter code geen fouten te maken (redeneerfouten, typfouten, ...). Dus het niet moeten gebruiken van pointers zie ik als een groot pluspunt. Iedereen die al een beetje C++ geprogrammeerd heeft, heeft zeker al het at runtime gebruiken van een null-pointer tegengekomen, door een of ander foutje. En dat (de run-time fouten) zijn mijn inziens een van de lastigste (naar de programmeur en de gebruiker toe).
Dus daar is zelfs nog geen pointer-aritmetiek voor nodig.
Typfouten zijn volgens mij van de minst erge, omdat de compiler die in de meeste gevallen opmerkt. Redeneerfouten kun je niet uitbannen en doen zich voor op alle gebieden, niet alleen bij pointers. De 'references' uit Java en C# zijn feitelijk ook gewoon pointers, alleen is dat niet expliciet te zien. En die kunnen zeker óók onverwachts 'null' zijn tijdens het draaien van uw programma. Uw programma zal dan wel stoppen en een backtrace geven, maar dat is evengoed in C++ het geval. Ge krijgt dan een segfault, maar dan draait ge het programma toch gewoon even in een debugger om aan een stack trace te geraken.

De pointer-problemen waar ik wél mee zit, zijn die van dangling pointers: het derefereren van een pointer naar een object dat al gedelete is. En dat ligt niet aan pointers zelf, maar aan het knoeiwerk met manueel memory management. Daarom opteer ik ook voor het gebruik van een garbage collector.

Posted: Mon Dec 04, 2006 6:08 pm
by Karel
Absoluut c++. Geen ervaring met c#, maar meer dan genoeg met java om die taal hartsgrondig te haten ;).