Gå til innhold

Investering i et programmeringsspråk for fremtiden, hvilken?


Anbefalte innlegg

Jeg leter, leter og leter etter svaret, men får ingen. Jeg har søkt rundt om på utallige diskusjonsforumer med tråder om "Python vs. Java" og lignende. Ingen har noe svar utenom "Python & Java: A Side-by-Side comparison" av Steve Ferg, nederste (5.) kommentar hvor "Daniel" skriver:

 

Comaring python to Java is like comparing a bicyle to a car. Sure, it’s easier to learn to ride and you don’t need to struggle with the licencse, but as soon as you want to go more than 10 miles (“write an enterprise application”), the only choice of the two is the car.

 

Han sitter med et godt poeng her, at ved større programmer vil man velge det som er best.

 

Personlig har jeg programmert PHP i 3-4 år og dette holder meget godt til web, men så skal jeg jobbe i en bedrift som driver med programmering til sommeren og trenger å forberede meg til å kunne programmere igjen. Jeg har også programmert en del i Python og noe i Java og jeg er ikke i tvil om at koden er enklere å skrive i Python enn Java. Men jeg har også innsett det store problemet med at Python rekker egentlig ikke i det store laget, spesielt ikke når det gjelder f. eks. sensitive data, eller kode som ikke skal kunne leses rett fra Notepad.

 

Derfor trenger jeg et programmeringsspråk som kan gjøre disse oppgavene, ha god støtte for GUI og at "folk flest" skal kunne åpne det med et klikk uten å måtte ha installert f. eks. Python. Jeg er også klar over at Python kan konverteres om til binærkode, men dette er kronglete og ikke en ideel måte for større applikasjoner. Spørsmålet er om Java da er et språk å investere i? Er dette virkelig så fremtidsrettet som jeg har inntrykk av, når jeg har lest diverse steder?

 

For meg er oversiktlighet og det å kunne lage programmer som lett kan åpnes viktig. De aller fleste har Java installert, de som ikke har det greier som regel å skaffe seg dette enklere enn Python (fordi det er populært i forhold). Dessuten vil jeg ikke binde meg til Microsoft fordi det ikke er utelukket at det kodes programmer til mobile enheter (f. eks. Android).

 

Hva er det dere som kan mer enn meg, mener om dette? Bør jeg gå for Java, bruke utallige timer på å krangle meg fram til resultater, rive av meg masse hår, svette og tårer?

Lenke til kommentar
Videoannonse
Annonse
Jeg har også programmert en del i Python og noe i Java og jeg er ikke i tvil om at koden er enklere å skrive i Python enn Java. Men jeg har også innsett det store problemet med at Python rekker egentlig ikke i det store laget, spesielt ikke når det gjelder f. eks. sensitive data, eller kode som ikke skal kunne leses rett fra Notepad.

 

Beklager, men du må spesifisere bedre hva du mener her (leses rett fra Notepad? Ble et språk utilstrekkelig pga. et komplett udugelig verktøy? Jeg _må_ ha misforstått budskapet).

 

Derfor trenger jeg et programmeringsspråk som kan gjøre disse oppgavene, ha god støtte for GUI og at "folk flest" skal kunne åpne det med et klikk uten å måtte ha installert f. eks. Python.

 

"folk flest" kan ikke kjøre et kompilert C++-program uten en loader og (ofte) en rekke delte biblioteker samt en linker. Det finnes verktøy for å "pakke" pythonprogrammer sammen med passende biblioteker i en eksekverbar fil, hvis det er av interesse. Men med noen særdeles få unntak er dette en uinteressant egenskap.

 

Jeg er også klar over at Python kan konverteres om til binærkode, men dette er kronglete og ikke en ideel måte for større applikasjoner.

 

Nøyaktig hva er ikke-ideelt?

 

For meg er oversiktlighet og det å kunne lage programmer som lett kan åpnes viktig.

 

$ less hello-world.py

 

