Avatar billede andme Nybegynder
12. juli 2009 - 00:59 Der er 13 kommentarer og
1 løsning

C eller C++

Hej. Jeg mangler noget at give mig til i sommerferien og vil derfor i gang med lidt programmering da jeg skal læse IT på universitetet om 1 års tid. Men hvilket af de 2 sprog skal man i gang med? Ved C++ er nyere og en videreudviklet version af C så umiddelbart ville C++ være valget eller hvad mener i? Er interesseret i opbygning og udvikling af styresystemer og større programmer. Jeg ved godt det tager længere end sommerferien at lære, men her har jeg en masse tid til at komme i gang :)
Avatar billede arne_v Ekspert
12. juli 2009 - 02:02 #1
Der er mange meninger om dette emne.

Typisk vil man lære begge.

Så er argumenterne:
* lær C først fordi det er nemmest
* læs C++ først fordi så undgår du at komme til at kode dårligt C++

Du vil lære mere om programming ved at lære C++.

Jeg trpr dog at der er større chance fro at du vil skulle bruge C end C++ når du er færdig.

Læs også diskussionen her:
  http://www.eksperten.dk/spm/879615
Avatar billede crazysnap Seniormester
12. juli 2009 - 12:17 #2
Jeg synes der er en meget vigtig pointe at fremhæve her, som heller ikke nævnes i tråden arne_v referer til.

C er ikke objekt orienteret. Der er selvfølgelig implementerings-metoder til at få en klasse-lignende struktur, men disse vil aldrig blive strengt type tjekket.

C++ er objekt orienteret (ligesom Java og C#, som er moderne programmeringssprog der meget udbredt idag). C++ er faktisk det vi kalder et (eng)"multiparadigm" programmeringssprog, du kan selv vælge om du vil kode imperativt (som ikke objekt orienteret), objekt orientered eller på anden vis (som f.eks. funktionelt som C også kan).

Da du skriver du er interesseret i udvikling af styresystemer og større programmer, ville jeg nok mest hælde til C++. Kan du C++ kan du nemlig også C (efter min egen overbevisning). Kan du C og C++, er udviklingen af styresystemer ikke langt væk og kan du C++ objekt orienteret, kan du hurtigt og nemt konvertere til enten Java eller C#.
Hvorfor nævner jeg overhovedet Java og C#? Jo for skal du til at lave avancerede brugerflader til dine "større programmer" er det meget nemmere (hurtigere) i f.eks. C# end C++. Og får du pludseligt lyst til at lave web-applikationer, har ASP.NET også C# som backend.

Derfor, lærer du C++ objektorienteret, mener jeg, du er mere udrustet til hvad fremtiden bringer, både på arbejdsmarkedet, men også fordi objekt orienteret programmering er så udbredt som det er i dag.

Mvh.
CS
Avatar billede andme Nybegynder
12. juli 2009 - 15:16 #3
Ville C++ Primer være en god bog at gå i gang med?
Avatar billede andme Nybegynder
12. juli 2009 - 15:21 #4
crazysnap og arne_v hvis i lige smider et svar så i kan få jeres point :) Tak for svarene. Det var oplysende!
Avatar billede js_delphi Nybegynder
12. juli 2009 - 15:24 #5
Hej,

nu naevner du styresystemer, som jo er et ret bredt omraade.
Jeg selv koder brugerflader til PLC styringer, hvilket jeg normalt goer i Delphi (har ogsaa brugt C++ til dette, men synes bedre om Delphi).
Er det micro-controllere, du skal have gang i, mener jeg at C er mest anvendt (hvis ikke assembler, men det er saa noget helt andet).
Skal du derimod lave stoerre brugerfladeprogrammer, ville jeg helt klart bruge C++ frem for C (som crazysnap er inde paa).

Det skal lige siges, at jeg ikke har nogen som helst erfaring med C, saa ovenstaaende er baseret paa et lidt tyndt grundlag.

Vh.
js_delphi
Avatar billede arne_v Ekspert
12. juli 2009 - 17:11 #6
Normalt siger man at C++ understøtter:
- procedural programmering
- object orienteret programmering
- generisk programmering

Jeg har aldrig set hævdet at C++ understøtter funktionel programmering.
Avatar billede arne_v Ekspert
12. juli 2009 - 17:12 #7
Med hensyn til bog er der også en anden tråd:
  http://www.eksperten.dk/spm/879421

Der er mange som anbefaler Accelerated bogen.
Avatar billede arne_v Ekspert
12. juli 2009 - 17:12 #8
Og et svar fra mig.
Avatar billede crazysnap Seniormester
13. juli 2009 - 12:58 #9
Jeg samler ikke point, så accepter du bare arne_v' svar.

Og til arne_v, se her:

http://en.wikipedia.org/wiki/Functional_programming

Der står lidt længere nede at C++ understøtter den funktionelle programmerings-stil. Og på denne blog er der en som giver nogle simple eksempler i retningen af funktionel programmering i C++:

http://blog.cplusplus-soup.com/2006/09/functional-programming.html

Og til andme, held og lykke fremover med udviklingen og velkommen ind i en sjov og spændende verden hvor der stort set ingen grænser findes.

Mvh.
CS
Avatar billede andme Nybegynder
13. juli 2009 - 15:59 #10
Så siger jeg mange tak for hjælpen! :)
Avatar billede arne_v Ekspert
14. juli 2009 - 03:46 #11
I wikipedia står der:

Programming in a functional style can be accomplished in languages that aren't specifically designed for functional programming, including C, C++, Python, or Java.

C++ har ikke sprog features beregnet til funktion programmering. Man emulerer.

C++ har derimod sprog features til generisk programmering.
Avatar billede crazysnap Seniormester
14. juli 2009 - 11:06 #12
Lige præcis, så man kan fint programmere med funktioner uden sideeffekter i C++ og gøre det nemt ved f.eks. brug af dette bibliotek:

http://www.cc.gatech.edu/~yannis/fc++/

Derfor elsker jeg multiparadigmatiske programmeringssprog som C++ for det har så mange muligheder. Man kan f.eks. ikke skrive objekt orienteret kode i Standard ML (SML). ;)

Min pointe var bare oprindeligt at man har mange muligheder i C++, man kan endda skrive funktionsorienteret kode. Så at C++ ikke har deciderede indbyggede features (eller biblioteker) til det, er mig underordnet, så længe man kan skrive type stærkt funktionsorienteret kode, vil jeg sige (min mening) at programmeringssproget understøtter programmeringsparadigmet.
Avatar billede arne_v Ekspert
15. juli 2009 - 03:36 #13
Er der noget sprog hvor man ikke kan skrive funktioner uden side effekter?
Avatar billede crazysnap Seniormester
15. juli 2009 - 10:21 #14
Jeg havde faktisk ikke vendt den sådan og kan derfor ikke nævne et sprog hvor man ikke kan skrive funktioner uden sideeffekter nej (jeg kender ihvertfald ikke til et). Så ja, det er op til udvikleren at opretholde programmeringsparadigmet på det punkt (altså sørge for at alle funktionerne er uden sideeffekter), skulle han/hun få lyst til at skrive funktionsorienteret kode i f.eks. C++.
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