Hjælp til valg af sprog
Hej.
Jeg er oprindeligt windows programmør, men vil nu til at programmere i linux. Er der nogen der har nogle gode ideer til valg af sprog? evt. et interpreted sprog så folk der bruger windows også kan se mine resultater?
Hvilke sprog leger folk her på LinuxIN.dk med?
Mange tak på forhånd :)
- Log in to post comments
Kommentarer13
Normaltvis vil man nok
Normaltvis vil man nok vælge C, C# eller Vala med GTK+ til GNOME-udvikling. eller C++ og Qt til KDE udvikling.
Python er også et rigtig lækkert lille sprog med GTK og Qt bindings.
Var ikke klar over at der
Var ikke klar over at der fandtes C# i linux. Måske man skulle tage et kig på det.
Python har jeg leget lidt med i shell, og python er da et interpreted language, da det også kan installeres i windows. Ellers har jeg tænkt lidt på Java som også er interpreted.
Men det kunne være jeg skulle lege videre med python så :)
C++/Qt er ikke bundet til
C++/Qt er ikke bundet til KDE.
Bruger du Qt kan du køre dine programmer på linux/unix, mac og windows... og symbian- og meego-telefoner ;-)
Men det er selvf. ikke et fortolket sprog.
fortolkede sporg og
fortolkede sporg og portabilitet er lidt en sandhed med modifikationer ofte er du afhængig af halvstore c biblioteker for at bestemte funktioner virker.
C# under linux er f.eks. plager af ikke at have MS normale API'er tilgængelige og python kræver en masse cygwin kode for at alle de ap'er du har på linux fungere under windows.
Selv java kan have den slags problemer men det er mindre almindeligt. så du skal altid værre opmærksom på den slags hvis du vil have ting til at virke på alle platforme.
- og såfremt du skriver ren
- og såfremt du skriver ren C++ / QT kode så kan du sagtens tage dine applikationer med over på windows -- Du vil højst sandsynligt selv vide hvornår du er ved at binde en applikation til en specifik platform (dvs. direkte læsning af linux-specifikke filer, brug af libraries som kun findes på Linux eller lign.)
Et bud udover Python, kunne
Et bud udover Python, kunne også være Java.
Såfremt du skulle være træt af Swing til grafiske applikationer, leverer SWT og QT gode alternativer. Som også kører på de fleste platforme.
QT til Java eksisterer som community projekt, efter Trolltech (Nokia) valgte at fjerne det fra deres repertoire.
http://www.eclipse.org/swt/
http://qtjambi.sourceforge.net/
Nå ja og så den altid gode at have ved hånden.
http://download.oracle.com/javase/tutorial/
Desuden har du med en JVM mulighed for at bruge en masse af de nye spændende sprog, så som Scala, Clojure mfl.
Tusind tak for de mange
Tusind tak for de mange svar.
Jeg tror jeg vil kigge på QT, det lyder som en spændende idé.
Måske jeg alligevel skulle skrive ren linux kode, jeg ved det ikke endnu. Nu vil jeg i hvert fald starte med at kigge på QT.
Meld gerne tilbage med dine
Meld gerne tilbage med dine erfaringer. Jeg går i samme tanker som dig. Har programmeret i Windows i mange år, men vil gerne i gang med Linux.
Du kan iøvrigt ikke bruge
Du kan iøvrigt ikke bruge QT alene. Du er nødt til at have et sprog med, fx C++.
Personligt bruger jeg Python til desktop applikationer der skal virke på tværs af platforme.
Adobe AIR kunne også være en mulighed hvis du tænker lidt ud af boksen.
det er nyttesløst at
det er nyttesløst at spørge om hvilket værktøj der er bedst, når du ikke fortæller hvilken opgave du vil løse.
C, C++, python, c#, java, fortran, java script og mange flere virker på både linux og windows.
Valget er ofte et trade off mellem performance og mængden af arbejde der kræves.
Valget af toolkit er i hovedtræk også ligegyldigt. Vælg gtk+ hvis du bruger gnome, xfce, lxde (ubuntu, fedora, osv) eller qt hvis du bruger kde (kubuntu, suse, mandriva, osv). Det skal nok virke uanset, men det vil integrere pænere hvis du vælger det samme toolkit som er default. I sidste ende kan det komme an på hvilken grad af frihed du kræver toolkittet skal være under, men det er en anden disktution.
#10 Huh ? Jeg er selv svoren
#10
Huh ? Jeg er selv svoren gnome-bruger, men de nyere versioner af QT gør et fantastisk bravt job med at ligne mine GTK-baserede applikationer, så meget at jeg nu igen gør brug af QT programmer.
Og så ville jeg nok aldrig påstå at GTK kunne måle sig med QT - i hvert fald ikke hvis vi kigger på QT's fulde API, du vil givetvis kunne opnå det samme med flere forskellige libraries + GTK, men dette er netop QT's styrke - et relativt komplet library som du kan tage med dig på tværs af platforme.
(Når det er sagt er jeg fuldstændigt enig med dig i selve hovedpointen: sprog og toolkit skal som regel vælges ud fra opgaven man søger at løse! --- selvom der selvfølgelig er folk som bliver uhyggeligt gode til et specifikt sprog og derfor formår at løse stort set alt på en fornuftig måde med samme sprog.)
#11
Det er fint at det
#11
Det er fint at det begynder at ligne lidt, men derfra og så til at anbefale et andet toolkit end der er brugt som DE er der nok lidt langt.
Sammenligningen mellem gtk og qt's API må du nok lige uddybe lidt? Er der bestemte applikationer du mener kun vil kunne skrives med qt? Og med de forskellige libraries du hentyder til, hvilke er det? (og ville det være bedre hvis de var prefixet med gtk?)
Det her med qt's platformsuafhængighed er for øvrigt lidt en joke. Platformsuafhængighed har eksisteret i mange toolkits længe inden qt's marketingsmaskine begyndte på write-once-deploy-everywhere kampagnen. I hvert fald når vi snakke de store desktops win/osx/linux.
Det er desuden et lidt diffust begreb at være "platformsuafhængig". Man kan jo vælge at lægge snittet rigtig mange steder. Hvis du kører et virtualiseringslag så er dit OS vel som sådan platforsuafhængit. Eller du kan lave en wine/mingw-msys-cygwin og kalde det platformsuafhængighed. Du kan også skrive dine libs så de kan køre på alle platforme og så kalde hele stakken for det. Eller lave et abstraktionslag over alle native libs og så kalde den laveste fællesnævner for et platformsuafhængigt api.
Det store sprøgsmål er bare hvornår afhængighederne alligevel bløder igennem op til applikations udvikleren? Hvis du har brug for lidt mere end fællesnævner-api'en tilbyder, så er du pludslig i gang med en masse ifdef-sjov. Eller hvis der på en enkelt platform findes en bug i den native api, så er den galt igen.
Det egentlig brugbare i at have platformsuafhængighed mellem så forskællige platforme som en desktop og en mobiltelefon er nok også af tvivlsom værdi. Performancen på de forskellige enheder, samt anderledes input type og forskellig skærmstørrelse gør at "platformsuafhængighed" igen bliver ret platformsafhængig.
Nå, nu får jeg nok qt-lover-banden på nakken :)
(din sidste kommentar er jeg helt enig i. En snedker kan sikkert fælde et træ med sit stemmejern, men jeg ville alligevel anbefale en motorsav...)
Jeg må nok indrømme at jeg
Jeg må nok indrømme at jeg er endt med at rode med GIMP og Blender i stedet for programmeringen, jeg har fået lyst til at udvide mine horisonter indenfor digital art. Jeg bruger dog stadig php til min hjemmeside.