• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af thorbjørntux | 13.02.2012 09:38

Hvad mener I om c++?

Programmering
http://www.linuxin.dk/node/19398
Heri bliver Linus' C++ had nævnt

paldepind har også et sjovt citat:
http://www.linuxin.dk/node/19407#comment-70789
I think maybe the guy who invented C++ doesn't know the difference between increment and excrement. -- smcameron

foruden at han har den frækhed at sige, 'nok fordi at det er elendigt designet sprog' :)

(sagt drillende - selvom jeg gerne vil have du forsvarer det :) )

Det er flere andre bemærkelsesværdige negative citater:

There are only two things wrong with C++: The initial concept and the implementation. — Bertrand Meyer

(Nu har implementationen jo ændret sig en del fra at være source to source til source -> binary - men jeg tror citatet mere er lavet for at sige 'alt er galt med c++')

Actually I made up the term ‘object-oriented’, and I can tell you I did not have C++ in mind. — Alan Kay

C++ is an insult to the human brain -- Niklaus Wirth

Linus' holdning står i øvrigt her:
http://advice.cio.com/esther_schindler/linus_torvalds_why_c_sucks

Tilgengæld hedder artikel why C++ suck - og jeg står med fornemmelsen af at Linus (ligesom andre) sandelig kan bashe, men rent faktisk bruger skældud som 'argumenter' mod c++ ...

Hvorfor er C++ dårligt designet/forkert? Det er jo i sin enkelthed let nok bare at hælde noget pop-smart øregas ud - men som c++ expert vil jeg da gerne høre hvad folk konkret har mod sproget...

Man kan sige, at man ikke bryder sig om syntaxen (hvilket også er fair nok - men så brude man nok heller ikke bryde sig om C ...)

Måske kan man også bedre lide andre sprog ... helt ok, men beretter dette C++ bashing?

Jeg har gjort min egen holdning klart her:
http://www.linuxin.dk/node/19398#comment-70726

Hvor jeg henviser til
http://warp.povusers.org/OpenLetters/ResponseToTorvalds.html

og måske også burde også have haft henvist til
http://www.johndcook.com/blog/2009/09/15/linus-torvalds-cpp/
(og den efterfølgende debat)

Slutteligt vil jeg nævne at c++11 (c++0a el c++0x netop lige er blevet færdigt i den pågældende ISO-komite). Derudover ligger spoget i toppen af de mest brugte sprog (og intet tyder på at det vil ændre sig ...)
http://langpop.com/

Så c++ er altså ikke forældet eller noget ...

De småting, som jeg selv kan indvende mod c++ er

* at sproget ikke har noget garbage-collector (det er ikke ubetinget en ulempe - men måske skulle der være et optionelt tilvalg ...)

* Der findes ikke nogen uendelige ints i c++

* (Nogle tekniske småting, som jeg ikke engang vil prøve at formulere :) )

Personligt ser jeg ikke nogle større problemer i c++ - og jeg kunne godt tænke mig, at høre hvad folk herinde mener, at der er galt med c++ ....

Det er lidt vanskelig at forholde sig til ukonkret c++ bashing ....

Jeg ser frem til en spændende (forhåbentlig) spændende og saglig debat.
Hvis jeg bliver mødt med stilhed må jeg forvente, at folk faktisk ikke har noget sagligt at indvende mod c++.
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer10

# 1

13 år 4 måneder siden

Permalink

Indsendt af marlar den 13. februar 2012 kl. 11:02

Permalink

Hmm, måske har vi ikke brug

Hmm, måske har vi ikke brug for flere "hvad er der galt med" artikler lige med det samme? :-)

Bare min 25 øre.
  • Log ind eller opret dig for at tilføje kommentarer

# 2

13 år 4 måneder siden

Permalink

Indsendt af thorbjørntux den 13. februar 2012 kl. 11:09

Permalink

ok, opdaterede overskriften,

#1
ok, opdaterede overskriften, så den ikke er så konfronterende ...
  • Log ind eller opret dig for at tilføje kommentarer

# 3

13 år 4 måneder siden

Permalink

Indsendt af Anonym7 den 13. februar 2012 kl. 11:10

Permalink

Personligt har jeg et par

Personligt har jeg et par gange leget lidt med C++ og gået i gang med at implementere nogle ting deri men som tiden er gået er jeg faldet tilbage til C (foruden nogle andre sprog, men kun C er relevant for diskussionen).

Kald mig stupid, men det forekommer mig der er en række rimeligt giftige huskeregler omkring alt fra copy constructors mv. (Jeg kan ikke argumentere godt for den opfattelse længere da det er mindst et år siden jeg sidst læste C++).

Der er nok mening med galskaben, men til de fleste ting foretrækker jeg andre sprog og hvis det SKAL være low-level - så er der en rimelig skønhed ved C. Selve sproget har forholdsvist få konstruktioner og er, trods nogle irritationsmomenter (så som operator precedence helvedet) forholdsvist overskueligt.

Problemet med C++ er nok at det arvede problemerne fra C og (måske derfor) endte med at dynge egne problemer og huskeregler ovenpå. Resultatet er et sprog hvor der er ret mange måder at skyde sig selv i foden på :)

Men hey, hvad end der gør folk glade.
  • Log ind eller opret dig for at tilføje kommentarer

# 4

13 år 4 måneder siden

Permalink

Indsendt af thorbjørntux den 13. februar 2012 kl. 12:48

Permalink

#3Du har faktisk en god

#3
Du har faktisk en god pointe (selvom jeg nu ikke lige mindes et problem med copy ctor) C++ har dog en kuriositet i forbindelse med constructorer ...

class SomeClass {
...
};

SomeClass c(some_var); // her bliver ctor oplagt kaldt

SomeClass c; // Her bliver en default ctor selvfølgelig kaldt
n = some_var; // Der bliver ikke kaldt nogen ctor

SomeClass c = some_var; // Her bliver en mulig ctor der tager some_var kaldt - hvad der ikke er oplagt (Conversion operators kan også komme i sving med forskellig precedence - og den mere oplagte operator = kan aldrig komme på tale ...)


Men godt-taget - hvis jeg får 10 af den slags tilsvarende problemer er jeg måske :) tilbøjelig til at erkende at c++ har et problem :)

Er det i øvrigt anderledes i Java?


(PS: Der er faktisk også noget konversion, hvor man måske ønskede at keyword explicit var implicit - altså default - mens implicit var det keyword, der burde være - og der automatisk tillod den slags type-konverteringer .... Måske burde jeg tælle dette som punkt nr.2 ...)
  • Log ind eller opret dig for at tilføje kommentarer

# 5

13 år 4 måneder siden

Permalink

Indsendt af paldepind den 13. februar 2012 kl. 13:36

Permalink

Først vil jeg gerne

Først vil jeg gerne indrømme, at min holdning om C++ i meget ringe grad bygger på egne erfaringer.


#0: foruden at han har den frækhed at sige, 'nok fordi at det er elendigt designet sprog' :)
(sagt drillende - selvom jeg gerne vil have du forsvarer det :) )
Det er mit indtryk at Bjarne Stroustrup ukritisk tilføjede alle features han kunne finde til C++, for at tilfredsstille alle.

Operator overloading? Det skal med!
Multiple inheritance? Det skal med!
Osv.

Resultatet er et enormt og dårligt designet sprog, med alt for mange faldgrupper. Desuden er det vigtig at have in mente, at C++ ikke blev populært, fordi at det har nogle udsøgte kvaliteter, andet end at det var let og omkostningsfrit at migrere til fra C.
  • Log ind eller opret dig for at tilføje kommentarer

# 6

13 år 4 måneder siden

Permalink

Indsendt af beer den 13. februar 2012 kl. 13:43

Permalink

Jeg vil sige at C++ har sin

Jeg vil sige at C++ har sin plads, ligesom C og c#/java har det.

Steder som jeg regner med at sprogene har det bedst:

C: til low level/hardware programing.
C++: OS/kernel, modelring og andre steder hvor det skal gå stærkt men hvor man ikke har tid til at skrive det binært
c#/java: resten af verden

  • Log ind eller opret dig for at tilføje kommentarer

# 7

13 år 4 måneder siden

Permalink

Indsendt af Looop den 13. februar 2012 kl. 16:04

Permalink

Det er pænt
#6 enig

Det er pænt

#6 enig
  • Log ind eller opret dig for at tilføje kommentarer

# 8

13 år 4 måneder siden

Permalink

Indsendt af thorbjørntux den 13. februar 2012 kl. 17:35

Permalink

#5
Resultatet er et enormt

#5
Resultatet er et enormt og dårligt designet sprog ...

Jeg kan forstå din holdning men jeg deler den ikke :)
>Operator overloading?
Ja, Selvfølgelig skal den med .... :)

Multiple inheritance?
Ja, Selvfølgelig skal den med .... :)

I sidstnævnte findes der i den virkelige verden faktisk ting, som kan være flere ting... og derudover så skal folk især med overloading bare passe på. Jeg har givet lidt mht typekonvertering kan ske for automatisk ...

fordi at det har nogle udsøgte kvaliteter, andet end at det var let og omkostningsfrit at migrere til fra C.

Min egen tro er faktisk at C oftere bruges til lidt mere low-level ting (f.eks. embedded) hvor man ikke kan anvende c++ - eller også har man ikke fundet nogen pointe i at tilføje c++ som lag når hele ens kode-base i forvejen var C. Du kan ikke komme med mange eksempler på kode, der er lovlig C og ikke lovlig c++ kode ...

#6
Jeg takker for svar :)

Jeg synes jo bestemt også at der er plads til java. Det har rigtig mange fordele.. Crossplatform på 100 måder + kan afvikles i browser. Pga mine egne kompetencer ville jeg normalt vælge c++ til store stationære programmer - også fordi man aldrig med sikkerhed ved om noget pludselig kræver ekstra performance ... (og her kan det være lettere at optimere c++)

Jeg er bestemt ikke helt uenig i dit billede af situationen....
(Nu nævner jeg så ikke c# - måske fordi jeg deler i hvert fald noget af Bjarnes holdning:
http://www2.research.att.com/~bs/bs_faq.html#Csharp
)

#7
Tak for svar - og se evt ovenfor :)
  • Log ind eller opret dig for at tilføje kommentarer

# 9

13 år 4 måneder siden

Permalink

Indsendt af paldepind den 13. februar 2012 kl. 21:40

Permalink

Min egen tro er faktisk

#8: Min egen tro er faktisk at C oftere bruges til lidt mere low-level ting (f.eks. embedded) hvor man ikke kan anvende c++ - eller også har man ikke fundet nogen pointe i at tilføje c++ som lag når hele ens kode-base i forvejen var C. Du kan ikke komme med mange eksempler på kode, der er lovlig C og ikke lovlig c++ kode ...Jeg forstår ikke helt hvad du mener. Ja, lovlig C kode er også gyldig C++ kode. Det er jo netop derfor at migræringen er så let.

C blev oprindeligt lavet som et system sprog. Men da Unix blev enormt populært, og Unix var skrevet i C, blev C enormt populært. Derfor begyndte folk at skrive alle mulige programmer i C, et formål det ellers ikke var ment til. Altså bruger rigtig mange C. For en virksomhed der bruger C er det nu meget billigt at skifte til C++, end hvis man skulle have skiftet til f.eks. Smalltalk. Den eksisterende kodebase kan genbruges, og medarbejderne kan lære det nye sprog lidt hen ad vejen. Jeg tror at dette er den største årsag til C++ success.
  • Log ind eller opret dig for at tilføje kommentarer

# 10

13 år 4 måneder siden

Permalink

Indsendt af thorbjørntux den 13. februar 2012 kl. 21:43

Permalink

ok

#9
Jeg misforstod dig fuldstændig.
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

Open Source-eksperimentet 3
Nulstilling af adgangskode 5
PCLinuxOS 24
Gode anmeldelser Zorin OS 17.3 2
"Intet realistisk alternativ" - mig i r*ven 15
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2
Vanilla OS 15
Pepsi Challenge 4
Linuxin er nu migreret til Drupal 11 13
Et Dansk alternativ til Facebook 18
Ekstern Blu-ray-brænder, der fungerer med PCLinuxOS 3

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !