Avatar billede SimonBStoevring Nybegynder
12. juni 2009 - 09:47 Der er 28 kommentarer og
1 løsning

Fra PHP til udvikling

Hej.

Jeg har i godt og vel seks år udviklet hjemmesider på et fritidsplan. Jeg har brugt PHP til at lave de hjemmesider og i lang tid har det været meningen, at jeg vil videre fra PHP, men jeg er ikke klar over hvordan og til hvad.

Altså - drømmen, eller målet - er at kunne udvikle software, som kan styre noget. Men det er vel noget, som ligger langt ude i fremtiden, men et eller andet sted skal man jo starte.

Hvilken programmeringssprog, vil jeg skulle benytte mig af? Selv har jeg fået opfattelsen af, at jeg enten bør vælge imellem C++ eller Python, eller er der andet?

Og kender I nogle goder steder at starte? Nogle hjemmesider eller bøger der er suværene til et programmeringssprog som kan det, jeg ønsker?

Med venlig hilsen
Simon B. Støvring
Avatar billede j4k0b Nybegynder
12. juni 2009 - 09:58 #1
Jeg ville have foreslået dig C# eller Python :-)

C# er noget tungere at gå i gang med. Python er meget let, og giver dig en rigtig god fornemmelse for objektorienteret programmering på kort tid.

Begge sprog er objektorienterede og kan bruges til næsten alt fra hjemmesider til 3D-spil. Du skal holde tungen lidt mere lige i munden når du skriver C# kode. Python er meget orienteret mod arkitektur, i forhold til de fleste andre sprog der kræver at man "tænker" lidt mere over de faktiske koder man skriver i stedet for det overordnede design :-)

C# har ASP.net (som jeg ikke har erfaring med - og måske flere jeg ikke kender). Python har flere web-frameworks der er værd at nævne. Især Django er blevet populært (www.djangoproject.com).


Konklusion: Hvis du vil ud og have et arbejde med det sprog du begynder på, så er det nok ikke Python du skal prioritere højest. Men hvis du vil komme hurtigt i gang med objektorienteret programmering på et niveau hvor det er nemt at gå til, og hvis du vil producere meget program med lidt kode så er det Python du skal vælge.


Jeg har selv arbejdet med Python i ca. 3 år nu og er super tilfreds med det. Det er hurtigt, sjovt og effektivt. Her er et eksempel på en hjemmeside jeg har været med til at bygge i Python:

www.billigvvs.dk
Avatar billede tjaz Nybegynder
12. juni 2009 - 10:57 #2
Jeg vil anbefale C#

På den måde vil du også få en god overgang til, hvis du vil arbejde med .NET
Avatar billede SimonBStoevring Nybegynder
12. juni 2009 - 13:41 #3
j4k0b -> Det lyder jo fristende med Python, hvis man kan lave gode programmer med lidt kode, men hvis det ikke er "fremtiden", men i stedet C#, så er det vel bare at bide tænderne sammen i starten.

tjaz -> Hvad er mulighederne med .NET? Og har det ikke noget med ASP at gøre?

Kender I ellers nogle sider eller bøger, som er ekstra gode til at starte med C# fra?
Avatar billede mcb2001 Nybegynder
12. juni 2009 - 14:19 #4
C# bruges meget ofte sammen med .NET
Det kan både være stand-alone windows programmer eller webaplicationer.

PYTHON fungerer alene og derfor både flere styresystemer.
Det samme gælder PERL.

PHP kan også udvikles mere, du kan f.eks. overgå til at bruge objekt-orienteret php, hvilket giver dig de samme muligheder som f.eks. C#.

Du kan også vælge at starte på java, og så lave dine egne applets, servlets, .jsp, og hele den portefølge.

Men en ting jeg er i tvivl om, skal det være hjemmeside baseret eller mere generelt?
Avatar billede j4k0b Nybegynder
12. juni 2009 - 14:36 #5
Python bruges mere og mere, så "det er ikke fremtiden" er ikke helt korrekt. Der er dog ikke mange der bruger det i forhold til de andre sprog nævnt i tråden her.

C# og .NET er der mange der bruger, så der er også klart fordele i at begynde her.

C# skal du dog bruge 2-3 gange længere tid på at sætte dig ind i end Python (vil jeg mene).
Avatar billede SimonBStoevring Nybegynder
12. juni 2009 - 21:56 #6
j4k0b -> "C# skal du dog bruge 2-3 gange længere tid på at sætte dig ind i end Python (vil jeg mene)."
Hvis bare det er de 2-3 gange bedre.

