Ehdotus täällä:
http://keskustelu.suomi24.fi/node/8713223
Sinne sitten vaan kommentoimaan tarpeen mukaan.
- Kiitos
http://keskustelu.suomi24.fi/node/8713223
Sinne sitten vaan kommentoimaan tarpeen mukaan.
- Kiitos
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 10
Vanhimmat
ABC kielenä tunnettu harjoittelukieli vaan ei jaksa innostaa, kun korvaavia on vaikka kuinka.
Ei ole mikään harjoittelukieli, vaan aivan oikeassa tuotantokäyttössä oleva hyvin selkeä, mutta samalla monipuolinen kieli.
http://en.wikipedia.org/wiki/Python_software
http://wiki.python.org/moin/OrganizationsUsingPython
Lisäksi:
Python on Tioben mittauksen mukaan 7. suosituin kieli nousevalla käyrällä :
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Ja sitä opetetaan ainakin MITin (joka on ainakin wikipedian mukaan on maailman arvostetuin teknillinen korkeakoulu.) ja Teknillisessä korkeakoulussa (HUT) ekana kielenä.
Näin se menee, kuten historia on näyttänyt. Älyn kehityksen myötä abstraktiotaso on kasvanut. Samoin käy myös ohjelmistokielille. Kuka enää kirjoittaa assembler ohjelmia? Ei kukaan.
Kielien abstraktiotaso nousee sitä mukaan kun koneiden teho ja ohjelmistojen laajuus kasvaa.
Mutta sitten tuli se mielenkiintoinen kysymys. Monet on sanoneet että Pythonilla ei pidä tehdä isompia ohjelmia. Mikä on isomman ohjelman raja tässä tapauksessa?
Entäs jos esim OpenOffice olisi tehty Pythonilla? Mielestäni se täyttää aivan varmasti ison ohjelmiston määritelmän.
Palvelinpuolella Javasta löytyy 64bit versio ja muistihallinta on kunnossa myös silloin kun mennänä useisiin gigoihin. Onko Pythonissa jotain tällaisia ratkaisevia rajoituksia? GIL:in rajoitukset voidaan kiertää subprocesseilla. Mutta mitä sitten jos softasta tulee oikeasti iso?
Jotkut pitävät sitä harjoittelukielenä ja kertovat kuinka pythonilla voi tehdä jotain pientä apuohjelmaa. Tyypitysongelmien vuoksi sillä ei yleensä tehdä mitään suurempaa. Eikä mikään laskentaa vaativakaan ole sille sopivaa. Ihan hyvä kieli se on jos haluaa opetella ensin kielen joka toimii eri tavalla kuin normaalit yleisimmät tuotantokoelet ja jolla ei tehdä yleensä mitään suurempaa. Ei sen opettelu ehkä hukkaan mene mutta pythonin jälkeen on pakko opetella heti jotain muuta kos haluaa tehdä jotain jossain ohjelmistoprojektissa. Ellei siitä löydy tarvetta pythonilla tehtyihin apupätkiin.
Kyllä Pythonilla voi tehdä isompiakin ohjelmistoja mutta miksi sillä pitäisi kun siihen hommaan sopivampiakin työkaluja.. Vai onko tässä taustalla jotain idioottimaisuutta, että jos joku työkalu on jossain asiassa huono niin se on käyttökelvoton ja olisi sitten olemassa joku Täydellinen Kieli mikä on paras joka asiassa?
Todellisuus vaan sattuu olemaan erilainen, ja meillä on monia työkaluja jotka sopii eri asioihin.
"Palvelinpuolella Javasta löytyy 64bit versio ja muistihallinta on kunnossa myös silloin kun mennänä useisiin gigoihin."
Mutta C:llä saa nopeampaa koodia kuin Javalla, että ei ole Javakaan hyvä kieli...
Joskus proof of consept projekti menee suoraan tuotantoon ja silloin datamäärät voi kasvaa siitä mitä oli protoilussa ajateltu. Silloin on hyvä jos mitkään hölmöt rajoitukset eivät tule ihan heti vastaan.
Mitenkäs Pythonilla esim muistinhallinta yli 4 gigan? Taidankin testata.
> Tyypitysongelmien vuoksi sillä ei yleensä tehdä mitään suurempaa.
Väärin. Tyypitysongelmia ei nimenomaan ole Pythonissa. Pythonin tyyppijärjestelmä on vahva, selkeä ja tyyppivirheistä ilmoitetaan ohjelmoijalle aina. Dynaaminen tyypitys ei millään tavoin estä tekemästä "mitään suurempaa". Python-ohjelmoijan ei tarvitse tuhlata aikaa eikä satoja koodirivejä tyyppien kuvaamiseen *kääntäjän* ymmärtämään muotoon. Sen ajan voi käyttää hyödyllisemmin dokumentoimalla tietorakenteet *ihmisen* helposti ymmärrettäviksi ja keskittymällä olennaiseen, eli varsinaiseen sovelluslogiikkaan. Tuottavuus on tietenkin ihan toista luokkaa kuin luokka- ja rajapintamäärittelyihin keskittyvillä kielillä.
> Eikä mikään laskentaa vaativakaan ole sille sopivaa.
Täysin metsään. Sijoita 105 euroa hyvin ja mene korjaamaan käsityksesi vaikka CSC:n kurssille http://www.csc.fi/english/csc/courses/archive/python_2009_2. Ihmeen paljon Pythonia käytetään vaativaan laskentaan mm. CERNissä, missä laskettavaa riittää. http://cdsweb.cern.ch/record/974627?ln=no
> [Python] toimii eri tavalla kuin normaalit yleisimmät tuotantokoelet
Jos tietotekniikan tuntemus jää 70-luvun tasolle, niin tältä varmaan näyttää. Mutta nykyään laajalti käytetyistä kielistä mm. Javascript toimii kielen tasolla hyvin pitkälti samalla tavalla, ja Ruby on lähes täysin sama otus, vain heikommalla kirjastotuella, heikommin laajennettavissa (esim. C-kirjastojen funktioita ei voi kutsua Rubystä suoraan) ja rumemmalla syntaksilla (mielipide).
Nämä kaikki kolme kieltä ovat ohjelmointikielten kymmenen suosituimman joukossa, Python suosituimpana aivan C#:n ja Visual Basicin kannoilla. Niiden suosio on ollut jatkuvassa nousussa jo vuosia, eikä kehitykselle näy loppua.
"Mutta sitten tuli se mielenkiintoinen kysymys. Monet on sanoneet että Pythonilla ei pidä tehdä isompia ohjelmia. Mikä on isomman ohjelman raja tässä tapauksessa?"
Tässä muutama käytännön ongelma mihin olen törmännyt, mitkä liittyvät osittain suurempiin projekteihin:
1. Python-tulkki ja tarvittavat kirjastot pitää aina asentaa (asennuttaa), koska ne eivät aina ole vakiona asennettuna (linuxeissa ehkä, win / osx ei).
2. Pythonin 2.x ja 3.x ovat täysin epäyhteensopivia ja muutoinkaan versiot eivät toimi toistensa kanssa. Tämä yhdistettynä edelliseen ja siihen että käyttäjä tykkää aina asentaa "uusimman version" aiheuttaa ongelmia.
3. Monesta tiedostosta koostuminen, python-installaatioiden erilaisuus, lisäpakettien asennustarve yms tekevät automaattisten installointisysteemien tekemisen hyvin vaikeaksi.
4. Skriptimäisyys kannustaa "koodaa ja kokeile" -lähestymistapaan ja siihen, että prototyypistä jalostetaan tuote. Pienissä softissa toimii, suurissa ei.
Tyypityksistä ei tarvitse välittää ja koodin saa tehtyä nopeasti kasaan ilman, että tulee mitään ongelmaa tyypitysten kanssa. Se mahdollistaa nopeamman tekemisen ja tuottavamman koodauksen. Tosin meillä ongelmana onkin se, että suuremmissa Python-projekteissa ylläpidettävyys lähestyy nollaa kun koko koodipohja luottaa siihen, että kaikki tyypityy oikein Pythonin sisällä. Kannat, liittymät ulos ja muut tarkkoja muotoja vaativat osat ovat se ongelmakohta. Kun kaikki on tehty sillä ajatuksella, että koodaajan ei tarvitse välittää tyypityksistä, projekteista tulee lopulta täysin susia. Satunnaisia virheitä tulee ties mistä ja työkalut Pythonille ovat sitä tasoa, ettei niillä selvitetä noita ongelmia.
Pythonista tuleekin mieleen se, kuinka kieli on kuin paras 70-luvun keksintö, Basic, uudelleenlämmitettynä. Helppoa tehdä ja päästä alkuun, mutta helppous aiheuttaa myöhemmin niin paljon ongelmia, ettei mitään suurta voi tehdä.
Pythonin suosio tulee kuitenkin varmasti kasvamaan. Hyvä kieli pieniin ohjelmiin joissa yksi koodaaja osaa ylläpitää kaiken. Poikkeuksiakin tosin löytyy, mutta ne vaativat ohjelmoijalta melkoista itsekuria ja osaamista. Sitä ei suurimalla osalla Pythonin kanssa töitä tekevistä ole.
Tuosta lukemaan, niin pääsette alkuun:
http://www.it.lut.fi/kurssit/08-09/CT20A0200/materiaali/Python_opas_2008.pdf
Olkaa hyvät.