Mijn eerste ervaring met C++ was van een andere orde. Het leek me een uitdaging om het project voor het vak Computer Graphics te implementeren in C++. Viel dat even tegen. C++ is een ordegrootte moeilijker, harder en pijnlijker dan Java. Gelukkig was Java een vergevingsgezinde partner. Nog nooit zo blij geweest om terug in Eclipse te zijn.
Dus eens proberen om een raytracer te schrijven in C. In C heb je 2 dingen: functies en datastructuren. Met deze 2 kom je al een eind op weg, je kan zelfs dingen als polymorfisme simuleren met function pointers. Maar "de jeugd van tegenwoordig is nog met weinig tevreden" geldt ook voor mij. Een taal moet een minimale ondersteuning hebben voor objectgeoriënteerd programmeren en Java heeft ons dat gul gegeven. Het is uiteindelijk gelukt om een raytracer te schrijven om bollen te renderen maar met veel te veel moeite. Ik had naar Eric S. Raymond moeten luisteren:
Dus on the record: C++ it is. Voorlopig heb ik mijn andere voet er nog niet afgeschoten en hink ik nog altijd fluitend door het leven. Misschien kan ik over een paar dagen al enkele plaatjes tonen van mijn (crappy) C++ raytracer.
Nog enkele motiverende C++ quotes om af te sluiten:
Dus eens proberen om een raytracer te schrijven in C. In C heb je 2 dingen: functies en datastructuren. Met deze 2 kom je al een eind op weg, je kan zelfs dingen als polymorfisme simuleren met function pointers. Maar "de jeugd van tegenwoordig is nog met weinig tevreden" geldt ook voor mij. Een taal moet een minimale ondersteuning hebben voor objectgeoriënteerd programmeren en Java heeft ons dat gul gegeven. Het is uiteindelijk gelukt om een raytracer te schrijven om bollen te renderen maar met veel te veel moeite. Ik had naar Eric S. Raymond moeten luisteren:
the more you can avoid programming in C the more productive you will be.Nadat ik al eens in mijn voet had geschoten met C++ wilde ik het nog eens proberen. Tenslotte had ik nog een andere voet. C++ is een groot complex beest geeft zelfs Bjarne Stroustrup toe (geen wonder dat hij ondertussen kaal is). Formeel noemen noemen ze dat een multiparadigma programmeertaal. Na het boek "Accelerated C++" te hebben doorgenomen had ik al wat meer hoop, alhoewel ik weet dat het boek veel dingen verzwijgd. Toch heeft C++ enkele coole features/voordelen:
- Operator overloading, zou elke taal moeten hebben. Hierdoor zal ik misschien binnenkort Java scheef gaan bekijken.
- Referenties, geen gerommel met pointers (zoals in C) om call-by-reference te faken maar echte ondersteuning zoals in Java.
- Meervoudige overerving, voor sommige problemen kan dit echt wel een elegante oplossing zijn. Hoewel sommigen beweren dat dit je een rechtstreeks ticket naar de hel koopt.
- Qt, de C++ library van Trolltech, niet zo uitgebreid als de Java API maar veel beter gedocumenteerd als bijvoordeeld The Gimp Toolkit voor C.
Dus on the record: C++ it is. Voorlopig heb ik mijn andere voet er nog niet afgeschoten en hink ik nog altijd fluitend door het leven. Misschien kan ik over een paar dagen al enkele plaatjes tonen van mijn (crappy) C++ raytracer.
Nog enkele motiverende C++ quotes om af te sluiten:
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. (Bjarne Stroustrup, maker van C++)
There are only two things wrong with C++: The initial concept and the implementation. (Bertrand Meyer, maker van Eiffel)
If C++ has taught me one thing, it's this: Just because the system is consistent doesn't mean it's not the work of Satan. (Andrew Plotkin)
If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one? (Tom Cargill)
Geen opmerkingen:
Een reactie posten