Article View: be.comp.programming
Article #15642Re: welke taal?
From: Koen Deforche
Date: Wed, 06 Sep 2000 14:44
Date: Wed, 06 Sep 2000 14:44
75 lines
4965 bytes
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-mailReferences:
<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