Verkkotekniikat kehässä: ASP vs. J2EE vs. .NET vs. PHP

Back to tv, radio, leffat, web O

[q]Apo,
Mitä teknologioita olet käyttänyt?
[/q]
Lähinnä Perliä. Olen kyllä välillä kuikuillut muihin osastoihin, mutta ei ole tullut hirveää hinkua päästä tekemään käytännössä millään muulla. Rubyä voisi joskus kokeilla.

[q]Mikä on suosikkisi ja miksi?
Mitä etuja se tarjoaa verrattuna muihin teknologioihin?[/q]
Perl on varmaan suosikkini siksi, että sillä on varsin nopeata kehittää. Se on dynaamisesti tyypitetty ja regular expressionit sekä hashtablet ovat oleellinen osa kielen rakennetta. Nuo on pienen learning curven jälkeen varsin tehokkaita välineitä.

Perlin varmaan isoimpana etuna on CPAN, joka on iso kokoelma vapaasti käytettävää koodia, josta löytyy ratkaisu moneen ongelmaan varsin pienellä vaivalla. Se on siis vähän niinkuin Java API, mutta sitä saa kuka tahansa laajentaa ja se on vuosien varrella kehittynyt huomattavasti muiden kielien vastaavaa laajemmaksi. Täältä löytyy myös verkkokehitykseen runsaasti tavaraa - esim. normaalit template enginet, object persistencet yms + frameworkit, jotka sitovat nämä kivasti yhteen.

Yksinkertaisesti saan sen mitä hauan tehdä nopeasti tehtyä.

[q]Mitä heikkouksia suosikillasi on?[/q]
Huono maine, ei käytännössä käytettävää tukea säikeille, käyttää paljon muistia, vähän huono exception handling. Huono maine on oikeastaan se mikä loppujenlopuksi varmaan eniten häiritsee isommassa projektissa.

[q]Mitä teknologioita inhoat? Sydämestäsi?
[/q]
En kai oikein mitään kun en ole joutunut tilanteeseen, jossa tarvitsisi väkisin tehdä jollain tietyllä teknologialla.. Tosin Java kyllä välillä jurppii kun sillä tekee appletteja, ja olen kuullut, että kun sillä tekee verkkosovelluksia niin se on aika kankea ja vaivalloinen ja vaatii väkisin hyvän IDE:n, että olisi edes siedettävä.

PHP - Koska se on yleisin.

[q]Mark Hamilton, 22.5.2005 12:58:
PHP - Koska se on yleisin.
[/q]
Ois kiva tietää tästä lisää, jotain "luotettavia" statseja esim.

Ite oon kerenny tutustumaan nyt PHP:iin ja hyvin vähän JSP:iin. Jonkin verran olen pyrkinyt katsomaan eri systeemeitä, mutta PHP:ssa on selkeästi alin oppimiskäyrä, eli siihen on reilusti helpoin päästä mukaan. Microsoftin tuotteissa taitaa olla kanssa aika näppärä tehdä kaikkea pientä helposti, mutta pitää tutkia lisää.

PHP on asennettu 1,4 miljoonan palvelimeen sanoo Matt Zandstra:n PHP Trainer Kit (IT Press) 2002 ja luku kasvaa kokoajan.

[q]Mark Hamilton, 22.5.2005 13:40:
PHP on asennettu 1,4 miljoonan palvelimeen sanoo Matt Zandstra:n PHP Trainer Kit (IT Press) 2002 ja luku kasvaa kokoajan.
[/q]
Hmm.. Se, että PHP on asennettu palvelimeen ei välttämättä tarkoita sitä, että sitä käytettäisiin. PHP on erilaisten halpahotellien ylläpidon kannalta yleensä CGI skriptien kanssa helpoin mahdollinen säädettävä, joten nämä kaksi ovat lähes missä tahansa palvelimessa yleensä tarjolla ainakin valinnaisena, vaikka niitä ei kukaan käyttäisikään.

PHP on selkeästi tarkoitettu kieleksi, jolla on matala learning curve ja sillä saa nopeasti aikaa pieniä ja vähän isompiakin sivustoja. Jos on hyvä suunnittelemaan ohjelmistoja niin PHP:lla saa varmaan laajemmankin sivuston toimimaan suht kivuttomasti, mutta pääasiassa se toimii siinä mihin se on rakennettu - relatiivisen yksinkertaisissa sivuissa.

Tämä ei tietenkään ole mitenkään paha asia - suuri osa verkon sivustoista ja palveluista on yksinkertaisia sivustoja, jotka ei vaadi skaalausta tai muuten tehokasta toimintaa, joten PHP on varmasti skillsetin olemassaollessa yksi parhaista vaihtoehdoista.

Olisi itse asiassa varsin mukava saada tietää miten joku irc-gallerian tyylinen palvelu on skaalattu, koska se on käsittääkseni kirjoitettu PHP:lla.. Voisinkin muuten kysäistä :) Voisi kuitenkin kuvitella, että kyseessä ei ole hirveän helppo tehtävä.

Tuntuu siltä, että kaikilla muilla teknologioilla voi tehdä sen minkä PHP:lla voi tehdä, mutta PHP:lla ei saa helposti threadin sisäistä muisticachea, pysyviä tietokantayhteyksiä, eikä sille ole erityisen hyviä application frameworkkeja - tosin nämä kuvitellut puutteet saattaa hyvin johtua tietämättömyydestäni - paremmin tietävät korjatkoon..

Kakki Open Source ratkaisut jotka minä tunnen on tehty PHP:lla ja ne käyttää MySQL-tietokantaa.

[q]Mark Hamilton, 22.5.2005 19:10:
Kakki Open Source ratkaisut jotka minä tunnen on tehty PHP:lla ja ne käyttää MySQL-tietokantaa.
[/q]
Vai niin. Minä kyllä tunnen useita Open Source ratkaisuja, jotka on tehty Perlillä, Pythonilla, Javalla tai Rubyllä. Mutta siinä olet varmaankin oikeassa, että nykyään PHP ratkaisuja on runsaasti, koska PHP:n learning curve on niin pieni ja kuka tahansa voi pyöräyttää oman projektinsa tai kontribuoida tarpeensa mukaan olemassaoleviin projekteihin. Eri asia sitten on haluatko, että softasi on kirjoittanut ihminen, joka on valinnut kielen pienen learning curven ja helpon asennettavuuden takia vai joidenkin muiden ominaisuuksien takia MySQL on Postgresin kanssa luonnollisesti aika dominoiva valinta Open Source maailmassa.

[q]Mark Hamilton, 22.5.2005 19:10:
Kakki Open Source ratkaisut jotka minä tunnen on tehty PHP:lla ja ne käyttää MySQL-tietokantaa.
[/q]

Toi tokaisu kertoo ehkä ennemmän sun asiantuntijuudesta kuin PHP:n yleisyydestä.

Nimim. suurin osa mun tuntemasta Open Source kamasta on koodattu C:llä. Perliä ja Javaakin käytetään...

[q]Apo, 21.5.2005 14:34:

Mitä teknologioita olet käyttänyt?
[/q]

J2EE ja PHP

[q]Apo
Mikä on suosikkisi ja miksi?

Mitä etuja se tarjoaa verrattuna muihin teknologioihin?

Mitä heikkouksia suosikillasi on?

[/q]


Suosikkini on PHP lähinnä siksi, että sillä on nopeeta tehdä asioita.
Tuo tietysti riippuu aivan siitä mitä ollaan rakentamassa. PHP:llä voidaan tehdä isojakin järjestelmiä, varsinkin uuden paremmin toteutetun oliokielen avulla. Toisaalta PHP:llä on niin helppo tehdä, että sillä tehdään yleensä varsin kamalan näköistä ja huonosti ylläpidettävää koodia, että sen hyöty isommissa projekteissa kaatuu siihen.

J2EE sopii hyvin isompiin tehtäviin, koska siinä on pakko tehdä työ paljon tarkemmin ja järjestelmällisemmin ja yleensä ylläpidettävyys on helpompaa. J2EE ei ole hyvä pieniin ja yksinkertaisiin asioihin.

Noissa kaikissa pitää aina ottaa huomioon aika ja hyöty. aikaa pitää mitata kolmelta kantilta: suunniteluun kuluva aika, koodaamiseen kuluvat aika ja ylläpitoon kuluva aika. Samoin kyllä jatkokehitykseen ja dokumentointiin kuluva aika, mutta ne tavallaan sisältyy ylläpitoon.
Et saa mitään hyötyä siitä, että suunnittelet, koodaat ja dokumentoit duunin hyvin, jos sen funktio on yksinkertainen ja käytetään kerran kaksi. Turhaa ajan ja rahan haaskausta.
Toisaalta menettää kyllä hemmetisti, jos koodataan nopeasti ilman kunnollista suunnittelua ja kaikki dokumentit puuttuu.
Sama kuin tehdää homma kokonaan uusiksi, kun jotain pientäkin pitää lisätä tai säätää.


[q]Apo
Mitä teknologioita inhoat? Sydämestäsi?
[/q]

Yleensä windows-arkkitehtuuriorientoitunutta.. eli ASP ja .NET :)


toisaalta nykyään vihaan koodata. se on tarkoitettu koodiorjille vain :) mukavempaa on suunnitella ja muut tekee työn.
koodaaminen on useimmiten turhauttavaa jo siksi, että kädet ovat aivan liian hitaat kirjoittamaan sen minkä päässä jo tietää mitenkä homma menee.

[q]duvin,
Nimim. suurin osa mun tuntemasta Open Source kamasta on koodattu C:llä.
[/q]
Tässä tarkoitettiin ilmeisesti verkkotekniikoiden järjestelmiä, ja lähinnä ilmeisesti web frontendille.. C:llä ei oikeastaan hirveästi olla kai tehty webbihörpellyksiä. Yleensä ihmiset yrittävät valita oikean työkalun tehtävään ja webbihässäköissä se harvemmin on C.

Muuten olen kyllä lausuntosi kanssa samoilla linjoilla. Open Source on kaikkea muuta kuin PHP ja MySQL.

[q]siveys, 22.5.2005 20:04:
Tässä tarkoitettiin ilmeisesti verkkotekniikoiden järjestelmiä, ja lähinnä ilmeisesti web frontendille.. C:llä ei oikeastaan hirveästi olla kai tehty webbihörpellyksiä. Yleensä ihmiset yrittävät valita oikean työkalun tehtävään ja webbihässäköissä se harvemmin on C.

Muuten olen kyllä lausuntosi kanssa samoilla linjoilla. Open Source on kaikkea muuta kuin PHP ja MySQL.
[/q]

Joo, luin sen tahalleen kirjaimellisesti. Ja muistan kyllä erinäisiä C:lläkin tehtyjä webbijuttuja. Tosin siitä on jo jonkin verran aikaa, eikä valinnanvaraa ollut yhtä paljon kuin nykyään. =)

Ja kyllä, käytän itsekin PHP-webbihässäköitä. Ja myönnän että PHP:llä on tehty paljon open sourcea - mua häiritsi vaan alkuperäisen kommentin mustavalkoisuus. (enkä huomannut että postasit jo vastineen)

[q]duvin

---


Joo, luin sen tahalleen kirjaimellisesti. Ja muistan kyllä erinäisiä C:lläkin tehtyjä webbijuttuja. Tosin siitä on jo jonkin verran aikaa, eikä valinnanvaraa ollut yhtä paljon kuin nykyään. =)

Ja kyllä, käytän itsekin PHP-webbihässäköitä. Ja myönnän että PHP:llä on tehty paljon open sourcea - mua häiritsi vaan alkuperäisen kommentin mustavalkoisuus. (enkä huomannut että postasit jo vastineen)
[/q]

Komentini oli ehkä huonosti kirjoitettu.

PHP:llä on tehty suurin osa Open Source keskustelufoorumeista, elearning härpäköistä, intraneteista ja CMS:tä.

Perllillä on tehty taas ohjemia kuten Awstats webisivujen statikka softa.

Oikeastaan kätän PHP koska minulla ei ole muuta paitsi JSP. Enkä tunne J2EE ja muita vastaavia teknologioita. En ole löytänyt yhtään valmista Open Source softaa joka olisi tehty JSP (Java Sever Pages) pohjalle. PostgreSQL on käytössä monissa Open Source hommeleissa joita minä käytän kuten phpBB2 ja PHProejkt. Minulla on PostreSQL tietokanta vuokrapalvelimella. Tosin en ole käytäny PostgreSQL koska ei viitsi käytää kahta eri tietokantaa kun se vie palvelimen resursseja liikaa. Käytän PHP:ta myös siksi että kaikki kättämäni Open Sorce ratkaisut on tehty PHP:lla.

Klubitushan on tehty php:lla ja se ei ole mikään Open Source kuten platinum.ac

PHP, Perl on ne joita tulee käytettyä. J2EE on tullut jossain määrin tutuksi samoin kuin ASP.

Oma näkemykseni on se, että oikea kieli oikeaan paikkaan. PHP on tosiaan näppärä pieniin juttuihin, mutta varmaan ihan syystä sillä ei ole kovinkaan paljoa näitä massiivisia ratkaisuja toteutettu.

Muutenkin olen sitä mieltä, että joka kielellä voi tehdä joko hyvää tai sitten huonoa. Toisilla huonon tekeminen on helpompaa, toisilla taas hyvän tekeminen on vaikeaa.

Omat vihauksen aiheet ->
perl-koodi, jota ei ole kommentoitu/dokumentoitu, sitä ei lue erkkikään
javascript, on vaan niin hemmetin kankean oloinen, että yksinkertaisiakin asioita joutuu hieromaan

.NETillä duunia tulee tehtyä. Softat koodaan C#:lla ja oon kyllä pirun mieltynyt tohon tekniikkaan. C# on kielenä selkeä, tukee XML-kommentointia ja XML-sitäsuntätä, joka on mun hommissa ollut suurensuuri plussa. Kaikenlisäks mokoma on täysin oliopohjainen, sisältää interfacet, serialisoinnit ym mukavat. Vanhaa ASP:tä on tullut kanssa työn puitteissa koodattua, ja se on kyllä aika ankea, ainakin C#:iin verrattuna. Mä vihaan sitä tekniikkaa joka saa ihmisiä vihaamaan toisten tekniikoita ja besserwisseröimään beyond all reason. Kyllä kaikilla noilla tekniikoilla on oma paikkansa ja käyttäjäkuntansa. Koodatkoon kukin millä lystää. Mitä nyt sitten omiin mieltymyksiin tulee niin en mä tota vanhaa ASPia enää hirveen mielelläni koodaa.

EDIT: C#:n heikkous on siinä, että se toistaiseksi vielä sitoo Microsoftin palvelinalustaan. Mono on vielä jonkin verran vaiheessa ja ISP:iden puolesta heikosti tuettu.

Minimaalisia riimejä tullu tehtyä PHP:llä

[q]mayah, 21.5.2005 14:36:
Kerrottehan sit ku menee off-topikiks, ku en tajuu sanaakaan siitä, mikä on on-topikkia
[/q]

Siinä vaiheessa ku sä alat ymmärtää tätä keskustelua ni sit se on ot :D

Itselläni on nyrkkisääntönä yksinkertainen kolmen suora:

1) Perl kaikista pienimpiin projekteihin, korkeintaan 200 riviä.

2) PHP sopii hienosti tähän väliin. PHP:tä on melko nopeeta ohjelmoida, se tarjoaa tarvittaessa riittävät olio-ominaisuudet laajempiin projekteihin ja koodi on tarpeeksi nopeaa.

3) Java + Servletit + JSP (view tier:ssä) + muut sopivat tauhkat. Jossakin välissä PHP rupeaa olemaan liian heikko hommaan, joten Java on imho ainut oikea työkalu laajoihin enterprice projekteihin: Koodia voi jakaa helposti esim. web ja swing sovelluksien välillä, nykyaikaiset JIT kääntäjät toimivat loistavasti ja luotettavasti palvelinpäässä ja laajennusvaraa sekä kirjastoja riittää varmasti jokaiseen lähtöön. J2EE:hen en ole vielä tutustunut, lähinnä koska työympäristössä sille ei ole keksitty vielä oikeasti järkevää käyttöä.

Olen joskus tehnyt C:llä ja C++:lla cgi ohjelmia, mutta PHP ja jopa Perl ajaa niiden ohi lähes kaikissa asteissa (nopeampia ajaa, vievät vähemmän muistia ja paljon nopeampia kehittää).

Python on siinä mielessä outo lintu, että monet kehuvat sen toimivan hienosti webbiympäristössä, mutta koska kieli poikkeaa niin paljon muista kielistä, siihen on vaikea siirtyä. Monet sanovat Ruby:stä samaa, mutta itselleni se on vielä Pythoniakin paljon vieraampi.

ASP ja NET eivät ole olleet itselleni minkäänlainen varteenotettava vaihtoehto, koska niitä rajoittaa kalliit lisenssit, olemattomat OSS ratkaisut ja tukeutuminen Windows tuotteisiin (työympäristössä kaikki pyritään sijoittamaan *nix ympäristöön).

- Garo

en kyllä käyttäisi perliä missään muussa kuin taustajärjestelmissä. en mihinkään mikä liittyy webiin, niin perlillä koskisi. PHP hoitaa paremmin perlin virkaa, mitä tulee frontendeihin ja webijärjestelmiin.
Perlillä on hyvä hoitaa niitä tausta järjestelmiä ja/tai jos tekee jotain logien parsimisia.

Näin alkuun lyhyt pohjustus, pidempää seuraa kunhan ehdin kirjoitella.

Mitä teknologioita olet käyttänyt?

Mikä on suosikkisi ja miksi?

Mitä etuja se tarjoaa verrattuna muihin teknologioihin?

Mitä heikkouksia suosikillasi on?

Mitä teknologioita inhoat? Sydämestäsi?

O