Gå til innhold

Språk for websider. (PHP, Python eller Ruby?)


Anbefalte innlegg

Jeg har holdt på med C# en del stund og er egentlig veldig glad i språket. Det har C-aktige formuleringer, og har et bibliotek som gjør det lett å utvikle sider i det. Men kort sagt så er jeg litt lei av å være låst til Windows. Greit nok at man har Mono for Linux, men det finnes ingen gode webfokuserte IDE/Editorer for annet enn Windows og Mono henger dessuten etter den "ekte" .Net implmentasjonen.

 

Det jeg vurderer er da altså PHP, Python, eller Ruby. Scriptespråk med andre ord. Dere kan gjerne foreslå et CMS'er og/eller webrammeverk sammen med språkene dere anbefaler. (WordPress, Ruby on Rails, etc...) Hvis noen har andre anbefalinger enn de jeg vurderer så er det bare å komme med forslag! :)

 

Krav:

  • Enkelt, uten at det blir VB
  • Portabelt, vil kunne kjøre på både Windows og *nix(inkl. Mac) uten problemer.
  • Støtte for objektorientert programmering
  • Finnes god dokumentasjon på nettet
  • Slippe å tenke så mye på ta livet av variabler og slikt. (Søppel-samler?)
  • Editorer som gjør det lett å skrive/lære språket
  • Gjør det lett å lage databasedrevne websider
  • Finnes gode webrammeverk og/eller CMS som er lette å "extende".
  • Er RAD. Jeg vil få gjort ting, kjapt!

Ting som er positivt men overhode ikke noe krav:

  • C-aktig syntaks. (Dette er noe jeg er vant med, samt får jeg noe som ligner på ECMAScript og ActionScript, noe som er en fordel.)
  • IDE/Editor som gjør det veldig lett å skrive/språket språket. (Ikke nødvendigvis WYSIWYG men AutoComplete/IntelliSense og slikt.)
  • Finnes et bra samfunn("community) rundt det
  • Har interepter

Ting som jeg driter i:

  • At språket er drittregt sammenlignet med "big guys" som J2EE og ASP.NET (Jeg skal ikke bruke det til store prosjekter uansett)
  • Generelt sett "enterprise" ting

Takk for evt. svar/hjelp! :)

Endret av TLZ
Lenke til kommentar
Videoannonse
Annonse
Det jeg vurderer er da altså PHP, Python, eller Ruby. Scriptespråk med andre ord.

Av disse tre er det ingen tvil hvem du bør stryke vekk først. PHP leder bare til smerte og bør ikke være med i vurderingen. Det eneste positive med PHP er at det er ekstremt enkelt å deploye på dagens shared-hosting-leverandører. Alt annet om PHP er negativt.

 

Da gjenstår Python og Ruby og selv om det ikke har C-basert syntaks så tror jeg du vil være lykkelig uansett hvilke av de du velger. Vær dog oppmerksom på at de er veldig annerledes enn hva du er vant til; Python har feks lånt mye fra funksjonelle språk.

 

Selv er jeg Python-menneske først og fremst, men jeg er i ferd med å lære meg Ruby ettersom vi tar i bruk det på jobben. Vi bruker det dog ikke til web-ting så Ruby og web er ikke min sterke side. Python og web derimot, det kan jeg en hel del om :)

 

Dere kan gjerne foreslå et CMS'er sammen med språkene dere anbefaler. (WordPress, Ruby on Rails, etc...) Hvis noen har andre anbefalinger enn de jeg vurderer så er det bare å komme med forslag! :)

 

Rails er ikke en CMS, Wordpress er ikke et web-rammeverk.. Det du bør finne ut er om du kan nøye deg med en CMS som du tilpasser for hvert prosjekt (i så fall ta en titt på Plone), eller om du trenger et web-rammeverk som Rails eller Django.

 

Hvis du finner ut at web-rammeverk er det du trenger så bør du absolutt ta en titt på Django. Evt Rails. Uansett vil måten å lage web-applikasjoner med disse rammeverkene være ganske annerledes fra ASP.NET. MVC og ekte lagdeling står mye sterkere på andre plattformer som Django og Rails (og Java med SpringMVC) enn ASP.NET, det kan kanskje virke tungvindt og uvant til å begynne med, men du finner fort ut at det er den Riktige Måten.

 

Så, gitt at du trenger et web-rammeverk anbefaler jeg Python og Django.

 

[*]Enkelt, uten at det blir VB

Django er enkelt og har et veldig gjennomtenkt og godt design. Konsistens og likhet er tingen her. Django er laget av folk som virkelig tenker før de implementerer.

 

[*]Portabelt, vil kunne kjøre på både Windows og *nix(inkl. Mac) uten problemer.

Django er selvfølgelig like portabelt som Python. Det er dog ikke like enkelt å deploye som feks PHP, men FastCGI er virkelig ikke vanskelig selv om det kan virke sånn når man leser mailinglistene til Django.

 

[*]Støtte for objektorientert programmering

[*]Gjør det lett å lage databasedrevne websider

Django kommer med sin egen ORM som gjør det enkelt å hive sammen en domene-modell veldig raskt. I tillegg er Django veldig MVC-basert og oppfordrer til riktig design. ORMen gjør det ekstremt enkelt å lage db-baserte applikasjoner.

 

[*]Finnes god dokumentasjon på nettet

Knallgod dokumentasjon IMHO.

 

[*]Slippe å tenke så mye på ta livet av variabler og slikt. (Søppel-samler?)

Python har en GC ja, men det betyr ikke at man ikke må tenke på hvordan man bruker minnet. Det må man i alle språk, GC eller ei.

 

[*]Editorer som gjør det lett å skrive/lære språket

Her stiller nok Python litt svakt. Selv bruker jeg en Emacs som er tilpasset gjennom 10 år, men mange vil vel helst ha en IDE. Jeg vet at Eclipse har python-støtte men jeg aner ikke hvor god den er.

 

Dette ble mer en anbefaling av Django enn bare en anbefaling av Python, men det gjør kanskje ikke noe? Det finnes selvsagt flere rammeverk til Python (Turbogears, web.py), men jeg anbefaler Django.

Lenke til kommentar

Hva er det som er så galt med PHP?

 

Har snakket med folk utenom: og enten så anbefale folk PHP foran alt annet, eller så sier de at jeg overhode ikke må bruke PHP.

 

Noe som kan si hvorfor PHP er dårlig?

 

EDIT: Såg litt på både Python og Ruby. Begge virker til å ha et langt mer ryddigere språk en PHP. Desusten er PHP(i praksis) begrenset til web. Python og Ruby kan jeg bruke til å lage andre applikasjoner. Særlig Python virker til å bindings til mye gøy. Heller såvidt mot Python, men har ikke bestemt meg ennda. Django virker også genialt, er det slik å forstå at det faktisk er både webrammeverk og CMS i en pakke? Virket litt slik når jeg leste djangobook, men mulig jeg misforstod.

 

Har installert Python og skal prøve å få lekt meg litt med det.

Endret av TLZ
Lenke til kommentar
Hva er det som er så galt med PHP?

 

Har snakket med folk utenom: og enten så anbefale folk PHP foran alt annet, eller så sier de at jeg overhode ikke må bruke PHP.

 

Noe som kan si hvorfor PHP er dårlig?

Svarte deg i webkafeen, men ang. PHP så kan det nevnes at det er mye i PHP som burde ha vært der som ikke er det, og det virker ikke som om alt er like godt gjennomtenkt. Feks. så mangler PHP utf8 støtte uten multibyte og funksjonsnavnene følger ikke et format, feks. file_get_contents vs. htmlspecialchars. Også er PHP typesvakt, som gjør at det egner seg dårlig som et første språk. Kan også nevne at det er noen idiotiske ting i PHP som magic quotes og globals, feks. PHP er ikke heller særlig raskt, men det er jo laget for å håndtere nettsider.

 

Som jeg sa i kafeen, synes du bør begynne med Java eller C++, i hvertfall et typesterkt språk. Men PHP er veldig greit å kunne senere om du skal drive med webutvikling.

Lenke til kommentar

Har allerede jobbet en del i C# som er veldig veldig likt Java. Skal ikke påstå at jeg er ekspert på OOP, men vet hva klasser er, at alle objekter er basert på det, osv...

 

Uansett C++ er fulstendig uinteressangt da jeg først og fremst vil lære meg ting som er nyttig til websider. Jeg tar for tiden fagbrev i mediegrafiker(et teit fagnavn for designer) og er ting som hjelper meg i webdesign jeg er ute etter.

 

Manglende UTF8-støtte virker forøvrig veldig irreterende.

 

Ser litt på Plone. Det virker også(i tillegg til Django) veldig bra. Har også lekt meg littegrann i Python interepter. Er jo veldig enkelt og greit.

 

Edit: Har så og si bestemt meg for Python nå.

 

Nå trenger jeg en bok til å lære meg "The basics" av dette språket. Ser det finnes en "Python for Dummies". Har veldig gode erfaringer med dummies bøker fra før av. :)

 

Takk for all hjelp! :)

Endret av TLZ
Lenke til kommentar
Hva er det som er så galt med PHP?

PHP oppfordrer deg til å blande presentasjon og logikk. I tillegg har det et ekstremt rotete og uoversiktelig "standard" bibliotek, som ikke er konsistent med noe av seg selv. At noen klarer hive i hop så mye UTEN å tenke på at man trenger namespaces er helt utrolig.

 

EDIT: Såg litt på både Python og Ruby. Begge virker til å ha et langt mer ryddigere språk en PHP. Desusten er PHP(i praksis) begrenset til web. Python og Ruby kan jeg bruke til å lage andre applikasjoner. Særlig Python virker til å bindings til mye gøy. Heller såvidt mot Python, men har ikke bestemt meg ennda. Django virker også genialt, er det slik å forstå at det faktisk er både webrammeverk og CMS i en pakke? Virket litt slik når jeg leste djangobook, men mulig jeg misforstod.

 

Django er ikke en CMS nei -- med mindre du mener CMS er noe annet enn Content Management System, som er det jeg snakker om :) Men du har helt rett, PHP er i praksis begrenset til webprogrammering, hvis noen sier noe annet så tar de bare feil. Med Python og Ruby har du generelle språk som kan brukes til det aller, aller meste.

 

Jeg støtter deg i valget av Django! Du kan fyre løs python og django-spørsmål i Python-forumet så skal jeg nok svare deg :)

Lenke til kommentar
Som jeg sa i kafeen, synes du bør begynne med Java eller C++, i hvertfall et typesterkt språk. Men PHP er veldig greit å kunne senere om du skal drive med webutvikling.

 

Å anbefale C++ til en som skal lage ting for web er jo det reineste tullball. Ingen lager CGI i dag, man bruker et rammeverk. Hvilke C++-web-rammeverk eksisterer?

 

Java ville vel i så fall betydd SpringMVC, men den veien er ikke særlig smidig og jeg ville ikke valgt det i dag. Jeg jobber med Java til daglig.

Lenke til kommentar
Som jeg sa i kafeen, synes du bør begynne med Java eller C++, i hvertfall et typesterkt språk. Men PHP er veldig greit å kunne senere om du skal drive med webutvikling.

 

Å anbefale C++ til en som skal lage ting for web er jo det reineste tullball. Ingen lager CGI i dag, man bruker et rammeverk. Hvilke C++-web-rammeverk eksisterer?

 

Java ville vel i så fall betydd SpringMVC, men den veien er ikke særlig smidig og jeg ville ikke valgt det i dag. Jeg jobber med Java til daglig.

Det jeg ment var at man skulle lære seg feks. Java eller C++ først, uansett om det er relevant for webutvikling eller ikke, sånn at man har et bedre grep på programmering, mest pga at det er typesterkt. Og så kan man ta noe som PHP for webutvikling etter på.

 

Ang. namespaces har du det tekniskt sett ikke det i Java heller (du har pakker hierakien, men det er ikke helt det samme). Kan også nevne at selvom PHP er laget for webprogrammering (PHP: Hypertext Preprocessor) så har du PHP-GTK som lar deg bygge desktop applikasjoner, men dette er nok mest proof of concept. Vil nok tro at du klarer å blande logikk med presentasjon uavhenging av språk. Programmeringsstrukturer som MVC har mer med rammeverk å gjøre.

Lenke til kommentar
Det jeg ment var at man skulle lære seg feks. Java eller C++ først, uansett om det er relevant for webutvikling eller ikke, sånn at man har et bedre grep på programmering, mest pga at det er typesterkt.

Når han spør spesifikt om språk for webutvikling synes jeg det er rart å anbefale det som ikke kan brukes til det :) Om man bør starte med statisk typede språk (jeg antar du mener statisk, ikke sterkt typet, iom at c++ ikke er sterkt typet, kun statisk) er en annen debatt. Personlig holder jeg til i motsatt camp av deg :)

 

Ang. namespaces har du det tekniskt sett ikke det i Java heller (du har pakker hierakien, men det er ikke helt det samme).

 

Forskjellige navn, men effekten er lik. java.util.List er ikke det samme som java.awt.List -- de er i forskjellige navnerom.

 

Kan også nevne at selvom PHP er laget for webprogrammering (PHP: Hypertext Preprocessor) så har du PHP-GTK som lar deg bygge desktop applikasjoner, men dette er nok mest proof of concept.

 

Jepp, ingen med vettet i behold bruker PHP til noe annet enn web. Ingen med vettet i behold bruker PHP til web heller :)

 

Vil nok tro at du klarer å blande logikk med presentasjon uavhenging av språk. Programmeringsstrukturer som MVC har mer med rammeverk å gjøre.

 

Selvfølgelig klarer man å blande det i alle språk. Men noen plattformer og noen rammeverk oppfordrer til godt design og tilrettelegger godt design på en helt annen måte enn PHP.

Lenke til kommentar

Jeg vil anbefale deg å lære Java EE. Det har likhetstrekk med .NET, men bedre og flere rammeverker. Man lærer veldig mye om god software-arkitektur underveis.

 

* Enkelt, uten at det blir VB

* Portabelt, vil kunne kjøre på både Windows og *nix(inkl. Mac) uten problemer.

* Støtte for objektorientert programmering

* Finnes god dokumentasjon på nettet

* Slippe å tenke så mye på ta livet av variabler og slikt. (Søppel-samler?)

* Editorer som gjør det lett å skrive/lære språket

* Gjør det lett å lage databasedrevne websider

* Finnes gode webrammeverk og/eller CMS som er lette å "extende".

* Er RAD. Jeg vil få gjort ting, kjapt!

Java er ikke det enkleste språket, men det har mange likheter med C# som du har erfaring med. Det er svært portabelt, 100% objektorienteert, godt dokumentert (finnes mye mer) og Java bruker garbage-collector. Verdens beste IDE (IntelliJ IDEA) som faktisk lærer deg god programmeringsskikk (dog ikke gratis). Databaser er lett, enten på den gammeldagse måten (JDBC) eller nymotens objektorientert databasekos (JPA). Listen over open-source-rammeverker er svært lang, og enkelte av dem er svært gode. Om det er RAD kommer an på hvilke rammeverker og verktøyer du benytter, men om du f.eks. skal lage en mockup og vil kjøre inline Java-kode i JSP, så er det ingen som nekter deg det. I mitt oppsett har jeg ingen boilerplate-kode, og deployer til ekstern server med ett enkelt tastetrykk (Maven, en av mine beste venner).

 

Ting som er positivt men overhode ikke noe krav:

 

* C-aktig syntaks. (Dette er noe jeg er vant med, samt får jeg noe som ligner på ECMAScript og ActionScript, noe som er en fordel.)

* IDE/Editor som gjør det veldig lett å skrive/språket språket. (Ikke nødvendigvis WYSIWYG men AutoComplete/IntelliSense og slikt.)

* Finnes et bra samfunn("community) rundt det

* Har interepter

Java har vel nokså C-aktig syntaks. IntelliJ ble nevnt ovenfor. Er mange Java-communities, f.eks. TheServerSide, samt at det holdes JavaBin-møter månedlig i flere norske byer. Har forøvrig ikke sett noen annen interpreter enn den innebygde (og den interpreter kun bytecode som blir skapt av kompilerte klasser).

Endret av Geofrank
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...