🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #11427

Re: oproep aan de programmeurs:wat moet ik kiezen ?

#11427
From: Stef
Date: Fri, 08 Feb 2002 16:56
98 lines
5382 bytes
Sjoerd Schreuder wrote in message <3C63B26A.DA13A6B8@wanadoo.nl>...
>Jack Portier wrote:
>>
>> "Sjoerd Schreuder" <sa_schreuder@wanadoo.nl> wrote:
>> >
>> > C als eerste taal is niet aan te raden. Dat is alsof je
>> > iemand probeert te leren schieten en gelijk met de bazooka
>> > begint (zonder handleiding) in plaats van eerst eens
>> > te gaan paintballen.
>>
>> Oh? Vertel! Wat is er zo slecht aan C wat je weer moet afleren?
>
>Even een kort, niet uitputtend lijstje:
>- geen ingebouwde string. strcat(), strcmp(), strdup() enzovoorts zijn
>  een ramp om geod te leren gebruiken. En dat blijkt dan verspilde moeite
>  zodra je naar een andere taal overstapt.

Maar je hoeft niets af te leren toch? Het blijkt alleen dat sommige talen
handiger functies hebben voor dit soort bewerkingen. Je hebt dan ook gelijk
een idee wat er achter die handiger functies allemaal schuil gaat.

>- arrays zijn (bijna) alleen via pointers te gebruiken. Hierdoor komt een
>  beginner al heel vroeg met pointers in aanraking. Pointers zijn een must
>  of te kennen, maar geven in het begin vooral verwarring.

Nou ja, je kunt ook gewoon array indexen gebruiken hoor. :-)
Ook leuk als je van Pascal naar C overstapt: Wat is de index van het eerste
element?
Dat van pointers moet ik je gelijk in geven. Je komt er vrij snel mee in
aanraking en ze zijn lasting, zeker voor beginners.
Wat moet je nu afleren als je een andere taal gaat gebruiken?

>- het gebrek aan type-checking bij printf() en scanf(), waardoor je heel
>  snel bugs krijgt als je met %d een float wilt printen. Zelfs stone-age
>  Pascal deed dat al beter.

Zo leer je natuurlijk wel correct programmeren en goed na te denken waar je
mee bezig bent i.p.v. dat je de compiler je foutjes laat vinden of zelfs
"oplossen".
Af te leren?

>- Als gevolg van de afwezigheid van een stringtype en dynamische arrays,
>  moet je in een beetje programma al aan geheugenmanagement doen. In kleine
>  voorbeeldprogramma's geeft een lek niet zoveel, maar zodra je echte
programma's
>  gaat schrijven maakt het wel uit. En dan blijkt dat de meeste beginners
>  bakken vol met geheugenlekken inbouwen.
>
Ook hier geldt weer: correct werken, maar voor een beginner wel lastig.
Afleren?

>C is een zeer nuttige taal voor low-level toepassingen zoals device drivers
>enzovoorts, maar geen geschikte taal om te leren programmeren. Geeft niets,
>want daar is de taal ook niet voor ontworpen.
>
"C is een zeer nuttige taal voor low-level toepassingen"!!!
Wou je een flame war beginnen of zo. ;-)
In onze toepassingen (vaak embedded software) is C meestal het high-level
stuk: OS, user interface. Het low-level stuk (drivers etc.) wordt vaak nog
in assembly gedaan, soms in C.

>>    Dan schop je
>> ook tegen C++ aan want OO is ook al geen walhalla weet ik uit ervaring.
>
>Nee, C++ heeft voor die punten alternatieven:
>- std::string
>- std::vector
>- <iostream>
>- std::auto_ptr, boost::shared_ptr, en andere smart pointers. Afgezien van
>  het feit dat je door std::string en std::vector nauwelijks nog zelf
geheugen
>  hoeft te beheren.
>
Geen commentaar ik ken (bijna) geen C++.

>Natuurlijk is OO geen walhalla. Daarom ben ik blij dat ik met C++
>ook imperatief, functioneel, en zelfs een beetje logisch (Prolog-achtig)
>kan programmeren. En dat allemaal in dezelfde taal, wat het mixen van
>paradigmas zeer makkelijk maakt. Daardoor kun je die aanpak kiezen
>die het beste werkt in plaats van altijd OO te moeten gebruiken.
>Want inderdaad: OO is niet voor elk probleem geschikt.
>
Daar ben ik ook heel blij mee. Als ik dan toch eens noodgedwongen een stukje
aan een C++ programma moet wijzigen of een simpel programmatje onder Borland
C++ Builder moet maken (je hebt zo lekker snel een window met een knopje
ed.) dan lijkt dit toch meer op C dan op C++. Al probeer ik toch wel eens
een class'je te maken en het gebruik van malloc te vermijden. Ik moet nog
altijd eens een C++ cursus gaan doen.

>C++ is niet een OO taal, C++ is een multi-paradigma taal. C++ is ook
>geen C-met-klassen meer, maar veel meer dan dat.
>

C is een heldere, compacte, volledige taal, geschikt van device-driver tot
user-interface, van uController to supercomputer.
(als we toch aan het verheerlijken zijn :-)

Stef
Technical Details
Message-ID: <u6818hs4p9i6c9@corp.supernews.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-post-01!supernews.com!corp.supernews.com!not-for-mail
References: <uXu88.122912$rt4.11582@afrodite.telenet-ops.be> <3C62D35E.5040702@khleuven.be> <qCA88.141$U61.352@pollux.casema.net> <3C62F663.BCFF9205@wanadoo.nl> <OEN88.34$mS5.120@pollux.casema.net> <3C63B26A.DA13A6B8@wanadoo.nl>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: 107324,65d4c4d6a1e8dc39
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,65d4c4d6a1e8dc39
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-02-08 09:04:18 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-post-01!supernews.com!corp.supernews.com!not-for-mail
From: "Stef" <stef33d@yahoo.com>
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: oproep aan de programmeurs:wat moet ik kiezen ?
Date: Fri, 8 Feb 2002 17:56:37 +0100
Organization: Posted via Supernews, http://www.supernews.com
Message-ID: <u6818hs4p9i6c9@corp.supernews.com>
References: <uXu88.122912$rt4.11582@afrodite.telenet-ops.be> <3C62D35E.5040702@khleuven.be> <qCA88.141$U61.352@pollux.casema.net> <3C62F663.BCFF9205@wanadoo.nl> <OEN88.34$mS5.120@pollux.casema.net> <3C63B26A.DA13A6B8@wanadoo.nl>
X-Newsreader: Microsoft Outlook Express 4.72.3612.1700
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3719.2500
X-Complaints-To: newsabuse@supernews.com
Lines: 101