Det kan *ikke* gjøres enklere.

 

De aller fleste har Java installert, de som ikke har det greier som regel å skaffe seg dette enklere enn Python (fordi det er populært i forhold).

 

Eh, what? Hvordan er det vanskelig å dobbelklikke på en exe-fil? Eller klikke på en pakke i en passende package manager? Og hva Javas tilgjengelighet angår, forleden installerte jeg windows xp i en virtualbox-instans. Windowsinstallasjonen kom *vitterlig* uten Java og uten Python. Gentoo-installasjonen min dog kom med python.

 

Hva er det dere som kan mer enn meg, mener om dette? Bør jeg gå for Java, bruke utallige timer på å krangle meg fram til resultater, rive av meg masse hår, svette og tårer?

 

Du bør bruke den nødvendige tiden for å tilegne deg kunnskap om begge språk. Iallfall hvis du skal kunne ta et velbegrunnet valg. Det uavhengig av hva du bestemmer deg for.

Lenke til kommentar

Python og java vil neppe vere ideell til same del av eit prosjekt, men det kan veldig lett utfylle kvarandre.

Berre gå for eit programmeringsspråk blir som å gå for bilen men du gløymte å bestille dekka.

Det er ein opppfatning (spesielt blant homogene utvkilingsmiljø) at det lønner seg å berre kunne det eine gjeldande, dette er så innihampen feil då det er mangfoldet som gjer ein til ein god programmerer og seinare god løysningsarkitekt.

Å kunne sjå problemet løyst å frå ulike måter gir ein stor fordel når dei beste løysningane skal implementeres.

 

Ein kan komme i situasjoner der ein kjapp python-app rævkjører ein java-app til dei grader, men når ein kan berre java så vil ein gå for java-appen uansett.

 

Og som zotbar1234 seier: tilegn deg kunnskap om begge.

Endret av Jankee
Lenke til kommentar

Gå over til Java. Er du vant med PHP og Python tror jeg det vil være en fin overgang til å begynne med objektorientering (kanskje du har brukt det i PHP? Jeg gjorde ikke da jeg for mange år siden kodet litt PHP). Bonus: da kan du lage Android-apps! Så ser du litt på en C-variant, skal du lage Windows-GUI er kanskje C# interessant. Er du interessert i elektronikk/lavnivå, kan du prøve vanlig C. Kommer du over Matlab, lag noen greier der og. Etter hvert vil du ikke merke hvilket språk du koder i (syntaxmessig), og da er du litt mer frigjort :)

 

Jeg opplevde dette for ikke lenge siden - lagde et testprogram for en robot som samler inn måledata i C, og skrev Matlab-program til å analysere dataene. Jeg har aldri vært noen røver i Matlab, men ettersom jeg visste hva jeg kunne forvente skulle finnes (av string-funksjoner for eksempel), var svarene noen google-søk unna. Så skulle jeg teste litt koding for Android, og det var fascinerende enkelt å komme i gang med (de har noen tutorials på developer-sidene).

 

Som andre sier, ikke øv deg på å bli fastlåst til ett språk (men lær deg gjerne mer om særegenhetene/fordelene/mulighetene/ulempene/virkemåten til de ulike) :)

Endret av cecolon
Lenke til kommentar
Comaring python to Java is like comparing a bicyle to a car. Sure, it’s easier to learn to ride and you don’t need to struggle with the licencse, but as soon as you want to go more than 10 miles (“write an enterprise application”), the only choice of the two is the car.
Han sitter med et godt poeng her, at ved større programmer vil man velge det som er best.

En dårlig bil-analogi gjør ikke et godt poeng.

 

Personlig har jeg programmert PHP i 3-4 år og dette holder meget godt til web, men så skal jeg jobbe i en bedrift som driver med programmering til sommeren og trenger å forberede meg til å kunne programmere igjen. Jeg har også programmert en del i Python og noe i Java og jeg er ikke i tvil om at koden er enklere å skrive i Python enn Java. Men jeg har også innsett det store problemet med at Python rekker egentlig ikke i det store laget, spesielt ikke når det gjelder f. eks. sensitive data, eller kode som ikke skal kunne leses rett fra Notepad.

Du kan ikke lese .pyc filer i Notepad, men det er riktignok trivielt å deassemble de til lesbar kode. Men det er ikke spesielt vanskelig i Java heller. Når det gjelder beskyttelse av sensitiv data så har det lite til ingenting å gjøre med programmeringsspråket du bruker.

 

Java er muligens mer fremtidsrettet enn Python, ihvertfall hvis du har tenkt til å jobbe for det gjengse utviklingselskap. Ikke fordi det er et bedre språk, men fordi "alle" bruker det.

Endret av jonnor
Lenke til kommentar
Men jeg har også innsett det store problemet med at Python rekker egentlig ikke i det store laget, spesielt ikke når det gjelder f. eks. sensitive data, eller kode som ikke skal kunne leses rett fra Notepad.

Jeg tror ikke du får noen fornufige svar før du forklarer hva du mener med dette.

 

Som andre har påpekt, sensitive data har ingenting med programmeringsspråk å gjøre. Jeg har bash-script som håndterer svært sensitive data.

 

Hvis du mener at "kildekoden er tilgjengelig", så er den like tilgjengelig i Java og C# om du kjører class-filen/assemblyen gjennom henholdsvis Jad eller Reflector. Men som nevnt, det er ikke avgjørende for hva slags data man behandler.

 

Når det er sagt, jo flere språk, plattformer og rammeverk du kan, jo "bedre". Kunnskapene tilegnet på et område påvirker hvordan du løser problemer på andre områder.

Lenke til kommentar

Om en antar at du har frie tøyler m.t.p. valg av språk og verktøy og at dette kanskje er et nytt prosjekt er det du som må finne ut av dette selv. Dette er en del av jobben din som programmerer. Jeg ville da forsøkt å skape en oversikt over hva prosjektet går ut på. Web? Database? Embedded type utvikling? 3D? Grafikk? Video? Lyd? Kommunikasjon? .. o.l. .. o.s.v. ..

 

Om en går ut i fra at du skal jobbe på en allerede eksisterende kodebase ville jeg funnet ut av hvilke språk og verktøy andre utviklere i bedriften bruker og gått for det samme som dem.

 

Det er en del direkte faktafeil og det er gjort endel feilaktive (eller kanskje bare utydelige?) slutninger i innlegget ditt, men det gjør ikke så mye -- og jeg antar at det du egentlig tenker er at Java har flere "tunge" verktøy og biblioteker tilgjengelig for seg enn Python og dét stemmer. Det betyr ikke nødvendigvis at dette er noe du har behov for, derfor forslagene mine over ..

Endret av symbolicweb2
Lenke til kommentar

Hva skjer dersom du blir en mester i Java men bedriften forventer at alle skriver C#? Da må du bruke 10 minutter på å venne deg til syntaksen, og et par dager til å bli kjent med tilgjengelige biblioteker og IDE. Til gjengjeld sitter du kanskje med forventninger om biblioteker som finnes i Java og kan komme på gode løsninger C#-folkene ikke tenkte på, eller har lært deg noen design patterns som er vanlig i Java og kan overføre de til C#.

 

Alt i alt mener jeg at det man lærer i ett språk veldig fort kan overføres "billig" til et annet :)

Lenke til kommentar

Å lære seg syntaks tar kort tid, men det kan ta litt lenger tid før en lærer seg de lure triksa i andre språk (fordi en er vandt til andre triks i andre språk). I tillegg tar det vesentlig lenger tid før en har forståelse for standardbiblioteket som språket bruker.

 

Det er også noen språk som er mindre egnet(var det noen som sa VB?) som utgangspunkt enn andre. C og C++ er selvsagt alltid et godt utgangspunkt, men det er ikke like ettertraktet som Java, C# eller Visual Basic på jobbmarkedet.

