Konkurs

na oblíbený programovací jazyk... Nominujte svého favorita!

Píšu programy pro různá prostředí. Například pro PC desktopy, pro jednočipy a pro internet. Tím je dána i má volba programovacích jazyků. Na desktopu píšu s Delphi. Zkoušel jsem různé jiné nástroje, Delphi vždy vyhrály. Nejlíp mi sedly do ruky. Při psaní pro jednočipy je to o něco složitější. Píšu v C a v assembleru, naštěstí jen pro tři řady jednočipů, takže těch assemblerů nemusím znát zas tolik. No a konečně věci pro web až dosud píšu v PHP, klientskou část v JS.

A tady je problém, se kterým se obracím na vás, své milé čtenáře, neboť vím, že někteří z vás jsou opravdu chytří a další alespoň chytří jak rádio. Psaní webových věcí v PHP mi už leze krkem. Především pak představa, že si během týdne napíšu ono výkonné jádro aplikace, a bude přede mnou oblíbená a ku zeblití nudná část, kdy každé kliknutí na každý blbý tlačítko znamená napsání tuny kódu, co je na 95% stejný jako všude jinde, ale nelze ho opsat, část, kdy píšete po stoosmdesáté variaci na "Vypsat / Přidat / Upravit / Smazat"... Už pouhá představa tohodle všeho mě ve fázi úvodního nápadu dostatečně znechutí. Ne, tudy cesta nevede.

Je potřeba změny. Takže vypisuji konkurs na nový oblíbený jazyk a framework pro vývoj webových aplikací. Měl by fungovat jak na Win, tak na Lin a měl by být k dispozici jako modul do Apache (tedy .NET a ASP jsou ze hry rovnou). Měl by klást důraz na to CO se má dělat, ne na to JAK se to má dělat. A konečně by měl být dostatečně rychlý.

Především ale kladu důraz na RYCHLOST tvorby aplikace. Chci zkrátit vývoj na "nápad + realizace nápadu" a psaní omáčky naprosto minimalizovat.

Zatím jsem objevil kandidáty dva, Python a Ruby, a dva frameworky, RoR a TurboGears. A k PHP jsem našel Symfony. Otázka je: Máte jiné kandidáty? (Buď jazyk+framework nebo PHP framework)? Máte s nimi zkušenosti? Co jste zkusili vy?

 

Díky 

Očekávám, že se od svých čtenářů mohu dočkat tří druhů komentářů:

1. Odpovědi od lidí, co zkusili jak Python+TG, tak Ruby a RoR,  zkusili možná i něco jiného a jsou schopni porovnat pro a proti.

2. Tipy na PHP frameworky, se kterými jste se setkali, plus stručné shrnutí toho co umí a co neumí

3. Blbý kecy.

Za komentáře prvních dvou druhů děkuji, blbý kecy budu mazat, můžete si o tom myslet co chcete.

Dne 25.04.2007

Twittni

Přidej do: asdf.sk StumbleUpon Toolbar Stumble It!

Komentáře

[1] (Lokutus - WWW) 25.04.2007, 11:54:47 [X] [D]
To jsou dost úzké mantinely.

[2] (P~O ) 25.04.2007, 12:05:19 [X] [D]
Druh 1: Zkusil jsem obé, k Pythonu kromě TurboGears i Django. A zůstal jsem u RoR, akorát to neumím odborně vysvětlit, prostě mi to líp sedlo do ruky a do hlavy. Když vím, co chci, udělám to v tom velmi rychle.

[3] (FrozenDog ) 25.04.2007, 12:12:05 [X] [D]
1. PHP framework:
Asi pred rokom som hladal nejaky pouzitelny PHP framework (z podobnych dovodov ako Ty) a po vyskusani roznych veci som nakoniec skoncil pri CedeIgniter-i (www.codeigniter.com). Je to klasicky MVC framework, bez nutnosti instalacie, bez XML konfigurakov, bez command line vymozenosti, ale zato s prehladnou strukturou, jednoduchym pouzitim a kvantom roznych helperov. Uz samotny je velmi dobry, ale to prave orechove to zacne byt az v kombinacii s Rapyd library (doplnok pre CI), ktora uplne minimalizuje (praktcky odburava) spominane nudne vytvaranie CRUD. Tuto kombinaciu (CI+Rapyd) aktivne pouzivam a som velmi spokojny.

