Vilket språk att lära sig för att börja göra "riktiga" program?

Permalänk

Vilket språk att lära sig för att börja göra "riktiga" program?

Tjenare,

tänkte börja skriva lite program (mest för att utvidga kunskaperna, sen får vi se om det kommer i practical use). Ett plus är om programmen man skriver blir linux/windows oberoende, men det är kanske att kräva för mycket.

Grund:
- Kan programmeringens "tanke"
- jobbat med BASIC (när jag va ~6-7 år kanske)
- och senare PHP hyfsat mycket (gjorde en community + ett CMS till elevrådets hemsida)
- lärt mig det mest elementära inom java i skolan (variabeltyper, loopar, metoder) men efter att ha testat javas flaggskepp (Azureus) och sett den hemska prestandan i förhållande till nåt skrivet i C++ (utorrent) undrar man om det är lönt att lära sig...
- Har inte gjort mycket objektorienterat.

Tankar:

Ska man lära sig C eller C# eller C++?
Började med att läsa en guide om c++ där de rekomenderade att man kunde C# och i C#-guiden skulle man kunna C innan, så jag undrar: är det nödvändigt?
Vilket är lättast? Vilket används idag?

Vad ska man använda för att göra GUI's?
Vad är windows motsvarighet till GTK?

Tankar/erfarenheter/åsikter uppskattas!

Thank you for your time

Permalänk
Medlem
Citat:

Ett plus är om programmen man skriver blir linux/windows oberoende, men det är kanske att kräva för mycket.

Om du verkligen vill ha ett platformsoberoende språk så är Java att rekommendera men tyvärr så presterar den inte lika bra som tex C/C++.
Men C/C++ fungerar på alla (med resrv. för fel) platformar. Det handlar bara om att koda applikationen rätt för varje platform.

Citat:

Ska man lära sig C eller C# eller C++?
Började med att läsa en guide om c++ där de rekomenderade att man kunde C# och i C#-guiden skulle man kunna C innan, så jag undrar: är det nödvändigt?
Vilket är lättast? Vilket används idag?

Att man ska kunna C# före C++ låter jättekonstigt. C# är microsofts motsvarighet till Java dock beroende av Windowsplatformen.

Det beror helt enkelt på vad för typ av program du vill göra. Oftast så används C/C++ till program då du kan hantera minnet direkt med språken.

C kommer du säkert känna igen då du har hållt på med PHP.

Vad jag rekommenderar är att du kanske pluggar Java (vilket du tydligen har gjort) då det är ett jättebra språk när det kommer till OOP. Sedan går du över till C/C++, då kommer du ha det lättare att komma in i språken.

Citat:

Vad ska man använda för att göra GUI's?
Vad är windows motsvarighet till GTK?

MFC används när man kodar apps i windows i C++

sen finns det andra språk som python men som sagt... det mesta handlar om vad du har för planer i framtiden, typer av program du vill bygga etc...

Visa signatur
Permalänk
Citat:

Ursprungligen inskrivet av wizzler
massa bra tips

okej, hur kommer jag igång att börja göra GUI's med Java då? Skulle t ex kanske kunna börja med en simpel miniräknare eller nåt i den stilen.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av NightKnight
okej, hur kommer jag igång att börja göra GUI's med Java då? Skulle t ex kanske kunna börja med en simpel miniräknare eller nåt i den stilen.

Du bör nog utforska lite mer innan du börjar med grafiska saker. Grunderna liksom.

För OpenGL finns det JOGL och LWJGL. Sedan har väl Java något kasst platformosberoende grafikbibliotek också. Men det är bara för knappar och sådant.

Visa signatur

Into the Web Browser for iPhone, http://www.intothewebbrowser.com/

Permalänk

AWT och Swing finns för GUI:n i Java.

Permalänk
Medlem

Angående GTK så finns det portat till Windows också, men det kräver förstås att man installerar det..

Permalänk
Medlem

Jag skulle föreslå Python, Och att du använder wxWidgets för dina GUI.

Python föreslår jag av den simpla anledningen att det är ett fenomenalt språk som är myckat lätt att sätta sig in i. Tidigare erfarenheter i programmering eller ej.

wx är väldigt plattformsoberoende.
Om du skriver ett program med Python och wxWidgets och inte använder några OS specifika anrop så kommer programmet i stort kunna köras omodifierat på i stort sätt alla plattformar. Mac, Linux, Windows, Solaris, BSD, You name it.

