🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #11397

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

#11397
From: Sjoerd Schreuder
Date: Fri, 08 Feb 2002 11:11
53 lines
3751 bytes
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.
- 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.
- 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.
- 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.

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.

>    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.

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.

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.

Sjoerd Schreuder
Technical Details
Message-ID: <3C63B26A.DA13A6B8@wanadoo.nl>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!193.190.198.17!newsfeeds.belnet.be!news.belnet.be!news2.euro.net!news.euronet.nl!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>

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 03:11:39 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!193.190.198.17!newsfeeds.belnet.be!news.belnet.be!news2.euro.net!news.euronet.nl!not-for-mail
From: Sjoerd Schreuder <sa_schreuder@wanadoo.nl>
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: oproep aan de programmeurs:wat moet ik kiezen ?
Date: Fri, 08 Feb 2002 12:11:38 +0100
Organization: Wanadoo NL
Lines: 53
Message-ID: <3C63B26A.DA13A6B8@wanadoo.nl>
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>
NNTP-Posting-Host: 212.203.20.29
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: scavenger.euro.net 1013166698 64213 212.203.20.29 (8 Feb 2002 11:11:38 GMT)
X-Complaints-To: abuse@wanadoo.nl
NNTP-Posting-Date: Fri, 8 Feb 2002 11:11:38 +0000 (UTC)
X-Mailer: Mozilla 4.7 [en] (WinNT; I)
X-Accept-Language: en