2. jazyk+framework
Na tomto poli mam skusenost len s frameworkom Django pre jazyk python (www.djangoproject.com). Takisto MVC s vyhodou jazyka python. Pouziva tiez nieco ako anotacie. Vyborna vec je moznost pouzitia generickeho backendu, takze pri niektorych projektoch sa clovek moze sustredit len na tvorbu frontendu. Django je mozne spustit na apache serveri, preferuje postgreSQL, ale nema problem ani s mysql, ci inymi DB.

[4] (kl0k - Mail - WWW) 25.04.2007, 12:22:59 [X] [D]
Co tohle (PHP)? http://codeigniter.com

* malicky framework zalozeny na filozofii ModelViewControler a modulech;
* pri IO operacich moznost implicitni kontroly proti crosscriptingu;
* ma vestaveny sablonovaci system;
* pomerne siroka podpora databazi s jednim frontendem;
* docela slusne mnozstvi modulu (s moznosti nahrat si jen ty ktere skutecne potrebuju)
* moznost reakce na udalosti a rozsiritelnost jadra;
* a mnohem vic ;-)

[5] (wake ) 25.04.2007, 12:44:30 [X] [D]
Jazyk: PERL
FW: Catalyst

Vyhody: mnozstvi knihoven, po zauceni je development rapid, ani pokrocilemu vyvojari neni braneno v kreativite
Nevyhody: nutnost znat PERL, strma ucici krivka

[6] (Mick ) 25.04.2007, 12:45:14 [X] [D]
Ja osobne mam zkusenosti pouze s RoR, ale to splnuje vse dle tveho zadani. Variaci "Vypsat / Přidat / Upravit / Smazat" je mozne nechat automaticky vygenerovat, z toho celkem vyplyva i rychlost implementace, provozovat jde pod Lin i Win (provozuji oboje) a modul do Apache je take. Jako dalsi vyhodu bych doplnil treba implementacni nezavislost na pouzite databazi, mnozstvi pluginu, atd.

[7] (Věroš - WWW) 25.04.2007, 13:52:51 [X] [D]
Python + Webware For Python - což je v podstatě přeportovaný Servlet Container z Javy.

Ve srovnání s Djangem je poměrně nízkoúrovňový (= trošku pomalejší vývoj), na druhou stranu nebrání člověku v kreativitě. Po zapojení věcí jako FormKit, SQLAlchemy, CheetahTemplate je vývoj rychlejší.

Mě se na něm nejvíc ta nízkoúrovňovost vcelku líbí - vymyslím aplikační logiku, pak ji v objektech implementuju a nakonec k tomu přivážu nějaké stránky.

[8] (UNDEFINED [openID] - Mail - WWW) 25.04.2007, 14:02:54 [X] [D]
Pokud jsi zvyklej na Delphi a web v PHP, tak bych doporučoval počkat si na Update 1 pro Delphi for PHP a zkusit se na to aspoň podívat. Zrovinka včera mi přišel mail ze supportu CodeGear (Borland), že Update 1 by měl být do konce dubna. Bez něj to totiž šíleně padá, jak jsme ostatně zvyklí u všech Delph než vyjde jeden/dva updaty.
Na http://codegear.com by měl být ke stažení jednodenní trial.
Jo a moje zkušenosti (když pominu stabilitu) ... programuje se v tom stejně jako v Delphi for Win (včetně vytváření GUI), generuje to přehlednej PHP kód, používá opensource VCL for PHP, která se vyvíjí nezávisle a aktualizuje se častěji, umí to pacovat s AJAXem, podporuje MySQL, má doprej PHP debbuger atd.
Například administrace tabulky je otázkou jednoho drag'n'drop tabulky z Database Exploreru na Form a hotovo - vytvoří to aktivní grid s live daty i s editací (AJAX). Jednodušeji už to snad ani nejde. Jo a kupodivu to i generuje rozumný XHTML a CSS.

[9] (Arthur Dent [openID] - WWW) 25.04.2007, 14:06:28 [X] [D]
[8] Viz http://zapisnik.maly.cz/511502-delphi-pro-php-prvni-dojmy.html

[10] (dgx - Mail - WWW) 25.04.2007, 14:31:18 [X] [D]
Koukám, že už tě přestalo to psaní frameworku nějak bavit :-)

