Avatar billede cpjg Nybegynder
03. maj 2002 - 13:51 Der er 28 kommentarer

Hvorfor bruge C++?

Når jeg er igang med at søge arbejde på nettet, som programmør, så kommer jeg ofte ud i det, at de skriver på deres hjemmeside, at de laver Windows-applikationer, og bruger Microsoft Visual C++.

Efter mine erfaringer med windows-programmering, vil jeg mene, at det både er hurtigere og nemmere og mere overskueligt at lave programmer i sine windows-programmer i Delphi. Hvad er så grunden til at folk så stadig benytter sig af C++ til at lave Windows-applikationer med?


Avatar billede Slater Ekspert
03. maj 2002 - 13:55 #1
Hastighed og kontrol

C++ er SÅ meget hurtigere at udføre og giver dig så meget mere kontrol at du slet ikke tror det. Og så er det jo dansk.
Avatar billede lequet Nybegynder
03. maj 2002 - 13:57 #2
C++ er specielt stærkt til store ressource krævende software, såsom 3D software og lign. hvor det er yderst vigtigt at hukommelsen udnyttes maksimalt. Til almindeligt software hvor det ikke betyder så meget, vil du være bedre stillet med andre sprog som f.eks. Deplhi, da det er nemmere, og du vil derfor være mere produktiv.

Om det er årsagen til at de stiller det "krav" ved jeg dog ikke :)
Avatar billede Slater Ekspert
03. maj 2002 - 14:01 #3
Og så er der en ting til: C++ er platformuafhængigt og kræver stort set intet andet end sig selv for at virke. Delphi kræver, som de fleste andre IDE-baserede programmeringssprog, en DLL... eller rettere en masse... for at virke.
Avatar billede -mundi- Nybegynder
03. maj 2002 - 14:05 #4
Det var da noget sludder, visual c++ kræver da også læssevis af dll'er prøv du at køre en kompileret exe fil, der er lavet på en windows platform, på en linux box . Så det der med platformsuafhængighed fårstår jeg ikke helt ?
Avatar billede Slater Ekspert
03. maj 2002 - 14:06 #5
Øhh.. det er vist kun med MFC eller når du bruger COM.
Avatar billede Slater Ekspert
03. maj 2002 - 14:07 #6
Og så ER det jo dansk!! :)
Avatar billede soreno Praktikant
03. maj 2002 - 15:01 #7
jeg vil til enhver tid benytte c++ pga. syntaksen og at det er et standardiseret sprog - ved ikke om om delphi/pascal er standardiseret hos nogle organisationer ?
Avatar billede Slater Ekspert
03. maj 2002 - 15:40 #8
Tror jeg sq ikke. - Og så er det jo dansk! :D
Avatar billede doc404 Novice
03. maj 2002 - 22:16 #9
Tillader mig lige at korrigere lidt her... Jeg arbejder til daglig med Delphi, C++ (32 og 16bit), og Assembler. Koder på Windows platformen - både applikation og helt nede på vxd og sys driver niveau.

Du har fuldt ud lige så meget kontrol over tingen i Delphi som i C++. Og læs lige at jeg skriver Delphi og ikke Pascal - det er to verdener for sig selv. Der er een ting man ikke kan lave i Delphi og det er VXD/SYS drivere - og det skyldes IKKE programmeringssproget, men simpelthen at Borland har valgt ikke at understøtte dette i deres linker. Hastighedsmæssigt er Delphi fuldt ud på højde med Microsoft's VC 6 - hvis man ellers koder fornuftigt.

C++ sproget er grundlæggende platformsuafhængigt, men laver du C++ programmer til Windows API'en så glem alt om dette - hvorfor har Microsoft så to helt seperate afdelinger, der udvikler Office hhv. PC og Apple?

IDE har ikke en døjt at gøre med om et program kræver nogle DLL'er. VC har da også en IDE.. Og Delphi kræver ingen DLL'er andet en de der par tusinde styks som alle WIndows programmer bruger (USER32DLL,RAS32.DLL etc).

Delphi er sgu mere Dansk end C++. C++ er godt nok designet af en Dansker - men det er Delphi også. Anders Hejlsberg er manden bag PolyPascal, TurboPascal, Delphi og Microsoft's seneste C#.

