Mjesečne arhive: July 2008

Mojih šest Firefox ekstenzija

S izlaskom novog Firefoxa 3 koji je napokon riješio neke bitne probleme u radu pod Linuxom, nekako sam opet prešao sa Epiphanya, GNOME-ovog default browsera, nazad na Firefox. Dok Firefox obiluje opcijama i ekstenzijama, snaga Epiphanya je (do sad bila) u boljim performansama (osobito na području zauzeća memorije), jednostavnosti i boljeg uklapanja u ostatak sučelja.

No, Ffx3 se dobro drži, a kroz par mjeseci nakupilo se već i nekoliko ekstenzija na koje se svakodnevno oslanjam. Inače ne stavljam svakojake ekstenzije jer nemam velikih zahtjeva za browser, a i svaka dodatna ekstenzija pridonosi bloatu aplikacije, tako da se tih par koje koristim može smatrati mojom apsolutnom top-listom Firefox ekstenzija (od kojih sve imaju ffx2 i ffx3 varijantu).

firefox add-ons

AdBlock Plus
Ultimativni adblocker, čini čuda na domaćim internet portalima, SourceForgeu i ostalim sajtovima koji si umišljaju da je moj monitor prazna oglasna ploča. Stvar odlično radi već po defaultu, a blokiranje novih stvari je skroz intuitivno, iako “block” gumbić ponekad smeta… Jedinu zamjerku AdBlocku imam za ružnu crvenu ikonu koju po defaultu stavlja u toolbar (može se maknuti customizacijom toolbara, ali onda nema nikakve indikacije o stanju blokiranja stranice), koja je zamjenila oku ugodnu i neupečatljivu ikonu u statusbaru iz prijašnjih verzija.
FireBug
Ako se bavite web developmentom onda sigurno već koristite FireBug (ako ne, odmah na gornji link, instalirajte i isprobajte, pričekat ću). Firebug omogućuje live modificiranje apsolutno svega na stranici, pregled trenutnog stanja DOM stabla, JS debugging, monitoring HTTP zahtjeva i mnogo drugih stvari od neprocjenjive važnosti za bilo koga tko mora raditi nešto sa webom.
Web Developer Toolbar
Ekstenzija koja nadoda još jedan toolbar sa hrpom korisnih opcija za isključivanje/uključivanje pojedinih funkcionalnosti stranice i dobivanja informacija o stranici, validaciju, pregled u različitim veličinama prozora, i slično. Dobro se dopunjuje sa Firebugom, iako dijeli manji dio funkcionalnosti s njim.
YSlow
Yahoov analizator stranice, YSlow gleda na tipične pokazatelje koliko je stranica optimirana za brzo učitavanje i pregled kod korisnika. Umjesto samog mjerenja brzine (iako ima i tog), YSlow daje ocjenu kvalitete stranice na temelju pridržavanja nekih de-facto pravila za optimiranje stranice. Iako ta pravila nisu apsolutni zakon, po mom iskustvu dobro ih se držati, a u trenucima kad morate odstupati od njih imati jako dobar razlog zašto to radite. Zbog toga mi je YSlow neizbježan ovog dio webdev trojca.
Screen Grab
Web page grabber. Ništa revolucionarno, napavi screenshot stranice (i to cijele, ne samo dijela koji je trenutno vidljiv na ekranu) i spremi ga na disk. Jednostavno i korisno.
Tree Style Tabs
Kad se taj broj tabova (koje otvaram za svaku stvar) poveća iznad nekog broja, nemoguće je razaznati što je u kojem, a još k tome listu je potrebno i scrollati čime se uništava bilo kakva korisnost tabova. S druge strane, laptop mi ima wide screen (1600px u širinu), što na velikom broju siteova fiksne širine koji ciljaju na 1024px ili rijetko 1280px trati dosta prozora. Oba problema zgodno sam riješio ovom ekstenzijom koja tabove prikazuje u stablu s lijeve (ili desne) strane browsera. Na ovaj način mnogo više tabova mi stane u vizualno područje, informacija (naziv) se ne gubi kod povećavanja broja, a ni scroll nije tolko katastrofalan. A stranice sasvim dobro rade na nekih 200px manje :-)
Bonus: Awesome Bar
Nije ekstenzija, ali da je instalirao bih ga. Nekima se novi location bar Firefoxa ne sviđa, ali otkrio sam da je za mene odličan. Ne volim (eksplicitne) bookmarke jer sam previše neorganiziran za njih – tako da se samo gomilaju, nikad se u njima ne snađem, a na kraju samo pobrišem sve bookmarke i od cijele stvari nemam koristi. Dosad nisam koristio pretjerano ni history, osim za completion često posjećivanih URL-ova. Awesome Bar history pretvara u searchabilne bookmarke koji se automatski spremaju i sami organiziraju. Well, ne organiziraju se nego se samo pretražuju, ali to je točno ono što mi treba :)