Arthure, kurňa, nic takového co hledáš neexistuje. Víš co to znamená? Uvědomuješ si to? To je výzva! A asi ne jen pro jednoho jedince.

[11] (tark - WWW) 25.04.2007, 15:18:53 [X] [D]
OT pro dgx: Kdy bude Nette? ;-)

[12] (Henry ) 25.04.2007, 16:24:14 [X] [D]
Hlasuju pro Python + Django.

[13] (pixy ) 25.04.2007, 16:42:35 [X] [D]
Arthure, na můj inzerát se mi ozvalo hned několik zájemců, kteří se cítí na programování PHP (a mSQL apod.). Původně jsem měl v úmyslu stavět si s jejich pomocí po kousíčkách svůj framework na míru pro vlastní potřebu (když tobě se do toho nechtělo :), ale možná by nemuselo být tak úplně od věci přehodnotit záměry, změnit plány a zadání směrovat na trošku jinou kolej...

Takže bude-li zájem, já jsem ochoten do toho investovat tyto síly - ale nejsa tak zdatným programátorem jako ty nebo dgx, nejsem už schopen postavit stabilní základy toho, co by mělo vzniknout...

[14] (Arthur Dent [openID] - WWW) 25.04.2007, 16:54:56 [X] [D]
[13] Mně že se do toho nechtělo? Mně? Mně, který si napsal už šestou (či kolikátou) verzi? :) Dokonce před několika málo hodinami mi DGX psal, že by to chtělo zauvažovat... najít... nadefinovat... dohodnout... napsat... No prostě že by to nějaký nástroj pro urychlení cyklu od nápadu k bědaverzi chtělo, a to tak že moc. A v tuhle chvíli mi v hlavě víří alespoň tři možné způsoby řešení téhle věci, od kombinace vizuálního editoru UI s modulárním kódem přes nějaký metaskriptovací jazyk až po jazyk, ve kterém bys popsal jednotlivé prvky, funkce a závislosti a z toho by se (lang2lang) generovalo cílové JS/PHP/HTML/SQL. Ovšem to chce pořádně promyslet. A jak to tak vidím, tak asi nezbyde než se do toho opravdu dát a pak poslouchat ty řeči... Davide, kdy bude Nette :)

Ale to nejdůležitější, tedy název, bych už měl. Na truc všem chytrákům bych to nazval "Reinvented Wheel"! :)

[15] (wake ) 25.04.2007, 17:11:51 [X] [D]
[14] CHYBA!!!! takovyto nazev lze vyjadrit daleko lepe pomoci stavnatejsiho "Wheel Reinvented" !!!

;-);-);-)

[16] (Drekin - Mail ) 25.04.2007, 19:09:51 [X] [D]
Zajímavé srovnání frameworků pro Python je na http://jesusphreak.infogami.com/blog/vrp1

[17] (Pawell ) 25.04.2007, 21:13:49 [X] [D]
Typ komentáře: 2
FW: CakePHP - http://www.cakephp.org/
Setkali kde: addons.mozilla.org
Strucne shrnuti: velmi podobne vlastnosti jako [4]

[18] (Martin Stiborský - Mail ) 25.04.2007, 21:56:29 [X] [D]
Já si posledních pár měsíců hraju s Pythonem + CherryPy a moc moc se mi to líbí .. dělám si v něm stotisící prvý redakční systém a moc mě to baví .. dokonce jsem mu založil na googleCode projekt, nahodil tam zdrojáky a screenshoty, ale pak jsem na to delší dobu nesáhl a když teď na to koukám, tak se k tomu hlásit nebudu :D Chce to komplet přepsat, tak se i stane .. konečně mám hosting pro Python i CP takže spokojenost maximální ..

[19] (Valaska ) 25.04.2007, 21:59:56 [X] [D]
Python a jeho framework RoR je robustní mainstream pro middle gear aplikace. Inscitinační návrh aplikace docela minimalizuje redeferneční práci programátora, RoR se snadno obsluhuje a navzdory indiferentnímu pojetí syntaxe Pythonu, je vývoj aplikace velmi rychlý.

[20] (Lokutus - WWW) 25.04.2007, 22:05:21 [X] [D]
[19] Mohl bys to přeložit do češtiny, prosím?

[21] (Arthur Dent [openID] - WWW) 25.04.2007, 22:08:35 [X] [D]
[19] "Python a jeho framework RoR"? Je v tomto případě "RoR" !== "Ruby on Rails", nebo mi něco uniklo? :)

[22] (Luk@s ) 25.04.2007, 22:31:47 [X] [D]
Já jsem začínal v Perlu, a ten mi nějak nesedl (Blbě se mi učila jeho syntaxe, a $_ je pro mě pořád záhadná proměnná).

Pak jsem přešel na PHP v kterém jsem všechny své webové projekty dělal ještě před měsícem. A kupodivu jsem řešil naprosto stejné problémy a taky mě nudily opakující se variace na smazat, editovat, přidat .... a ještě spoustu dalších. Nevyřešil to ani žádný framework.


Před měsícem jsem nad PHP zlomil hůl a přešel jsem na Ruby a framework Rails. Výhod je napsáno všude dost,(stačí si pročíst úvodní díl nějakého seriálu o ROR nebo komentáře výše.)

K nevýhodám můžu zatím napsat akorát to, že v češtině k tomu neexistuje žádná publikace. Takže kdo nezvládá angličtinu, tak ať se do ROR raději nepouští. Sice existuje pár seriálu v češtině (Root.cz, rails.jinak.cz a další), ale stejně brzy narazíte na problémy, jejichž řešení je popsáno zejména v angličtině.

Druhou nevýhodou je ROR hosting v českých luzích a hájích. ROR není u nás tak používané,takže hostingových společností s nabídkou ROR je jako šafránu. Zrovna se po nějakém poohlížím, takže pokud máte nějaké tipy, sem s nimi.


Jinak mé zkušenosti jsou po měsíci s ROR zatím dobré.
A k PHP se už neplánuju vrátit. V ROR mi sedí způsob programování, dodržování konvencí, (když je dodržujete, nemusíte pak nic konfigurovat), rychlá instalace knihoven
a jejich velice snadné používání a hlavně kód je krátký
a přehledný.

Taky ještě dělám v Javě, ale ta se hodí na opravdu velké projekty. Vývoj v ní je hrozně pomalý a nákladný.






[23] (Null (I.C.) [openID] - Mail - WWW) 25.04.2007, 23:17:13 [X] [D]
[9] Samozřejmě jsem četl hned, jak se mi objevil ve čtečce ;-) Já bych nad D4PHP každopádně ještě hůl nelámal a počkal, co přinesou updaty. Pokud, jak píšeš, děláš s Delphi, tak snad víš jak jsou použitelný první vydání všech verzí. V přípdě D4PHP je potřeba brát v úvahu, že při vydání hrál hlavní úlohu termín, kterej chteli CodeGear za každou cenu dodržet. Kdyby na tom ještě měsíc dělali, tak by to vypadalo líp s použitelností, ale zase by to bylo horší v očích veřejnosti.
Já už nad D4PHP strávil nějakou chvíli abych si udělal obrázek a jakmile bude k mání první update, napíšu co je novýho.
20.4. mi přišel mail, nejdůležitější čast zní:
"Dnes byla uvolnena nova verze knihovny komponent VCL for PHP, kterou najdete na adrese http://www.qadram.com/vcl4php/ a chysta se i
update #1, ktery bude k dispozici do konce mesice."

[24] (Matej Knopp - Mail ) 26.04.2007, 00:15:10 [X] [D]
U mna je to pri webe jednoduche. Jednoznacne Java a Wicket (wicketframework.org).
Len velmi kratka ukazka: toto je pridanie tlacika

add(new Button("myButton") {
public void onSubmit() {
System.out.println("form submitted.");
}
});

[25] (jan korbel - Mail - WWW) 26.04.2007, 07:31:16 [X] [D]
"Takže vypisuji konkurs na nový oblíbený jazyk a framework pro vývoj webových aplikací."

Už asi víš, jakou odpověď dostaneš ode mě: Ruby on Rails. Důvod: trochu už jsem je zkusil (na větší flirt nebyl čas :( ), ale i ta trocha mě nadchla. Řeší mnohem víc, než jen odstranění toho skřípavého kolovrátku s formuláři pro Přidat/upravit/smazat, řeší třeba unit testing, pomáhá s generováním dokumentace a kdovíco ještě.

A pak ve mě vzbuduje důvěru hlavně to, že je to framework vytvořený někým, kdo pár web aplikací udělal a jehož přístup k řešení problémů se mi líbí... tak nějak obecně.

Kup tohle http://www.pragmaticprogrammer.com/titles/rails2/index.html

dej tomu tak 6 hodin a už tě to nepustí.

[26] (Jiří Knesl - WWW) 26.04.2007, 07:49:40 [X] [D]
Jednoznacne Code Igniter, jednoduchy, rychly, rozsiritelny. Navic do nej jdou nacpat komponenty ze Zendu ( http://www.4webby.com/freakauth/tutorials/using-zend-framework-components-in-code-igniter ), takze nedostatkem funkci rozhodne netrpi. Nelze, nez doporucit. :)

[27] (Luk@s ) 26.04.2007, 09:12:04 [X] [D]
Pokud někdo uvažuje o Ruby a frameworku Rails, ať se podívá na motivační video (v češtině) http://rails.jinak.cz/article/show/24

Je zde ukazaná tvorba blogu. Doporučuji koupit knižku
Agile web development with Rails a začít. Ruby vás brzy chytne a nepustí. Určitě oceníte Unit testing, snadnou správu databázových tabulek pomocí migrací a spoustu dalších vlastností. Za vyzkoušení to určitě stojí.

[28] (Ronnie - Mail - WWW) 26.04.2007, 19:04:44 [X] [D]
PHP a Zend framework.

Zkoušel jsem i jiné frameworky, ale ZF vyhrál především díky široké komunitě uživatelů (odpadají začátečníci, člověk musí vědět, co je OOP). Framework je to docela rychlý a výkonný. Na Intervalu je bližší popis a důvody, proč se mi ZF zalíbil.

http://weblog.ronnieweb.net/?p=81

Najde(š|te) tam odkaz na prezentaci jednoduché CRUD aplikace (na to je ZF výborný) a odkaz na podcast přednášky o tom, proč se o ZF zajímat.

Rozhodně čas strávený poznáváním frameworku nebude ztracený. Doufám:)

[29] (Ronnie - Mail - WWW) 26.04.2007, 19:12:10 [X] [D]
Co se týče vytváření vlastních frameworků, mám pocit, že u PHPčkařů platí

Postav dům, zasaď strom, zploď syna a postav MVC framework:)

Nedávno jsem si četl spot jednoho z tvůrců PHP, kde kritizoval až zbytečné množství PHP MVC frameworků, myslím, že internetu je dostatek kvalitního kódu.

[30] (Arthur Dent [openID] - WWW) 26.04.2007, 19:17:00 [X] [D]
[29] ...ano, a naprostá většina stojí buď za starou belu, nebo řeší věci, co nepotřebuju způsobem, který se mi nelíbí.

[31] (Ronnie - Mail - WWW) 26.04.2007, 19:22:39 [X] [D]
http://weierophinney.net/matthew/uploads/2007-02-28-FrameworkPresentation.pdf

Zkuste se podívat přímo na prezentaci vytváření crud aplikace.

ZF sponzoruje přímo solečnost Zend a na vývoji se podílí na 150 vývojářů z různých oblastí. Dělám v něm cca 7 měsícu a jsem 100% spokojen.

[32] (rushid - Mail - WWW) 27.04.2007, 07:44:34 [X] [D]
Doporucuji podivat se na kombinaci Groovy / Grails

http://en.wikipedia.org/wiki/Groovy_%28programming_language%29
http://groovy.codehaus.org/
http://en.wikipedia.org/wiki/Grails_%28Framework%29
http://grails.codehaus.org/

[33] (Věroš - WWW) 02.05.2007, 10:38:27 [X] [D]
Ještě mne napadá, že Python je pěkný jazyk, ale pro nasazení na hodně vytíženém webovém serveru s může mít jeden velký probém - GIL (aka Global Interpreter Lock) - není potom možné lehce využít více procesorů.

Nevylučuju, že podobnou vlastnosti má i Ruby - to mělo myslím blahé paměti s opravdickými thready nějaké problémy. Naopak Java, Mono podobným neduhem netrpí.

Vypadá to, že někeré implementace Pythonu GIL nemají (IronPython), ale doporučuju ověřit.

Dá se psát tak, aby existence GIL nevadila, ale je to těžší...

Snad nejsem moc off-topic.

[34] (Mick ) 04.05.2007, 18:10:13 [X] [D]
Pro zajemce bych doporucil konferenci o RoR, vice na http://ostrava.rails.cz/