Hvorfor bruger man så C++? Tja, hvis du har udviklere der både skal arbejde på Windows platformen og evt. på en Unix/Linux platform er det da smart at have C folk (Delphi findes godt nok også til Linux). Men det er et valg som så meget andet. Måske er visse firmaer mere tilbøjelige til at "tro" på C++ som en platform også om 10år end Delphi...I øvrigt bliver der skrevet mere kode i VB end i Delphi og C++ tilsammen ;-)

I øvrigt er det jo bare et spørgsmål om hvor godt man kender sit værktøj. En rigtig god C programmør og en rigtig god Delphi programmør kan lave det samme på samme tid. Men man bliver hurtigere en relativ god programmør i Delphi end i C++. C++ og specielt Microsoft's ATL/MFC ting er lidt sværer at kapere for en begynder.

Personligt elsker jeg Delphi, koder med fornøjelse i C++, lever med ASP programmering i VB, men ville dybest set helst kode alt i Assembler *G*
Avatar billede quecronix Nybegynder
04. maj 2002 - 17:46 #10
Jeg har brugt Delphi i et par måneder nu, og jeg synes også helt klart, det er det bedste. Så jeg vil give dig ret i din kommentar, doc404.
Avatar billede codemon Nybegynder
04. maj 2002 - 23:49 #11
Folk koder i C++ fordi de ikke har fattet at der er noget der hedder java :)
Avatar billede soreno Praktikant
04. maj 2002 - 23:54 #12
programmeringssproget er værktøjet til at nå et mål - ikke et mål i sig selv.
Avatar billede faerch Nybegynder
05. maj 2002 - 01:17 #13
Som viperine svarer er grunden hastighed og kontrol. Her kommer en lille uddybning.

Jeg mener at Delphi er et højniveausprog, det er det nært beslægtede pascal ihvertfald. Assembler (eller maskinkode) er karakteriseret som lavniveausprog (tæt på maskinkoden).
Med et lavniveausprog er man noget tættere på maskinkode og har derfor mulighed for at optimere på programmers afviklingshastighed og har mulighed for at rykke direkte i portene på PC'en. Til gengæld er det meget omfattende at programmere i.

C(++) er derimod karakteriseret som et mellemniveausprog. Det betyder at det har mange af de funktioner man har i andre højniveausprog. (F.eks. windowsfunktioner i MFC (Microsoft Foundation Classes)). Samtidig har du med C en række kommandoer, hvor du kan komme noget tættere på maskinkode end diverse højniveausprog.
Til gengæld skal man i C++ have styr over hvad man gør. Opretter man opbjekter skal man huske at nedlægge dem igen efter brug. (Det skal man f.eks. ikke tænke på i Java).
Avatar billede soreno Praktikant
05. maj 2002 - 09:59 #14
det der karakteriserer at det er et højniveau sprog (eller 3. generations sprog) er at du har mulighed for eks. at indtaste:
a = (b+c)/d;

istedet for lavniveau sprog (eller 2. generations sprog) hvor der skal gøres brug af flere kommandoer for at opnå samme resultat.

jeg har aldrig hørt mellemniveau sprog omtalt før, og jeg tror ikke at det findes. MFC er jo bare et abstraktions niveau, som gør at programmøren ikke behøver opfinde den dybe tallerken version 1.0 hvergang han skal programmere et lille bitte vindue. iøvrigt er jeg ret sikker på at både delphi og c++ er højniveau sprog.
Avatar billede faerch Nybegynder
05. maj 2002 - 10:59 #15
C++ kaldes et mellemniveausprog, fordi det er et højniveausprog, men hvor det samtidig er muligt at anvende nogle kommandoer fra et lavniveau sprog.
Når man programmere microprocessorer er man meget tæt på hardwaren og her programmeres i C eller assembley, netop fordi disse sprog har mulighed for lavniveau-kommandoer.
(C++ er den objektorienterede udgave af C.)
Avatar billede soreno Praktikant
05. maj 2002 - 11:15 #16
Avatar billede soreno Praktikant
05. maj 2002 - 11:15 #17
Avatar billede cpjg Nybegynder
06. maj 2002 - 20:02 #18
ehmm... undskyld mig, men jeg er ved at være ret godt træt af, at ALLE de mennesker, der nævner Delphi, siger at det er et sprog.
Delphi er IKKE et sprog. Delphi er et udviklingsmiljø, og sproget hedder Object Pascal.
Og pascal og Delphi er ikke 2 forskellige verdener, for Delphi er nemlig kodet i Object Pascal. Som de siger: Delphi er kodet i Delphi, og der indgår intet C++.

Ang. det viperine siger, med at C++ er dansk:
Sig mig, vælger du C++ fordi at det er DANSK???

Og til codemon:
De fleste mennesker idag har vel nok hørt om Java, og en del 13 - 15 årige har da også programmeret i det, men Java er meget langsomt, og det er ikke muligt at benytte sig at den enkelte computers resourcer, og jeg har heller ikke endnu set 3D skydespil lavet i Java, fordi at det tager for lang tid at lave dette i Java.


Og forresten
Avatar billede cpjg Nybegynder
06. maj 2002 - 20:08 #19
Desuden er det der undrer mig allermest er, at folk hellere vil indtaste 25 liniers kode i C++ for at oprette et vindue, end at bruge Delphi.
Og laver man et windows-program i C++ så kan det altså heller ikke bruges i Linux uden en emulator.

Det er helt okay at benytte sig af C++ til alle mulige andre platforme, men skal man lave Windows-applikationer, så burde man altså gøre det i Delphi (desuden er Delphi gratis, det er Microsoft Visual C++ ikke).
Avatar billede cpjg Nybegynder
06. maj 2002 - 20:10 #20
Lige så snart du benytter dig af #include <windows.h>
så kan dit program ikke bruges på andre platforme.

Så kan man lige så godt benytte sig af Delphi.
Avatar billede Slater Ekspert
07. maj 2002 - 16:12 #21
doc404>> API min ven.. API... Man kan godt høre at du ikke har det fjerneste tjek på programmering.
Avatar billede doc404 Novice
07. maj 2002 - 16:30 #22
viperine>> aha... Et eller andet sted synes jeg det er en lidt uheldig (flabet) kommentar du kommer med... Hvad f... taler du om?
Avatar billede lanstorp Nybegynder
23. maj 2002 - 17:44 #23
Ikke at forglemme at Borlands C++ komponenter er kodet i Delphi :)
Avatar billede reficul Nybegynder
26. august 2002 - 03:05 #24
Nu siger I godt nok C++, og jeg har endnu ikke fundet det smarte i alt den der objekt-orienteret crap. Selv bruger jeg C, men nok om det!

Jeg mener at et program skal være lille, hurtigt og bruge så få resourcer som muligt. Dette opnåes selvfølgelig bedst med Assembly, men det er sq noget besværligt i længden, så må man ty til det næst-bedste: C.
Jeg holder af at jeg nærmest ved præcist kommando for kommando, hvad en C kommando vil ende med at være i assembly, når det er kompilet!!
I pascal og specielt object pascal kommer der en masse ekstra kode ind i filen, der gør filen voldsom stor i forhold til funktionalitet!

Kan du lave et program i Delphi på 1kB? I C++ kan du!
Avatar billede codemon Nybegynder
26. august 2002 - 19:49 #25
reficul det er lidt synd for dig at du ikke har fattet objektorienteret programmering. Procedural C programmering er spagettikode af if og switch sætninger i forhold til godt designet C++ kode.

Når man programmerer objektorienteret giver det en mere overskuelig struktur, løsere kobling mellem komponenter så dele kan skiftes ud eller rettes uden det har indflydelse på resten af programmet. Det tvinger også programmøren til at tænke over programopdelingen så man til dels undgår rode kode.

Objektorienteret programmering med polymorfi kan også eliminere mange kæder af if eller switch sætninger. Noget der kun til dels kan opnås med funktionspointere eller hardcore pointer og memory håndtering.
Avatar billede codemon Nybegynder
26. august 2002 - 19:52 #26
Det næste hedder i øvrigt Komponent orienteret programmering. (COP??)

Javas bønner er et godt eksempel. Det er også OO der gør dette muligt.
Avatar billede 2989 Nybegynder
01. februar 2003 - 23:46 #27
Hehe viperine kan godt lide din begrundelse til hvorfor C++ er godt "det er dansk", det er det bare ikke :)
Ja det var Bjarne Stroustrup der i 1979 udviklede "C with Classes" som senere blev omdøbt til C++, men siden da er C++ blevet videre udviklet af ANSI/ISO C++ commitee og er derfor nok mere amerikansk end dansk. Og er det nu det ?, det er nemlig Alexander Stepanov (russer) som har udviklet STL som man må sige er en stor del af C++.
Avatar billede soreno Praktikant
01. februar 2003 - 23:53 #28
Hvis det er kommentaren "03/05-2002 15:40:31" du hentyder til - så kan det jo også være pascal der hentydes til..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester