🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #11404

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

#11404
From: Jack Portier
Date: Fri, 08 Feb 2002 14:08
78 lines
4829 bytes
"Sjoerd Schreuder" <sa_schreuder@wanadoo.nl> wrote in message
news: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.
> - 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.

Dat bedoel ik juist! Je moet C zien als een soort high-level assembler. Je
kunt er prima in programmeren en het is efficient want reken maar dat het
toevoegen van een string type, meer typechecking en ingebouwde
geheugenmanangement een enorme impact geeft op performance. Nee, C is
ideaal; efficient en 'concise', zonder frutsen of franje.

Maar je hebt gelijk, misschien kunnen mensen beter eerst Java leren.

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

Maar C++ is wel tien keer zo moeilijk als C, al moet je bij C iets meer
weten hoe een computer echt werkt om af en toe te begrijpen waarom bepaalde
dingen op een bepaalde manier worden gedaan. Bij andere talen wordt dit meer
verborgen gehouden.  Met C libraries kom je trouwens ook al een heel end om
bovenstaande dingen te maken (een string library of een geheugen management
library).

> 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: <gZQ88.80$mS5.298@pollux.casema.net>
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!cleanfeed.casema.net!leda.casema.net!pollux.casema.net.POSTED!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 06:12:24 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!cleanfeed.casema.net!leda.casema.net!pollux.casema.net.POSTED!not-for-mail
Reply-To: "Jack Portier" <nomail@nergens.nl>
From: "Jack Portier" <nomail@nergens.nl>
Newsgroups: be.comp.programming,nl.comp.programmeren
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>
Subject: Re: oproep aan de programmeurs:wat moet ik kiezen ?
Lines: 80
Organization: None
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Message-ID: <gZQ88.80$mS5.298@pollux.casema.net>
Date: Fri, 08 Feb 2002 14:08:12 GMT
NNTP-Posting-Host: 212.64.108.140
X-Trace: pollux.casema.net 1013177292 212.64.108.140 (Fri, 08 Feb 2002 15:08:12 MET)
NNTP-Posting-Date: Fri, 08 Feb 2002 15:08:12 MET