Programmeringsspråk, vilket och varför?

Permalänk
Medlem

Programmeringsspråk, vilket och varför?

Tjena!

Jag ska lära mig antingen Java, C++ eller C. Jag kan lägga ner en hel del tid på det här projektet då jag just nu skriver en uppsats, vilket innebär att jag inte har några föreläsningar.

Min programmeringsbakgrund: Jag har läst ett par Pascal kurser (det ni!! ) och behärskar det språket tämligen bra. Vidare har jag läst objektorienterad programmering, språket var smalltalk. Slutligen har jag programmerat i modula2 (realtidsprogrammering) när jag programmerade en robot i skolan (LTH). Jag har lätt för att lära mig och tycker dessutom att det är roligt. Jag är ute efter kommersiell gångbarhet, alltså hur "hett" ett visst språk är på arbetsmarknaden.

Jag är mycket tacksam för era funderingar och råd angående detta!

Edit: Tips på lämpliga utvecklingsmiljöer/verktyg vore också fint att få.

/Ola

Visa signatur

-Det är timjan i, sade Toke med bruten röst.

Ett liv, ett lag

Permalänk
Avstängd

Det finns olika arbetsmarknader, för spel är det nästan uteslutande C++ som används, på servrar (även spelservrar) är det å andra sidan nästan bara Java som används om jag förstått det rätt.

För interna programlösningar på stora företag är det också oftast Java som gäller.

Jag vågar nog påstå att det är mest efterfrågan på Java, men det brukar å andra sidan inte vara lika "roliga" arbetsuppgifter.

Permalänk
Medlem

C++ är vad jag skulle råda dig till. Anledningen till detta är följande.

Om du lär dig C++ från grunden, dvs. allt som språket innehåller och behärskar alla konstuktioner mm. Då har du ett stort försprång med allt. Java är fruktansvärt likt C++, man kan säga att Java är som C++ fast man har tagit bort allt som brukar vara svårt och krångligt att hantera, minneshantering, pekararitmetik, multipla arv mm. Jag själv har hållt på med C++ i många år. (7 år). Och nyligen började jag med Java, det tog inte många timmar innan man skriver ganska avancerade program i Java. Fördelen med att kunna C++ är att det är lättare att fatta hur Javas referens-variabler fungerar och vad en "garbage collector" egentligen gör och fungerar. Man förstår bättre de bakomliggande mekanismerna i en Java applikation helt enkelt. I C++ inkluderar jag då även C, som egentligen är en mindre del av C++. Skillnaden är väl egentligen att C program oftast är skrivna på ett annorlunda sätt än C++ program, mer bitoperatorer och massor av lustiga preprocessor-direktiv.

C++ är mycket krångligare att lära sig och att behärska till fullo, men om du vill och orkar så har du mycket gratis sen. Jag skulle nästan vilja gå så långt att jag säger att om du lär dig C++ så kan du i princip Java sen, bara att lära sig att använda Javas standardbiblotek. Det svåra med programmering är ju oftast inte att kunna syntaxen i ett visst språk utan att skriva bra kod. Dessutom så är alla stora programsystem nästan uteslutande skrivna i C/C++.

Java är bra, men det har sina nackdelar. Det är för det första ett interpreterande språk som gör att det exekverar långsammare än ett program kompilerat för en viss processortyp. (Ja, det finns Just In Time Compiling, men det är ändå långsammare). Dessutom så exekverar Java inuti en virtuell maskin som körs på datorn.

Det är ditt val, men jag rekommenderar C++ för en mer grundläggande förståelse för vad som händer i datorn och för mer kontroll av vad som händer.

EDIT: Tips på utvecklingsmiljöer. För Java så rekommenderar jag antingen Borland JBuilder eller IntelliJ IDEA. Det senare är nog snäppet bättre, har vunnit en del priser vet jag.
För C++,har du ju Microsoft Visual Studio, Borland C++ Builder. Eller att använda emacs/notepad tillsammans med nån kommandorads-kompilator. Ex DJGPP (gratis). Skulle nog rekommendera det senare alternativet då det är enklast när man vill lära sig språket och inte blanda in massa grafik o annat jox.

Visa signatur

5D MkII

Permalänk
Medlem

Nånting som e "hett" just nu är .net, så ett .net-språk (C# kanske?) skulle nog inte vara så dumt annars..

Permalänk

Kan inte annat än hålla med både Haricots och vectrex.
Olika appliceringsområden har olika krav på programmeringsspråket. Jag jobbar själv främst som javautvecklare och det finns i min erfarenhet något mer sug efter javakompetens än C++ för tillfället. Detta beror nog mycket på att många större aktörer av förvaltningsskäl inte vill frångå deras befintliga (ofta föråldrade) plattformar. Inom bank och finans som jag jobbar finns till och med ett (till stor del obefogat) motstånd mot windowsplattformar.

Dock håller jag med vectrex i sitt resonemang också. Har du tid att lära dig C++ så kommer du få mer förståelse i java än om du gör det omvända.

C# är otroligt likt java i sin uppbyggnad och syntax. *host*rip-off*host* Visst finns det ett visst intresse för .net-utvecklare på arbetsmarknaden också, men jag skulle inte specialisera mig på det om jag var nyexaminerad.

Utvecklingsmiljöer:
För java kan jag KLART rekommendera eclipse som är en open source miljö. Den kan således tankas hem gratis från http://www.eclipse.org/. Den utvecklingsmiljön har även enormt många påbyggnader/plugins som förenklar den specifika utveckling man vill jobba med. Dessutom använder många större konsultföretag numera eclipsebaserade miljöer.
Ett annat fritt alternativ är givetvis SUNs egna SunOne/JavaStudio. Jag provade den en snabbis, men började muttra över nåt som var bättre i eclipse o gick tillbaks till den.

Permalänk
Medlem

Jag tacker för era synpunkter! Jag tänker börja med c++, skälen är dem vectrex anger. Det finns en del kurser på nätet, eller kurser är att överdriva, snarare textsamlingar, men jag funderade på att införskaffa mig en bok också. Den jag funderar på är C++ programmering, 4:e upplagan, av Stephen Prata, vad anser ni om den?

Visa signatur

-Det är timjan i, sade Toke med bruten röst.

Ett liv, ett lag

Permalänk

Jag tycker att den boken är ett gott val, börjde själv med den boken (dock en äldre upplaga).

Visa signatur

Finis coronat opus.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av RoedeOrm
Jag tacker för era synpunkter! Jag tänker börja med c++, skälen är dem vectrex anger. Det finns en del kurser på nätet, eller kurser är att överdriva, snarare textsamlingar, men jag funderade på att införskaffa mig en bok också. Den jag funderar på är C++ programmering, 4:e upplagan, av Stephen Prata, vad anser ni om den?

Om det är C++ -bibeln du vill ha är det bara Stroustrups The C++ Programming Language som gäller. Där står -allt- (det var ju trots allt han som hittade på C++ ). Den är dock inge vidare bra som upplsags/snabb referens.

Visa signatur

War is Peace.
Freedom is Slavery.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av rokka

Om det är C++ -bibeln du vill ha är det bara Stroustrups The C++ Programming Language som gäller. Där står -allt- (det var ju trots allt han som hittade på C++ ). Den är dock inge vidare bra som upplsags/snabb referens.

Håller med om att boken är bra, speciellt om man är intresserad av detaljer. Den är verkligen det fullständiga referensverket för C++, så ska du skriva en C++ kompilator så är den nog nästan ovärderlig.
Men, som nybörjarbok i C++ tycker jag nog inte att den är nåt vidare. Om du vill ha en bok på svenska rekommenderar jag varmt Jan Skansholms C++ Direkt. Stephen Prata's bok är också väldigt bra.

EDIT: För övrigt vill jag bara påpeka att visst, internet, e-böcker och hjälpfiler är väldigt bra, men en bok om språket är nästan ovärderligt att ha. Kanske är jag som är gammaldags eller nåt, men det är min åsikt.

Visa signatur

5D MkII

Permalänk
Medlem

kolla www.cplusplus.nu för bra forum/kurser/exempel

Permalänk
Medlem

alltså jag är helt nybörjare på programering, har haft den oturen att jag inte har haft tid med det... (Och då menar jag inte "inte haft tid" som att jag har använd den till att surfa på lunar... hahha) Utan har haft så mycket läxor och träning... =( Iaf så har jag blivit så inspirerad av "vectrex" och "Svennelito" så att jag har bestämt mig för att äntligen börja med C++ nu till julovet. Tackar så mycket för inspirationen och hoppas folk är här på forumet när jag måste ställa mina dumma frågor längra fram =D

Visa signatur

If it bleeds, we can kill it!

Permalänk
Citat:

Ursprungligen inskrivet av Master[B]
Jag tycker att den boken är ett gott val, börjde själv med den boken (dock en äldre upplaga).

Jag har bläddrat lite i den boken och den verkar bra, har önskat mig den i julklapp

Visa signatur

"to conquer others is to have power, to conquer yourself is to know the way"

Permalänk
Medlem

Blev rejält sugen på att lära mig c++ nu, håller på att tanka djgpp

:EDIT: sorry för bumpningen :s

Visa signatur

MSI K8N Neo2 plat, 3200+ Winchester,
TwinMOS Speed Premium PC3500 512MB CL2.5 Winbond BH-5, 40 Gb IBM, 120 Gb WD, T7600gt, Antec truepower 550W

Permalänk
Medlem

När det gäller programmeringsspråk brukar svaret på frågan "Varför?" ofta besvara frågan "Vilket?"

Visa signatur

Jag använder datorn för att göra jobb bättre, inte för att jobba med att göra datorn bättre

Permalänk
Medlem

Eftersom du redan har läst pascal innan, så vill jag rekommendera Delphi.

Än så länge kan man väl inte kalla språket för "hett" på arbetsmarknaden, men det är ett språk som växer sig större och större, och det med en enorm fart.

Jag har läst lite statistik om detta, och den talar helt klart för Delphis fördel. Postar lite länkar imorgon.

Sedan passar naturligtvis inte Delphi till allt, man måste nog ändå ha en någorlunda klar bild för sig, om vad det är egentligen man vill/ska syssla med.

Edit: I.o.m. att Delphi numera också är ett .NET-språk, öppnas ännu fler dörrar. Även möjligheten till ASP, t.ex., finns där.

Visa signatur
Permalänk
Medlem

Själv tycker jag att C# är bäst om man ska ha jobb om några år.
Precis som nästan alla använder C++ nu istället för C, kommer alla använda C# istället för C++ om några år.
Mark my words

Visa signatur

Surf/jobbdator: i7 3770K | GA-Z77-D3H | 16 GB | Intel 510 + 750 GB | HD6870 2GB | 30'' | P180B
Server: Phenom X4 9500 | GA-MA78G-DS3H | 8 GB | 5.4 TB | YY-0221
Speldator: IBM PC XT | 8088 4.77 MHz | 640k | 10 MB HDD | EGA | 360k/720k diskett

Permalänk
Medlem

Hittade den här gamla tråden genom den klistrade. Hur ser det ut såhär fem år senare? Fortfarande samma råd om vilket språk som man ska lära sig? Hur ser efterfrågan ut på arbetsmarknaden?

Permalänk
Medlem

Tja, det är väl fortfarande C++, C#, Java som gäller.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av snq
Själv tycker jag att C# är bäst om man ska ha jobb om några år.
Precis som nästan alla använder C++ nu istället för C, kommer alla använda C# istället för C++ om några år.
Mark my words

Det tvivlar jag på, eftersom att C# bara är för windows och inte alls lika kraftfullt som c++.

Dessutom är Windows API skrivet i C och därför kan du inte använda lika mycket av det i C# som i C++.
Exempel: system wide keyboardhooks

Permalänk

C# är inte bara för Windows, hört talas om Mono projektet? Tycker att det fungerar ypperligt under Mac OS X, *BSD, Solaris och Linux. Så argumentet om att C# bara är för Windows är PURE BULLSHIT och okunskap.

Vad gör C++ så himla mycket kraftfullare än C#?

Det går bevisligen MYCKET snabbare att skriva effektiv och användbar kod i C#.
Det är MYCKET lättare att debugga saker skriva på Mono/.NET-plattformarna.
Du har MYCKET bättre typsäkerhet och slipper på så sätt väldigt många onödiga buggar.
Du har ett otroligt kraftfullt och i väldigt många fall välskrivet klass-bibliotek att tillgå.

Så? Vad är argumenten för att C++ är så mycket bättre?

Jag kan komma på ett par stycken...

Du kan väldigt ofta använda C++ på plattformer där det inte finns något annat.
Du kan nyttja lågnivå saker såsom assembler i C++.
Du kan om du skriver rätt få ett lite snabbare program.

Det är väl det som talar för C++, jag skulle gissa på att C# är rätt val i 9/10 av fallen.

EDIT:
Du la till lite angående Win32. Du vet om att du kan använda C direkt i C# med hjälp av P/Invoke? Så det argumentet håller inte alls. Jag har själv implemterat globala "hotkeys" i Windows med hjälp av detta. Så det är varken svårt eller krångligt. Sluta snacka skit.

Permalänk

Att säga att C# inte är eftertraktat är bara befängt, det vet alla vid det här laget, kolla bara annonserna på ams.se till exempel.

Jag vidhåller fortfarande att det här forumet är fullt av bakåtsträvare som har fått för sig att "lättare" programmeringspråk/miljöer inte har någon plats i arbetslivet. Nonsens.

Visa signatur

www.uu.se - some kind of university | www.hirr.org.uk - ain't no mountain high enough | www.bajenfans.se