mboost-dp1

Hvis du skulle lære at programmere...


Gå til bund
Gravatar #1 - FlowerChild
18. feb. 2008 07:44
... hvilket sprog ville du så anbefale? Jeg kan kun lidt Batch og lidt "scripting" på min gamle Casio 9750 grafregner. Vil gerne starte i linux-verdenen, virker som om det er det der rykker for tiden. Føler lidt jeg er nået til vejs ende i PowerUser verdenen.

Nogen forslag?
Gravatar #2 - Windcape
18. feb. 2008 07:48
Sprogmæssigt synes jeg C# er det bedst designet, og kan også benyttes gennem Mono under *nix.

Ellers er Java eller D gode valg, da de er objektorienterede.
D er en "pænere" version af C++ :)
Gravatar #3 - myplacedk
18. feb. 2008 08:14
Hvis du vil fyre slamkode af (på den gode måde - dvs. simple script lavet på ganske kort tid, og som kun skal køres ca. én gang), så kan du kaste dig over Bash.

Bash er en shell (a la dos), og bash-scripts svarer til dos' batch-scripts. Bare langt mere brugbart. Der er masser af tutorials og guides rundt omkring.

Men hvis du faktisk vil lære at programmere, og lave ordentlige programmer, tror jeg du kommer langt med Java. Et fornuftigt objekt-orienteret sprog, som enda er mange-multi-platformt. Jeg har skrevet Java-ting til alt fra desktop-computeren, over enterprise-servere og hjemmesider til mobil-telefoner.

Mange anbefaler C#. Jeg bryder mig ikke om C# af politiske årsager. Husk også at det er et Windows-sprog, som kun delvist er understøttet på andre platforme. (Og prøv bare at korrigere mig. Jeg har hørt alle argumenterne igen og igen og igen. Jeg ændrer ikke holdning af at høre dem endnu engang, og jeg gider ikke komme med modargumenterne endnu engang igen igen.)
Gravatar #4 - Acro
18. feb. 2008 08:54
FlowerChild (#1) skrev:
Vil gerne starte i linux-verdenen, virker som om det er det der rykker for tiden.


Det afhænger jo meget af, hvad dit mål er. Hvis du gerne vil arbejde professionelt med det, må man nok erkende, at der er langt flere penge i .NET- end i Ruby-udvikling. Jeg kender ikke nogle .NET-programmører, der ikke har et arbejde, men jeg kender altså mange, der koder i lettere alternative sprog, der må finde på noget andet at tjene penge på.

Men nu er penge jo ikke alt, og jeg synes bestemt ikke, at du skal vælge ud fra det. Det er bare meget godt at have med, hvis det nu er en drivfaktor for dig, at du kan få et (studie)job, hvor du arbejder med det. Og der skulle stadig være muligheder nok at vælge fra, selvom du sætter visse krav, der skal overholdes.

Jeg vil som Windcape anbefale C#, men jeg vil også være lidt fræk og pege i retningen af VB.NET. Det ville jeg ikke selv vælge, men det afhænger meget af, hvilken baggrund du kommer fra. Jeg har selv lavet en del VB for mange år siden, fordi jeg - dengang - kunne lide syntaksen, og det er ret essentielt, at du i starten kan være effektiv på en måde, du bryder dig om. Som programmør skal du alligevel kunne skifte fra at skrive "End If" til "}" over en time, så vælg det i starten, du har mest mod på. Så kan du altid skifte. Fordelen ved VB.NET er, at du har samme bibliotek af klasser som fra C#, og du kan endda senere skifte til C# og stadig genbruge det, du har lavet i VB.NET. Har du ingen præferencer, mener jeg dog stadig, at forskellene i den grad taler til fordel for C#.

#3 myplacedk:
Man skal ikke blande politik med programmering. Det kommer ihvertfald meget an på, hvorfor man programmerer. Hvis man skal have et arbejde, skal man kunne forlige sig med nogle vilkår. Det er også de færreste, der fravælger arbejdspladser, fordi de kører Microsoft Word. Det er en utrolig god ting at have principper, men det er samtidig ret dumt at se sig blind på dem og ikke kunne fravige. Man må forholde sig til, at C# i dag understøttes på Mono. Vi kan ikke vide, hvad der sker om nogle år, men sådan er det altid. C# er i dag ganske anvendeligt under Mono, så lad os fokusere på det.

I øvrigt er det ret relevant at diskutere alternativet, når man nu fraråder noget. Er det godt, at Java kører på de fleste platforme? Hvis det er det, man har brug for. Det har man bare sjældent. Jeg vil mene, at klientapplikationer i Java lider under, at Java som udgangspunkt kan køre på alle platforme, fordi grænsefladen sjældent tilpasses individuelt. Brugere på OS X, Windows og Linux forventer noget forskelligt. Så nytter det ikke, at man giver dem det samme, fordi det var det letteste valg. Jeg har til dato ikke set en Java-applikation med en lækker brugerflade, der integrerede ordentligt med Windows i såvel design som virke. Jeg hører meget gerne om en.

Hvis jeg skulle anbefale noget andet end C#, ville jeg nok nærmere være noget som Python eller Ruby. Men hvis FlowerChild fortæller lidt mere om behov, ønsker og tanker, er det måske nemmere at vise vejen.
Gravatar #5 - myplacedk
18. feb. 2008 09:15
#4
Man skal ikke blande politik med programmering. Det kommer ihvertfald meget an på, hvorfor man programmerer. Hvis man skal have et arbejde, skal man kunne forlige sig med nogle vilkår. Det er også de færreste, der fravælger arbejdspladser, fordi de kører Microsoft Word. Det er en utrolig god ting at have principper, men det er samtidig ret dumt at se sig blind på dem og ikke kunne fravige.

Jeg programmerer fordi jeg kan lide det. Jeg kan ikke lige politikken i C#, og foretrækker derfor ikke at røre ved det. C# bliver aldrig en del af min jobbeskrivelse.

Jeg kan heller ikke lide Windows, og foretrækker ikke at røre ved det. Jeg kan gå med til det på brugerniveau. Men så snart det er meget mere end at åbne programmer og bladre mellem vinduer, så ringer jeg til support og venter på at de løser det. Windows bliver aldrig en del af min jobbeskrivelse.

Jeg klarer mig fint. Jeg har et dejlig job hvor jeg primært arbejder med Java, men jeg kan udvikle mig næsten som jeg har lyst. COBOL, Python, ja såmen C# hvis jeg skulle skifte mening.

Hvis C# nu var det sprog jeg kunne, ville det være min bedste adgang til et job som programmør. Det ville da være surt, når jeg ikke kan lide sproget. Derfor vil jeg ikke lære det. (Ikke at det forhindrer mig i at rette en fejl i ny og næ i noget C#. Men det bliver ikke det jeg lever af.)

Man må forholde sig til, at C# i dag understøttes på Mono.

Tjah, Mono gør da deres bedste for at følge med. Der er MEGET delte meninger om hvor godt det går. Java er 100% med. Hvis der skal diskuteres er der vel nogen der mener det kun er 99%.

C# er i dag ganske anvendeligt under Mono, så lad os fokusere på det.

Det vil jeg ikke modargumentere. Men hvis Linux er målet, hvorfor så ikke vælge Java som er FULDT anvendeligt, i stedet for GANSKE anvendelig?

Jeg har til dato ikke set en Java-applikation med en lækker brugerflade, der integrerede ordentligt med Windows i såvel design som virke.

Det er også svært at opnår, når målet er at udvikle software til Linux.

Hvis du vil have fancy-smancy lææækkert fuldt integreret Windows-design, så vil jeg ikke anbefale Java. Men det efterspurgte han jo heller ikke.
Gravatar #6 - NioBe
18. feb. 2008 09:18
Hvor godt er PHP til programmering?!
Gravatar #7 - myplacedk
18. feb. 2008 09:22
#6
Nemt at lære. Giver næsten uundgåeligt nogle dårlige vaner, som kan være svære at komme af med når du skal lære at programmere "rigtigt".

Jeg har selv været ivrig fan af PHP i nogle år, og har levet af det. Jeg blev selv en langt bedre PHP-udvikler efter jeg lærte Java (og "rigtig" programmering), og der begyndte jeg så at miste interessen.

I øvrigt er PHP i PRAKSIS kun til hjemmesider. Man kan meget andet, men det er ikke en god ide.

Alt ovenstående med forbehold for PHP5. Det er vist blevet bedre på mange punkter, men jeg tror nu stadig at det grundlæggende er de samme problemer.

Jeg må hellere fortælle hvad jeg mener med "rigtig" programmering:
Når man kender syntaxen til et sprog kan man godt lave noget software der virker. Men for at lave GODT software, skal du også lære at programmere RIGTIGT.
Man er jo heller ikke tømrer bare fordi man ved hvilken ende af en hammer man skal holde i, og kan slå de fleste søm i uden de bliver skæve.
Gravatar #8 - Norrah
18. feb. 2008 10:02
#1 Hvis du går over til linux lasse, så kommer jeg forbi og giver dig en gang høvl.

Men jeg kan anbefale Java hvis du vil havde en god forståelse for objekt orienteret programmering. Det er ret fikst i den forstand det giver dig et godt indblik i hvordan det fungere. Plus jeg har nogle bøger du kan låne hvis det er.

Birk
Gravatar #9 - slemmebirk
18. feb. 2008 10:08
<Alanna> Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders


C# :)<3
Gravatar #10 - NioBe
18. feb. 2008 10:09
#7
Ja anede mig nok at det bedst var til websites. Overvejer at bede chefen om at give mig nogle programmerings kurser.. men ved ikke rigtigt selv hvad jeg skal have af programmering, C+, C++, C#, Java... ect!?
Gravatar #11 - Acro
18. feb. 2008 10:21
#5 myplacedk:
Lige apropos det med brugerfladerne til forskellige platforme, så nævnte jeg det, fordi du indledningsvist brugte det som en fordel, at Java kan køre på mange platforme. Det var ikke en konstatering af, at der var behov for det, men en begrundelse for, hvorfor det ikke er en fordel, der er meget værd.

#10 NioBe:
Det er måske endnu en fordel ved at vælge C#. Du kan genbruge dine ting til både almindelige applikationer og webløsninger. Det kan man også med Java, men Java Server Pages er vist ikke så udbredt længere, hvis det stadig er det, man bruger. Der er et kæmpe fokus på hele webdelen med .NET (f.eks. med det nye Volta), så det er værd at overveje.

C vil aldrig kunne betale sig, medmindre du virkelig har et eller andet meget specifikt behov. Her taler vi drivere, embeddede systemer eller i nogen omfang spil. Det samme vil jeg efterhånden sige med C++, der dog kan være relevant i forhold til C# i situationen med ekstrem I/O-anvendelse. Den forskel er dog efterhånden ophævet.

Man får selvfølgelig altid den reneste kode, hvis man skriver det hele i nuller og et-taller, men det er sjældent det, man har behov for.
Gravatar #12 - Norrah
18. feb. 2008 10:22
#10 Hvis du er ny til programmering, så vil jeg til enhver tid anbefale Java. Mest af alt fordi det er nemt at lære, og så er det nemt at forstå. Det gode ved java er ikke at når du har lært det, så kan du programmere, men at når du har lært java, så kan du nemt og hurtigt lære et andet sprog.

Ville aldrig selv lave et program i java hvis jeg kunne undgå det. Men da det er utroligt logisk at gå til, så er det nemt at hoppe fra f.eks. java til C.*

*du skal dog stadig havde en bog. Eller en eller anden form for guide.
Gravatar #13 - Windcape
18. feb. 2008 10:51
Det skal siges der er ligeså mange "penge" i Java, som C#, netop fordi C# er meget meget platform låst pr. default.
Gravatar #14 - myplacedk
18. feb. 2008 11:20
#11
Lige apropos det med brugerfladerne til forskellige platforme, så nævnte jeg det, fordi du indledningsvist brugte det som en fordel, at Java kan køre på mange platforme. Det var ikke en konstatering af, at der var behov for det, men en begrundelse for, hvorfor det ikke er en fordel, der er meget værd.

Jamen snakker du ikke kun om desktop-programmer?
Jeg har kodet hjemmesider, enterpricey-stuff, konsol-programmer, GUI-programmer og mobiltelefoner - alt sammen i samme sprog. Det er DET jeg mener med mange-multi-platform. Ikke at jeg kan skrive Notepad Ultra Plus, og se det køre i Windows og Linux.

Jeg har aldrig sat mig ned og virkelig studeret hvordan man laver GUI-programmer. Det interesserer mig ikke. Men de gange jeg har haft behov for det, har jeg kunnet gøre det i det system jeg er vant til at arbejde i.
Tiden det tog mig at lære at lave software til mobilen måles i timer. For det er næsten det samme som så meget andet software jeg laver.

Hvis der skal laves et fancy GUI til et desktop-program, hyrer man nogen der er god til det. Det er ikke mig. Men jeg kan så meget andet.

Jeg har aldrig påstået at Java er et godt sprog til desktop-programmer. Men det er muligt at lave funktionelt desktop-software. Det behøver altså ikke altid at være så pokkers fancy, nogen gange er det vigtigste altså at det virker.
Gravatar #15 - arne_v
18. feb. 2008 23:37
#1

Java, PHP og Python er de mest oplagte til Linux platform.

Og i virkeligheden skulle du nok lære alle 3, da de dækker forskellige behov.
Gravatar #16 - arne_v
18. feb. 2008 23:49
#4

C# virker fremragende på Linux med Mono.

Det er ret nemt at lave en compiler.

Det er .NET biblioteket der halter bagefter. Og som er skyld i at portabiliteten halter.

De interesserede kan checke status her:
http://mono.ximian.com/class-status/

95% kompabilitet betyder reelt ikke-kompatibel.

Hvis man kan lide C#, så kan man sagtens bruge Mono på Linux og udvikle sin app med GTK+ etc..

Men man skal ikke forvente at en app udviklet til MS .NET (i nyere udgave) er WORA.

Det er iøvrigt fuldstændigt det samme med GNU ClassPath projektet. De kæmper med at nå Java 1.4 kompabilitet.

http://www.kaffe.org/~stuart/japi/htmlout/h-jdk14-...

Det er en kollossal opgave at udvikle og maintaine et bibliotek på størrelse med .NET og Java.
Gravatar #17 - arne_v
18. feb. 2008 23:53
#11

Det er måske endnu en fordel ved at vælge C#. Du kan genbruge dine ting til både almindelige applikationer og webløsninger. Det kan man også med Java, men Java Server Pages er vist ikke så udbredt længere, hvis det stadig er det, man bruger. Der er et kæmpe fokus på hele webdelen med .NET (f.eks. med det nye Volta), så det er værd at overveje.


????

Hvis jeg skulle gætte ville jeg anslå at:
- 50% af .NET apps har web interface
- 95% af Java apps har web interface

Du har vist byttet rundt på det. .NET har pæn fokus på desktop apps, mens Java har næsten udelukken fokus på web apps.
Gravatar #18 - arne_v
19. feb. 2008 00:03
#4 og #11

Hvis man udvikler desktop apps, så kan man sige at multi platforms support ikke betyder noget, fordi de er stadig sådan at 95% af desktop PC'ere kører Windows. Det kan ændre sig, men det har ikke ændret sig so far.

Men udvikler man andre typer apps (backend apps, web apps, mobile apps o.s.v.), så betyder multi platforms support noget.

Det betyder ikke, at man altid vil vælge en portabel løsning, men det betyder at man giver plusser for portabilitet og der skal gode grunde til at vælge en ikke portabel løsning.

Man kan vælge at basere sin availability på HACMP selvom man binder sig til IBM.

Man kan vælge at sikre sin performance på SP's i PL/SQL selvom man binder sig til Oracle.

Man kan vælge at bruge ASP.NET fordi <indsæt din yndlings begrundelse her> selvom man binder sig til MS.

Men at sige at portabilitet ikke betyder noget for non desktop apps rangerer på niveau med "jeg behøver ikke skrive kommentarer i koden, fordi det er alligevel kun mig der retter i koden og jeg ved hvad den gør".
Gravatar #19 - Windcape
19. feb. 2008 05:08
Jeg har til dato ikke set en Java-applikation med en lækker brugerflade, der integrerede ordentligt med Windows i såvel design som virke.

Eclipse? :p
Gravatar #20 - Cyrack
19. feb. 2008 07:07
For at vende tilbage til hans oprindelige spørgsmål ---

Hvis jeg skulle lære at programmere fra bunden af igen, så ville jeg købe BlueJ-bogen* og følge dens opgaver til man forstår hvad OOp er, og hvordan patterns bliver brugt. Når det er på plads ville jeg kigge mig om efter et OO-sprog som jeg kan lide og som der er penge i (fx. C# eller VB.net). Med det rigtige sprog valgt ville jeg så købe enten Larmans "Applying UML and Patterns" eller "Design Patterns: Elements of Reusable Object-Oriented Software" af Erich Gamma et. al.

Noget af det sidste man behøver bekymre sig om, når man skal programmere, er sproget. Granted, et kendskab til det sprog man skal implementere det i er en fordel i designfasen, men ikke et krav.


* meget basal Java-bog, der tager læseren ved hånden og hjælper personen igang med rigtig programmering, fremfor småhack og dårlige designs.
Gravatar #21 - myplacedk
19. feb. 2008 07:25
#20
og som der er penge i (fx. C# eller VB.net)

Og dermed vil du påstå at der ikke er penge i Java? Her ansætter vi da Java-programmører så hurtigt vi kan finde dem, så vidt jeg har forstået.

Jeg ved ikke hvor mange jobopslag der er i Danmark for de forskellige sprog, men skal du bruge mere end ét job?

Det er vel et spørgsmål om hvor god man er. Er man god nok, kan man få et job næsten uanset hvad det er man er god til.

Hvis du egentlig ikke kan finde ud af at programmere, ja så er du jo nok nødt til at vælge et sprog hvor efterspørgslen er større end udbuddet, og alle får job. Eller også skal du nok overveje om du overhovedet vil være programmør.

.

I den sidste ende er sproget nok nærmest ligegyldigt for de fleste. Jeg tror mange programmører/software-udviklere egentlig er ligeglad med sproget, så længe det passer til opgaven. Og udfordringen er jo at lære at lave software, ikke at lære et specifikt sprog.
Fx. tror jeg flertallet af de programmører vi ansætter her, ikke kender det sprog de skal bruge i forvejen. No problem, vi lærer dem det.
Gravatar #22 - Cyrack
19. feb. 2008 12:45
myplacedk:
Stop nu den religionskrig. Jeg skrev "fx" og jeg valgte de to sprog, for det er de eneste jeg har tjent større beløb på.

Og ja, jeg skulle gerne bruge mere end ét job, da jeg er selvstændig, og sjovt nok oplever jeg mest at der bliver efterspurgt MS-systemer fra små virksomheder. Personligt mener jeg at Java er et bedre sprog, men hvis jeg ikke kan sælge det kan jeg ikke bruge det til noget.

Mht. til sprog generelt: ja, hvis først man har lært at programmere OO er sproget underordnet, da man kan lære de små forskelle der måtte være.
Gravatar #23 - myplacedk
19. feb. 2008 12:51
#22
Jeg skrev "fx" og jeg valgte de to sprog, for det er de eneste jeg har tjent større beløb på.

Fair nok. :) Jeg har bare hørt flere gange før, at folk tror der ikke er Java-jobs derude. :)
Gravatar #24 - Neo1
19. feb. 2008 13:15
Hvorfor vil i rådgive manden alt efter hvilket sprog som man tjener mest på? Det er da fulstændig hen i vejret! Bare man kan algoritmerne og logikken bag det hele betyder det ikke noget hvilket sprog man bruger..

#1:

Hvis jeg var dig ville jeg starte med et sprog som ikke giver dig forfærdelige programmerings vaner, dvs. hold dig helt væk fra BASIC og alle sprog der slægter det på, download GCC og find nogle C++ tutorials på nettet, det havde jeg gjort :)
Gravatar #25 - Norrah
19. feb. 2008 13:26
#20 der er en som også har læst datalogi... *host...

Anyway #1 det er de bøger jeg har, så hvis du vil låne dem. Så giv lige damsgaard et ring.

Birk.
Gravatar #26 - myplacedk
19. feb. 2008 13:55
#24
Hvorfor vil i rådgive manden alt efter hvilket sprog som man tjener mest på?

Det er der vist heller ikke nogen som gør. Vi snakkede lidt om at holde sig fra dem, der ikke er penge i, og det var blot et sidespring.

Og hvis det ikke er fordi man er ved at ruste op til en karriere, er det med pengene jo også ligegyldigt. Fx. er der næppe penge i Javascript, men det har nu alligevel været ganske nyttigt i mit arbejde at kunne det.
Gravatar #27 - Cyrack
19. feb. 2008 16:56
#25 - Norrah:

Faktisk datamatiker, men jeg kan forstå at det meget er det samme materiale der bruges der og så på datalogi på de første semestre :-)

---

BlueJ bogen er jeg parat til at forære væk under to forudsætninger: [list=1]Du skal ville lære at programmere
Du skal give bogen videre når du har lært at programmere[/list]
Larman-bogen kan jeg dog ikke undvære. Den er fremme næste ugentligt :-)
Gravatar #28 - Windcape
19. feb. 2008 17:38
Faktisk datamatiker, men jeg kan forstå at det meget er det samme materiale der bruges der og så på datalogi på de første semestre :-)

Afhænger RIGTIG MEGET af hvilket universitet du studere på.

Datalogi på Århus uni er noget så fjernt fra hvad du lærer på Datamatiker i Århus... med undtagelsen at du også lærer lidt java, men langtfra så dybegående som på datamatiker.

På datalogi forventes det at du studerere videre selv.

Aldrig sammlign de 2 uddanelser, og slet ikke en forsøge at gøre det uden at angive hvilket universiteter du sammenligner ud fra.
Gravatar #29 - Cyrack
19. feb. 2008 19:54
Windcape:

Sorry :-)
Anyways, blev færdig med datamatiker i Herning i november, så jeg har ikke så meget et universitet at sammenligne med :-)
Gravatar #30 - Acro
19. feb. 2008 23:30
#16 arne_v:
95 % kompatibilitet kan være mere end rigeligt til det behov, man har. De fleste projekter kommer jo heldigvis aldrig i nærheden af at bruge 95 % af frameworket. Det er ganske rigtigt, at der er fatale mangler, hvis man skal kunne afvikle noget, man har lavet i Visual Studio til Microsoft.NET direkte, men det er der ingen, der har efterspurgt.

#17 arne_v:
Det ville måske være mere relevant at holde os ved den software, man starter med. Jeg er klar over, hvordan meget enterprisesoftware og andet fungerer, men det var ikke argumentet. Min betragtning gik i forhold til projekter af den størrelse, der er interessante for en nybegynder. Der er ikke mange steder, man finder Java-hosting i forhold til ASP.NET-hosting. Der findes - efter mit kendskab - heller ikke nær så meget software til netop webplatformen, man frit kan hente og lege med. Jeg søger dog sjældent efter den slags, men hvis jeg leder efter CMS, blog, wiki og andre typiske webting, så dominerer ASP.NET altså klart Java, og det er typisk der, man starter - ikke meget større, selvom din pointe naturligvis er væsentlig.

#18 arne_v:
Nu nævner du behovet for at skrive kommentarer; uden selv at give min holdning til kende, er der jo mange (bl.a. Juval Löwy), der argumenterer imod kommentarer, fordi koden bør være selvforklarende, ligesom navngivningen kan hjælpe til. Men jeg mener dog, at der er stor forskel på, hvad man laver. Linux-kernen kræver noget flere kommentarer end et CMS. Sidstnævnte, der typisk implementeres i et imperativt sprog, kræver sjældent en eneste kommentar, hvis udvikleren laver tingene ordentligt.

Man kan selvfølgelig altid overkomplicere koden således, at det er nødvendigt med mange kommentarer. Den vej er der desværre mange, der vælger. Det svarer dybest set til at købe dyrt, hvis man ingen penge har, for at signalere noget over for omverdenen.

Nedenstående eksempler er ikke de bedste, men selvom enhver programmør bør have styr på heltal og den måde, computere behandler dem på, er der vist ikke nogen tvivl om, hvad der er lettest at læse.

A)
return i > 0 ? i << 1 : ~(i << 1) + 1;


B)
return Math.Abs(i * 2);


For at komme ud af en tangent til det sidespor, jeg allerede er havnet på (og der ikke er relevant i forhold til hverken din kommentar eller trådens emne), kan vi betragte nedenstående test. De færreste klarer den. Det betyder ikke, at man er en bedre programmør, fordi man klarer den. Man har ganske givet mere overblik, men da nedenstående jo givet et fast tal, kunne den lige så godt være defineret i første linje. Nuvel, man skal stadig kende sit sprog og logikken, men man skal helt undgå at komme i situationer, der sætter så høje krav. Det er noget med ikke at gå over åen efter vand. Nogle ting er komplicerede, og det er fint. Simple ting skal bare ikke kompliceres.

int i = 1;
i += i++ + ++i;


#20 Cyrack:
Det er meget individuelt, hvordan man lærer. Jeg studerer altså datalogi uden at læse bøger overhovedet. Hvis bøger er den foretrukne metode, vil jeg dog gerne anbefale "Programming C# 3.0, Fifth Edition" fra O'Reilly. Den har jeg indtil videre anbefalet mange, og de har uden tvivl fået meget ud af den. Steve McConnells "Code Complete, Second Edition" er vist også en uforgængelig klassiker.

#21 myplacedk:
Det er rigtigt, at man stortset altid kan få et job, hvis man er rigtig dygtig. Det er bare ikke alle, der bliver rigtigt dygtige. Der er vist mange børn, der gerne vil spille på landsholdet, men der er ret få, der faktisk kommer til det. Derfor er det også vigtigt, at man ikke fortæller alle børn, at de har evnerne til at komme på landsholdet. Men du skal også huske på, at du, selvom du er rigtig dygtig, kan komme til at flytte for et job. Nu er det et vildt gæt, men der er nok ikke mange i Vrå i Nordjylland, der har behov for Common Lisp-udviklere. Det er dog også individuelt - og selvfølgelig er der muligheden for fjernarbejde og meget andet. Udgangspunktet er bare, at man med nogle sprog er bedre stillet, hvis man ikke er en del af eliten, og det kan man ikke anfægte.

Og så er det egentlig irrelevant. Hvis du er rigtig dygtig, så har du en baggrund inden for flere sprog, så det kommer helt naturligt. I den henseende er det første sprog ret irrelevant, udover at det selvfølgelig skal stimulere interessen.

Og først siger du, at I ansætter Java-programmører, som I kan finde dem, og til sidst, at I så lærer dem et andet sprog. Er det Java-udviklere, I har behov for eller hvad? :-P

#24 Neo1:
Penge er i den grad relevant i forhold til, hvad man vil. Det er desværre kun i en utopisk drømmeverden, at vi kan undvære dem, så det er måske meget vigtigt, at man ikke sætter sig op til blive ansat og tjene kassen på Whitespace og brainfuck. Jeg mener på ingen måde, at det er det vigtigste, men det er vigtigt, at man gør op med sig selv, hvor motivationen ligger. Er det bare for at underholde sig selv de ensomme fredage, er det fuldstændigt irrelevant, om det fører til jobtilbud.

#26 myplacedk:
JavaScript er måske et nicheområde, men hvis du er rigtig dygtig, er der mange jobs at hente ved forskellige webbureauer og formentlig også i en masse "web 2.0 start ups".
Gravatar #31 - TullejR
19. feb. 2008 23:37
Undskyld hvis jeg missede noget, men jeg skippede lige hen over jeres flamewar.

Jeg anbefaler python, og hvis du vil lege med GUI, så er PyQt4 ganske udemærket. Det er også understøttet på alle større platforme.
Gravatar #32 - TullejR
19. feb. 2008 23:38
#6: PHP kan ikke engang lave threads, så det er ikke engang relevant at overveje.
Gravatar #33 - arne_v
20. feb. 2008 03:43
#19

Ihvertfald er det ret relevant i en diskussion om L&F af Java apps at angive om det er Swing eller SWT man tænker på.
Gravatar #34 - arne_v
20. feb. 2008 03:46
#26

Jeg tror faktisk at der vil være penge i JavaScript. Med al den AJAX koder der bliver pumpet ud så bliver der brug for mange JavaScript programmører i de kommende år til at vedligeholde den kode.

(der er selvfølgelig dem som bruger server side komponenter til at generere JS med eller et toolkit som GWT eller Script#, men der er også mange som udvikler i hånden)
Gravatar #35 - arne_v
20. feb. 2008 03:52
#32

Til det formål som PHP bruges til i 99.999% af tilfældene, så er det ikke hensigtsmæssigt at starte en tråd.
Gravatar #36 - arne_v
20. feb. 2008 04:04
#30

Hvis antal fora/CMS er kriterie, så fejer PHP alle af banen. Hvis udviklingen fortsætter så har vi snart flere PHP fora/CMS end PHP udviklere.

:-)

----

Jeg har lidt svært ved at forestille mig nogen der seriøst vil argumentere imod kommentarer i kode.

Man kan naturligvis nemt argumentere mod indholdsløse kommentarer:

// læg 1 til i
i++;

men det er noget lidt andet.

----

Linux kernen laves da også i et imperativt sprog.

----

Du bør nok nævne at dine kode eksempler er C#.

For i C er de nemlig gode eksempler på implementation specific / undefined behavior.
Gravatar #37 - TullejR
20. feb. 2008 05:59
#35: Nu sagde han programmering, så jeg tænkte det var noget andet end web-lol.
Gravatar #38 - Neo1
20. feb. 2008 06:20
#30:

Pengene er da på ingen måde relevant når man bare forsøger at lære at programmere, så snart man har fået logikken på plads tager det et par dage at lære nye sprog, så kan man begynde at tænke over hvad man gerne vil arbejde med og hvad man tjener mest på, men indtil da er det komplet irrelevant. Bare man får det lært, og styrer uden om nogle af faldgruberne...
Gravatar #39 - myplacedk
20. feb. 2008 07:55
#30
Og først siger du, at I ansætter Java-programmører, som I kan finde dem, og til sidst, at I så lærer dem et andet sprog. Er det Java-udviklere, I har behov for eller hvad? :-P

Vi ansætter så mange udviklere vi kan, til de to sprog vi primært bruger. Resten af behovet dækkes med andre, som omlæres.
Java er i øvrigt ikke den det er sværest at finde folk til.
Gravatar #40 - myplacedk
20. feb. 2008 08:22
#6
Jeg har lidt svært ved at forestille mig nogen der seriøst vil argumentere imod kommentarer i kode.

Forestil dig mig. ;-)

Selvfølgelig skal kode kommenteres, men det skal være så lidt som muligt. Jeg bruger typisk 0-2 sætninger til en Java-klasse, og 0 til en metode.

Langt de fleste Java-klasser overholder et meget velkendt pattern (på min nuværende arbejdsplads), så navnet alene siger typisk det hele. Måske en sætning eller to til at uddybe det, så man slipper for at slå op i system-dokumentationen*.

Jeg kan dog finde på at skrive væsentligt mere, typisk ved noget komplekst framework-agtigt. A la hvor Sun dokumenterer Java API'et. Men det er rent undtagelsesvist.

Hvis din kode trænger til en masse kommentarer, så er løsningen formentlig refactoring. Formentlig.

Jeg har dog på fornemmelsen at vi i hvert fald grundlæggende er enige: Lad være med at fortælle med kommentarer, hvad du kan fortælle med kode. Hvis en metode hedder noget intetsigende, så giv den et nyt navn osv. Du mente nok at undgå kommentarer 100%. :)

* System-dokumentationen går på tvært af platforme osv. Hvordan man opretter en kunde handler lige så meget om frontend som backend, og skal derfor ikke dokumenteres i koden. Derfor kan man jo godt henvise til den, og gentage de vigtigste ting.
Gravatar #41 - Windcape
20. feb. 2008 08:43
#40

Visse sprog tillader mindre kommentering end andre.
Java/C# kræver langt mindre end f.eks. COBOL.

Derudover så er metode kommentering som f.eks.


/// <summary>
/// Remove the client from the clients list on disconnect
/// </summary>
/// <param name="c">Client</param>
public static void ClientDisconnected(Client c)
{
// code
}


Her er det smart at angive at navnet er "Client" og ikke bare "c", da man ellers ville se "c" i sin intellisense.

I Java har SUN det med at kalde dem arg0,arg1,arg2,arg3 og så først navngive dem senere.

Selvfølgelig er sigende variablenavne meget bedre, men engang imellem er en beskrivelse i kommentaren så uendelig meget mere sigende end et variabelnavn.
Gravatar #42 - Acro
20. feb. 2008 08:56
#41 Windcape:
Jeg forstår godt pointen, og nu er der jo langt vigtigere grunde til at gøre brug af XML comments, fordi det let giver mulighed for at dokumentere klasser og metoder, men din eksempel er bare ikke helt godt. Man har langt større problemer end kommentarer, hvis man kalder variabler et enkelt tegn. I dit tilfælde skal man naturligvis kalde den "client".

Inden en kæk læser bemærker, at jeg selv brugte "i" som mit eksempel, så var det for at anskueliggøre, hvordan koden kunne se ud. Normalt skal man altid kalde en variabel "index" eller "temp" afhængigt af behovet. Det er simpelthen for sjusket at spare tegn i lige netop sprog som disse.

Grunden til, at XML comments skal anvendes er jo netop, fordi du får en dokumentation til at læne dig op ad (uanset hvordan du så tilgår den). Alternativt kan du sidde med IntelliSense og prøve dig frem, indtil du rammer den rigtige metode og de rigtige argumenter. Det har aldrig været meningen, selvom det ganske vist findes mange "IntelliSense-udviklere".
Gravatar #43 - FlowerChild
20. feb. 2008 10:00
WOW!!!!
Jeg vidste egentlig godt at der var forskel på hvad folk kunde lide af programmeringssprog...

... men jer er alligevel imponeret :-O
Det har er første gang jeg oplever debatten "up close".

Jeg vil gerne sige tak for hjælpen, til jer alle, men jeg tror jeg følger Bildes (Norrahs) råd, han bor tæt på og kan finde ud af det dersens java. Det er også pseudo åbent, og sikkert et godt første skridt. Det er også platform uafhængigt (ligsom analsex) så det stiller mig frit i fremtiden ;-)

Så kunde det være Python, C#/++ eller noget andet der tænder mig, jeg prøver senere.

1 Ki tak for hjælpen.
/Lasse
Gravatar #44 - arne_v
20. feb. 2008 13:38
#40

En del kode er meget simpelt, men der findes også kode, som ikke er simpel at forstå.

Man kan refaktorere kode der er unødvendig kompleks, men man kan ikke refaktorere kode som er nødvendig kompleks.

Og man skal være meget forsigtig med at dømme noget selvforklarende. Fordi alle på projektet fint forstår hvad koden gør, så er det ikke nogen garanti for at en programmør i Indien eller Kina der om 10 år får til opgave at rette en bug i koden også vil finde det lige så selvforklarende.
Gravatar #45 - arne_v
20. feb. 2008 13:42
#42

Ikke altid.

i,j,k som index er gået hen og blevet idiomatisk.

En arv fra Fortran.
Gravatar #46 - myplacedk
20. feb. 2008 15:04
#44
Helt enig. Jeg ser bare mange som forsøger at forklare sig ud af unødigt kompleks kode med kommentarer, eller måske slet ikke forsøger.

Mange af de gode kommentarer jeg ser, handler i øvrigt mere om at forklare hvorfor, end hvad.

Dårlig kommentar:

month++; // Lægger én til måned

God kommentar:

month++; // Måned i input er nul-baseret
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login