Na navigaci | Klávesové zkratky

Smějeme se s Delphi for PHP

Že je Delphi for PHP absolutní propadák, se už nějakou dobu ví. Prohra je to naprosto zasloužená. Borland (respektive jeho pobočka CodeGear) totiž vypustil produkt, kde prakticky nic nefungovalo. Zatímco Arthur už dal Delphi sbohem u první verze, já neodolal svodům CodeGearu a zkusil si nainstalovat docela čerstvou verzi 1.5. Mohu tak potvrdit, že ani v ní si aplikaci nespustíte! (to si nedělám srandu)

Je mi upřímně smutno z toho, kam to společnost, ke které jsem vzhlížel už jako dítě, kam to dotáhla. Byl to Borland, kdo dal světu IDE, kdo přišel s revolučním Turbo Vision a ustál i smrtící přechod na Windows. Sbohem a šáteček.

Ještě než jsem Delphi for PHP odinstaloval, zlákal mou pozornost zdrojový kód frameworku VCL for PHP (pro PHP 5), který má webové aplikace pohánět. Kdyby mě někdo v tu chvíli natáčel, zaznamenal by desetiminutový plynulý morphing od němého úžasu k hlasitému smíchu.

Ať se pobavíte taky:

  • autoři neví, že PHP má konstrukci foreach a zásadně iterují přes while(list($key, $val)=each($arr) (používalo se v PHP 3)
  • neví nic o statických metodách
  • slabě tuší o privátních metodách
  • naopak klíčové slovo global používají s úspěchem (více než 70 výskytů)
  • autoři neznají konstanty tříd, vše deklarují na globální úrovni
  • kód tříd je důkladně prošpikován HTML fragmenty, dosolen JavaScriptem a špetkou CSS
  • tyto framenty mají občas syntax HTML, občas XHTML
  • názvy CSS vlastností jsou psány někde velkými písmeny, jinde malými
  • zdrojáky se jen hemží zakomentovaným kódem a různými poznámkami, z nichž některé až zarážení svou triviálností:
    //calls inherited constructor
    parent::__construct($aowner);

    Programátor nejspíš dlouho googlil, co ten tajemný kód znamená, že si to pak samou radostí poznamenal 🙂

  • v kódu je použito $HTTP_SERVER_VARS (zavrženo v PHP 4.1)

Fakt by mě zajímalo, který zoufalec by na tom vybudoval aplikaci 🙂

p.s. CodeGear neusnul na vavřínech a už ohlásil IDE pro Ruby on Rails nazvané 3rdRail. Připouštím, dělal jsem si z Rubystů občas srandu, ale tohle bych jim nikdy nepřál!

Komentáře

  1. enoice #1

    avatar

    😁 hehe

    Ještě mimochodem, už se tu někdo ptal, ale odpověd nikde… Co chystáš s tím phpfashion.com? 🙂

    před 17 lety | reagoval [2] Jan Škrášek [3] Linus
  2. Jan Škrášek #2

    avatar

    #1 enoice, DGX planuje vlastní větev, to je jasny.. ;)

    S Delphi to šlo jednou dolů, pak nahorů, a je to teď zase dole.
    No a Delphi pro PHP je jen marný (a levný) pokus o návrat na trh. :)

    před 17 lety
  3. Linus #3

    avatar

    Škoda že to takhle dopadlo, podle mě to byl celkem zajímavej nápad, představoval bych si něco jako Visual PHP .nette

    #1 enoice, To je už jasný ne? 🙂

    phpfashion.com bude obsahovat sbírku těch asi nejkvalitnějších knihoven pro PHP.

    před 17 lety | reagoval [4] tark
  4. tark #4

    avatar

    #3 Linusi, Dibi už tam je :))

    před 17 lety
  5. Jiří Bureš #5

    Co myslíš, jsou ti vývojaří tak:

    1. blbí,
    2. neschopní,
    3. dotlačili je k tomu manageři?

    Nebo jak si to jinak vysvětluješ?

    před 17 lety | reagoval [14] David Grudl
  6. Dundee #6

    avatar

    No nevím jestli je to k smíchu nebo spíš k pláči…Nechápu, jak se může někdo pokoušet o napsání kvalitního frameworku, když nezná pořádně možnosti jazyka :(

    Btw: jak to vypadá s dokončením Nette? Konec listopadu už nám pomalu klepe na dveře ;)

  7. Jiří Hon #7

    avatar

    #6 Dundee, BTW: Očekáváte-li Nette (už roky) stejně netrpělivě jako mnoho tvůrců webu, nechť je vám aspoň náplastí na duši PHP Seminář – Nette. Vaše oko nezůstané suché. Ať už dojetím, či smíchem.

    před 17 lety | reagoval [8] The Zero [18] Pavel Jaroš
  8. The Zero #8

    avatar

    #7 Jiří Hone, Tohle říkáš zbytečně, Dundee to jako jeden z mnoha dalších viděl naživo… a proto se ptá na listopad ;)

    před 17 lety
  9. Roman #9

    avatar

    Aj ja pouzivam konstrukciu while(list($key, $val)=each($arr) neviem ci je to pre kvalitu mojho kodu klucove (urcite pisem aj podstatne horsie prasarny). Niekto pouziva uvodzovky, iny apostrofy. Niekto zacina mensi-otaznik-php a iny tam ten php nepise. Myslim ze podobny posmech by mohol nastat v 90 pripadoch zo 100 pri vzhliadnuti akehokolvek software na ktorom pracuje team viacerych ludi… aspon sa publikum trosku zasmeje… 😉

    před 17 lety | reagoval [11] Pavel Šindelka [14] David Grudl
  10. Martin #10

    hehe, smazáno 🙂

    před 17 lety | reagoval [21] Martin
  11. Pavel Šindelka #11

    avatar

    #9 Romane, No sice to nijak výrazně nevadí, ale s konstrukcí foreach je zkrátka kód výrazně čitelnější. Toť vše :)

    před 17 lety
  12. petr #12

    a co je za problem pri pouzivani klicoveho slova „global“ … se nesmi pouzivat?

    před 17 lety
  13. Dundee #13

    avatar
    před 17 lety | reagoval [16] Roman [27] David Grudl
  14. David Grudl #14

    avatar

    #5 Jiří Bureši, představuji si Borland jako firmu co zaměstnávala ty největší mozky přes kompilátory jazyků a architekturu VCL …a ze které nejschopnější postupně odešli. Člověk si asi dovede představit, co by to udělalo s kteroukoliv úspěšnou společností. Dokonce i to VCL4PHP si nechávala dělat u externí firmy.

    #9 Romane, jenže tady hodnotím kód, který by měl být výkladní skříní firmy CodeGear, čistým a vzorovým frameworkem.

    #6 Dundee, http://meteleskublesku.cz/…8/snd/33.mp3 🙂

    před 17 lety | reagoval [16] Roman
  15. David Grudl #15

    avatar

    Ještě pro zajímavost se podívejte jaký Delphi generuje kód 🙂

    Což mi připomíná další pikošku: bez JavaScriptu ani neodešlete formulář…

    před 17 lety | reagoval [16] Roman
  16. Roman #16

    avatar

    #14 Davide Grudle, Ok ok sak ja nic, len som si vzdy myslel ze tato krasna konstrukcia okopirovana z manualu PHP je tak nadherna a revolucna. Tak sa to samozrejme dotklo mojho ega 😉. (inak som tiez tu spominanu #13 Dundee prednasku videl v priamom prenose. Najviac sa mi pacilo ze som na predvadzani tvojho riesenia prace z URL konecne pochopil vyznam terminu wrapper. Diky 😉 #15 David Grudl Uff.. uz chapem. Inline styly, inline javascripty, velke male pismena hadr. Riadna divocina.

      <div id="Button2_outer" style="Z-INDEX: 2; LEFT: 360px; WIDTH: 176px; POSITION: absolute; TOP: 48px; HEIGHT: 25px">
    
    <input type="submit" id="Button5" name="Button5" value="Step It (10)"  onclick="return Button5ClickWrapper(event, findObj('Button5SubmitEvent'), 'Button5_Button5Click')"  style=" font-family: Verdana; font-size: 10px;  height:25px;width:176px;"   tabindex="0"    />
    </div>
    před 17 lety
  17. Roj #17

    avatar

    Pred par dny mi jeden sikovny venkovsky opravar spravil nove auto, pac jsem s nim nacouval do zabradli, ktere jsem nevidel.

    Oprava v znackovem servisu by stala tak petilitr. S objednanim za tyden. On to udelal za patnact set a trvalo mu to dvacet minut i s poklabosenim o porschatku, co mel na dilne.

    Vyrovnani plechu a nova zadni svitilna me prisla celkem na 1540,–Kc i s praci. Na me uzasle koktani a lapani po dechu jen proste odvetil: „Kdo nic neumi, jde delat do znackoveho servisu“

    A tak je to, mili pratele, vsude se vsim 🙂

    před 17 lety | reagoval [23] Věroš
  18. Pavel Jaroš #18

    avatar

    #7 Jiří Hone, No né, přednáška Iva Lukačoviče mě minimálně pobavila, ale tohle nemá chybu, to se nedá srovnat. Pan Grudl je rozený šoumen. Vybavila se mi vzpomínka na mého profesora programování docenta Fabiána, na jehož přednáškách jsem se bavil podobně…

    před 17 lety | reagoval [20] tark
  19. Gringo #19

    avatar

    #6 Dundee, Za sebe bych tipnul, že Nette vyjde 30. listopadu ve 23:59:59 🙂

    před 17 lety | reagoval [25] tark
  20. tark #20

    avatar

    #18 Pavle Jaroši, Jojo, já tady mám přednášku .. o frameworku nette .. nebo jak se to vlastně čte… HAHAHAHAHHA :D

    před 17 lety | reagoval [24] Pavel Jaroš
  21. Martin #21

    ad #10 Martin Ještě jsi mě zapomněl zablokovat, ty rozesmátej sejšne!

    před 17 lety | reagoval [22] David Grudl
  22. David Grudl #22

    avatar

    #21 Martine, jo ty jsi ten vůl, kterému jsem jako jedinému kdy zablokoval přístup na blog?

    před 17 lety
  23. Věroš #23

    avatar

    #17 Roji, díky za vysvětlení. Vždycky jsem přemýšlel, proč je značkový servis dražší. Nedávno jsem to na to přišel, všechno jim tam totiž trvá dýl. A teď už vím i proč 🙂

    před 17 lety
  24. Pavel Jaroš #24

    avatar

    #20 tarku, „…a to je právě druhá věc, kterou vám dneska neukážu…“ 🙂

    Tož já se musím též pochlubit, že podobné blbiny jsou programoval před lety i bez AJAXu 😉

    #stary-odkaz-#stary-odkaz-http://jaros.ezin.cz/item/on-line-herna

    před 17 lety | reagoval [25] tark
  25. tark #25

    avatar

    #19 Gringo, #24 Pavel Jaroš :

    z icq:

    <tark> #6 Dundee Dundee: Za sebe bych tipnul, že Nette vyjde 30. listopadu ve 23:59:59
    <a> nerikal jsem to taky? 😉
    <tark> jj
    <tark> 30. listopadu je patek :D
    <a> tak nic no, to bude dgx „pak byla nejaka parba…“

    před 17 lety
  26. Dr.Diesel #26

    2 dgx: A ja si app z Delphi pustil heeec heeeec 😁 Resp. na tom vlastnim Apachi, co si Delphi privlecou s sebou to tak nejak rozkouse, na jinym si to musis zaslouzit nebo nechapu na co tam ta exceptiona je. Ze zoufalstvi uz dali na FAQ, kde to je a kterak se toho elegantne komentarem zbavit 😁

    https://web.archive.org/…ndex.php/Faq#…

    Jako samotny to Delphi se mi libi, ale jak s tim zacnete delat nejaky „vylomeniny“ jako nedej boze prejmenovavani polozek, ci formu, tak radsi vytahnete nejaky lokalni SVNko, protoze Revert bude dobrej kamarad LOL

    2 Dundee a while list LOL LOL

    2 dgx sorry za diakritiku, už to nepřepisuju …

    před 17 lety
  27. David Grudl #27

    avatar

    #13 Dundee, konečne ten obrázek vidím, pořád se mi zobrazovala černá plocha.

    Tady je list()...each() použito záměrně. Obě konstrukce fungují malinko jinak. Foreach je značně rychlejší, má jednoduchou syntaxi, podporuje moderní interface Iterator a IteratorAggregate, umí iterovat nad výsledkem funkce a prochází pole tzv. externě – tedy je možné vícekrát vnořeně iterovat nad stejným polem. Kdežto list()...each() je pravým opakem. Archaická konstrukce, kde člověk nesmí zapomenout pole před procházením vyresetovat a jelikož iteruje interně, musí dbát na to, aby totéž pole neprocházela i zanořená funkce.

    Metoda fuckingQuotes ale této jinak nepříjemné vlastnosti využívá. Trik jsem poprvé viděl u Jakuba Vrány, tam je i další vysvětlení.

    před 17 lety
  28. Techi #28

    avatar

    Eclipse PDT + Zend Framework

    to je spása pro vývoj v PHP

    před 17 lety | reagoval [29] Dr.Diesel
  29. Dr.Diesel #29

    #28 Techi, PDT na notebooku ani moc ne. Otravuje to takřka pořád procesor a co pak dělá notebook… no?… 😉

    Ad Zend: Důvod, proč právě on? …

    před 17 lety
  30. Honza Odvárko #30

    avatar

    Nový program od Borlandu
    dělá si snad z lidí srandu,
    každý bajt jim zarotuje
    osmkrát – tak k čemu tu je!
    Hloupý program od Borlandu!

    před 17 lety
  31. pl4nt #31

    avatar

    ‚p.s. CodeGear neusnul na vavřínech‘

    :D hh

    před 17 lety

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.


phpFashion © 2004, 2024 David Grudl | o blogu

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.