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 :)
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 :)
Kommentarer13
Normaltvis vil man nok
Python er også et rigtig lækkert lille sprog med GTK og Qt bindings.
Var ikke klar over at der
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
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
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
Et bud udover Python, kunne
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
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
Du kan iøvrigt ikke bruge
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
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
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
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