🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #15642

Re: welke taal?

#15642
From: Koen Deforche
Date: Wed, 06 Sep 2000 14:44
75 lines
4965 bytes
Peter Backx wrote:
> 
> Liessens (llfvdh@village.uunet.be) wrote:
> : Moet je wel even zeggen dat Java gebaseerd is op C++.
> heel losjes
> 
> : Voor Java of C++ zou ik wel aanraden : zoek een kursus die Object
> : Geori�teerd Programmeren aanleert. Naar mijn gevoel is dit toch
> : d� troef van Java en C++.
> Hoe kun je in java programmeren zonder object georienteerd te werken?
> Alles is een object in Java. In C++ heb je nog de (min of meer) backward
> compatibility naar C, vandaar dat je nog "gewoon" kan programmeren, maar
> dat zou ik absoluut afraden.

C++ is geen OO taal, C++ is een 'multi paradigma taal', waar in je zowel
proceduraal als ObjectGericht als generiek kan programmeren. Voor het
ene probleem zal je generiek programmeren gebruiken (bvb. STL containers),
voor een ander objectgericht (bvb. user interfaces), en voor een ander
proceduraal (bvb. wiskunde algoritmes waarbij functies perfect mappen
op functies in C/C++) en voor de meeste een mooie mix.

Trouwens, wat je noem je object gericht? Het is niet alleen een kwestie
van denken in klassen met methods en data (ADT's), want dat kan je ook in
C met structs en functies. Inheritance op zich is ook maar een
sintactische handigheid. *het* key concept van object gerichtheid zijn
virtual methods (samen met inheritance uiteraard), is het definieren
van interfaces en het scheiden van interfaces en mogelijke implementaties.
Het is het ontwikkelen van algoritmes die gebruik maken van interfaces
en op die manier samen systemen vormen waarop je gemakkelijk kan
verderbouwen.

> Zowel Java als C++ zijn vrij algemeen bruikbaar. Ik zou persoonlijk Java
> aanraden voor de meeste toepassingen omdat het veel minder "rommelige"
> zaken heeft in vergelijking C++. Zo heb je in C++ nog altijd dat geknoei
> met header files en de vreselijke syntax van de STL stuff. Java heeft

Of STL nu een vreselijke syntax heeft of niet, het heeft functionaliteit
die in Java niet te vinden is : type-safe generiek programmeren. In
Java moet je voortdurende upcasten van Object als je een java.util.Vector
of zo gebruikt: mooi en handig is anders.

STL containers zijn in die zin alleen al veel expressiever.

> daarenboven een hele hoop bibliotheken die je er gratis bijkrijgt en het
> hele pointer probleem is ook opgelost.

Wat er opgelost is, is dat er geen pointer arithmetic is. Dit is een
groot voordeel bij gethreade servertoepassingen waarbij je zeker bent
dat threads mekaar niet kunnen in de knoop doen draaien: fouten propageren
zich niet in het wilde weg.

Wat er niet opgelost is, zijn programmeerfouten die je evenveel
in java als c++ maakt, en waarvan je in C++ gewoon de repurcussies
opmerkt door segfaults en buserrors. Het is meestal niet het geheugenbeheer
op zich dat fout is, wel de algoritmes en pre- en post-condities errond
die in de soep lopen, en dat zal in java als C++ evenveel gebeuren.

> Wat IDE betreft maakt de keuze niet zoveel uit. Zowel voor Java als C++
> zijn er heel goede (en heel dure voor een hobbyist) ide's te krijgen.

Nog een punt: C++ is een gestandardiseerde taal, terwijl java gecontroleerd
(gemonopoliseerd) wordt door 1 bedrijf.

Losweg van het initiele punt van de discussie: ik denk dat Turbo Pascal 5.0
een mooie taal is om OO denken te leren (dat heet ondertussen Delphi
zeker?).

Als je C++ kent, is de stap naar Java klein. Omgekeerd is die stap wel
een flink stuk groter, vooral omdat je het gevoel hebt dat je van een
'clean'e taal een stap terug zet naar een taal die met zich een ganse
bagage (C) meesleept. C++ wordt meer gebruikt in engineering en productie,
java wordt meer gebruikt rond databanken, dataverwerking en rond het
web (omdat managers denken dat alles rond het web met java moet :) ).

koen.
Technical Details
Message-ID: <39B6583A.E1E1703C@easics.be>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!sn-xit-uk!supernews.com!193.162.153.122.MISMATCH!news.tele.dk!134.222.94.5!npeer.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail
References: <39a6d8ee.1389539@news.pandora.be> <mM4q5.75621$Ee.617419@afrodite.telenet-ops.be> <39b02ef2$0$5988$73bec57d@news.be.uu.net> <8p0nt2$sd2$1@inf6serv.rug.ac.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: fcea4,280f12f831901726
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2000-09-06 07:44:35 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!sn-xit-uk!supernews.com!193.162.153.122.MISMATCH!news.tele.dk!134.222.94.5!npeer.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail
Message-ID: <39B6583A.E1E1703C@easics.be>
From: Koen Deforche <koen@easics.be>
Organization: Easics nv, Leuven, Belgium, http://www.easics.com
X-Mailer: Mozilla 4.7 [en] (X11; I; SunOS 5.7 sun4u)
X-Accept-Language: en
MIME-Version: 1.0
Newsgroups: be.comp.programming
Subject: Re: welke taal?
References: <39a6d8ee.1389539@news.pandora.be> <mM4q5.75621$Ee.617419@afrodite.telenet-ops.be> <39b02ef2$0$5988$73bec57d@news.be.uu.net> <8p0nt2$sd2$1@inf6serv.rug.ac.be>
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Lines: 75
Date: Wed, 06 Sep 2000 14:44:10 GMT
NNTP-Posting-Host: 193.74.198.7
X-Complaints-To: abuse@Belgium.EU.net
X-Trace: nreader1.kpnqwest.net 968251450 193.74.198.7 (Wed, 06 Sep 2000 16:44:10 MET DST)
NNTP-Posting-Date: Wed, 06 Sep 2000 16:44:10 MET DST