Objavljeno: 26.3.2008 13:40 | Avtor: Uroš Mesojedec | Monitor Marec 2008

Pro et contra: .NET vs. LAMP

Pro et contra: .NET vs. LAMP

Razvoj za splet je eno najbolj vročih področij programja. Pogosto pa je učinkovite rešitve mogoče razviti le s - kakopak - spletom tehnologij. Celovit nabor prostega programja, priljubljeno poimenovan s kratico LAMP (Linux, Apache, MySQL in PHP ali perl ali python), je za programerje spleta skorajda božji dar. Ne le, da je na voljo popolnoma brezplačno, LAMP je nadvse zmogljiv in nenehno v razvoju, tako da je hitro mogoče najti že izdelane gradnike za celo vrsto storitev, ki so trenutno priljubljene v spletu. Popoln triumf nabora LAMP so npr. sistemi za spletno urejanje vsebin (CMS). Po svoji številčnosti, ki je navsezadnje tudi predpogoj za kakovost, vse druge podlage popolnoma zasenčijo.

Uroš Mesojedec: Zakaj je LAMP boljši od .NET

A to je le vrh ledene gore. Skoraj vse uspešne spletne storitve tako ali drugače izkoriščajo neverjetno učinkovitost in zmogljivost gradnikov sklada LAMP. Google dolguje svoj uspeh predvsem Linuxu, pa tudi MySQLu in pythonu, PHP in perlu. Za svojo molzno kravo, oglaševalni sistem AdWords, ki so ga v začetku razvili z MySQL, so načrtovali prehod na veliko zmogljivejši komercialni sistem, a so po več letih razvoja ugotovili, da se učinkovitosti MySQL preprosto ne morejo približati. Nič drugače ni s trenutnim ljubljencem ameriških borz, podjetjem Facebook, ki je svojo neverjetno uspešno kodo zgradil s PHP. Primerov je preprosto preveč, da bi jih lahko na tem omejenem prostoru sploh v grobem našteli.

LAMP je zaradi svoje odprtokodne narave tudi neverjetno prilagodljiv. Za razvoj lahko brez posebnih omejitev uporabljamo tudi Okna, če so nam prijaznejša (t. i. WAMP). Končna rešitev bo brez sprememb delovala tudi v drugačnih strežnikih. Pri Microsoftovih rešitvah te izbire preprosto nimamo. Ko enkrat sprejmemo .net, smo odvisni od Microsoftove ponudbe, naše stranke pa bodo morale plačevati drage licence. Že res, da je mogoče tudi spletne programe za podlago .net prenesti npr. v Linux s pomočjo ogrodja Mono, a ta pripomoček je, podobno kot projekt Wine, obsojen na nenehno lovljenje Microsofta, ki seveda nikoli ne bo zamrznil nadaljnjega razvoja. Splet pa je vse preveč dinamično področje, da bi ga bilo moč uspešno programirati z zastarelimi ogrodji. Poleg tega je ta Novellov projekt tudi resno ogrožen s programskimi patenti, s katerimi Microsoft že resno rožlja. Računati na Mono tako ni preveč zanesljiva stava za resnega ponudnika rešitev v spletu.

Tudi pri razvojnih okoljih je vsak dan bolje. IBMov Eclipse pa tudi Sunov NetBeans postajata univerzalni okolji, ki z različnimi vtičniki podpirata prijazen razvoj v najrazličnejših programskih jezikih in ogrodjih. Visual Studio je v drobni prednosti le zaradi omejenosti na Microsoftove tehnologije, a ta drobec je zanemarljiv v primerjavi s svobodo in prihranki, ki nam jih prinaša LAMP.

In priznanje uspešnosti LAMP je prišlo celo iz Microsoftovega tabora. S pomočjo podjetja Zend so namreč uradno podprli izvajanje kode v PHPju tudi na lastnem spletnem strežniku IIS. Vse kaže, da je PHP tako priljubljen, da ga mora podpirati tudi Microsoft, če želi ostati v igri pri izbiri temeljnega operacijskega sistema za spletne storitve.

Programiranje za splet ima zanimivo lastnost. Za razliko od "klasičnih" programov, ki predvsem meljejo številke, so spletne storitve v osnovi premetavanje besedila. Tu pa je zapuščina Unixa, ki se pozna v vseh slojih sklada LAMP, od nekdaj v prednosti. Zato tudi nekdaj priljubljeni programski jezik, kot je npr. C, ki niza znakov med svojimi podatkovnimi tipi niti ne pozna, v spletu ne more konkurirati že niti perlu, ki je s svojimi regularnimi izrazi pri obdelavi besedila neverjetno učinkovit. PHP je vse to le še nadgradil z neverjetnim naborom funkcij in knjižnic. Izkušnje, pridobljene v minulih letih, pa rojevajo že nove pristope, katerih znanilec je ogrodje Ruby on Rails, katerega prijemi se selijo tudi v preostala orodja v svetu prostega programja.

Ne le, da je programiranje sklada LAMP bolj zabavno, ponuja nam boljši občutek, da svojih strank ne bomo zasužnjili z Okni, za dodaten bonus pa lahko npr. pol licenčnine, ki bi jo naša stranka sicer morala odšteti Microsoftu, spravimo v lasten žep.

Z LAMP lahko pol licenčnine, ki bi jo naša stranka sicer morala odšteti Microsoftu, spravimo v lasten žep.

Zdravko Vital: Zakaj je .NET boljši od LAMP

Svoj uspeh v nemajhni meri dolgujejo poenostavitvi in prijaznosti do uporabnika. Prav nobene razlike ni tudi pri izdelkih za programerje. Razvojno okolje Visual Studio je zelo verjetno najboljše okolje za razvoj programske kode, kar jih je na voljo. Na srečo od predstavitve ogrodja .NET omogoča tudi preprost razvoj programske opreme za splet.

Podporniki LAMP se opirajo predvsem na argument, da je pri njih vse mogoče dobiti brezplačno. To je seveda res le v primeru, ko naš porabljeni čas ni vreden ničesar. Če lahko razvito rešitev gostujem na operacijskem sistemu, kot je npr. Windows Server 2003, bo podpora zanj veliko cenejša. Naročnik programske rešitve bo zelo verjetno že imel usposobljen kader, ki bo lahko učinkovito vzdrževal naš sistem. Če nekaj razvijem za Linux, bo morda prva namestitev cenejša, a za vzdrževanje dobre kondicije strežnika bo treba zaposliti ali najeti dragega strokovnjaka. In kdo nam bo zagotavljal nadaljnjo podporo in širitev zmogljivosti? V spletu se vse spreminja in povezuje, pri čemer pa standardi še niso dokončno dorečeni. Zato potrebujemo čvrsta zagotovila, da ne bomo obtičali na točki, ko se ne bomo mogli več pogovarjati s svetom okrog nas. Microsoft bo v splet in predvsem v programerska orodja za delo z njim še naprej silno veliko investiral, saj je tudi njim popolnoma jasno, da se bo vse več programske opreme selilo v najrazličnejše spletne storitve, ki jih bo treba učinkovito medsebojno povezovati.

Ogrodje .NET ima še več pomembnih prednosti. Ponuja razvoj v različnih programskih jeziki, ki pa medsebojno neovirano sodelujejo. Pri istem projektu lahko sočasno uporabimo programerje, ki poznajo visual basic, C# in tudi javo, če se ji malo prilagodijo skozi J#. Microsoft in tudi drugi ponudniki v svet .NET nenehno prenašajo tudi druge priljubljene programske jezike. Za razliko od precej "nediscipliniranega" kodiranja, ki ga omogoča npr. PHP, je programiranje za ogrodje .NET zelo predmetno usmerjeno in nas naravnost sili v ustvarjanje komponent, ki jih lahko vgrajujemo v različne projekte. S tem je kakovost kode večja, njeno vzdrževanje pa bistveno lažje.

Z rabo ogrodja .NET bomo delali z visoko zmogljivim in dobro zasnovanim ogrodjem, ki je enotno za vse programerje v projektu, ne glede na jezik, ki ga uporabljajo. Zaradi tega bo laže najti potrebne razvijalce, njihovo izobraževanje pa bo dobra investicija, saj zaradi mogočnega zaledja tako uspešnega podjetja, kot je Microsoft, ni pričakovati, da bi njihovo znanje postalo zastarelo in bodo morali čez leto ali dve presedlati na kakšno drugo ogrodje, ki bo tedaj pač bolj "seksi".

Veliko spletnih storitev, tudi tistih zelo uspešnih, od blizu spominja na Frankensteinu podobno pošast. Skupaj so sestavljeni iz veliko koščkov, napaberkovanih iz številnih bolj ali manj temnih kotičkov spleta, pri čemer je kakovost posameznih elementov zelo vprašljiva. Pri zapletenih programskih sistemih pa je pač tako, da je skupna zanesljivost produkt zanesljivosti posameznih koščkov in s povečevanjem njihovega števila le še upada.

Odločitev za ogrodje .NET je predvsem odločitev za varno prihodnost. Ogrodje bo le še boljše, bojazen po opustitvi tehnologije zaradi potencialne novotarije iz prihodnosti je skorajda nična, saj tudi sam Microsoft vse več svojih izdelkov seli v ogrodje .NET. Ob trem nas spremlja vrhunsko razvojno okolje, ki znatno izboljša produktivnost in prinaša številne inovacije pri skupinskem delu, ki je za večje projekte neizogibno. Seveda vse to nekaj stane, a razvijalci smo bili pri Microsoftu vedno visoko cenjeni, danes lahko osnovna orodja dobimo na voljo tudi zastonj (linija izdelkov "Express"), stranke pa bodo tudi cenile varnost investicije in preprosto vzdrževanje, ki sta z Microsoftovimi strežniki zagotovljena.

Z rabo ogrodja .NET bomo delali z visoko zmogljivim in dobro zasnovanim ogrodjem, ki je enotno za vse programerje pri projektu, ne glede na jezik, ki ga uporabljajo.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji