|
| Hvad er forskellen på C, C++ og C# (Absolu~ Fra : Søren \"Pengman\" Pe~ |
Dato : 18-12-02 03:44 |
|
Jeg ved intet om programmering i C, men har undret mig over hvad forskellen
på disse tre er...
På forhånd tak:
Sørn
| |
Bertel Lund Hansen (18-12-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 18-12-02 06:47 |
|
Søren "Pengman" Pedersen skrev:
>Jeg ved intet om programmering i C, men har undret
>mig over hvad forskellen på disse tre er...
Nogle amerikanere opfandt C som er et effektivt og fleksibelt (og
'farligt') programmeringssprog med et begrænset sæt kommandoer. I
C kan man lægge 1 til et tal ved at skrive tal++. Da Bjarne
Stroustrup (en dansker nu bosat i USA) derfor ville udbygge C med
et stort, nyt sæt kommandoer, kaldte han det C++ - altså
efterfølgeren til C. Men man kan (stort set) skrive ren C-kode i
C++ stadigvæk - en smart detalje der gør det forholdsvis let at
gå fra C til C++.
Microsoft prøver at slå alle konkurrenter af banen, og C# er
beregnet til at lokke C++-programmører over til deres sprog. C#
er bygget på C++, men tilbyder ikke ret meget mere.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
tsl (18-12-2002)
| Kommentar Fra : tsl |
Dato : 18-12-02 21:49 |
|
> Nogle amerikanere opfandt C som er et effektivt og fleksibelt (og
> 'farligt') programmeringssprog med et begrænset sæt kommandoer. I
> C kan man lægge 1 til et tal ved at skrive tal++. Da Bjarne
> Stroustrup (en dansker nu bosat i USA) derfor ville udbygge C med
> et stort, nyt sæt kommandoer, kaldte han det C++ - altså
> efterfølgeren til C. Men man kan (stort set) skrive ren C-kode i
> C++ stadigvæk - en smart detalje der gør det forholdsvis let at
> gå fra C til C++.
> Microsoft prøver at slå alle konkurrenter af banen, og C# er
> beregnet til at lokke C++-programmører over til deres sprog. C#
> er bygget på C++, men tilbyder ikke ret meget mere.
Jeg synes det er værd at nævne at C++ og C# er objektorienterede sprog,
hvilket C ikke er. Det er jo straks en helt anden måde at opfatte tingene
på, som måske ikke er så velegnet til nybegynderen? Når folk spørger mig,
plejer jeg altid at anbefale de starter med ren C og så senere, når de har
en vis forståelse, prøver C++
C# anbefaler jeg af gode grunde aldrig
| |
Jacob Atzen (18-12-2002)
| Kommentar Fra : Jacob Atzen |
Dato : 18-12-02 15:50 |
|
"tsl" <dingamlemamma@hotmail.com> writes:
> Jeg synes det er værd at nævne at C++ og C# er objektorienterede sprog,
> hvilket C ikke er. Det er jo straks en helt anden måde at opfatte tingene
> på, som måske ikke er så velegnet til nybegynderen? Når folk spørger mig,
> plejer jeg altid at anbefale de starter med ren C og så senere, når de har
> en vis forståelse, prøver C++
Hvorfor anbefaler du dem ikke at lære at programmere objekt-orienteret
med det samme? Og som begynder sprog er der mange pænere sprog derude,
der er lettere for begynderen at håndtere. Jeg har hørt at Ruby og
Python skulle være en del pænere end c(++).
--
Med venlig hilsen
- Jacob Atzen
| |
Bertel Lund Hansen (18-12-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 18-12-02 16:17 |
|
tsl skrev:
>Jeg synes det er værd at nævne at C++ og C# er objektorienterede sprog
Jo, men mit svar skal ses i lyset af at modtageren ikke ved noget
om programmering.
>hvilket C ikke er. Det er jo straks en helt anden måde at opfatte tingene
>på, som måske ikke er så velegnet til nybegynderen?
Det ser jeg ingen tegn på. Nybegyndere på datamatikeruddannelsen
i Horsens kaster sig med ilhu over Java og OOP.
>Når folk spørger mig, plejer jeg altid at anbefale de starter med ren C
C er ikke velegnet til nybegyndere. Så hellere Python.
>og så senere, når de har en vis forståelse, prøver C++
Jeg har selv været hæmmet i mange år over for OOP fordi jeg er
vokset op med non-OOP. På den anden side var der en skrap
programmør på min skole der gik helt i baglås da ham skulle lave
et sekventielt program (det tog dog kun et minuts forklaring at
få ham til at se lyset).
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Søren \"Pengman\" Pe~ (18-12-2002)
| Kommentar Fra : Søren \"Pengman\" Pe~ |
Dato : 18-12-02 17:24 |
|
> >Jeg synes det er værd at nævne at C++ og C# er objektorienterede sprog
>
> Jo, men mit svar skal ses i lyset af at modtageren ikke ved noget
> om programmering.
Well - en smule om programmering men intet om C(og varianter)
> Det ser jeg ingen tegn på. Nybegyndere på datamatikeruddannelsen
> i Horsens kaster sig med ilhu over Java og OOP.
Jeg er selv netop begyndt på datalogi på Aalborg universitet, og vi skal
have C næste semester (hvilket afledte spørgsmålet), og Java semesteret
efter...
Og så lige endnu et dumt spørgsmål:
Hvad er præcist forskellen på Object Orientet programmering og "almindelig"
programmering?
Fordele og ulemper?? Eller er det bare en smagssag?
Eller mange tak for svarene
Søren
| |
Bertel Lund Hansen (18-12-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 18-12-02 19:19 |
|
Søren "Pengman" Pedersen skrev:
>Jeg er selv netop begyndt på datalogi på Aalborg universitet, og vi skal
>have C næste semester (hvilket afledte spørgsmålet), og Java semesteret
>efter...
Det er en god kombination.
>Hvad er præcist forskellen på Object Orientet programmering og "almindelig"
>programmering?
Forestil dig et vindue i en grafisk brugerflade. I almindelig
programmering kan man lave det som en subrutine med et sæt
parametre. Man skal så definere et sæt variable til hvert eneste
vindue man vil have på skærmen og kalde de samme subrutiner, og
man skal passe på ikke at blande variablerne sammen.
I objektorienteret programmering skriver man en klasse med et sæt
værdier og metoder til styring af vinduet. Derefter kan man i
andre dele af programmet oprette nye vinduer ved blot at skrive:
Vindue v1 = new Vindue(0,0,200,300);
v1.show();
Man behøver slet ikke vide hvordan vinduet egentlig er
programmeret. Det dukker op på skærmen der hvor man placerer det,
og det er født med alle de egenskaber som et vindue skal have:
rullebjælker, lukkeknap, maksimeringsknap, og det kan ændre
størrelse når man trækker i hjørnet. Man siger at v1 arver fra
Vindue, og at show() er en indkapslet metode (man ved ikke
hvordan den er programmeret).
>Fordele og ulemper??
Det kan der skrives en tyk bog om. Det er rart at kunne begge
dele.
>Eller er det bare en smagssag?
Nej, det kommer an på hvad det skal bruges til.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Kent Friis (18-12-2002)
| Kommentar Fra : Kent Friis |
Dato : 18-12-02 20:06 |
|
Den Wed, 18 Dec 2002 17:24:16 +0100 skrev Søren \"Pengman\" Pedersen:
>
>Og så lige endnu et dumt spørgsmål:
>Hvad er præcist forskellen på Object Orientet programmering og "almindelig"
>programmering?
>Fordele og ulemper?? Eller er det bare en smagssag?
For en ikke-programmør:
Objektorienteret programmering er en måde at proppe alting i firkantede
kasser. Uanset om det er terninger, fodbolde, vand eller elektricitet.
Nogen ting passer godt i firkantede kasser. Andre ting passer dårligt.
Mvh
Kent
--
If you think about it, Windows XP is actually the OS that
started as "Microsoft OS/2 NT 3.0"
| |
Mads Jensen (18-12-2002)
| Kommentar Fra : Mads Jensen |
Dato : 18-12-02 17:56 |
|
Hej
>C# anbefaler jeg af gode grunde aldrig
Af hvad kunne bladre igennem i en bog, så det ud til at være Java pakket
sammen som C++?
Kunne meget vel forestille mig dette, da Microsoft har det med at *stjæle
meget* fra andre, og kræve ret over det.
/Mads
| |
Kent Friis (18-12-2002)
| Kommentar Fra : Kent Friis |
Dato : 18-12-02 20:00 |
|
Den Wed, 18 Dec 2002 21:48:56 +0100 skrev tsl:
>> Nogle amerikanere opfandt C som er et effektivt og fleksibelt (og
>> 'farligt') programmeringssprog med et begrænset sæt kommandoer. I
>> C kan man lægge 1 til et tal ved at skrive tal++. Da Bjarne
>> Stroustrup (en dansker nu bosat i USA) derfor ville udbygge C med
>> et stort, nyt sæt kommandoer, kaldte han det C++ - altså
>> efterfølgeren til C. Men man kan (stort set) skrive ren C-kode i
>> C++ stadigvæk - en smart detalje der gør det forholdsvis let at
>> gå fra C til C++.
>> Microsoft prøver at slå alle konkurrenter af banen, og C# er
>> beregnet til at lokke C++-programmører over til deres sprog. C#
>> er bygget på C++, men tilbyder ikke ret meget mere.
>
>Jeg synes det er værd at nævne at C++ og C# er objektorienterede sprog,
>hvilket C ikke er. Det er jo straks en helt anden måde at opfatte tingene
>på, som måske ikke er så velegnet til nybegynderen? Når folk spørger mig,
>plejer jeg altid at anbefale de starter med ren C og så senere, når de har
>en vis forståelse, prøver C++
Jeg anbefaler hellere at man vælger et af sprogene, og så lærer det
ordentligt. Er det udelukket, så vil jeg anbefale at tage C++ først,
af den simple årsag, at en C++ compiler kan compile de fleste
C-programmer, og derved kommer man nemt til at skrive C-kode, hvis
man kan det sprog i forvejen.
Starter man med C++, så skal compileren nok sørge for at man ikke
skriver C++-kode i et C-program, og hvis bare man sørger for at have
ordentlig styr på C++ først, kommer man ikke så nemt til at blande dem.
Jeg havde selv en lærer der blandede de to sprog. Dårlig ide.
Mvh
Kent
--
NT er brugervenligt - det er bare brugerne der ikke kan finde ud af det
- en NT-administrator
| |
Kent Friis (18-12-2002)
| Kommentar Fra : Kent Friis |
Dato : 18-12-02 20:03 |
|
Den Wed, 18 Dec 2002 06:47:25 +0100 skrev Bertel Lund Hansen:
>Søren "Pengman" Pedersen skrev:
>
>>Jeg ved intet om programmering i C, men har undret
>>mig over hvad forskellen på disse tre er...
>
>Microsoft prøver at slå alle konkurrenter af banen, og C# er
>beregnet til at lokke C++-programmører over til deres sprog. C#
>er bygget på C++, men tilbyder ikke ret meget mere.
Til gengæld tilbyder den en del mindre. (pointer-aritmetik, multipel
arv, copy constructors, bare lige for at nævne tre store mangler i C#).
C# har meget mere til fælles med Java, end det har med C++.
Mvh
Kent
--
Indlæringskurven til Linux er stejl, til tider lodret... Men for katten
hvor er udsigten på toppen dog fantastisk
- Michael G. Vendelbo i dk.snak
| |
Søren \"Pengman\" Pe~ (18-12-2002)
| Kommentar Fra : Søren \"Pengman\" Pe~ |
Dato : 18-12-02 22:17 |
|
| |
Helge Jensen (04-01-2003)
| Kommentar Fra : Helge Jensen |
Dato : 04-01-03 00:38 |
|
Søren "Pengman" Pedersen wrote:
> Jeg ved intet om programmering i C, men har undret mig over hvad forskellen
> på disse tre er...
- C: standard sproget til imperativ programmering, svært at bruge :)
Valget for den trænede operativ-system programmør, eller den der skal
opfylde håde performance krav, men ikke kan vælge C++.
Meget svært at debugge
- C++: multiparadigme-sprog, svært at forstå til bunds :)
Understøtter Imperativ, ObjektOrienteret og Generisk programmering,
til en vis grad også Funktionel programmering, men er tynget af arven
fra C kompatabilitet. Er designet før teorien for disse paradigmer kom
på plads, hvilket også giver ballade.
Valget for den der skal møde hårde performance-krav og i forvejen
kenden C++
Sindsygt svært at debugge
- C#: JAVA, med lidt hype, (svært at forstå motivationen for, udfra
programmør synspunkt :)
Valget for den der hopper på, at JAVA er godt.
Jeg ved ikke hvor svært det er at debugge.
Hvis du er ude efter et godt begynder-sprog vil jeg anbefale python, det
er nemt, flexibelt og til at vokse med. Efterhånden som du lærer nye
paradigmer, teknikker osv. vokser din brug af sproglige features, og i
modsætning til C++ er der ikke en masse MEGET komplicerede regler man
skal kende for at forstå sproget. det virker bare. Man behøver langtfra
kende hele sproget for at få glæde af dele af det.
Python er fortolket, hvilket gør det nemt at arbejde iterativt med, og
det har garbage-collection, så man ikke behøver at brokle med de mest
almindelige memory-hånsterings scenarier.
Python har et STORT utility library (næsten lige så stort som JAVA og
Perl), og det gør det nemt at lave programmer der "gør" noget.
--
Helge
| |
|
|