Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

vilket programmeringsspråk??

hej!

jag går och funderar att börja programmera applikationer(program), men är osäkert vilket programmeringsspråk jag ska välja.

Jag har pratat med några, men jag får bara luddiga svar Smile

helst vill ja ha ett programmeringspråk som fungerar på många system, om inte så vill jag göra program till linux(med grafiska gränsnitt)

så nu vill jag vet vad ni tycker jag ska börja med Tongue

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

johan_pirates bild

jag tror jag ska testa C++ och se om de är något att ha Smile
.
(glöm inte den spännande fortsättningen på "vilket programmeringsspråk??" samma tid, samma sida, exklusivt för linuxportalen xD)
....
en fråga bara, vilka C++ editor finns de till Linux? Några rekommendationer?

fredrikperssons bild

Hur kan besvara detta på annat än "luddigt" sätt?

För den grafiska delen kan det vara lämpligt med C++ tillsammans med wxWidgets eller QT alternativt C och GTK.

Både wxWidgets, QT och GTK fungerar mer eller mindre bra med många andra språk.

Men innan du satsar på GUI-programmering bör du lära dig ett språk först, det blir då lättare att förstå hur och varför bibliotek för GUI:er ser ut och fungerar på ett visst sätt.

----------------------------------------------------
Jag faller för grupptrycket....
MöLUG - Svenska OSS-bloggar
Fredrik Persson

 

//Fredrik Persson

kimjohanssons bild

Python är ett rätt vanligt enkelt språk... Tja jag har inte kommit igång med mitt än, men har skrivit nån tillämpning för några år sedan och tyckte det var rätt enkelt. Det är ju ett tolkat språk och det finns tolkar för de flesta plattformar. Du kan göra grafiska program, dels genom det fula standardsystemet tk/tkinter eller med wxpython och andra metoder. Jag tror det finns qt-bindningar för python med.

Det främsta skälet att välja python är dock namnet som kommer från "Monthy Pythons Flying Circus"... och att man använder # för komemntarer.

annars ... välj c++


mauths bild

Jag ser programspråken som verktyg i en verktygslåda. Vilket programspråk man ska välja beror på vad man vill göra.
Som jag ser det vill man kunna en sådär 5,6 spårk. De gånger jag har programerat i jobbet har valet ofta kommit sig av att vilket språk det tidigare hacket är gjort i. Man tar ofta något gammalt och anpassar till det nya projektet. Det finns ofta inte tid till att koda om gamla fungerande apps utan man modifierar. Men jag jobbar inte primärt med programmering utan det är som sagt ett verktyg för att lösa en uppgift.
C++ är bra då går att göra nästan vad som helst i C++ men det kan kännas lite klumpigt att hålla på med. C++ innehåller C som är enklare att lära sig. Det finns dessutom väldigt mycket C-kod ute.
C# är nog det hetaste språket idag ute på arbetsmarknaden, men jag vet nästan inget om det då jag inte hållit på med det än. VB är vanligt men det finns ingen anledning att lära sig. Det är ett enkelt språk och enkla saker kan folk göra själva utan att betala mig dyrt...
Java är också ett bra språk, då även det är hett på arbetsmarknaden idag.
Det finns en hel del andra(gamla) språk att fundera kring delphi, fotran assambler, eiffel, pascal, perl och så vidare.
Jag vet inte om jag hjälp dig att välja men bifogar en länk, läs och begrunda:
Teach yourself programming in ten years
Vilket du än väljer som första språk kommer du att lära dig fler om du tänker dig att jobba med datorer och/eller teknik eller om du vill pyssla med datorer på fritiden. Det första språket brukar bli favoriten. Min favorit är C++.
Bash ska du självklart lära dig förutom det andra.
EDIT: Vad jag är ute efter är att det är ditt beslut och du bör välja det som känns roligt för dig. Ta din tid och kolla in lite kod och apps innan du väljer. Om du vill bli duktig är lusten att sitta och koda viktig.

- "Den nyttigaste läxa livet lärt mig är att idioterna många gånger har rätt." Winston Churchill

ekirs bild

Jag har programmerat sedan länge. Vad jag tror är viktigt är för nya programmerare är att du tar något som är väldigt enkelt, men så kraftfullt som möjligt. D.v.s. kraftfullt = mycket resultat/lite arbete. Detta är av enbart p.g.a. pedagogiska skäl. Om du försöker sätta tröskeln för högt och går på ett språk och du försöker lära dig något som kräver enormt mycket kunskap, te.x. C++ är risken väldigt stor att du tappar intresset på vägen. Annars är C++ ett väldigt bra språk som säkert kan vara bra att lära sig senare.
.
Detta är inte en teknisk motivering utan en psykologisk. Den är baserad på vänner m.m som jag studerat när dom försökt lära sig programmera.
.
Om du frågar i ett forum såhär vilket programmeringsspråk som du bör lära dig så tror jag du kommer få enormt många väldigt olika svar. Andledningen till att det finns så många programmeringsspråk som fortfarande används är helt enkelt att folk har olika smak Tongue.
.
Det jag tycker du ska lära dig -som faller mig i smaken- är PHP. Jag tror till att framtiden till 100%, eller nästan 100% ligger i webbaserade applikationer. Vem vill vara slavaktigt bunden till 1 dator, när man kan ha programmet "på alla världens datorer" via internet?

johan_pirates bild

Min kompis säger att de är svårt att göra grafiskt utseende i C++, är de verkligen de?

johan_pirates bild

Men innan du satsar på GUI-programmering bör du lära dig ett språk först

jag programmera php och sql så lite kan jag

***funderar vidare Smile

johan_pirates bild

så de sviktar mellan C++ och Python nu då Tongue

idag testade jag Python i skolan, tyckte de var rätt coolt, men om jag fastnar kan ingen av mina kompisar hjälpa mig, men om jag väljer c++ finns de mer "support" i klassen Smile

jag lånade även en java-bok på biblan idag, som jag nu ska testa lite Smile

förresten...jag kollar på mono-develop och som jag har fattat de så kan man programmera C# i de, alltså både windows och linux.

...mmm *funderar*

iveqys bild

fltk, glöm inte fltk... Laughing out loud

Kristians bild