mcb2001 -> "Men en ting jeg er i tvivl om, skal det være hjemmeside baseret eller mere generelt?"
Ikke hjemmesidebaseret. Det var i hvert fald ikke planen. Jeg har, som måske mange af os andre herinde, en drøm om at kunne leve af at programmere og udvikle "robot"-systemer. Jeg synes, det virker utrolig interessant og jeg ved godt, at der er lang vej til overhovedet at kunne styre noget - men derfor desto større grund til at komme i gang hurtigst muligt.
Avatar billede tjaz Nybegynder
12. juni 2009 - 23:25 #7
Så skal du nok overveje noget C/C++ i stedet (har ikke selv prøvet det, men har på fornemmelsen at det er den vej du skal).

Er selv uddannet datamatiker, og har ikke været omkring noget af det du nævner i C#/.NET ... du skrev bare programmer og til det formål er C# ganske fint (minder i øvrigt _MEGET_ om Java - da det er samme person der er ophavsmand til begge sprog).
Avatar billede arne_v Ekspert
13. juni 2009 - 00:36 #8
Java og C# har ikke samme ophavsmand.

Anders Hejlsberg er bag Delphi og C#.

Men det er James Gosling som har opfundet Java.

(Anders Hejlsberg var dog kraftigt involveret i Microsfts Java implementation)
Avatar billede tjaz Nybegynder
13. juni 2009 - 00:38 #9
Nok det jeg har fået galt i halsen så ;) ... ikke desto mindre, så minder det meget om hinanden :P
Avatar billede arne_v Ekspert
13. juni 2009 - 02:37 #10
De minder rigtigt meget om hinanden.

Jeg har oplevet at skulle konvertere mellem dem og det som tog længst tid var at ændre placeringen af { (fordi Java og C# har forskellig konvention for det).
Avatar billede SimonBStoevring Nybegynder
13. juni 2009 - 09:36 #11
For at lave en opsummering.

C# sammen med .NET er til udvikling af programmer til computeren.
Python er også til udvikling af programmer til computeren, men er nemmere at bruge.

C/C++ er til udvikling af programmer til computeren i samarbejde med "ekstern hardware".

Har jeg ret i det?
Avatar billede j4k0b Nybegynder
13. juni 2009 - 12:18 #12
Simon, jeg kender ikke nogen programmeringssprog der ikke er til "programmer til computeren" :-) Det skulle lige være hvis man programmerer i chipkort eller lignende, men det er vel også en computer

Kan du ikke fortælle lidt om hvad du vil programmerer? Så kan flere personer give et kvalifiseret bud på hvad der er optimalt
Avatar billede SimonBStoevring Nybegynder
13. juni 2009 - 12:27 #13
Det er svært at sige. Jeg vil bare gerne ud over webprogrammering og i stedet kunne programmere software til computeren, som kan bruges i sig selv og programmer til computeren som kan arbejde sammen med andet "hardware".

Jeg var i praktik engang hos en virksomhed, som producerer satelitter til biler og både. Satelitterne bevæger sig, når bilen eller båden bevæger sig, så satelitten altid har den bedst mulige forbindelse.

Der sad jeg bl.a. ved nogle programmører. Vi snakkede lidt frem og tilbage. Et, måske typisk spørgsmål, jeg stilte en af programmørerne var, hvad det første han lavede, som arbejde sammen med noget.
Han sagde, at noget af det første, han lavede var noget software, så han kunne benytte sin fjernbetjening fra computeren og dermed styre fjernsynet.

Det er vel noget i den retning, jeg gerne vil. For mig handler det mest af alt om at lære. Lære at programmere noget a la det og komme i gang. Der er ikke noget specifikt, jeg gerne vil lave.
Avatar billede j4k0b Nybegynder
13. juni 2009 - 12:35 #14
Så tror jeg C# er et godt sted at starte for dig. Det er noget nemmere at lære at mestre end C/C++ og har meget bedre muligheder for styring af hardware end Python.

Jeg læste selv denne bog da jeg ville lære C#:
http://www.saxo.com/dk/item/joseph-albahari-c-30-in-a-nutshell-paperback.aspx

Men den henvender sig til folk der allerede har indgående kendskab til en masse teknikker og filosofier, bl.a. objektorienterede. Hvis du ikke allerede er super skrap i PHP skal du nok kigge efter en anden bog :-)
Avatar billede SimonBStoevring Nybegynder
13. juni 2009 - 18:12 #15
Mange tak!

C# lyder som vejen, så. Kommentarer og evt. gode links og bøger er velkommen! Men jeg skal vel også snart have uddelt nogle point. Jeg ved ikke, hvordan jeg bør fordele dem.
Avatar billede mcb2001 Nybegynder
15. juni 2009 - 10:47 #16
java er bare nemmere at starte med, og har et gigantisk bagkatalog af biblioteker.

MEN det er også mere lukket, så vælg C# eller C++ efter min mening...
Avatar billede arne_v Ekspert
15. juni 2009 - 11:30 #17
Hvordan er Java lukket ?

Der er da flere leverandoerer baade kommercielle og open source af langt de fleste ting indenfor Java.
Avatar billede mcb2001 Nybegynder
15. juni 2009 - 16:14 #18
jeg elsker java og koder sjællent i andet....

MEN prøv du at lave et program i java, som kan sælges direkte og bare afvikles på en hvilken som helst windows, Mac eller linux maskine.
Ja man kan kompile i 1.5 og sikre sig at alle med en bare nogenlunde opdateret virtual machine kan køre det, men alle uden JVM kan ikke.

C++ kan du kompile til alle platforme, men så løber du ind i nogle helt andre problemer. F.eks. hvis du vil lave det grafisk, da du så skal finde biblioteker der dur i både windows, gnome og alt muligt andet... Så på den led er C++ værre...

Og så igen, der er nogle basale ting i Java der bare mangler, så som global hotkeys.... Jeg kan ikke sætte java til at registrerer tryk på taster mens jeg har et andet program i fokus, og det kan f.eks. være noget rod hvis man prøver at få den til at tage screenshots og lignende. Ydermere så er java en smule langsommere i afvikling af det samme program skrevet direkte til en platform i f.eks. C++...

Men som sagt, jeg koder selv kun i Java (til stand-alone programmer) og er glad nok for det.
Avatar billede j4k0b Nybegynder
15. juni 2009 - 18:03 #19
Alle ting mcb2001 skriver om Java her kan Python også... Med ca. 40% mindre kode :-)
Avatar billede arne_v Ekspert
16. juni 2009 - 15:30 #20
re Java)

Et program som kraver Java version X eller nyere kraever naturligvis at der er Java version X eller nyere paa maskinen paa maskinen.

Givet at Java kan hentes gratis til alle de mest gaengse platforme, saa er Java ihvertfald en mulighed for stort set alle.

Hvis man vil lave system specifikke ting (og jeg vil tillade mig at kalde screenshots og den beskrevne form for keyboard hooks for system specifikke), saa er Java ikke det rette sprog. Det er downside af portabilitet.

Java har aldrig opnaaet nogen stoerre popularitet for "plastic wrapped" desktop apps. Formentligt fordi at apps enten kun udvikles til en platform eller hvis de udvikles til flere platforme saa oensker man forskellige platform specifikke features for hver platform).

Jeg havde bare ikke lige associeret "lukket" med nogle af disse problem stillinger.

Det ord for mig til at taenke paa closed source, udokumenterede API'er, patenterede formater o.lign..
Avatar billede arne_v Ekspert
16. juni 2009 - 15:32 #21
re 40% mindre kode)

Bare vaelg nogle kortere navne og bruge faerre linieskift - saa bliver Java programmer kortere.

Eller sagt paa en anden maade: faerre bytes eller linier er ikke per definition godt.
Avatar billede j4k0b Nybegynder
16. juni 2009 - 15:50 #22
arne_v: det er ikke målt på antal tomme linjer, eller bytes. Det er målt på antal faktiske tegn der udgør en del af programmet. Python er jo designet til at være minimalistisk, det er Java ikke
Avatar billede arne_v Ekspert
16. juni 2009 - 22:04 #23
Hvilket tegnsaet bruger du i dine Python programmer?

(siden der er forskel paa at maale bytes og tegn)

:-)
Avatar billede mcb2001 Nybegynder
17. juni 2009 - 11:33 #24
kilde-koden i python er minimalistisk... programmet kan jo kompiles til det "samme"...
Avatar billede j4k0b Nybegynder
18. juni 2009 - 18:22 #25
arne_v: min pointe er, at Java programmører f.eks. næppe kan slå en prut uden at skulle skrive en klasse til det. Desuden er syntaxen til at skrive (både) klasser og funktioner meget mere minimalistisk i Python end Java
Avatar billede SimonBStoevring Nybegynder
26. juli 2009 - 10:01 #26
Mange tak for hjælpen allesammen! Jeg lukker spørgsmålet.
Avatar billede arne_v Ekspert
26. juli 2009 - 14:50 #27
Og alligevel tog du point selv??
Avatar billede SimonBStoevring Nybegynder
26. juli 2009 - 18:47 #28
I #15 skrev jeg:

"Men jeg skal vel også snart have uddelt nogle point. Jeg ved ikke, hvordan jeg bør fordele dem."

Jeg håbede på at få svar på det, men der kom intet.
Avatar billede arne_v Ekspert
27. juli 2009 - 00:07 #29
Fordeling af point er dit ansvar som spørger.

Du kan bede dem der skal have point lægge et svar og så fordeler du point efter din bedste overbevisning.

Men tage point selv er ikke pænt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester