Tomi Terentjeff // Valitessa alustaa web-sovelluskehitykselle on tärkeää, että alusta tukee nopeaa ohjelmistokehitystä. Tämä tarkoittaa esimerkiksi:
Ruby-kieltä on pidetty yhtenä suurimpana kynnyksenä ottaa käyttöön Ruby on Rails (RoR) webohjelmointikehykseksi. Kehyksen pohjalla oleva Ruby-kieli ei ole kovinkaan suosittu RoRin ulkopuolella (alle 500 projektia Freshmeat.net:ssä), kun taas Python-ohjelmointikieli (yli 3000 projektia Freshmeat.net:ssä) on ohjelmoijien keskuudessa suosittu myös web-ohjelmoinnin ulkopuolella, minkä ansiosta valmiita ohjelmistokirjastoja sekä kieltä valmiiksi taitavia ohjelmoijia on paremmin saatavilla.
Esimerkiksi Googlessa Pythonia käytetään laajasti, sen ollessa nykyisin mm. Googlen App Enginen ainoa tuettu ohjelmointikieli.
Python on kielenä helppo oppia etenkin, jos omaa ohjelmointitaustaa jostakin oliokielestä. Tällöin webkehitykseen vaadittavat perustaidot on opittavissa viikossa. Se onko Python kielenä parempi tai mukavampi kuin Ruby on pitkälti makuasia. Molemmista löytyy hyvät ja huonot puolensa.
Tällä hetkellä järkevän tekniikan valitseminen websovelluskehitykseen on siis lähinnä valinta Ruby- ja Python-kielten välillä. Valintamme on kallistunut Pythoniin, koska se on suositumpi avoimen lähdekoodin maailmassa myös web-ohjelmoinnin ulkopuolella jolloin uudelleenkäytettäviä kirjastoja sekä osaamista on paremmin saatavilla.
Web-kehitykseen Python-kielellä on tarjolla useita vaihtoehtoisia sovelluskehyksiä, joista tällä hetkellä suosituin taitaa olla Django. Djangon huono ja hyvä puoli on sen "kiinteys" sen eri osien osalta. Django käytännössä pakottaa käyttämään sen omaa ORM:ia tietokantakoodille, mutta toisaalta automatisoi joidenkin yksinkertaisten web-ohjelmiin liittyvien koodien generointia.
Käyttämämme Pylons-alustan perusidea on komponenttien joustavuus. Pylonsin pääfilosofiana on koota yhteen parhaat komponentit Python-webkehitykseen liittyen sekä mahdollistaa niiden helppo vaihtaminen halutessa. Pylonsin tekevät käteväksi esimerkiksi Pylonsin oletuksena käyttämä SQLAlchemy ORM, Mako-template-kieli ja FormEncode-lomakevalidaattori.