LISP!!!!! Gud hade bara sex dagar på sig att skapa världen, så han skrev den i LISP (listorna med vad han skulle skapa fanns ju redan uppskrivna så uppgiften blev enkel Wink http://www.gnu.org/fun/jokes/eternal-flame.ogg

I LISP är både data och kod listor. Listor går att ändra i och därmed kan man också ändra i sin egen kod under körning - precis som Gud Smile

(setq y '(+ 6 3)) ; sparar en lista i y 
(eval y) ; evaluerar listan och ger 9
(setcar y '-) ; ändrar första elementet i listan y till ett minustecken
(eval y) ; evaluerar y och ger 3

----------------------------------
where my .emacs is, that's my home

---------------------------------------

 

tufftuffs bild

Du sa en del kloka ord där mauth. Jag har ungefär liknande erfarenheter. Det svåra är att lära sig programmera. Det det med språk, tja det lär man sig ändå, vilket är inte så där jätteviktigt. Bara det inte blir allt för krångligt att skriva med den metod eller paradigm man tänkt sig.
 
C++ har jag ägnat en del tid åt. Det är flexibelt och stödjer därför många metoder. Men det är också komplext och har en del gråzoner. Man ska nog vara en person som är noggrann för att trivas, annars blir det minnesläckor och annat elände. Det finns inte automatisk minneshantering inbyggt som i de nyare språken, men det kan lösas med olika hjälpmedel.
Java, känns som om man för att göra det säkert har gått för långt, och därmed begränsat uttryckmöjligheterna för mycket.
c#, har ingen egen erfarenhet men sägs vara trevligt. Stort i Windowsvärden, vet inte hur bra det är under linux/mono?.
Python är något jag inte använt än, men står överst på önskelistan när jag får tid. Ska vara snabbt att få till åtminstone mindre applikationer.
D, sprillans nytt och skinande blankt, kanske jag borde titta på det innan python? Nåja, D skall väl vara resultatet om man tar de bra sakerna från C++/Java/C# och tar bort de dåliga. D är inte helt bakåtkompatibelt med C. En anledning till C++ komplexitet är just att man försökt vara bakåtkompatibel med C. Ska vara anropskompatibelt med C, så går något att skriva i C så ska de gå i D också.
VB, det går ju snabbt att rita ut lite kontroller. Men att få programmet att göra något vettigt är inte så lätt. Så länge man gör saker som är "färdiga" i VB-paketet klara man sig. Men till synes enkla saker blir väldigt komplicerade att göra i VB. Usch och Fy.
Pascal, tja det går säkert att använda. Om man står ut med den religiösa attityden. Våga inte säga någåt ofördelaktigt om pascal i ett pascalforum, du kommer att bli bränd. Likaså om du nämner Borland, TurboPascal och Delphi är nämligen inte alls pascal! Själv är jag inte alls förtjust i pascal.
FortranIV, utan strukturerade IF-satser är det goto-satsernas paradis! Det är språket jag fått som välling under uppväxten. Jag kan fortfarande se satserna översatta till assemblerkod inuti mitt huvud. Lite nostalgisk får man väl vara Smile
 
Om jag får komma med några råd: prova på lite olika paradigmer, men låt det ta den tid det tar att få en känska för dom. Funktionell programmering är väl lättast att börja med. Objektorienterad programmering tar en bra stund att få grepp om, det finns dessutom flera stilar. Du kommer efter något år att upptäcka att du gjorde helt fel objektindelning när du började, det krävs erfarenhet för att det ska bli bra. Sedan finns ju generisk programmering (med tex C++ templates). Komponentbaserad programmering (är väl delvis vad man sysslar med i VB fast Microsoft kallar det objektorientering). Finns säkert fler. Man kan sedan kombinera. Jag har goda efarenheter av at bygga komponentbaserat, distribuerat, meddelandebaserat och objektorienterat system, dvs allt på en gång.
 
En sak ska du komma ihåg, sedan finns inte! Skriv programmet lagom bra, tillräckligt bra för att kunna bygga vidare på, men skippa onödiga finesser. Och skriv det som behövs nu, sedan inträffar nämligen aldrig!
Skriv kommentarerna senast samtidigt som koden, inte sedan för sedan finns inte! Du kommer att finna att mödan med att formulera kommentarer kommer att minska antalet fel, så den tiden får du redan första gången du skriver. När du senare ska modifiera ditt program kommer du att ha ännu större nytta av kommentarerna.
Kommentarerna ska uttrycka vad programmet gör, inte hur det görs, det senare framgår normalt av koden. Undantag finns naturligtvis.
Man kan även skriva kommentarerna så att ett verktyg som doxygen kan generera dokumentation från källkoden. Så slipper man skriva den själv...
Tydlig och självförklarande namngivning av variabler etc är också viktig. Men det säger ju alla så det behöver jag inte tjata om.
 
Sedan är det bara att komma på vad programmet skall göra och sätta igång. Lycka till!
 
//TuffTuff

elwiss bild

det är inviduellt vad som är svårt eler ej ..

Här är en qt variant, svårt?
http://doc.trolltech.com/4.0/tutorial-t1.html

wxPython är nog en enklare väg att gå om man inte kan C++ dock

rioroberts bild

vim Smile helt klart bäst. lite inställningar att lägga till i filen /etc/vim/vimrc

" inga backuper på filer
set nobk
" radnumrering
set number
"autoindentering
set autoindent
set tabstop=2
set shiftwidth=2

Om det är IDE du sökere får du nog fråga någon annan... är Java kille och du snackade om hur man gjorde GUI o.s.v . Kan säga att Java är mycket enklare än C++, därför bättre för en nybörjare. Ett GUI gör du på under 15 rader kod.. Du använder dig av biblioteket Swing som innehåller allt du behöver för att göra GUI, (knappar, sliders, rulllistor, scrolls, frames, popups, radiobuttons ja du fattar.

kimjohanssons bild

Tja lite python kan jag ändå och är rätt bra på att slå i "Python in a nutshel". Och det du vet ju var jag bor om jag säger Melrose Place i B-ryd Smile

Jag har en del böcker jag köpt för att jag tyckt det skulle vara bra med något att läsa på bussen till jobbet i A-torp.. sedan så började jag på Acron och det blev inga fler bussresor. Java 2- programmering. Java @ internet, Lättpocket om c++ *skäms*


battras bild

I princip alla programmeringsspråk går väl att kompilera för i princip alla plattformar?
C# skulle jag avråda från, c++ är mer standard, och dessutom finns det en utmärkt fri kompilator för c++. c# är dessutom skapat av microsoft.

Men det är nog bra att lära sig ett enklare språk först. När jag läste datalogi t.ex. (nåt år sen) fick vi börja med "scheme".

mauths bild

Hittade på nätet för ett tag sedan. Jag har inte hunnit kolla på det än men utan kvalitetssäkring:
En bok som jag tror handlar om Lisp

Föreläsningar som jag tror handlar om Lisp

Från MIT dom är bra goa dom.

- "Den nyttigaste läxa livet lärt mig är att idioterna många gånger har rätt." Winston Churchill

trappskis bild

Om man nu ska koda LISP (Inte direkt det bästa språket att börja med kanske. IMHO är det inte särkilt enkelt att lära sig även om vissa saker är väldigt enkla att skapa i LISP, tpy rekursiva funktioner.)
så har man bra dokumentation här:
http://www.ida.liu.se/imported/cltl/clm/index.html

Kristians bild

C++ är stort men det ger insikt i hur saker egentligen fungerar samtidigt som du lär dig både procedurell och objektorienterad programmering. Språket och dess föräldrar/syskon/barnbarn förekommer överallt så det är absolut mödan värt att lära sig.

Med tex. python kommer du snabbt igång och lär dig programmera, men du kommer nog inte riktigt förstå vad som händer bakom kulisserna. Detsamma gäller Java, vilket blir livsfarligt om man sedan vill testa C++ och inte vet vad "new" egentligen gör.

Så har du tid, intresse och glöd så satsa på C++, annars skulle jag rekommendera python om du vill få en rask start. Jag instämmer i tidigare poster, har man en gång "fattat" programmering sen är resten mest syntax.

----------------------------------
where my .emacs is, that's my home

---------------------------------------

 

Kristians bild

Nej det är inte svårt. Dock finns det inget grafiskt bibliotek i C++:s standardbibliotek (då C++ ska fungera på "alla" datorsystem). Det är dessutom dumt om inte omöjligt att specificera en GUI-standard som ska hålla i 10-15 år. Sådana bibliotek har en förmåga att utvecklas och förändras ganska fort, vilket skulle bryta kompitabiliteten.

Det finns dock en uppsjö tillgängliga GUI-bibliotek som fungerar på "alla" moderna skrivbordsdatorer såsom QT, GTK+, wxWidgets, FLTK även om inget är "standard". De flesta av dessa är mycket trevliga och inte alls så svåra att använda.

Man kan ju tillägga att tex. Python som språk inte ens är standardiserat även om det finns en standardimplementation som går att köra på väldigt många platformar. Så problemet med att C/C++ inte har något standard-GUI-bibliotek är inget problem Smile

----------------------------------
where my .emacs is, that's my home

---------------------------------------

 

kimjohanssons bild

Yay Smile
Jag kollade in det i en tutorial för gimps script-fu.... slita ut ()... Smile

johan_pirates bild

du bor nära mig ju hahha Laughing out loud

fsns bild

Ja! Obskyrast språk vinner! ML! Haskell! Brainf*ck! Befunge! Malbolge!

 

På Dtek började vi med just ML en gång i tiden. Ryyys...

battras bild

Boken har jag faktiskt haft som kursbok! Helt okej, och mycket övningsuppgifter, något som lär vara nästan nödvändigt om man ska lära sig programmera på egen hand.
Boken är främst en bok om programmering som använder Scheme som exempelspråk, mer än en bok om språket Scheme. (Scheme är alltså en dialekt av Lisp.)

tufftuffs bild

Den som inte behärskar assembler vet inte hur en dator fungerar, helst ska man ha skrivit sin egen mikrokod också:-)

Men allvarligt, att förstå vad en dator är och hur den fungerar kan vara viktigt för att skriva någorlunda effektiva program. Ett typexempel kan vara sättet att accessa en stor tvådimensionell array, man kan välja mellan att utnyttja cacheminnet, eller att ständigt få läsa från primärminnet.
Samtidigt så kan det straffa sig att att försöka skriva för "smart", kompilatorns optimerare fungerar bättre på mera normal kod.
//TuffTuff

Kristians bild

Håller med om precis allt Smile
En läskig sak som man ibland ser, är när folk utan anledning direktindexerar en länkad lista vid vanlig iteration. Man blir ju mörkrädd!

Å andra sidan skrev jag en gång när jag var ung och dum en solitair-lösare som baserade sig på slumpdrag Tongue Om den mislyckades fick den börja om och börja slumpa igen. Det tog många timmar att finna en lösning Wink Men som Ken Thomson säger "When in doubt use brute force"

----------------------------------
where my .emacs is, that's my home

---------------------------------------

 

kimjohanssons bild

Jo, jag visste ju sedan innan att du pluggade i Vmo. Sedan så kollade jag din profil på ubuntu-se och såg att du bodde i B-ryd. Jag har brukar pasera lite då och då utanför ditt hus när jag skall rasta hunden runt hellesjö. Går ibland över järnvägen bakom finmek för det.. Acron låg ju i gamla sågverket innan, och då paserade jag utanför ditt hem nästan dagligen. Smile

Vi har antagligen stött på varann nån gång Wink

johan_pirates bild

usch så hemskt tanke Tongue att någon från internet bor nära mig xD

(skämto sido)