• Reset your password

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log in
Hjem
Linuxin 2025

Breadcrumb

  • Hjem
  • forums
  • Hvad mener I om c++?

Hvad kan du med 100% sikkerhed sige, at du har stemt?

Valgmuligheder
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 in to post comments

Kommentarer10

13 år 3 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 in to post comments

13 år 3 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 in to post comments

13 år 3 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 in to post comments

13 år 3 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 in to post comments

13 år 3 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 in to post comments

13 år 3 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 in to post comments

13 år 3 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 in to post comments

13 år 3 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 in to post comments

13 år 3 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 in to post comments

13 år 3 måneder siden

Permalink

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

Permalink

ok

#9

Jeg misforstod dig fuldstændig.

  • Log in to post comments

Svar søges

Den er go 0
Vil du have et sikrere og mere privat internet? Du skal blot installere Vivaldi-browseren med Proton VPN understøttelse! 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

Test 2
2 stk Jolla C2 sælges 1
Det første forumindlæg efter installation af Forum-modulet 8
Vanilla OS 12
Nye forum-indlæg viser sig kun 1 gang 1
Vil alle forumindlæg vise sig to gange 1
Hjælp til remote terminal vindue? 3
PCLinuxOS 19
Kan ikke boote på installation 24
80-20 reglen 1
Skærmlys fader ud på min bærbare 8
32 bit distro på max 700mb der stadig understøttes 26
Har vi nogen Linux konsulenter i Slagelse området? 3
Virkelig 7
gnome-software? 3
Archer T2U AC600 Wireless Dual Band USB Adapter 26
En farverig APT 3.0 udgivelse imponerer med sine nye funktioner 2
Unix's fødsel 2
Linux Mint 13
"Intet realistisk alternativ" - mig i r*ven 1

Copyright © 2025 Company Name - All rights reserved

Developed & Designed by Alaa Haddad