Sedan att Python är ett tolkat språk är i stort sätt inget problem, I flera fall så upplever jag att ett program skrivet i Python (Exaile) helt klart mätar sig med ett program skrivet i C++ (Rythmbox). Ibland känns det lite snabbare tillomed.

Visa signatur

Opera user | 3.6 GHz AMD Phenom II X4 | 6144MB RAM | AMD ATI HD7870 2GB | Det är jag det.
Linux, Eating apple and smashing Windows.

Permalänk
Medlem

Jag tycker C# eller Java, båda är objektorienterade och är väldigt spridda. Ska du köra uteslutande i Microsoft-miljö är C# det bästa valet, annars Java.

Glöm inte att lära dig objektorientering, det är inget som kommer gratis med att man väljer ett objektorienterat språk.

Visa signatur

OSIRIS GUITAR - youtube-kanal om elgitarrer, mixning och teknik i hemmastudio

Permalänk
Medlem

Objektorientering är inte ett krav för att skriva program, det är bättre att välja ett språk som har stöd för flera olika metoder istället för att låsa sig fast vid en specifik metod.

Jag förespråkar också Python, C-lik men relativt liten syntax, bra och komplett standardbibliotek, plattformsoberoende, snabbt nog för desktop applikationer, går att skapa fristående binärer av programmet.

Permalänk
Medlem

Det går även att göra C# program för linux.
http://www.mono-project.com/Main_Page

Sedan om det är att rekommendera C# i Linux vet jag inte. Jag tycker C# känns som gjort för .net framework i windows. Förmodligen är Java ett bättre val om man vill ha plattformsoberoende.

Annars gillar jag att göra program i LabVIEW från National Instruments. Där ritar man upp sina program och det är skojigt för enklare program, mest för styrning av mätinstrument och sådant. Men då programmen växer blir labview rätt rörigt (här kan man verkligen prata om spagettiprogrammering)...

Permalänk

Thx för alla svar! Eftersom jag som sagt blivit lite bortskrämd från java, och dessutom när jag såg att man enligt KTotte kan göra program tillräckligt snabba för desktops, kändes det som nåt värt att lära sig innan man kastar sig på C/C++ kanske.

Förmiddagens underbara kreationer finns för att avundas mina mad skillz här och här

Har för mig att XChat är pyton, va?

Permalänk
Medlem

Nopp, xchat är skrivet i C++. Men man kan skriva script till det i python.

en liten grej bara, Pythons input är lite lurig. Här är ett körexempel av play.py

======= MENU ====== 1. Summa 2. Differens 3. Kvot 4. Produkt 5. Kvadrat 6. Kvadratrot 7. Lös PQ-formel 99. Avsluta Mitt val: 1 Addering: skriv talet du vill addera till 0 och tryck enter. addera 0 för att komma tillbaka till menyn 0 Add: keybval 800 Add: keybval 1600 Add: value 3200 Add: value 6400 Add: meny() ======= MENU ====== 1. Summa 2. Differens 3. Kvot 4. Produkt 5. Kvadrat 6. Kvadratrot 7. Lös PQ-formel 99. Avsluta Traceback (most recent call last): File "play.py", line 25, in <module> value += keybval TypeError: unsupported operand type(s) for +=: 'int' and 'NoneType' smygis@Bob:~/Desktop$

Undvik att använda input, Använd raw_input() istället, Den returnerar ioförsig en string men den kan du konvertera till int eller float.

Visa signatur

Opera user | 3.6 GHz AMD Phenom II X4 | 6144MB RAM | AMD ATI HD7870 2GB | Det är jag det.
Linux, Eating apple and smashing Windows.

Permalänk
Medlem

En liten kommentar om Azureuz: Det finns fler stora saker gjorda i Java, tex Eclipse som är riktigt bra (och en hel del annat som inte har med GUI o göra).

Permalänk
Medlem

Jag rekommenderar också python helt enkelt eftersom det är ett fruktansvärt modernt och välskrivet språk med jättebra libraries och bra community.

Om du nödvändigtvis vill köra någon "variant av C" så välj C# då du kommer ha lättast att gå på det efter java då dom har många likheter.

C är väldigt bra att kunna, men ptja... inte jättekul att koda stora grejer i jämfört med språk som gör mycket av grovgöran åt en