Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  14 1461
Først og fremst vil jeg si at jeg er enig at det er en god del om det her fra før, og det vil kanskje forbli en evig diskusjon om hva som egentlig er det beste.
Med hva som er det beste tenker jeg da på om man skal begynne med det i disse dager.

Som kanskje noen av dere fikk med dere så la jeg ut et bilde av min kjære lille valp sammen med C boken min, her på galleriet.
Det var boken ''The C programming language SE'' skrevet av Brian W. Kernighan og Dennis M. Ritchie.
Moren min fikk tak i dette bilde å begynte og sende det rundt til alle kjente. Det var da ei veninne av henne fikk se boken, og slik jeg forsto det så ble hun ganske så oppgitt.
Den boken var utrolig gammeldags, om jeg hadde seriøse tanker om dette måtte jeg ikke finne på å bruke den boken. Jeg måtte visst se på objekt orientert programmering (C++) og hun kunne tydlighvis skaffe meg noen bøker som var gode, noe jeg selvsagt ikke sier nei takk til.

Det er jo egentlig bare flere og flere som sier at det man må satse på i dag er c++, så jeg blir litt i tvil om jeg skal fortsette med den boken jeg har.
Det var i hvertfall den jeg fikk anbefalt for ikke så altfor lenge siden, men jeg var kanskje litt for rask i valg av bok og språk. Det har i hvertfall gått ganske smått med lesing og koding i det siste, så jeg er åpen for å gå over på nye ting.
Jeg kunne tenkt meg råd fra folk som virkelig vet hva dem snakker om, og ikke de som sier at C er best bare fordi en venn har sagt det, eller noe sånt.
Er det virkelig objekt orientert programmering man må på død og liv må satse på i dag? Tja, det spørs hva du vil med det sier kanskje du. Hva om man ikke har noen spessielle mål enda? Hoved målet er egentlig bare å lære seg noe nytt, som kanskje kan komme til nytte senere.

Jeg er ihvertfall veldig usikker på hva jeg skal gjøre. Fortsette med den boken jeg har og smile bredt, eller gå til anskaffelse av en bok som er rettet mot C++?

Har tenkt på en liten ting, kanskje alle de som anbefaler C egentlig er av den litt eldre generasjonen. Som lærte seg C før C++ var kommet.
De har kanskje ikke tid og nok argumenter for å lære seg C++. Så dem liker å holde seg til det dem allerede har.
Sier ikke at dette gjelder alle som anbefaler C, men kanskje en god del?

En annen ting som jeg hvertfall kan lite om er jo C#, man må vel kanskje vurdere det også? Nå kjører jeg linux, og C# er vel en del av .NET som er fra microsoft? Finnes vel muligheter for å bruke C# under linux uansett, så det er vel ikke noe stort problem.
Håper noen har tatt seg tid til å lese igjennom posten min, og som sagt jeg vet det er mye som handler om dette, men skulle så gjerne hatt svar fra de som virkelig vet hva de snakker om.

Godt nytt år til alle sammen!
Nå kan ikke jeg så mye C++, men kan en del C og andre programmeringsspråk som Java,Perl,Python.
Det er ikke så stor forskjell mellom C og C++. C++ er egentlig C med objecter istedenfor malloc() memory alocation som blir brukt i C, så bruker man i nyere objekt orienterte språk som C++ og Java new.
C er eldre men er svært populær og blir brukt til veldig mye rart mest er det et system språk men tror fantasien setter grenser for hva du ikke får gjort i C.
C++ bruksområder er også veldig bredt, jeg anbefaler at du lærer deg begge, for lærer du deg et av dem så blir det ikke vanskelig å gå over til den andre.
Forresten spørr |d13mob om C++ bruksområder, fordeler og ulemper. Noe sier meg at han har stor erfaring innenfor C++.

Men for all del det er en stor investering å lære seg et av dem
istedenfor å loke rundt med VB eller PHP.
Lykke til og godt nytt år.
Nå må du ikke snakke stygt om PHP
Er det sant at det er lettere og lære C om du kan Java?
Om du kan java eller forstår programmering generelt blir det enklere å gå over til C, men da er det kun snakk om flytkontroll, if else, while og for løkker metoder etc er likt i begge språkene.
Men du må nok forholde til et helt annet språk utover det du må spesielt lære pekere i C som er annerledes en Java objekt pekere.

Pekere i C er noe av det vanskeligste nybegynnere sliter med i tillegg til strukter noen får det til lett og andre må slite lenge før de forstår, det avhenger fra person til person.
En annen ting som jeg hvertfall kan lite om er jo C#, man må vel kanskje vurdere det også? Nå kjører jeg linux, og C# er vel en del av .NET som er fra microsoft? Finnes vel muligheter for å bruke C# under linux uansett, så det er vel ikke noe stort problem.
Vis hele sitatet...
C# er godt støttet i Linux, til dette bruke 'mono'
http://www.mono-project.com

Pekere i C er noe av det vanskeligste nybegynnere sliter med i tillegg til strukter noen får det til lett og andre må slite lenge før de forstår, det avhenger fra person til person.
Vis hele sitatet...
Hehe, kjenner meg igjen her ja
Objektorientert programmering er en helt annen æra og kan på ingen måte sammenlignes med ikke-OOP. Ingen med vettet i behold som skal utvikle store system med flere programmerer vil velge et språk som ikke er objektbasert uten helt spesielle unntak. Om noen lurer på hvorfor bør de absolutt revurdere sitt syn på OOP, eller finne ut hva det er i det hele tatt.

For de som ikke vet(men alle som deltar i denne diskusjonen burde vite); C er ikke OO, mens C++ er OO.

Utover det vil jeg anbefale folk å lære seg et godt programmeringsspråk som C++ og et godt scriptspråk som PHP. Webbaserte applikasjoner kommer mer og mer siden alle vil ha plattformløse applikasjoner som kan brukes over alt, hele tiden. C++ bruker jeg så godt som aldri, men det skjer når jeg skal utføre store, tunge SQL-spørringer som fort kan halveres i C/C++. At jeg har valgt C++ er bare fordi jeg liker OOP.

Av personlige grunner til å velge OOP er ganske enkelt om man koder klassene "riktig" med å følge alle "reglene" om god abstraksjon og lave koplinger oppdager man fort at man kan bruke igjen enormt mye kode. Selv sitter jeg ofte å lager applikasjoner og tenker "Oi, dette har jeg en klasse som kan gjøre.". Når man da har laget en god del har man plutselig veldig mange puslebiter man kan sette sammen tilnærmet uten tidsforbruk.

Vedlikehold og samarbeid med andre blir også vesentlig lettere. Det jeg synes er stiligst er abstraksjon av datakilder. Uten å blinke med øyene kan jeg velge om jeg vil hente data fra en MySQL-database, MSSQL-database eller en vanlig filstruktur uten å gjøre endringer i selve applikasjonen, bare endre hvilken klasse jeg vil bruke for datainnsamling.
Trådstarter
Altså, hva som er lettest å lære er ikke så veldig nøye egentlig. Jeg har drevet en del med PHP, litt med C og bittelitt med java og perl. Har så vidt sett på asm også. Jeg tror jeg kan si at jeg vet sånn passe greit hvordan programmering fungerer generelt.

Fin post fra deg Tipex, tror nok det blir til at jeg satser på C++ framover ja. Er det noe jeg må bruke C til en eller annen gang så har jeg jo hvertfall hvert borte i det, og det bør derfor gå ganske greit å bruke det også.
Trådstarter
Nå i det siste har jeg sittet å fundert litt mere på hva jeg skal velge.
En ting er sikkert, og det er at ting har forandret seg etter den første posten jeg skrev. Nå har jeg vel mere eller mindre stryket C helt fra lista.

Faktisk så vurderer jeg C# eller Java ganske sterkt nå. Kan egentlig ikke finne noen vesentlige store forskjeller mellom dem, nå skal det sies at jeg ikke kan så veldig mye enda heller da.
Forskjellen som jeg ser det er vel bare at Java er utviklet av Sun, mens C# av Microsoft. Selv om man kanskje skulle tro at det ikke er en fordel å henge seg på MS, så virker C# .NET egentlig ikke så dumt. Har jo trossalt mono-prosjektet som lar meg bruke det under linux.

Huff. Ja, jeg vet det er så mye mas om "hvilket programmeringsspråk skal jeg velge" osv, men det er ikke så lett. Særlig ikke når jeg har brukt penger på en C bok, og funnet ut i ettertid at det kanskje ikke var så veldig lurt. Satser heller på noe objekt orientert.

Nå er vel disse bøkene jeg skulle få sansynlighvis om Java, siden hun jeg skulle få dem av er lærer på en eller annen høyskole og så vidt jeg har skjønt det blir Java mest brukt på skoler. Så mulig det er greit å bare begynne med det, men på en annen side så er det dumt å bruke tid på Java hvis C# skulle ha store fordeler.

Jeg kan vel ikke stryke C++ helt heller, er jo tydlighvis et godt språk, med en stor brukergruppe. Litt raskere enn C# og Java er det vel også (5-10%?), men dette gjelder vel kun når C++ applikasjonen er skrevet mere eller mindre perfekt, og er det 5-10% så veldig viktige for litt diverse programmering?

Må bare unnskylde meg for dobbeltpost, at jeg plager dere med mine små vanskligheter og evt. skrivefeil. Håper alikevel kanskje noen har noen flere gode innspill i denne tråden.

Sånn helt helt til slutt, så må jeg si at hovedsaken til denne posten er vel å finne ut hva man bør satse på av C# og Java. Eller knuser C++ dem begge?
Sist endret av zwifty; 5. januar 2005 kl. 17:29.
Hvis du skal ta høyere utdanning innen IT, så kommer du høyst sannsansynlig ikke utenom Java. Det finnes kurs der man bygger på videre med opplæring i f.eks .NET og C++, men jeg har ikke sett noen steder enda der f.eks innføringskurset ikke omhandler Java.

Hvis du ikke kan velge, velg begge
Som kermit- sier, du kommer ikke vekk fra Java om du skal ta informatikk eller tilsvarende på en norsk høyskole.

Det vesentlige forskjellen mellom C++ og Java er ganske enkelt hvordan koden kjøres. C++ gjøres om til fullstendig binary som kjøres direkte uten noe fiksfaks. Java blir bare kompilert til en mellomting som krever en motor for å kjøre applikasjonen. Det betyr at om du skal bruke en Java-applikasjon må du ha JDK. Applikasjoner utviklet i C++ holder det med et operativsystem.

Fordelen med dette er at Java kan skrives for et "eget" miljø så er JDK et lite mellomstykke som gjør at kode fungerer like fint på Linux som på Windows. Dette krever mye mer koding i f.eks. C++. Det er også dette som gjør Java så mye tregere enn C/C++.

C# har jeg ikke satt meg inn i det hele tatt så jeg aner ikke hvordan det foregår der. .Net-strategien til Microsoft innebærer ting skal være minst mulig skal være plattformbetinget.

C#/Java mot C++ blir vel et viktig valg som du må basere på hva du har tenkt å utvikle. Systemavhengige applikasjoner gjør seg best i C++, mens alt som jobber mot nett(framtiden, mener jeg) er rimelige gøyale i Java.

Selv foretrekker jeg å velge alle ruter utenom Microsoft da jeg ikke har noe lyst til at det jeg lever av skal avhenge av hva et stort firma i Statene finner på.
▼ ... mange måneder senere ... ▼
Som dere sikkert alle vet, så lager moderne C kompilatorer raskere kode enn C++ kompilatorer (når det er objekter innvolvert i c++ koden). Mens på den annen side, så går det mye fortere å skrive C++ kode som er leselig med STL. f.eks:

Kode

std::string navn; 
navn="Maw";
if(navn=="Maw") 
  std::cout <<"lol !" <<navn"; 
else 
  std::cout <<"rofl " <<navn;
mot C

Kode

char * navn;
navn=strdup("Maw"); /* eventuelt bare: navn="Maw"; */
if(strcmp(navn, "Maw")==0) 
  printf("lol %s", navn);
else
  printf("rofl %s", navn");
men...

så kommer vi til utvikling av programmer med f.eks. socketer eller andre OS dependent crap.
Da kan det være et helvete å caste alt som skal castes i C++. Mens C er mye snillere på det området. (Slik jeg har opplevd det)

Ikke tenk så mye på hvilket språk du lærer deg å programmere i, det viktigste er å lære seg å programmere. Men du burde få med deg OOP.
Kanskje litt gammel tråd, men jeg paster inn noe fra "Joel on Software". Kan gi et litt annet perspektiv.

Learn C before graduating
Part two: C. Notice I didn't say C++. Although C is becoming increasingly rare, it is still the lingua franca of working programmers. It is the language they use to communicate with one another, and, more importantly, it is much closer to the machine than "modern" languages that you'll be taught in college like ML, Java, Python, whatever trendy junk they teach these days. You need to spend at least a semester getting close to the machine or you'll never be able to create efficient code in higher level languages. You'll never be able to work on compilers and operating systems, which are some of the best programming jobs around. You'll never be trusted to create architectures for large scale projects. I don't care how much you know about continuations and closures and exception handling: if you can't explain why while (*s++ = *t++); copies a string, or if that isn't the most natural thing in the world to you, well, you're programming based on superstition, as far as I'm concerned: a medical doctor who doesn't know basic anatomy, passing out prescriptions based on what the pharma sales babe said would work.
Vis hele sitatet...
I fare for å repetere meg selv: Når man skal lære seg å programmere er språket irrelevant. Man må uansett lære seg en god dose grunnleggende konsepter som er like i nesten alle språk. Kjenner du noen andre som holder på å lære seg å programmere? Hvilke språk holder de på med? Kjenner du noen som har peiling som du kan spørre om hjelp? Hvilket språk kan han hjelpe deg med?

Når du først har lært deg en del programmering vil du alltid støte på et prosjekt hvor det språket du ikke kan er det optimale, og du får da to valg: lage en ikke-optimal løsning i et språk du kan, eller bruke tid på å lære deg noe nytt (og siden det er grisekjedelig å drive med ting man kan inn-ut velger du det siste)

Så langt har dette ført meg fra Basic på C64 via VB6, PHP, ASP, noe C/C++ til alt for mye Java, en bitte liten dæsj Lisp, noe Python og nå Obj-C og Cocoa
Hvis du lurer på hva du skal velge av C# og Java, så bare kast mynt og kron; det er egentlig helt likegyldig hvilken av dem du velger. De er nemlig så like at man i stor grad kan skrive identisk kode i disse språkene om man vil.

Generelt er jeg enig med moridin, språket er ikke viktig, men tankegangen. Programmering (i disse dager) går mer på design- og utviklings-delen, og å fremstille dagligdagse problemstillinger på en logisk måte i kode. Tilfeldigvis så har det seg slik at OOP er veldig egnet til akkurat det