GUADEC 2008 redux

(napomena: vrlo dug post, već par dana odugovlačim s pisanjem istog…)

Uz već tradicionalni odmak od par dana, evo mene opet sa par riječi o upravo proteklom GUADECu, europskoj konferenciji GNOME developera i korisnika. Neka vas pridjev “europska” ne zavarava, GUADEC je definitivno najveća konferencija posvećena GNOME-u i jedna od najvećih (uz još Akademy, OSCON, Linux.conf.au, FOSDEM i još možda pokoju) konferencija posvećenih free/open source softveru.

Istanbul
Istanbul predvečer, pogled prema zapadu

Ovogodišnji GUADEC održan je u Istanbulu, popularnom turističnom središtu, pa niti ne čudi da su druženje i aktivnosti van službenog programa bile i intenzivnije od samih predavanja. No mislim da su ovakve konferencije i općenito više korisne za upoznavanje, interakciju, networking, druženje, a da su sami sadržaji programa u drugom planu.

I ovogodišnji GUADEC trajao je ukupno 7 dana, od čega su prva dva bila “warmup” dani sa manje popunjenim programom, (možda) manje zanimljivim predavanjima, a tijekom kojih se vrijeme moglo odvojiti i za razgledavanje grada. Srž konferencije činila su 3 odlična “core” dana, a zadnji dan, iako je također u rasporedu imao par zanimljivih stvari, većina je polaznika (pa i ja) odlučila markirati i iskoristiti za turističke aktivnosti.

Iako GUADECi nemaju neku posebnu “temu broja”, kao što je prošlogodišnji odisao panikom zbog nadolazećih Web tehnologija, tako je i ovogodišnji imao neslužbenu tematiku. Kašu su zakuhali neki GNOME developeri već mjesec dana prije sa tvrdnjama da je GNOME projekt u stanju dekadencije. U flamewaru koji je uslijedio moglo se čuti podosta o tome zašto GNOME je ili nije u stagnaciji, a na samom GUADECu moglo se čuti dosta o projektima koji bi trebali biti dio odgovora na ovaj problem.

Bazaar vs Git

Prvo predavanje u ponedjeljak kojem sam prisustvovao je zapravo trebalo biti BoF rasprava o DVCS (distribuiranom version control sustavu). GNOME trenutačno koristi Subversion, na koji je prešao relativno nedavno i to uz dosta muka i poteškoća, većinom uzrokovanih CVS braindamageom. No taman kad je GNOME napokon prešao na moderniji VCS, pokazalo se da ostatak svijeta masovno prelazi na neki od distribuiranih sustava, pa se tako gotovo odmah počelo šuškati o tome da bi i GNOME profitirao od korištenja distribuiranog sustava.

Naravno, kako DVCSova ima više, postavlja se pitanje koji koristiti. Tijekom vremena kao ozbiljni kandidati iskristalizirali su se git (čedo Linusa Torvaldsa, korišten za Linux kernel, a odnedavno dvcs-of-choice za web2.0 ruby developere, djelomice i zbog odličnog github servisa) te bzr, razvijan i podupiran od strane Canonicala.

Nego, da se vratim GUADEC-u. Navedeni BoF/rasprava o tome što koristiti na kraju se pretvorila u predavanje o gitu, tako da se nije ništa odlučilo. Nešto rasprave bilo je kasnije u pitanjima/komentarima, ali moj je osjećaj da se developeri neće nikad uspjeti dogovoriti što koristiti (nema šanse da svi pristanu na git, ili na bzr), tako da će na kraju release team morati udariti ćekićem o stol i napraviti odabir. Čini mi se da većina ipak navija za git, no zanimljivo je da je na GUADECu bilo par developera bzr-a koji su se trudili dići popularnost tog sustava, a na rečenom BoFu bio je i Mark Shuttleworth (nisam ga vidio na ostatku konferencije, pa je vjerojatno doletio samo za tu priliku) s izjavom “sa stajališta Ubuntua, najbolji izbor za GNOME dvcs bi bio bzr”. K’o bi rek’o ;-)

Inače, kao demonstraciju moći, i ljubitelji gita i bzra pripremili su mirror gnome svn repozitorija u svom omiljenmo dvcsu tako da se već danas možete igrati sa GNOME Bazaar i GIT GNOME repozitorijima.

O ljudima

Slijedeća dva predavanja na kojima sam bio su bila o Soylentu te People Frameworku, komplementarnim projektima slične tematike.

Soylent je u suštini za ljude ono što je Nautilus za datoteke. Ideja Soylenta je omogućiti korisniku da ima jedinstveni pogled na ljude s kojima ima interakciju, a ne na pojedine kontakte u kontakt listi. Konkretno, to znači da ako za recimo Peru Ložača imate 3 e-mail adrese, gtalk ID, ICQ UIN, Soylent će sve te podatke grupirati i pokazati na jednom mjestu. Na taj način ne morate razmišljati o pojedinim accountima korisnika i koji program pokretati za koji način komunikacije, nego odaberete čovjeka, a tek onda što želite s njim. Iz opisa čini se kao mala razlika u izvedbi, ali velika je razlika u poimanju workflowa tj korištenja računala za interakciju. Soylent omogućuje da na prirodniji način razmišljamo o svojim kontaktima.

Ali kako uopće doći do pojedinih podataka o kontaktu i grupirati ih? People Framework je framework koji radi upravo to – iz različitih izvora (npr. LDAP, Telepathy kontakt lista, Evolution adresar, adresar u vašem mobitelu, itd) vuče podatke o kontaktima, sinkronizira ih, grupira i čini dostupnima kroz jednostavan interface (sličan SNMP-ovima MIB-ovima, za one koji su u tim vodama). People framework i Soylent su savršen spoj pa su autori čim su saznali jedni za druge već počeli dogovarati način interakcije ova dva sustava.

Clutter, clashing predavanja

Nažalost, u istom trenu dok se u jednoj prostoriji pričalo o ova dva projekta, u drugoj je bilo predavanje o Clutteru, frameworku za animacije i (2D) efekte komplementarnom GTK+-u. Clutter se (IMHO) nametnuo kao najbolji animation framework za GNOME/GTK+ programe, tako da će vjerojatno u nekom obliku u budućnosti biti odabran kao standardni dio GNOME platforme.

Općenito, ove godine se dosta predavanja koje sam želio vidjeti održavalo u isto vrijeme, tako da na mnogim stvarima nažalost nisam mogao biti. Ako se uzme u obzir da je u samom rasporedu bilo i dosta rupa, mislim da su organizatori mogli malo više “razvodniti” raspored i osigurati da se (potencijalno) zanimljiva predavanja ne odvijaju baš u istom trenu.

Clash mi je bio najgori u trenutku kad sam ja držao svoje predavanje, dok su u druge dvije dvorane bila vrlo zanimljiva predavanja o Moonlightu (Mono implementacija Silverlighta) te Wizbit (filesystem nad git-om, ala OSX Time Machine). Da nisam morao biti na svojem, vjerojatno bi išao na neki od ta dva :)

UXD, Firefox keynotes

Prvi keynote držala je Leisa Reichelt, a govorila je o user experience dizajnu. Dotaknula se tema kao što je usability, privlačnost dizajna i podsjetila nas na nekoliko aksioma (tipa “ne tjeraj me da mislim” [tm]) koji su vjerojatno stalno na pameti web developerima, ali se ponekad znaju zaboraviti prilikom rada na tradicionalnim desktop aplikacijama. Sve u svemu, dobar keynote, ali ništa što već nismo imali prilike čuti.

Na kraju prvog core dana keynote je održao i Chris Blizzard iz Mozille. Pričao je o Firefoxu 3 te iznio par informacija o pogledu Mozille (korporacije) na tržišni udio (sa zabavnim grafovima koji pokazuju “tržišni udio ako uračunamo da je firefox zaslužan nastanak ie7, ie8 i safari browsera”) i budućnost Firefoxa. No cijeli njegov nastup bio je poprilično bahat, sa konstantnim omalovažavanjem konkurencije (WebKit/Safari i IE timova), tako da je na mene ostavio poprilično negativan dojam. Kasnije je Chris rekao da se na taj način želio pošaliti. I’m not impressed.

Telepathy

Drugi core dan bio je za mene obilježen Telepathyem. Prvo je Robert McQueen pričao o novostima u Telepathy svijetu i relativnoj novotariji, cijevima (nespretan hrvatski prijevod originalnog “tubes”, aplikacijski podatkovni kanali preko IM-a). Nakon toga sam i ja izašao na pozornicu i pričao o mogućnostima, razlozima i načina integriranja Telepathy frameworka u “obične” desktop aplikacije (slideovi ovdje). Moja prezentacija je dobro prošla iako sam imao malu tremu pa previše brzao sa slajdovima :-)

Tijekom pripreme prezentacije, samog predavanja a i općenito na GUADECU dobio sam dojam da ljudima Telepathy framework još spada pod “u dalekoj budućnosti” projekte i da zapravo ne postoji mnogo informacija kako ga odmah danas iskoristiti na smislen način. Kako bi tome doskočili vjerojatno ću prezentaciju pretočiti u niz blog postova s tutorialima kako iskoristiti mogućnosti Telepathya u svojoj aplikaciji, pa ako vas to zanima, stay tuned :-)

Nakon stanke za ručak Olivier Crete je pričao o Farsightu 2, novoj verziji Farsight frameworka za audio/video konferencije. Farsight 2 ispravlja arhitekturalne greške uočene u prvoj verziji, API je jednostavniji, cijela stvar je robustnija i podržava mnogo više stvari, od kojih je najznačajnija je podrška za telekonferencije sa više od 2 sudionika.

Jedno od pitanja iz publike postavio je Damien Sandras (autor Ekige) – zašto se krenulo raditi Farsight ukoliko je u tom trenu već postojao OPAL, VoIP library kojeg koristi Ekiga a koji podržava H.323 i SIP protokole. Problem sa OPAL-om je da je on previše vezan uz te protokole koje podržava, odnosno library automagično rukuje i signalizacijom (H.323/SIP) i transportom media (RTP,…) bez mogućnosti odvajanja tih funkcionalnosti, što ga čini nefleksibilnim i potpuno neprimjenjivim u sustavima koji imaju neke druge signalizacije (npr Telepathy ili custom streaming sustavi).

Damien je bio slijedeći na stageu, pričajući o prošlosti, sadašnjosti i budućnosti Ekiga VoIP klijenta koja bi uskoro trebala osvanuti u svojoj 3.0 inačici. Najznačajnije novosti u trojci biti će podrška za SIMPLE (instant messaging preko SIP-a) te razdvajanje clienta u libekiga backend i UI frontend, što bi trebalo omogućiti razvoj i drugih VoIP klijenata nad Ekiginom jezgrom. (Telepathy SIP/H.323 connection manager anyone?).

WebKit/GTK – Fuzija weba i desktopa

Dan je zaključio Alp Toker koji radi na GTK+ portu WebKit browser enginea (koji pogoni Safari i Konqueror browsere). Alp je pričao o raznim mogućnostima integracije browser enginea u desktop kao što su korištenje CSS stylinga za GTK+ widgete (mogućnost koja stvarno nedostaje – trenutno, ako želite raditi custom temu za GTK+ koja radi više od promjena par boja i ikona, trebate znati programirati u C/GTK+), embeddanje HTML sadržaja unutar GTK+ elemenata, izravni pristup manipulaciji DOM-a iz programa koji embedda widget, pristup objektima programa iz JavaScripta koji se izvori u embedanom WebKit widgetu i mnoge druge stvari koje su danas nemoguće.