Lenke til kommentar

Spørsmålet er hva du ønsker å gjøre i fremtiden.

Vil du utvikle store bissnissløsninger? C#/Java (kanskje til en viss grad VB, men helst ikke)

Vil du kode kule web2.0 applikasjoner? Ruby/Python/PHP

Vil du jobbe nærmere "metallet"? C++

 

Selv har jeg høyskoleutdanning basert på Java, men sitter å koder C# nå. En veldig enkel overgang. Syntakset er nesten kliss likt, bare å lære seg bibliotekene.

 

Scala, Go, Groovy og andre lignende tør jeg påstå er for spesiellt interesserte. En kul hobby, men sjelden man får bruk for i arbeidslivet.

 

Erlang, Lisp, Lua etc har jeg sett noen få annonser med, men da har det ofte vært veldig spesialiserte stillinger.

 

-C-

Lenke til kommentar

Skal ikke lage opprør i menigheten med å fortelle hva jeg synes er best, men hvis det er karriereplanlegging du holder på med ville jeg anbefalt Java eller C#.

 

Holder på å søke jobb nå og det er som regel disse to språkene det søkes folk i. Ser relativt sjeldent at man søker etter hovedkompetanse i PhP og Phyton. Er det webteknologi så er det som regel på .NET plattformen.

Lenke til kommentar

Programmeringsspråk som er populære i industrien for tiden er Java, PHP, C# og C. Ingen av disse kommer nok til å forsvinne med det første, og det er vel de mest sannsynlige språkene å se i jobbannonser fremover.

 

Likevel gjelder det å velge rett språk til rett oppgave. Alle språk har svake og sterke sider.

Det mange glemmer når man diskuterer dette på nettet, er hvor lett det er å få tak i folk som kan jobbe med det. For en bedrift hjelper det lite om Ruby er et flott språk dersom få ansatte kan det, og rekrutteringsmulighetene er mye mindre enn for f.eks. Java.

 

Mye buzz genereres på mailinglistene om populære språk, så det er lett å få inntrykk av at et språk er mer utbredt enn det egentlig er. Men hvis du kan flere språk, så mer makt til deg :) Hvis du har kodet kjerneapplikasjonen til bedriften din i Haskell, så har du i det minste litt jobbsikkerhet :)

Lenke til kommentar

Har sett flere eksempler på apps som er kodet i f.eks Java på backend, med Ruby, Python o.l på frontend. Ting som Jython og JRuby, Groovy, Scala etc. har også gjort litt mer "eksotiske" språk mer akseptert i såkalte "java-shops".

 

Opprettholder min anbefaling om å lære Java og Python. Hvis du har minst erfaring med Java ville jeg nok fokusert på å lære dette skikkelig først, for deretter å se på hvordan du kan kombinere det med Python.

 

Å kunne flere språk er uansett en bonus, og gir deg litt nyttig tillegg på CVen, selv om en evt. arbeidsgiver kun leter etter en java-programmerer, f.eks.

Lenke til kommentar
Det er vel ikke helt riktig... Tror heller man må skille mellom "Web 2.0" apps og RIA/business webapps. Sistnevnte er nok mye .NET og Java, men jeg tror nok brorparten av "Web 2.0" går på Ruby, Python, PHP etc.

Benekter du fakta?? :!:

 

Ingen tvil om at nevte språk er fantastiske til Web 2.0, men nå nevnte jeg hva jeg ser i jobbannonser. Der ser jeg lite til Ruby og Python, i hvert fall her i Bergen.

 

Er også enig i at jo flere språk gir deg en bredere fagkompetanse, men nå spør OP om konkrete råd til neste språk han bør lære seg. Jeg er tilhenger av å lære seg et språk av gangen og mitt konkrete tips er Java eller C#, evt. det språket bedriften OP skal starte i arbeider med.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...