Objavljeno: 23.2.2005 19:51 | Avtor: Uroš Mesojedec | Monitor Marec 2005

Programerske novice: marec 2005

Ruby je priljubljen, popolnoma predmeten skriptni jezik, ki je posvojil številne značilnosti priljubljenih sodobnikov, kot so java, python in eiffel. Njegov avtor, Yukihiro Matsumoto, ga je ustvaril, da bi povrnil veselje do programiranja. Morda je za dokončni uspeh ruby potreboval le še ustrezno predmetno ogrodje za hitro izgradnjo učinkovitih, podatkovno podprtih in v splet odprtih aplikacij. Zdi se, da ga je Matsumoto našel v ogrodju Rails. Ogrodje obljublja tudi do 10x večjo storilnost pri razvoju spletnih programov, brez žrtvovanja kakovosti. Cilju se približa z dvema vodiloma: manj programja, kar pomeni pisanje čim manj kode na čim bolj zmogljivem ogrodju, ki poskrbi za vse drugo. Drugo vodilo je dogovor pred prilagoditvami (convention over configuration). Rails ne potrebuje nobenih prilagoditvenih datotek, namesto tega uporablja nekaj preprostih dogovorov pri pisanju programske kode in razporeditvi map na tisku ter tako vse potrebno izve s pomočjo vpogleda in odkrivanja (reflection & discovery). Programska koda v rubyju in podatki v strežniku že vsebujejo vse, kar ogrodje potrebuje za delovanje.

Ruby na tirnicah

Zanimivo, da so tvorci ogrodja poskrbeli tudi za učinkovito spletno gostovanje. Internetni ponudnik TextDrive (http://www.textdrive.com/) je uradni gostitelj aplikacij za Rails in ponuja cenovno ugodne storitve, polovico pridobljenih sredstev pa vrača projektu za njegov uspešen razvoj.

Mimogrede omenimo še en zanimiv projekt, namenjen razvijalcem v rubyju. Na spletišču Rubyforge je na voljo preizkusna prostokodna rešitev za obdelavo dokumentov OpenOffice.org s pomočjo izključno kode v rubyju, brez potrebe po nameščenih pisarniških programih.

http://www.rubyonrails.org/

http://rubyforge.org/projects/ooo4r/

Spletni predmeti

Zanimanje, ki so ga vzbudili dinamični spletni vmesniki novega rodu, kot smo jih lahko spoznali pri storitvah Google Suggests, Orkut ali Gmail, so vzpodbudili tudi razmišljanje o učinkovitejšem zapisu predmetov za izmenjavo med odjemalcem in strežnikom brez potrebe po vnovičnem nalaganju strani. Tako je nastal JSON (JavaScript Object Notation), preprosta oblika zapisa poljubnih podatkovnih struktur, ki v celoti sledi skladnji javascripta, priljubljenega programskega jezika za dinamične spletne strani, ki je dejanski standard za njihov nadzor. Podatke, ki jih s pomočjo JSON prenesemo iz strežnika in prejmemo v obliki niza znakov, lahko z vgrajeno funkcijo eval() preprosto "izvedemo" in že imamo nared podatkovno strukturo za neposredno rabo v skriptni kodi, ki sledi. Na JSON temelji tudi preprost protokol za klic podprogramov na daljavo, JSON-RPC, ki spominja na sorodni XML-RPC, le da za zapis namesto XML uporablja enostavnejši zapis.

Za izkoriščanje dinamičnega povezovanja s strežnikom, brez vnovičnega nalaganja spletne strani, potrebujemo dovolj sodoben brskalnik. Na srečo so se Internet Explorerju in Mozilli/Netscapu/Firefoxu zdaj s podporo ustreznemu gradniku pridružila tudi Safari (1.2), Opera (8) in Konqueror (3.3); žal zadnji za delovanje gradnika potrebuje nameščen ustrezen popravek.

http://www.crockford.com/JSON/index.html

http://oss.metaparadigm.com/jsonrpc/

http://wiht.co/JSON-resources

Dvojiški XML

Zapis JSON je seveda vzniknil tudi zaradi prenapihnjenosti priljubljenega zapisa XML, ki je žal zaradi svoje splošnosti in zgovornosti pogosto tudi veliko breme za členitelje, povečuje obremenitev podatkovnih povezav in procesorja ter zmanjšuje učinkovitost obdelave podatkov.

Odgovor na izziv zgovornega XML je njegova dopolnitev, dvojiški XML (Binary XML). Organizacija W3C, ki bdi nad razvojem spletnih standardov, je nedavno objavila specifikacijo XOP (XML-binary Optimized Packaging). Z njo lahko binarno vsebino zapišemo v obliki priponk MIME, ki jih poznamo že iz e-pošte, v zapisu XML pa ostane le oznaka ustrezne priponke. Tako je mogoče ohraniti prednosti XML, za zapis binarne vsebine pa je mogoče uporabiti kodiranje, ki je že znano in razširjeno v internetni komunikaciji.

http://www.w3.org/TR/2005/REC-xop10-20050125/

XML proti CSS

Seveda pa vsega, povezanega z XML, ne moremo jemati za suho zlato. Nedavno je bila pogreta razprava s konca prejšnjega stoletja, v kateri se je razpravljalo o prednostih XML in pripadajočih slogov XSL proti "zastarelemu" oblikovanju izpisa s pomočjo slogov CSS. V minulih letih sta oba standarda našla svojo rabo, CSS je prevladujoč način oblikovanja slogov spletnih strani, XSL pa se uporablja za pretvarjanje XML na strani strežnikov, posebni slogi XSL-FO pa so celo našli svojo nišo v tiskarski industriji.

Rivalstvo med standardoma je pogrel član tehničnega odbora W3C, ki je zapisal, da s CSSjem nikoli ne bo mogoče doseči učinkovitega tiskanja spletnih strani. Resnica, se zdi, je ravno nasprotna, kar je ponazoril avtor knjige o CSS, ki jo je v obsegu več kot 400 strani oblikoval prav - seveda, s slogi CSS. Žal se zdi, da v spletnih brskalnikih še dolgo ne bo ustrezne podpore že sprejetim standardom - naj si bo to CSS ali XSL, da bi bilo tiskanje udobno opravilo, kljub temu da je prav dinamičen prelom besedila s slikami za spletni brskalnik nekaj najbolj naravnega. Zanimivo soočenje argumentov lahko najdemo v spletu.

http://www.xml.com/pub/a/2005/01/19/print.html

Raziskovalni oddelek Microsofta - mimogrede, izdatke za raziskave in razvoj so v zadnjem četrtletju, vsaj sodeč po poslovnih knjigah, v Microsoftu prepolovili in tako dosegli rekorden poslovni izid - je izumil nov programski jezik, soroden C-ju. Tokrat se imenuje C-omega (Cω) in združuje značilnosti C#, XPath ter SQL, s čimer omogoča zelo preprosto obdelavo najrazličnejših narečij zapisa XML in njihovo povezovanje s shemami podatkovnih strežnikov. Cω je že druga nedavna pobuda za vse bolj izraženo potrebo po učinkoviti obdelavi zapisa XML, druga je E4X (ECMAScript for XML), razširitve ECMAScripta (javascript, jscript), namenjena istemu problemu, a tokrat neposredno na strani spletnega odjemalca.

No, upati je, da se vse skupaj ne bo končalo kot v tisti šali: predmetno usmerjen jezik = podatki, ki vedo, kaj lahko počnejo sami s sabo, a programer ne ve, kaj početi z njimi; podatkovno usmerjen jezik = podatki ne vedo, kaj lahko počnejo sami s sabo, pa tudi nihče drug ne.

http://www.xml.com/pub/a/2005/01/12/comega.html

http://www.ecma-international.org/publications/standards/Ecma-357.htm

Zbirka za pretoke

Z dostopnimi širokopasovnimi povezavami se vse bolj povečuje količina pretočnih prenosov podatkov, predvsem večpredstavnih vsebin. Rešitve za zmogljivo ponudbo teh vsebin pa so še vedno redke, zelo drage in zahtevajo silno zmogljive naprave. Delni razlog za tako stanje so tudi neprimerni podatkovni strežniki, ki se v novi vlogi, vlogi medijskega strežnika, le stežka znajdejo. Ponudba pretočnih vsebin pa se bo sčasoma samo še povečevala. Zamislimo si čas, ko bo večina predmetov označena z radijsko oznako in bo, vsaj med trajanjem poslovnega procesa, najverjetneje pa tudi vso svojo življenjsko dobo, ustvarjala veliko količino podatkov. In takih predmetov bo na milijarde.

Tako stanje je opazil tudi Michael Stonebraker, eden izmed pionirjev relacijskih podatkovnih strežnikov, ki je sodeloval pri rojstvu izdelkov, kot sta Ingres in Illustra. Nedavno je ustanovil podjetje StreamBase, ki ponuja drugačno rešitev za delo s pretočnimi podatki, ki ni obremenjena s tradicijo danes razširjenih podatkovnih strežnikov. StreamBase prekaša vse tekmece pri obdelavi pretočnih vsebin zaradi vstopne obdelave (inbound processing), kar pomeni, da podatke obdela, preden jih shrani. V mnogih primerih shranjevanje celo ni potrebno, saj se je potrebna informacija izluščila in uporabila že ob vstopu. Avtor v intervjuju, ki je na voljo na spletni strani podjetja, programski rešitvi napoveduje svetlo prihodnost v finančni industriji (analiza tečajev), nadzoru omrežij, telekomunikacijah ter celo v spremljanju temeljnih poslovnih procesov (nabava, spremljanje zalog...).

http://www.streambase.com/

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