Jedna od vizualno impresivnijih prezentacija bila je HTML5 video element unutar SVG elementa animiranog JavaScriptom, a na sve to bio je i nabačen “voda” (vertikalni mirror sa ripple efektom) efekt. Cijela prezentacija je bila praćena uz puno pljeskanja i slinjenja, WebKit se pokazao kao jedan od bitnih elemenata za sexy/bling/jednostavan-za-programiranje GNOME desktop budućnosti.

Flash, paketiranje, …

Zadnji core dan počeo sam odlaskom na prezentaciju swfdeca, librarya za izvođenje Adobe Flasha. Iako Adobe u zadnje vrijeme kreće naprijed sa svojim supportom za Linux, još uvijek nije moguće embeddati njihov player u svoju aplikaciju niti imati preciznu kontrolu nad izvođenjem Flash objekata, što su sve ciljevi kojima stremi swfdec. Glavni developer Benjamin Otte iznio je zanimljivu priču o razlozima postojanja, razvoju swfdeca, raznim verzijama Flasha i planovima za budućnost (konačni cilj mu je da nitko ne koristi Flash na Linuxu nego da bude zamjenjen nekim zasad nepostojećim free rješenjem).

Nakon toga pogledao sam predstavljanje PackageKita. PackageKit je sustav za pametno rukovanje paketima (softvera) na računalu. Ne zamjenjuje pojedine paketne sustave distribucije (rpm, dpkg, itd), nego je sloj iznad i pokušava riješiti neke high-level probleme, kao što su mogućnost korištenja više aplikacija koje rade s paketima istovremenom (queuanjem zahtjeva), pametnijim sustavom za upgarde paketa (mogućnost automatskog/polautomatskog upgradea, ne radi upgrade ako je laptop na bateriji/gprsu, bandwidth limiting kod upgradea), mogućnosti da aplikacija eksplicitno zatraži instalaciju dodatnih paketa (npr video player za kodeke, openoffice za clipart, itd) itd. PackageKit je neovisan o specifičnoj distribuciji ili user interfaceu (glavno sučelje je GNOME ali radi se i na KDE verziji), zasad je u beti i već se nalazi u novoj Fedori, a za očekivati je da će biti prihvaćen od većine ili svih distribucija Linuxa.

Lennart Poettering, autor PulseAudia i čovjek koji dok nije na konferencijama izbacuje masivne količine visokokvalitetnog koda (a kad je na konferencijama upija masivne količine piva) predstavio je budućnost zvučnih efekata u GNOME okruženju. Po uzoru na Tango/icon specifikaciju, definirana je zvučna specifikacija sa mnogo više predefiniranih zvukova (odokativno nekih 60tak umjesto dosadašnjih 16) i određen način kako treba raditi zvučne teme, što bi trebalo osigurati da u budućnosti dobijemo velik broj (nadajmo se kvalitetnih) zvučnih tema za GNOME.

Sa developerske strane, predstavio je Canberru, sustav za zvučne efekte za GNOME i dugoočekivanu zamjenu za esd. Canberra je vrlo jednostavna za korištenje u programima (tipično samo par dodatnih linija koda), a sustav osim jednostavnog playbacka radi i cachiranje zvučnih sampleova, različiti bitrate zvukova te napredne stvari poput prostornog pozicioniranja zvuka (npr. zvuk s lijeva ako je događaj na lijevoj strani zaslona).

Budućnost

Završni keynote držao je Federico Mena-Quintero, jedan od začetnika GNOME projekta. Federico je pričao o tome kako je sadašnji koncept desktopa orjentiranog na aplikacije zastario, pozvao na dokument-orjentirani desktop i predstavio nekoliko intrigantnih mockupova kao prijedloge u kom smjeru se može ići. Jedna od ideja je document timeline, u kojem je moguće pregledavati dokumente bazirano na vremenu kad su zadnji put promjenjeni (nešto slično F-Spotovom image timelineu, samo više vizualno). Druga ideja je izbaciti file chooser i općenito ne siliti korisnika da razmišlja o folderima i lokacijama datoteka.

Nakon inspirirajućeg predavanja razvila se živa rasprava, ali je brzo okrenula u znanstvenofantastične vode (“bilo bi super kad bi imali verzionirajući datotečni sustav tipa wizbit i onda ne imali eksplicitno spremanje dokumenata nego automatsku perzistenciju”…). No bez obzira na to, poznajući Federica stvar neće stati na pukom maštanju, nego će se stvar probati razraditi i smislene djelove koncepta mogli bismo jednog dana koristiti na našim desktopima.

Na kraju keynotea GNOME release team je imao jednu objavu (tj mislim da je to još uvijek u fazi prijedloga). Već se dosta pričalo o viziji GNOME 3.0 desktopa koji bi trebao biti novi i radikalan. No umjesto “reza” poput onog u KDE 4, release team predlaže kontinuiran razvoj i dogradnju, ukratko:

GNOME 2.30 = 3.0
GNOME 2.30 = GNOME 3.0

Može se primjetiti da je velik broj novih tehnologija koje su prošlih godina dozrijevale a sad su spremne za korištenje u GNOME aplikacijama zapravo proširenje nečega što je zasad već dostupno u specijaliziranim programima, ali uskoro će biti dostupno svim programima, kao komponenta sustava. To su tehnologije poput Telepathya (vs. monolitni Pidgin), Clutter (vs. ručni framework u SDLu ili OpenGL-u), WebKit (vs. standalone Firefox), PackageKit (vs. posebni update-manager/package-manager program), PulseAudio/Canberra (predugo očekivana normalna podrška za zvuk na Linux desktopu).

Korištenjem ovih tehnologija već sad moguće je raditi programe koji su bili nezamislivo teški za izradu pred samo godinu-dvje, tako da nemam sumnje da je cijela platforma zdrava, agilna i da GNOME čeka svjetla budućnost)

I za kraj još samo jedna najava za budućnost – slijedeće godine GUADEC se održava na Kanarskim otocima! Yay! Sunce, ljeto, plaža, geekovi s laptopima na plaži :-) Zapravo, Kanarski otoci ugostit će istovremeno i ljubitelje GNOME i KDE sučelja jer se GUADEC i Akademy održavaju u isto vrijeme na istom mjestu (organizatori su odlučili zadržati suverenitet obiju konferencija, tako da to neće biti zajednička konferencija, nego dvije združene konferencije na istoj lokaciji).

O programskim jezicima


Ukoliko se profesionalno ne bavite programiranjem, a čak i ako da ali ste u konvencionalnijim programerskim vodama, moguće da vam je promakla sva sila zanimljivih programskih jezika i načina razmišljanja. Kod programskih jezika, kao i kod ljudskih jezika, vrijedi da svaki jezik donosi neke nove spoznaje i način gledanja na svijet, čisto zato što ih je većina nastala kao rezultat više ili manje posebnog načina razmišljanja.

Kako ne biste radi opće programerske kulture morali satima proučavati opskurne programske jezike da biste shvatili njihov smisao, potrudio sam se i to učinio za vas. Ovo što slijedi potpuno je subjektivan oneliner opis pojedinih jezika, koji odražava koliko god je to moguće pravo stanje (ako ne već pravo stanje, onda bar moje mišljenje i poznavanje dotičnog jezika).

Assembler
Zašto bi pamtili opkodove kad ih možemo nazvati imenima
Fortran
Matematičke formule koje računalo zna izvršavati
C
Portabilni assembler
Smalltalk
Objekti koji međusobno pričaju
C++
Portabilni assembler s objektima koji umjesto pričanja skakuću po tablicama u memoriji, sa Turing-complete sintaksom
Objective C
Portabilni assembler s objektima koji međusobno pričaju, osim što nije baš jako portabilan
Basic
Programski jezik za učenje programiranja koji će vas naučiti užasno lošem načinu programiranja
Pascal
Mogućnosti Basica s jednostavnošću C-a
Forth
Vidi što sve mogu sa stackom
Lisp
Program je podatak
LOGO
Lisp za djecu u kornjačinom oklopu
Scheme
Lisp je kompliciran
Prolog
Ako je Pero stariji od Branka, a Marko je brat od Petre, tko od njih pije Karlovačko?
ML
Lisp + Prolog
Haskell
Kategorija je sustav objekata s morfizmima, a morfizmi kategorije kategorija su funktori. Monoidi su specijalne vrste kategorija…
Visual Basic
Hrpa GUI kontrola s Basicom kao skriptnim jezikom
Delphi
Visual Basic, ali varijanta sa Pascalom
Perl
Postoji više od jednog načina da se to napravi, i svaki od njih ima svoj posebni operator
Python
Perl je ružan, whitespace indentacija je lijepa, eskplicitno je bolje od implicitnog, a namespaceovi su super
Ruby
Objekti, poruke, closures (zatvori? :D ), kontinuacije, omg web2.0 rails!!!one
Java
Enterprise-grade objekti, XML konfiguracijske datoteke i Eclipse IDE koji će tih par megabajta boilerplatea ionako sam generirati
C#
Microsoftova Java
PHP
Visual Basic za web
JavaScript
Lisp sa vitičastim zagradama, za browsere
Erlang
Deset tisuća procesa od kojih svaki izvršava 10 linija koda
D
Java/C# s kojim možete pisati čak i kernel ako baš želite, i na kraju ga i kompajlirati u izvršni kod
Lua
Skriptni jezik namjenjen embeddanju u aplikacijama
Modula-2
Objective C + Pascal
COBOL
Moć Basica uz jezgrovitost SQL-a
BASH
Glavno da program čita sa stdin, piše na stdout i radi exit s nekom vrijednošću, možemo ga iskoristiti kao naredbu

Bonus:

Brainfuck
Turingov stroj je user-friendly
LOLCODE
CEILING CAT SAYZ, LOL, I CAN HAZ BRAINFUCK COMPILER. SRYSL.

Kao što vidite, svijet programskih jezika stvarno je raznolik. Kako znati koji od njih je najbolji? To naravno ovisi o samoj primjeni, uvjetima i programima koje treba izvesti, ali nerjetko se među ljubiteljima pojedinih programskih jezika javlja uvriježeno mišljenje o drugim programskim jezicima. Na osnovu toga, evo neslužbene ljestvice popularnosti:

  1. Samo dno rezervirano je za BASIC i PHP o kojima nitko ne želi reći ništa lijepo, a oni koji ih prakticiraju (mea culpa za PHP) vade se na to da su prisiljenk…
  2. Statički/sistemski jezici (C, C++, FORTRAN) – Hardcore programeri, ne priznaju ništa što se ne da kompajlirati u izvršni kod, kunu se u brzinu i performanse i podsmjehuju tamo nekim skriptnim jezicima.
  3. Dinamički jezici (Perl, Python, Ruby) – Iskreno žale programere koji moraju ručno rukovati memorijom, a nemaju niti tako osnovni tip podataka kao što je string. No za sebe smatraju da su praktični i iako se dive dijelovima LISP-a, smatraju njegove ljubitelje čudacima koji baš i nisu u doticaju s realnošću.
  4. LISPeri se drže one stare “Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp.”, a dinamičke jezike iz prethodne točke smatraju upravo tim “informally-specified bug-ridden sporim implementacijama”.
  5. Haskell-ovci smatraju LISP priprostim, a ostale uopće ne žele komentirati (shvatiti ovo u kontekstu: haskell ionako koriste samo matematičari u duši, koji su i inače poznati po skromnim izjavama tipa “Bog bi htio biti matematičar”)

Nadam se da će vam ove kratke liste i opisi korisno poslužiti slijedeći put kad se budete zatekli na nekom geek partyu i tražili temu za neobavezan chitchat s pripadnicom suprotnog spola. Kako su opisi proizašli iz mojeg velebnog, ali ipak ne i sveobuhvatnog znanja o programskim jezicima, pozivam vas da ispravke netočnih navoda kao i svoja razmišljanja na ovu temu podijelite sa mnom u komentarima.