reznor15 Skrevet 24. juni 2004 Del Skrevet 24. juni 2004 Jeg har prøvd meg litt på noen programmeringsspråk før. har brukt vb6, c++ og vb.net. Har jo hørt at c++ skal være det kraftigste språket hittil, men ettersom c# har kommet ut, kommer c++ til å bli utdatert snart? c++ og c# er vel ganske forskjellige etter hva jeg har hørt. Kommer de fleste til å lære seg c# istedenfor c++ etterhvert? Noen som har erfaringer om disse språkene? Lenke til kommentar
GeirGrusom Skrevet 24. juni 2004 Del Skrevet 24. juni 2004 C# kan ikke konkurere med C++ fordi de er to forskjellige verktøy. Som kjent tar det drepende lang tid å skrive et ordentlig Windows program i C++, mens i C# er dette like enkelt som i Visual Basic, MEN, C# MÅ HA .NET Framework installert på datamaskinen for å fungere, den kompilerer til noe kalt CLR (Common Language Runtime) som er en type Macro Assembly(ikke helt,) som kan bli kompilert på alle maskiner med Framework installert. Men C++ er mye raskere, samt at du har mer eller mindre full kontroll over hva programmet ditt gjør, du må allokere minne selv, og passe på å frigjøre det, dette trenger du ikke uroe deg for i C#, men minne håndtering er på et høyere nivå (men du kan bruke pekere der faktisk) samt at du har lav-nivå minnehåndtering i Marshall klassa. og så videre, blablabla. Lenke til kommentar
Dead_Rabbit Skrevet 24. juni 2004 Del Skrevet 24. juni 2004 (endret) C# er vel mer .net basert(er ikke helt sikker), men jeg tror uansett ikke C++ kommer til å bli utdatert, det er jo som du sa ganske kraftig og vil vel da alltid trengs. Men C++ er jo ikke det kraftigste språket da. Edit: Ja... GeirGrusom kan vel litt mer om det her en meg . Endret 24. juni 2004 av zirener Lenke til kommentar
abcd423417984 Skrevet 24. juni 2004 Del Skrevet 24. juni 2004 (endret) nå skal det jo nevnes at du i C++ kan kode .net (og dermed kode i en stil som er SVÆRT lik C# under .net). Jeg har et enkelt eksempel på dette hvis du er interessert. Hva skal du med språket da? C# er nok ganske greit hvis du skal lage programmer basert på windows forms hvor hastigheten ikke er kritisk. Da sparer du masse tid og har masse muligheter. Dot Net runtime filer ligger jo i windows update sådet begynner å bli en del som har det. Ellers kan jo ingen motsi at C++ er et greit allaround språk Endret 24. juni 2004 av invictus Lenke til kommentar
MailMan13 Skrevet 25. juni 2004 Del Skrevet 25. juni 2004 .NET kode er like rask uansett hvilket språk den er skrevet i, det er ikke forskjell på C++ og C# for .NET etter koden er kompilert. Funksjonaliteten her ligger i .NET rammeverket og ikke i programmeringspråkene som kan brukes om hverandre som det passer seg. Tradisjonell C++ er selvfølgelig _mye_ raskere (på såkalt mikroytelse) enn .NET CLR, men skal man lage transaksjonsbaserte systemer blir programmene fort svært store og kompliserte og kanskje til og med tregere hvis det ikke har vert en svært dyktig prgrammerer bak tastaturet. Grovt sett kan man si det slik: Transaksjonsbaserte systemer, bruk .NET eller J2EE Beregningsintensive systemer, bruk C/C++ Lenke til kommentar
GeirGrusom Skrevet 26. juni 2004 Del Skrevet 26. juni 2004 Transaksjonsbaserte systemer, bruk .NET eller J2EE Beregningsintensive systemer, bruk C/C++ Kan stemme ganske bra... det er et hel..uh -heim å skrive windows (GUI i det hele tatt) i C++. .NET kode er like rask uansett hvilket språk den er skrevet i, det er ikke forskjell på C++ og C# for .NET etter koden er kompilert. Etter slik jeg har forstått det, stemmer ikke det helt... når du kompilerer .NET programmer vil CLR fortsatt bli i koden (kilde koden til programmet) slik at programmet bare kan flyttes til en Macintosh f.eks. og programmet vil bli kompilert på nytt til Macintosh istedet, siden dette medfører at kilde koden kan bli utsatt for © tyverier, følger det med et program som heter DOTFuscator som krypterer programmet, slik at du ikke kan få tak i CLR koden uten videre. Lenke til kommentar
TAFT Skrevet 26. juni 2004 Del Skrevet 26. juni 2004 (endret) C# er C++ overlegen på (minst) ett aspekt: Produktiviteten. Alle språk som tilbyr automatisk minnehåndtering gir muligheten for å produsere mer på mindre tid (flere språk faller i denne kategorien: VB [ja faktisk!], lisp, Smalltalk, java og diverse scriptspråk - og alle språk som kjører managed code under dotNet). Årsaken til dette er at man ikke bruker tid på å allokere og, ikke minst, frigjøre minne - samt å sjekke om pekerne er "ute i skogen". Misforstå meg ikke, jeg har ikke noe korstog mot C/C++, men hvert språk til sin tid (jeg ville f.eks. aldri kode en device-driver i C#). Har personlig kastet C++ ut med badevannet. Regner med at net framework på sikt vil bli tilgjengelig på de fleste platformer. Hvis ikke kan jeg alltids ta det inn i varmen igjen. C derimot er et fantastisk språk dersom man skal kode direkte mot hardware. Endret 26. juni 2004 av TAFT Lenke til kommentar
eirikhm Skrevet 26. juni 2004 Del Skrevet 26. juni 2004 Noe som mange ikke er klar over er at ISO komiteen kikker på oppdateringer av C++ nå (i samarbeid med *drumroll* microsoft). Ting som properties og garbage collector kommer kanskje inn. Lenke til kommentar
GeirGrusom Skrevet 27. juni 2004 Del Skrevet 27. juni 2004 C++ begynner å bli litt kryptisk nå, jeg for min del holder meg til standard C biblioteker og skriver det jeg trenger selv. Men C++ vil vel aldri bli avleggs, men det er ikke egnet for å lage windows programmer. Lenke til kommentar
Manfred Skrevet 30. juni 2004 Del Skrevet 30. juni 2004 C# er C++ overlegen på (minst) ett aspekt: Produktiviteten. Alle språk som tilbyr automatisk minnehåndtering gir muligheten for å produsere mer på mindre tid (flere språk faller i denne kategorien: VB [ja faktisk!], lisp, Smalltalk, java og diverse scriptspråk - og alle språk som kjører managed code under dotNet). Årsaken til dette er at man ikke bruker tid på å allokere og, ikke minst, frigjøre minne - samt å sjekke om pekerne er "ute i skogen". Sorry hvis jeg dreper litt av illusjonene dine, men du kan (dessverre) ikke helt glemme minnet ditt selv om du driver med .net. Driver du med DX.net-saker eller større objekter må du likevel være nøye med å fjerne de underveis... gc under .net funker ikke SÅ bra... Lenke til kommentar
Zethyr Skrevet 30. juni 2004 Del Skrevet 30. juni 2004 Man kan bruke 'Managed C++' , blir ikke det noe av det samme ? Lenke til kommentar
TAFT Skrevet 1. juli 2004 Del Skrevet 1. juli 2004 Sorry hvis jeg dreper litt av illusjonene dine, men du kan (dessverre) ikke helt glemme minnet ditt selv om du driver med .net. Driver du med DX.net-saker eller større objekter må du likevel være nøye med å fjerne de underveis... gc under .net funker ikke SÅ bra... Jeg snakker da selvsagt litt i generelle termer, men ja - du trenger strengt tatt ikke fjerne de. At GC ikke funker så bra (under 1.1 i hvert fall) er noe jeg ikke kjenner til (eller merket, men det kan jo være... ) Uansett, det er god programmeringspraksis å spesifikt dispose ressursene når man har brukt dem (spesielt hvis man vet det er tunge objekter). Man må likevel ikke være så rigid på dette (som i bl.a. C++). Følgende hentet fra How Microsoft Lost the API War (som snakker mye om det samme, men som for øvrig går seg vill i slutten av artikkelen). SidebarWhy does automatic memory management make you so much more productive? 1) Because you can write f(g(x)) without worrying about how to free the return value from g, which means you can use functions which return interesting complex data types and functions which transform interesting complex data types, in turn allowing you to work at a higher level of abstraction. 2) Because you don't have to spend any time writing code to free memory or tracking down memory leaks. 3) Because you don't have to carefully coordinate the exit points from your functions to make sure things are cleaned up properly. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå