porcelaiN Skrevet 14. august 2004 Del Skrevet 14. august 2004 Morn morn.. Jeg har tenkt til å begynne med C++, jeg er helt ny så derfor har jeg noen spørsmål før jeg begynner: - Hvilket program trenger jeg til å komplimere og bygge opp i? - Må jeg ha kunnskaper fra C, eller andre programmeringspråk? - Er det innmari vanskelig? Håper noen har svar på spørsmålene mine Lenke til kommentar
søppel Skrevet 14. august 2004 Del Skrevet 14. august 2004 (endret) Mårnings! :] - Hvilket program trenger jeg til å komplimere og bygge opp i? Google: "bloodshed", eller http://irc.cpp.no/ ("C++ kompiler under Windows" på bunn der.) - Må jeg ha kunnskaper fra C, eller andre programmeringspråk? Nei. Noen tror det er lurt å starte med C før C++, men det greieste er å starte med C++ med en gang. - Er det innmari vanskelig? Jeg vet ikke. Endret 14. august 2004 av søppel Lenke til kommentar
porcelaiN Skrevet 14. august 2004 Forfatter Del Skrevet 14. august 2004 Takk takk, skal se på det etterpå Lenke til kommentar
Simon Zimmermann Skrevet 28. august 2004 Del Skrevet 28. august 2004 Leter etter noen bra online nybegynner ressurser for C++? Noen som har tips? Ps. Tenkte det var greit å slenge spørsmålet inn i tråden her siden den omtrent omhandlet det samme og side det derfor hadde vært unødvendig å starte en helt ny. Lenke til kommentar
Dead_Rabbit Skrevet 28. august 2004 Del Skrevet 28. august 2004 Du kan jo sjekke der det står anbefalte tutorials? Lenke til kommentar
Vaughn Skrevet 31. august 2004 Del Skrevet 31. august 2004 Jeg tenkte jeg kunne legge til: C++ er ikke et særlig bra språk å starte med, ettersom det er et spesialspråk - beregnet for systembygging. OSer, hastighetskritisk programmering o.l. En mye bedre ide er å starte med Lisp eller (kanskje bedre) Scheme. Noen ressurser, bare for å ha hevet de ut: Bøker: Practical Common Lisp SICP Lisp-miljø: Allegro CL, som har en nedlastbar prøveutgave. Lisp in a Box, en fri variant som er både dårligere og bedre. (I Windows. I Linux er den nesten like bra som den kommersielle utgaven av Allegro) DrScheme, for Scheme, som jeg ikke har URL på. Ressurser: Cliki, in Lisp-Wiki. Lenke til kommentar
saboi Skrevet 31. august 2004 Del Skrevet 31. august 2004 C++ er et spesialspråk? C++ er "general purpose" Du kan lage alt med c++, bortsett fra noen få ting som krever low level asm og slikt, samtidig som det går raskt. jeg ser ingenting galt å begynne med c++. når du først kan det trenger du egentlig ikke å kunne noen andre programmeringsspråk og hvis du skulle trenge det er det lett å lære seg nye. Lenke til kommentar
Vaughn Skrevet 31. august 2004 Del Skrevet 31. august 2004 Tiong som bruker lavnivå-assembler kan skrives i C++ lett nok - bruk inline assembly. Det eneste som *ikke* kan er vel operativsystemer, og det bare hvis du ikke starter det med GRUB! Jeg snakker ikke om hva C++ *kan* gjøre, jeg snaker om hva som er hensiktsmessig. Det er ikke særlig mye. Det er ikke helt uten grunn at C++-programmer tenderer å bruke ti-femten ganger så mange kodelinjer som et tilsvarende Lisp-program. Lenke til kommentar
Dead_Rabbit Skrevet 31. august 2004 Del Skrevet 31. august 2004 Da har man kansje ti-femten magne ganger så stor kontroll også da? C++ brukes jo ganske mye til spill hvor hurtighet er viktig. Lenke til kommentar
Vaughn Skrevet 31. august 2004 Del Skrevet 31. august 2004 Joda, C++ kan være nyttig der hastighet (eller kontroll, greit nok) er viktig. Det var en av tingene jeg nevnte. Det du må huske på er at C++ tvinger dere til å ha full kontroll; Lisp, for eksempel, tillater deg å gjøre stort sett de samme tingene som C++, men du er ikke nødt. For de fleste situasjoner er det viktigere å ha feilfrie, små programmer som er raske å skrive enn å ha et 15% raskere C++-program. Lenke til kommentar
saboi Skrevet 31. august 2004 Del Skrevet 31. august 2004 Selvfølgelig fins det språk hvor du bruker mindre kodelinjer enn c++, men det betyr ikke at c++ er et "spesialspråk" av den grunn. se f.eks på programmeringsjobber, det er ganske mange fler som søker c++-programmerere enn lisp-programmerere. Når c++ er et av de mest brukte programmeringsspråkene sier det seg selv at det ikke er et spesialspråk. Jeg skjønner egentlig ikke hva du mener med spesialspråk uansett. C++ var definitivt ikke beregnet OS'er som du sier. Jeg vet heller ikke hva du mener med systembygging. Lenke til kommentar
Vaughn Skrevet 31. august 2004 Del Skrevet 31. august 2004 De har ikke noe med hverandre å gjøre, så det er ikke rart at du ikke skjønner. C++ har mange kodelinjer: Det tar lengre tid å skrive C++-programmer, og de får proporsjonalt flere feil. Punktum. C++ er et spesialspråk: Det er beregnet på å fungere som grensesnitt mot en bestemt type maskinvare, og lar deg ikke omgå begrensningene til denne. (Manuell minnebehandling, manuell bruk (eller oftere ikke-bruk) av bignums, osv.) Systembygging: Skriving av infrastruktur, som OS, biblioteker som libc og Qt, osv. Ikke egentlig knyttet til C++, men poenget er at C++ er bedre egnet enn f.eks. Fortran. Dette er en styrke ved språket. Det finnes flere jobber for C++-programmerere enn Lisp-programmerere: Sant. Dette er delvis en historisk treghet fordi maskinene tidligere var for trege (og Lisp-kompilatorere for dumme) til å kunne kjøre Lisp i fornuftige hastigheter, men skyldes hovedsaklig to faktorer: - Lisp blir oppfattet som en bedriftshemmelighet av de som bruker det. Det gir en stor konkurransefordel når det blir brukt rett, så de reklamerer ikke for det. - Lisp er fiendtlig mot bedrifter. Lisp-programmerere er færre, og det er vanskeligere for en annen programmerer å sette seg inn i Lisp-kode hvis den første må byttes ut. Dette liker ikke bønnetellerne, og de har mye å si for markedet som helhet. (Ikke for det; Lisp-kode er lettere å lese enn *tilsvarende* C++-kode, men den er sjelden tilsvarende; Lisp-programmene blir bare mye mer kompliserte enn noen ville forsøke med C++.) Se Paul Graham's skriverier for bedre begrunnelser. Lenke til kommentar
A_N_K Skrevet 31. august 2004 Del Skrevet 31. august 2004 Vaughn: Hva mener du om nyere funksjonelle språk, som Haskell og O'Caml? Lenke til kommentar
Vaughn Skrevet 31. august 2004 Del Skrevet 31. august 2004 Begge to er fine fra et estetisk/teoretisk synspunkt, men de er ikke praktiske for de fleste oppgaver. Funksjonell programmering har sin plass, men de fleste interessante problemer vil bare bruke det på en (ganske liten?) del av programmet. Det er derfor viktig å bruke et språk som støtter så mange metodikker som mulig. C++ er slitsomt å programmere funskjonelt, og har dårlig støtte for objektorientert programmering. Ocaml/Haskell har dårlig støtte for iterativ/objektorientert programmering. Lisp har god støtte for alle tre, og har i tillegg makroer, så det er lett å utvide hvis noen finner på noe nytt. (Nei, #define er ikke makroer. Lisp-ekvivalenten til for er implementert som en makro (med goto); prøv det med #define.) Lenke til kommentar
A_N_K Skrevet 31. august 2004 Del Skrevet 31. august 2004 O'Caml har dårlig støtte for objektorientering, er du sikker? O-en står tross alt for Objective. Har ikke skrevet stort i O'Caml eller Haskell ennå, men AI-kurset jeg tar nå bør være en gylden mulighet :] Lenke til kommentar
søppel Skrevet 31. august 2004 Del Skrevet 31. august 2004 (endret) Har inntrykk av at språk som Lisp er gode og kanskje bedre enn C/C++ i teorien, men i praksis må man alikevell bruke C/C++ siden det ikke finnes støtte for å gjøre det man gjerne vil gjøre i Lisp - altså biblioteker. Endret 31. august 2004 av søppel Lenke til kommentar
Vaughn Skrevet 1. september 2004 Del Skrevet 1. september 2004 A_N_K: Bare relativt sett. Ocaml har et *brukbart* objektsystem, men det kommer ikke opp mot Lisp sitt; det er vel mer på høyde med C++. Søppel: Sant nok, men alle Lisp-implementasjoner jeg har sett har støtte for å kalle C/C++-biblioteker på en relativt grei måte, så det er bare et argument for *svært* små proghrammer. Lenke til kommentar
Simon Zimmermann Skrevet 1. september 2004 Del Skrevet 1. september 2004 Så for meg som kan "programmere" ActionScript/JavaScript og har lyst til å lære objektorientert programmering, Lisp eller C++? Har i andre tråder fått et inntrykk av at C++ er et fint språk å begynne med, men jeg har aldri hørt noe om Lisp. Lenke til kommentar
søppel Skrevet 1. september 2004 Del Skrevet 1. september 2004 (endret) Kan man eksplisitt destruere objekter i Lisp? Eller /må/ man bruke GC hele tiden? Har vonde minner fra Java-tiden, som for meg riktignok var rundt 1996-1997, der programmer ble "ujevne" fordi GC'en slo inn med gjevne mellomromm. Vaughn: Stemmer; jeg kom på dette med kalling av C/C++-biblioteker etter jeg hadde postet - altså at det var en mulighet. Har du et eksempel på hvordan det gjøres? En kodesnutt? Jeg er mest nysjerrig på dette med C++-biblioteker. Edit: Waldmeister: Det går helt greit å begynne med C++ (I did), det er objekt-orientert og har i tillegg støtte for "generics" (templates). Du må riktignok ofre liiitt mer av deg selv for å lære det enn f.eks. Actionscript og Java/ECMAscript. Lisp er ikke en erstating for C++ i mine øyne -- Lisp er noe helt annet. Hvis du er i tvil om valg tror jeg du bør tenke på hva du er ute etter å lage først, og så hvilket språk du velger. Endret 1. september 2004 av søppel Lenke til kommentar
Vaughn Skrevet 1. september 2004 Del Skrevet 1. september 2004 søppel: Det er ikke noe alternativ til GC. Dette er ikke så ille som du tror; maskiner er raskere, og GC-algoritmene i de fleste Lisp-implementasjoner ligger langt foran Java, selv nå. I tillegg har mange kommersielle Lisp-varianter mulighet for å bruke "incremental" GC; dette koster 10-30% lavere hastighet, men pausene forsvinner. Waldmeister: Vil du lære å programmere hva som helst, eller vil du lære å programmere en bestemt type programmer? Hvis det er det første, vil du ungå en del uvaner (stort sett å ikke vite hva som er mulig/måter å tenke) ved å først lære Lisp eller Scheme. Hvis det er det andre, kommer det an på programmet; hvis C++ faktisk er best egnet, kan du bli litt raskere ferdig ved å lære det først. Lisp er uansett verdt å lære, om ikke annet så for å få full oversikt over alle de forskjellige måtene å konstruere algoritmer. Du blir en bedre programmerer av det. Et godt start-punkt er c2.com; denne siden har mange fine startpunkter for å lære Lisp, og hele wikien (den opprinnelige wikien, faktisk) er full av... visdom. Det finnes ikke noe annet ord. Det må nevnes at C++ sine "templates" bare er en svak, forvridd skygge av Lisp's makroer. 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å