Gå till innehåll
Just nu i M3-nätverket

Programmeringsspråk?


Poison

Rekommendera Poster

Hej!

Jag har ungefär ett och ett halvt års erfarenhet av webbutveckling och kan en del om det. Men nu skulle jag vilja lära mig något mer avancerat och programmera egna program och spel.

 

Jag har länge funderat på Java, eftersom det är plattformsberoende och det gillar jag. Däremot tror jag att C++ är enklare men jag känner mer "bekantskap" med Java :P

 

Visual Basic har jag också funderat på men hört att det inte är särkilt kraftfullt och att det inte används lika mycket som C++ och Java.

 

Alla svar är välkommna :)

Tack så mycket!

 

P.S! Ni ska inte försöka rösta på Java, C++ och Visual Basic. Utan komma med råd och kanske ta upp fler programspråk ;)

Länk till kommentar
Dela på andra webbplatser

Har hört att Python verkar vara ett trevligt programmeringsspråk och även C# och Ruby och Ruby on Rails. Finns en massa till bra programmeringsspråk. Men du ville inte att jag nämnde dom du sa :P En del säger att C++ är bra för spel och program och att om man kan det programmeringsspråket har man lättare att lära sig andra.

 

Tips är att välja ett programmeringsspråk som man kan göra program till alla Operativsystem.

 

Lycka till!

Länk till kommentar
Dela på andra webbplatser

Java har flera fördelar. Bland annat så har det inga konstigheter för sig. Det fungerar på flera olika system och det är idag att klassas som hyggligt snabbt. Java är oftast lite långsammare än annat men idag märks detta inte nödvändigtvis lika kraftigt som förr. Det förekommer också väldigt ofta i branschen så vill man arbeta som programmerare är Java ett väldigt bra språk att kunna. Det liknar också många andra programmeringsspråk så kan man Java kan man ganska lätt sätta sig in i många andra språk.

 

Nackdelarna är att det tar tid att komma igång och att det är lite tråkigt. Det finns andra språk med betydligt roligare kod. Som sagt så håller Java inte på med några konstigheter men det är på både gott och ont.

 

Ett annat vanligt språk man brukar lära sig är C.

Länk till kommentar
Dela på andra webbplatser

avancerat och programmera egna program och spel.

 

Jag har länge funderat på Java, eftersom det är plattformsberoende och det gillar jag. Däremot tror jag att C++ är enklare men jag känner mer "bekantskap" med Java

 

Hej. Jag har programmerat i många språk i många år.

 

Först, C++ är inte enklare än java. Absolut inte! Det är nog lätt att tro att C++ är enklare då det ser ut att vara mycket mer i Java. Men i java är t ex grafiska operationer en del av språket, men det är det inte i C++. Ska man programmera grafik i C++ måste man lära sig ett gränssnitt för det, t ex carbon för mac. Detta ger trösklar i C++.

 

Den största akademiska skillnaden är dock minneshanteringen. I C++ måste du verkligen veta hur datorn hanterar minnet för att klara dig om du ska göra något mer avancerade saker än Hello world. Minneshanteringsfel kan vara fruktansvärt knepiga att hitta.

 

C++ väljer man i dag i stort sett uteslutande för prestanda. Då prestandan spelar mindre och mindre roll med snabbare datorer, och bättre optimerade java-motorer, börjar man mer och mer använda java för dess olika fördelar - plattformsoberoende, lättare minneshantering och standardiserade sätt att göra mer avancerade saker (som t ex fönsterprogrammering).

 

Du skriver att du vill börja programmera "lite spel" och sånt. Om du tänkte skriva Doom 4 så är C++ valet. :-)

 

Vad har du gjort för webutveckling? Skriptspråk är ett naturligt nästa steg. Har du kört lite Perl? Det är kungen av skriptspråk, och man kan göra en hel del roligt och nyttigt med det och en webserver.

 

Annars tror jag att Java är bäst för dig, om du inte tänker bli yrkesprogrammerare. Då är C++ bäst för det ger förståelse för datorn på ett helt annat sätt. Kan man C++ byter man lätt till Java, fast inte tvärt om. Fast detta är lite som att lära sig Latin för att kunna lära sig språk lättare. :-) Så som sagt. Vill du bli en cool yrkesprogrammerare så är C++ (och C) ett måste.

 

Apple använder sig av ett annat objektorienterat språk "Objective C". Du kanske har hört "Cocoa". För att köra det är det "Objective C" som gäller. Så vill du bara programmera för mac så är en bok om "Cocoa" där "Objective C" gås igenom ett förslag. Vet inte om det finns sådana böcker för nybörjarprogrammerare, de jag har kräver att man programmerat lite C innan.

Länk till kommentar
Dela på andra webbplatser

Hej.

 

Jag har jobbat som programmerare för Mac sedan 1987. På den tiden var det bara Pascal som gällde. Pascal är ett litet, kompakt, elegant och välstrukturerat språk. Tyvärr finns det idag ingen "riktig" leverantör av Pascal-kompilator till Mac, bara Open Source projekt.

 

Java är (som du påpekar) ett plattformsoberornede språk som har många trevliga egenskaper. Lämpar sig inte för action-spel, men för andra spel där användaren ska ha mera tid för eftertanke kan det vara bra.

 

Det största språket idag är C++. Det är kraftfullt (och därmed krångliugt om man utnyttja kraften) och det finns flera leverantörer, bland andra Apple själva. C++ är tämligen portabelt, förutom de delar som handlar om grafiken.

 

Objective-C är en udda fågel, som ärvts från NextStep. Det finns inte på någon annan plattform än Mac OS X, så väljer du detta är du inlåst.

 

Lycka till.

Lennart

Länk till kommentar
Dela på andra webbplatser

Objective-C är en udda fågel, som ärvts från NextStep. Det finns inte på någon annan plattform än Mac OS X, så väljer du detta är du inlåst.

315388[/snapback]

Inte riktigt helt sant. Objective-C kan du kompilera med hjälp av gcc på i princip vilket operativsystem som helst så länge du inte använder ramverken för NeXTSTEP, OPENSTEP och Cocoa.

 

Objective-C kom i början på 80-talet som en blandning av C och Smalltalk-80. Det användes i NeXTSTEP men kommer inte därifrån.

Länk till kommentar
Dela på andra webbplatser

appe:

Vad har du gjort för webutveckling? Skriptspråk är ett naturligt nästa steg. Har du kört lite Perl? Det är kungen av skriptspråk, och man kan göra en hel del roligt och nyttigt med det och en webserver.

Jag har för det mesta hållt på med (X)HTML, CSS, PHP och lite MySQL. Jag är ingen kung på PHP, men kan skapa lite enkla script som loginsystem och sådant.

 

Det står nog just nu mellan Java och C++, men nya förlag är helt klart välkommna. Det är det att C++ inte är plattsformsoberoende, vilket jag inte gillar. För jag har länge funderat på att köpa en ny mac, har en gammal Powerbook G4 med 400 MHz-processor och den har börjat må dåligt nu. Så jag använder Windows för det mesta nu ;)

 

Vad menas egentligen med ett objektorienterat språk?

 

Jag hade inte tänkt bli världsbäst direkt, men det hade vart kul att sitta och pilla lite och prova. Eventuellt ska jag försöka göra ett program där man planerar olika webbutvecklings-projekt.

Länk till kommentar
Dela på andra webbplatser

Ingemar Ragnemalm
Jag har jobbat som programmerare för Mac sedan 1987. På den tiden var det bara Pascal som gällde. Pascal är ett litet, kompakt, elegant och välstrukturerat språk. Tyvärr finns det idag ingen "riktig" leverantör av Pascal-kompilator till Mac, bara Open Source projekt.

Men det finns två (FPC och GPC), och de är livaktiga och på hugget. Kör man CodeWarrior på PPC finns också Metrowerks kompilator, dock utan support numera, men det är bra. Det som fattas till FPC och GPC är bra instruktioner, bra exempel och bra kopplingar till debuggers. Språket är svårt baktalat fast det är både lättare att använda och lika snabbt som C/C++, och hade objekttillägg redan innan C++ kom.

 

Vad gäller "läsbara" språk (språk som är gjorda för att vara lika ren engelska) så finns också Ada, ett språk som precis som Pascal är så bra att de som inte känner till det talar illa om det. Ett citat jag hört: "Alla hatar Ada utom de som kan det."

Java är (som du påpekar) ett plattformsoberornede språk som har många trevliga egenskaper. Lämpar sig inte för action-spel, men för andra spel där användaren ska ha mera tid för eftertanke kan det vara bra.

Java som språk är ganska nära Pascal med bara lite annan (mer svårläst) syntax. Det som gör Java svårt är klassbiblioteken, som är jobbiga att sätta sig in i - och för att göra det riktigt jobbigt finns det två olika. Och så är det så långsamt.

Det största språket idag är C++. Det är kraftfullt (och därmed krångliugt om man utnyttja kraften) och det finns flera leverantörer, bland andra Apple själva. C++ är tämligen portabelt, förutom de delar som handlar om grafiken.

315388[/snapback]

En variant som inte är helt ointressant är att köra mest ren C med bara valda delar av C++, men skippa alla stora klassbibliotek. De är bara i vägen så länge man inte gör stora saker. Egna klasser lägger man förstås in som man känner för, det är en annan sak.

Länk till kommentar
Dela på andra webbplatser

Gäst iMatte

Glöm inte bort RealBasic - kanske inte de tunga programmerarnas förstahandsval, men dock ett mycket kompetent alternativ. Många trevliga spel och program görs i RB numera. Relativt enkelt att lära, snabbjobbat och bra stöd för många databaser.

Länk till kommentar
Dela på andra webbplatser

Anton Österberg

Python säger jag bara! Lätt att lära sig och precis som java så är koden plattformsoberoende så den behöver inte kompileras. Om du verkligen vill ta något som är lätt att komma igång med så tycker jag att python är ett givet val. Det finns dessutom fullt med "lär-dig-python-guider" på nätet. Efter bara 5-6 timmar har jag gått från att inte veta någonting till att jag har gjort scripter som jag faktiskt haft använding för.

Länk till kommentar
Dela på andra webbplatser

Python säger jag bara! Lätt att lära sig och precis som java så är koden plattformsoberoende så den behöver inte kompileras. Om du verkligen vill ta något som är lätt att komma igång med så tycker jag att python är ett givet val. Det finns dessutom fullt med "lär-dig-python-guider" på nätet. Efter bara 5-6 timmar har jag gått från att inte veta någonting till att jag har gjort scripter som jag faktiskt haft använding för.

315643[/snapback]

Jag testade tanka hem Python, kan vara kul att testa. Och läste igenom lite om variabler och if-satser. Och jag tycker det verkar väldigt bra och tror det är något jag söker efter.

 

Har dock ett problem med if-satser, den vill inte kunna använda sej av else.

 

>>> username = "admin"
>>> if username == "admin":
print "username's värde är admin"
else:
 
SyntaxError: invalid syntax
>>> 

 

Det hör visserligen inte till ämnet, men ändå ;)

Länk till kommentar
Dela på andra webbplatser

Anton Österberg
Jag testade tanka hem Python, kan vara kul att testa. Och läste igenom lite om variabler och if-satser. Och jag tycker det verkar väldigt bra och tror det är något jag söker efter.

 

Har dock ett problem med if-satser, den vill inte kunna använda sej av else.

 

>>> username = "admin"
>>> if username == "admin":
print "username's värde är admin"
else:
 
SyntaxError: invalid syntax
>>> 

 

Det hör visserligen inte till ämnet, men ändå ;)

315686[/snapback]

Hm, jag använder aldrig python direkt undan skriver alltid koden i en text-fil (med ".py") som jag gör körbar istället, så jag är inte riktigt säker på vad felet är där.

Länk till kommentar
Dela på andra webbplatser

  • 2 weeks later...

Python kräver att du håller dig till indenteringsreglerna, dvs att alla kodblock är förskjutna ett visst antal blanksteg åt höger. Koden ska alltså se ut såhär:

username = "admin"
if username == "admin":
   print "username's värde är admin"
else:
   print "username's värde är inte admin"

# samma sak gäller för andra kodblock, som while, try, class, def osv.
# t.ex., för att definiera en funktion:

def greet(name):
   print "Hello, %s!" % name

Länk till kommentar
Dela på andra webbplatser

Python kräver att du håller dig till indenteringsreglerna, dvs att alla kodblock är förskjutna ett visst antal blanksteg åt höger. Koden ska alltså se ut såhär:

326028[/snapback]

Gee. Där dog Python för mig. Såna där gamla Fortran-fasoner klarar jag mig helst utan.

 

Vill du köra ett interpreterat språk föreslår jag (precis som någon tidigare) perl. Trevligt språk (lite stor syntax bara) med massor av nedladdningsbara moduler för allehanda uppgifter. Perl har lite dåligt rykte i vissa kretsar för att ge oläslig kod. Det är inte perl som gör att koden blir oläslig utan den som skriver koden. Det är enkelt att göra välstrukturerad och snygg kod även i perl, bara man kan jobba lite diciplinerat och inte använda ALLA frihetsgrader som erbjuds.

Länk till kommentar
Dela på andra webbplatser

chop, det där förstår jag inte riktigt...? De reglerna är istället för att använda {}-tecken, och man skriver väl alltid snygg och välintenderad kod, oavsett språk?

Länk till kommentar
Dela på andra webbplatser

Ingemar Ragnemalm
chop, det där förstår jag inte riktigt...? De reglerna är istället för att använda {}-tecken, och man skriver väl alltid snygg och välintenderad kod, oavsett språk?

326083[/snapback]

Ja, jag skulle nog säga att idén att ha indentering i stället för fiskmåsar/begin-end är en av de bärande idéerna med Python. Många använder i C en formattering som är helt sjuk, där fiskmåsarna placeras helt obalanserat (startparentes långt borta till höger, slutparentes till vänster :wacko:), medan indenteringen är det enda som informerar om strukturen. Om man ändå skriver så så är det tamejkatten bättre att skippa fiskmåsarna helt.

 

Ful C:

 

if (gurka) {

hejhopp

}

 

Parenteserna hänger inte ihop visuellt, så indenteringen är allt som ger information.

 

Snygg C:

 

if (gurka)

{

hejhopp

}

 

Parenteserna hänger ihop och bidrar till förståelsen, så indenteringen får vara lite fel om man vill (vilket är rimligt i C eftersom indenteringen inte har någon betydelse för syntaxen). Kostar dock en extra rad.

 

Python-stuk:

 

if (gurka)

hejhopp

 

Enkelt och stramt, kortfattat. Snyggt!

 

Jag förstår så väl känslan att Python för tankarna till Fortran, men det behöver inte vara fel att ta tillvara det som är bra med gammal teknik. Dock är jag ingen Python-fantast, men det är mest en fråga om prestanda.

 

PS: Min indentering visas inte i inlägget, så exemplet blev meningslöst. :cry: Fast ni kanske förstår hur jag ville att det skulle sett ut?

Länk till kommentar
Dela på andra webbplatser

Jag tycker det är både för och nackdelar med identieringskrav på språk, naturligtvis är det en fördel om det är lätt läst, men samtidigt så är det C:s största styrka tycker jag ioch med att man kan skriva enrads macros och dyl som kan infogas hur som helst utan att man behöver oroasig för att formatera raden korrekt.

 

Som tex

 

#include <stdio.h>

#define ASSERT(a_variable) { char *msg="false"; if(a_variable){ msg="true"; } fprintf(stderr,"%s is %s\n",#a_variable,msg); }


int main()
{
       int test=5;
       ASSERT(test==5);
       return 0;
}

 

Men oandra sidan kan man lika gärna skriva det

 

#include <stdio.h>

#define ASSERT(a_variable) fprintf(stderr,"%s is %s\n",#a_variable,(a_variable ? "true" : "false")); 

int main()
{
       int test=5;
       ASSERT(test==5);
       return 0;
}

 

Men sedan måste man även ha klart för sig att { } symboliserar iförsta hand stackframes

 

Uppdatering: Fixade fel i första exempelt :)

Länk till kommentar
Dela på andra webbplatser

Ingemar, skriv koden inom [ code ] [ /code] (fast utan space inuti dem, det är för att de inte ska tolkas som just kodrutor), så konverteras blankstegen till html-tecken.

 

Ja just det, jag såg någon gång tidigare att du är en av de som skyr {-tecknet på samma rad som kodblocksdeklarationen/-villkoret. :-)

Jag måste erkänna att jag skriver på det enligt dig "dåliga" sättet, med motiveringen att man vet att kodblocket öppnas genom villkors-grejen, och att det blir "två öppningar" med {-tecknet på nästa rad och därmed en onödig rad. Däremot har jag faktiskt {-tecknet på ny rad i funktions-deklarationer... av någon anledning.

int main(int argc, char **argv)
{
  return 0;
}

if (something < 10) {
  something = 18;
  blah();
}

Länk till kommentar
Dela på andra webbplatser

Ingemar Ragnemalm
Jag tycker det är både för och nackdelar med identieringskrav på språk, naturligtvis är det en fördel om det är lätt läst, men samtidigt så är det C:s största styrka tycker jag ioch med att man kan skriva enrads macros och dyl som kan infogas hur som helst utan att man behöver oroasig för att formatera raden korrekt.

326188[/snapback]

Styrka och svaghet. Med lite makros kan man göra koden riktigt vidrig. Samtidigt kan man förstås utnyttja det för att snygga till. Skillnaden är hårfin ibland.

Länk till kommentar
Dela på andra webbplatser

Jag passar på att låna tråden när vi ändå pratar om det. Varför definierar man egentligen makros? Varför gör man det inte som en funktion? Rent intuitivt låter det vettigare.

Jag har programmerat ytterst lite ren C, så jag har aldrig gjort det, därför ska ni nu upplysa mig. :)

Länk till kommentar
Dela på andra webbplatser

Jag passar på att låna tråden när vi ändå pratar om det. Varför definierar man egentligen makros? Varför gör man det inte som en funktion? Rent intuitivt låter det vettigare.

Jag har programmerat ytterst lite ren C, så jag har aldrig gjort det, därför ska ni nu upplysa mig. :)

326280[/snapback]

 

Jag antar det som definerar ett macro är att man #DEFINErar det vilket talar om för preprocessorn att detta är ett macro.

 

Det man kan säga preprocessorn gör när den ser #DEFINE kalle { boris++; } är att spara "{ boris++; }" i en sträng som heter kalle, sedan gör den sök & ersätt på hela filen och så alla ställen det stod kalle på innan kommer vara ersatta med { boris++; } =)

 

Macros är alltså inga funktioner även om man kan få det likna det kodmässigt.

Länk till kommentar
Dela på andra webbplatser

Styrka och svaghet. Med lite makros kan man göra koden riktigt vidrig. Samtidigt kan man förstås utnyttja det för att snygga till. Skillnaden är hårfin ibland.

326279[/snapback]

 

Vad som är snyggt och vidrigt är dock väldigt beroende av betraktaren, personligen skriver jag helst C

int my_function(int arg_1,int arg_2)
{
    if(arg_1)
    {
        switch(arg_2)
        {
              case default:
                    break;
              .....
        }
    }
}

 

Tycker det är mest logiskt och snyggast själv, men det är inte alla som tycker det, och det har man fått höra ibland.

Fast det jag fått mest kritik för är att jag använder mellanslag väldigt dåligt många skulle helst vilja det var skrivet

 

int my_function( int arg_1 , int arg_2 )
{
    if( arg_1 )
    {
        switch( arg_2 )
        {
              case default:
                    break;
              .....
        }
    }
}

 

Osv jag tycker det gör koden långsammare att läsa, (och personligen tycker jag det ser fulare ut :P) men som sagt det är smak och tycke, sedan får man försöka anpassa sig beroende på identiteringsregler för projektet isig tex om man jobbar mycket med linux så är det ofta bestämda regler för projektet, framförallt kärnan har väldigt strikta ident regler.

Länk till kommentar
Dela på andra webbplatser

Ingemar Ragnemalm
Jag passar på att låna tråden när vi ändå pratar om det. Varför definierar man egentligen makros? Varför gör man det inte som en funktion? Rent intuitivt låter det vettigare.

Jag har programmerat ytterst lite ren C, så jag har aldrig gjort det, därför ska ni nu upplysa mig. :)

326280[/snapback]

Makros används på flera olika sätt i C.

 

- Kompileringsdirektiv, för #ifc #else mm. Fult men nödvändigt när det är skillnader mellan olika plattformar, och absolut nödvändigt för att få #include-filer att fungera. C är nämligen egentligen inte alls ett modulärt språk, utan det är inhackat lite halvhjärtat med hjälp av makros.

- Konstanter. Dumt eftersom debuggern ofta inte kan se makrot. Jag föredrar enum för konstanter. Bortsett från debugging är det dock inget fel på makron för konstanter.

- Inline-funktioner. Farligt, kan ge hemska fel om man skriver slarvigt. Jag föredrar formell inlining.

 

Om man definierar lite knäppa makron kan man få C att se helt vansinnigt ut. Gamla klassikern "obfuscated C code contest" brukade bygga mycket på det. Låt säga att det finns en anledning att Java inte har någon preprocessor.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...