Jazyk a framework pro stránky

Jazyk a framework pro stránky
« kdy: 06. 10. 2013, 12:52:04 »
Zdravím,
Chtěl bych se zeptat nebo spíš rozpoutat takovou debatu.
Jaký jazyk a framework si myslíte, že k nám dojde. Nebo budeme stále na nějakém PHP + Nette či jiný framework nebo i k nám dorazí Python a django, který je přehlednější.
V čem teď vůbec programujete.
« Poslední změna: 07. 10. 2013, 13:55:53 od Petr Krčmář »


Honza

Re:Webové stránky
« Odpověď #1 kdy: 06. 10. 2013, 13:03:19 »
Smalltalk, Seaside 3, MongoDB, bez problému

JarinBarin

Re:Webové stránky
« Odpověď #2 kdy: 06. 10. 2013, 13:55:25 »
Teď se weby hodně dělají v ruby, co jsem slyšel.

Re:Webové stránky
« Odpověď #3 kdy: 06. 10. 2013, 14:00:47 »
Brzy dorazi Drupal 8, tedy v podstate Symfony2 s nastavbou :)
S nejvetsi pravdepodobnosti bude schopen bezet nad MongoDB.

Vzhledem k casu potrebnemu postavit na tom prakticky jakykoliv web jasna volba.
Děkuji za možnost editace příspěvku.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Webové stránky
« Odpověď #4 kdy: 07. 10. 2013, 07:45:31 »
@Jack020: To je otázka jak cyp.

Citace
Back in 1995, we knew something that I don't think our competitors understood, and few understand even now: when you're writing software that only has to run on your own servers, you can use any language you want.
Paul Graham, Beating the Averages - http://www.paulgraham.com/avg.html

Jestli máš vlasntí server, použij si co chceš - mně se hodně líbí Tapestry (http://tapestry.apache.org/), Play (http://www.playframework.com/) nebo MS MVC (http://www.asp.net/mvc). U všech třech mám za sebou platformu, kde není nouze o knihovny téměř na všechno (u Javy je situace trochu lepší s knihovnama; u .Netu je zase příjemnější "základní jazyk" - C#)  a mohu využít funkcionální/hybridní jazyky (Clojure, Scala, F#). V práci používám Microsoftí věci (WCF a MS MVC).

Jestli se Ti dobře píše ve Smalltalku nebo přesněji "zvykneš-li si na Smalltalk a jisté odlišnosti, které má Seaside", a máš vlastní server, na kterém to můžeš hostovat, není důvod to nevyužít, pokud Ti to přinese konkurenční výhodu. Dokonce i Windows Azure nabízí linuxové servery*, takže se nemusíš vázat jen na sdílené hostingy a jejich klasiku - PHP verze 4 a obstarožní MySQL. Stejně tak jako Azure není jediný cloud hosting, kde můžeš dostat k dispozici vlastní server, takže se zcela jistě bude dát sehnat levnější varianta.

A jestli tím "k nám dorazí" myslíš "kdy malé firmy přejdou z PHP", tak to bude trvat. K volbě technologie, resp. k přechodu na jinou musí být celkem silný důvod. Zatímco "hobby" programátor nebo freelancer si zpravidla vybere to, v čem napíše program co nejrychleji (klidně Smalltalk/Common Lisp/Python ... RoR neznám, Ruby šel mimo mě), menší firma si zpravidla vybere to, kde může najít nejlevnější hosting a nejvíc nejlevnějších programátorů a administrátorů (= PHP a MySQL na linuxovém serveru, zažil jsem to, že většina programátorů byly maturanti z gymplu, co se nedostali na vysokou a PHP se naučili z 10 stránkového tutorialu na netu).

Velký zaměstnavatel má motivy jiné - "talent pool" (= když někoho vyhodí, může si vybírat z dostatečného množství nových kandidátů?), "cover your ass" (= nobody was ever fired for choosing WebForms/Spring/JSF), "knowledge pool" (= kolik firem podporuje danou technologii; stojí za danou technologií velká stabilní firma?), "stability" (= budou velké změny? Hlavně abychom programátory nemuseli učit něco nového, to jsou náklady navíc, hlavně abychom si nemsueli snížit vlastní plat (€3000/měsíc)), "backward compatibility" (= mám 10 let starý projekt, zprasený tak, že se v něm nikdo nevyzná, poběží aniž bych do něj musel zasahovat?). Ve větších firmách není problém i v dnešní době vidět věci jako je ColdFusion, Javová webová aplikačka z doby před JSF (v novějších částech je použito JSP, ve starších jsou jenom servlety) nebo velký tlustý klient ve Visual Basicu 3 (16bitová aplikačka; na 64bitových systémech neběží, proto jsou u zákazníků nasazeny Windows Server 2003, na kterých je to nainstalované a přes Terminal Services si to pouští ženské v kancelářích).

Dokud se u firem nezmění tyto výchozí podmínky, "tak k nám nic nového nedojde". Rozhodně ne pro to, že porgramový kód je přehlednější. Upřímně, já osobně na uživatelské rozhraní/weby/služby preferuji jazyk, ve kterém sice není tak přehledný kód, ale má dobrou podporu ze strany vývojových prostředí (Java, C#). Na samotnou funkcionalitu pak mám nejraději co nejjednodušší a nejpřehlednější jazyk (Clojure, Lisp).



* viděl jsem tam Ubuntu Server, Open SUSE a SUSE Enterprise, Oracle Linux a jako preview (= zatím za sníženou cenu, zákaz použití pro produkci) několik dalších věcí od Oraclu, např. systém s předinstalovaným WebLogic; osobně jsem z těchto zkoušel jen Ubuntu server z příkazové řádky - ruční instalaci Oracle Javy, Jetty a Apache (z balíčků) s reverse proxy na aplikačku na Jetty - bez problémů. Je to levnější než Windows Server, který na tu diplomku stejně nepotřebuju.


Re:Webové stránky
« Odpověď #5 kdy: 07. 10. 2013, 08:34:36 »
menší firma si zpravidla vybere to, kde může najít nejlevnější hosting a nejvíc nejlevnějších programátorů a administrátorů (= PHP a MySQL na linuxovém serveru, zažil jsem to, že většina programátorů byly maturanti z gymplu, co se nedostali na vysokou a PHP se naučili z 10 stránkového tutorialu na netu).
Jako zivnostnik a brzy snad mala firma muzu rict, ze to takhle zdaleka neni vzdy. IMHO kvalita produktu nezavisi temer vubec na zvolenem jazyce nebo technologii. Neni to o tom jestli Drupal nebo Django. Je to o systemu a fungovani firmy. Co bude lepsi?
- firma ktera dela "jen" Drupal, pouziva git, testuje kod, pouziva treba jenkins
- firma ktera sice dela megasupercool technologii ale lepí

Taky neresim hosting kdyz jedu na svem serveru tak je mi jedno zda jedu PHP nebo neco jineho. Ale proste na drtivou vetsinu webu je PHP a MySQL dostatecne dobre. To same plati o Drupalu(nebo jinem CMS) - jestlize zvladnu za vecer naklikat web a nastylovat sablonu a zkasnout za to treba dvacitku tak proc bych hledal neco "lepsiho"? Co by mi prineslo treba Django nebo SmallTalk? Jakym zpusobem bych na tom mohl vydelat vic penez?
Děkuji za možnost editace příspěvku.

Re:Webové stránky
« Odpověď #6 kdy: 07. 10. 2013, 09:28:53 »
Podla mojich skusenosti zakaznika ani tak velmi nezaujima ci PHP alebo Python, ale skor ako rychlo sa projekt dokonci, ci bude fungovat ako ma a ako rychlo sa urobia updaty. No a pokial bude najjednoduchsie zohnat prave PHP programatora na nove projekty alebo upgrade starych, tak bude pomer PHP vs. zvysok sveta taky aky je.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Webové stránky
« Odpověď #7 kdy: 07. 10. 2013, 09:56:47 »
Jako zivnostnik a brzy snad mala firma muzu rict, ze to takhle zdaleka neni vzdy. IMHO kvalita produktu nezavisi temer vubec na zvolenem jazyce nebo technologii.

Netvrdím, že je (a doufám, že jsem se Tě nedotkl :-) ). Drupal zcela jistě je kvalitní produkt (byť ke stylu, jakým je napsána a zdokumentována verze 5 a 6 mám výhrady; ale přiznávám, že u novějších verzí jsem si na jeho střeva nesáhl, možná, že to už neplatí), podobně Wikipedia ... btw stále platí, že Facebook má UI napsané v kombinaci PHP a C?

Jakkoliv je PHP prasácky navržený jazyk (dá-li se o smysluplném návrhu vůbec hovořit), jedná se o technologii, kterou je:
  • snadné se z hlediska programátora naučit (a sehnat dobrého PHP programátora je pdobné jako sehnat dobrého .Neťáka - poměr idiot:použitelný je podobný, jen PHPčkaři jsou zpravidla levnější), oficiální dokumentace není špatná, informačních zdrojů je také dost
  • z hlediska architekta existuje celkem dost použitelných frameworků a "business ready" řešení, které jsou dobře rozšiřitelné (např. Drupal - sám jsem si zkusil do něj psát pluginy a je to celkem pohoda; nebo Slim framework (http://www.slimframework.com/))
  • z hlediska product ownera je relativně snadné najít relativně levnou dobrou pracovní sílu a administrátory
  • z hlediska administrátora je poměrně jednoduché rozjet hostingový server a udržet jej při životě

Pokud bych měl, stejně jako Ty, zakládat firmu, asi bych o tomto také uvažoval (na malé aplikace), byť mám k PHP silnou averzi. Každopádně už několikrát jsem narazil na to, že PHP bylo nepřekonatelně pomalé a paměťově náročné a to i s využitím Zend serveru. Víkend strávený s profilerem, zkoušení různých knihoven (a nakonec napsání některých vlastních) a ladění s prominutím každé kraviny (a přepisování části věcí do C), aby ta aplikace byla rozumně použitelná, si velice živě pamatuji.

Nicméně byť je interpret PHPčka nepřekonatelně pomalý a žravý, jeho výkon je na menší aplikace více než dostačující. MySQL také nedává moc možností (např. ve srovnání s MSSQL), na druhou stranu je pro většinu věcí také postačující.

Re:Webové stránky
« Odpověď #8 kdy: 07. 10. 2013, 10:40:53 »
Tak ono je to o tom na zacatku premyslet a analyzovat... Bankovni system na tom stavet nebudu. Ale kolik firem si sahne na podobne projekty? A vsechny ty ostatni prezentace a eshopy to v pohode zvladne.

Drtivou vetsinu webu je z principu mozno efektivne cachovat(treba ten "muj" drupal na to ma efektivni nastroje a muzu pouzit memcache, mongodb, primo APC, redis atd. muzu si dopsat rychle a jednoduse napojeni na jakykoliv jiny system) coz ve spojeni s APC dela i z takovyho molochu rychle servirovane weby(je o tom krasne video s prednaskou jak ladili Grammy).
A kdyz mi nebude stacit MySQL (a i na Drupalu takove projekty mam) tak je tu postgres. Mimochodem, kdyz ma clovek dost pameti a vlastni server(aspon virtualni) tak treba Percona je dooost rychla.

D5 a D6 byly v podstate komplet proceduralni, z pohledu skutecneho programatora prasarna, ale to je davna historie.
D7 je maly naznak jinam a D8 ktery brzy vyjde je postaveny na Symfony2 coz z nej dela plnohodnotny objektovy MVC framework a k tomu pridava uzasne frontend nastroje.

Je pravda a nebojim se priznat si to, ze nejsem zadny programatorsky geek. Ale zakaznikovi je jedno na cem to bezi - tak jak rikas: hlavne aby to bylo rychle, aby nebyl problem delat upravy. Proste je to efektivni, je to pro vsechny strany vyhodne.

A nevidim nikde ten nize zmineny "dost silny duvod" prechazet na neco co je mozna "objektivne" hezci, ale nic pozitivniho mi to neprinese.
Děkuji za možnost editace příspěvku.

Re:Webové stránky
« Odpověď #9 kdy: 07. 10. 2013, 10:41:38 »
Jo a muzu rict, ze najit KVALITNIHO
Děkuji za možnost editace příspěvku.

Re:Webové stránky
« Odpověď #10 kdy: 07. 10. 2013, 10:42:55 »
programatora PHP a tim spis pak pro nejaky framework neni vyrazne levnejsi nez pro jine jazyky a nabidka je taky dost slaba.
(odeslala mi to tady mlada jak si macka na klavesnici  :D )
Děkuji za možnost editace příspěvku.

Re:Webové stránky
« Odpověď #11 kdy: 07. 10. 2013, 17:43:10 »
@Emko Ano je to otázka jak cyp :D ...

Jelikož jsem programátor na SŠ a sám se pořád učím další a další věci jelikož je škola spíš mrtvá díra je nejlepší si ziskavat informace sám.
Jde mi o to že jsem si prošel PHP ze začátku čisté OOP potom Nette, CI,Yii a narazil na Python s tím, že je možné že je to dobrá volba do budoucna. ted nevím zda zůstat na nějakém PHP kterého je všude plno nebo se začít raději učit něco, co bude v budoucnu snad využitelné.
Většina webu je stále v PHP apod. ale četl jsem že třeba Google, Youtube apod pracují běží na pythonu a tak si myslím že je to možná i dobrá krok do budoucna. Chci se posunout dopředu ne dozadu. Nebo pokud by mi někdo napsal co ted zrovna "frčí" a je zajímavé tak bych to ocenil.
Díky

troub

Re:Jazyk a framework pro stránky
« Odpověď #12 kdy: 07. 10. 2013, 18:38:02 »
Pro mne byla volba jednoducha, protoze jsem chtel napsat neco pro sebe a ne komercne. Takze MS .Net jsem zavrhl a PHP taky. Python se mi libil pro moznost mit i funkcni [exe] program na win/linux. Navic je pouzivan tusim v Blenderu, Gimpu atd. Umi export do .net a ten Google na nem jede i kdyz co je dulezite je [tusim] v C. Prave moznost napsat rychle aplikaci a pak doladit v pripade potreby vyssi rychlosti casti v C a v tomhle dobra spoluprace Python - C se mi libilo. Ale PHP, SQL, JS atd se stejne uzivi.
U Pythonu mi prijde, ze je kam rust, u PHP mi to tak neprijde.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Jazyk a framework pro stránky
« Odpověď #13 kdy: 07. 10. 2013, 20:49:36 »
@Jack: OK, jsi-li na střední, pak chápu dotaz. Přestože některé střední školy jsou OK, většinou je úroveň IT vzdělání dost nízká a nelze než doporučit jít na IT vysokou. Já jsem také programoval již během střední (byť v té době letěla Delphi 7 a Visual Basic 6) a pracovat jsem začal během druháku na výšce - půl roku PHP, pak .Net (+ občas PHP - Nette, Drupal, Slim framework (REST služby)). Formální vzdělání a totální peklo, čímž IT vysoká škola je, doceňuji až časem. Ale rozhodně doporučuji na školu jít.

V takovém případě je lepší volba onen Python - ten jazyk není navržen úplně zle a dá se v něm psát i desktop aplikace. (To se dá v PHP samozřejmě taky, ale je to jako hrát na kytaru půleurovkou místo trsátka - tj. ve stavu těžké nestřízlivosti dobrá sranda, ale praktické využití 0. :) ) Hlavní výhodou Pythonu oproti PHP je to, že PHP je jazyk a prostředí původně určené na blití textů na standardní výstup (CGI skripty), což prostředím samotným a kulturou uživatelské komunity stále prosakuje. Chceš-li dělat weby, není to špatně. Python je od počáku navržen jako skriptovací jazyk - univerzální jazyk na malé aplikace. Ano, má své mouchy a má jich hodně (nejvíc asi Global Interpreter Lock, na což narazíš pokud se rozhodneš psát netriviální GUI aplikaci - pokud chceš, aby něco běželo paralelně, musíš to pustit jako samostatný proces, nestačí vlákno - ale existuje knihovna, která to řeší za Tebe, jen je třeba dbát určitých omezení), ale je to celkově univerzálnější a pro Tebe jako programátora myslím si výhodnější platforma. Ostatně na MIT přešli při výuce základů programování z Scheme na Python.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Jazyk a framework pro stránky
« Odpověď #14 kdy: 07. 10. 2013, 21:25:10 »
Pro mne byla volba jednoducha, protoze jsem chtel napsat neco pro sebe a ne komercne. Takze MS .Net jsem zavrhl a PHP taky. Python se mi libil pro moznost mit i funkcni [exe] program na win/linux. Navic je pouzivan tusim v Blenderu, Gimpu atd. Umi export do .net a ten Google na nem jede i kdyz co je dulezite je [tusim] v C. Prave moznost napsat rychle aplikaci a pak doladit v pripade potreby vyssi rychlosti casti v C a v tomhle dobra spoluprace Python - C se mi libilo. Ale PHP, SQL, JS atd se stejne uzivi.
U Pythonu mi prijde, ze je kam rust, u PHP mi to tak neprijde.

Tvoje zpráva vyznívá velmi zvláštně a je napsána celkem nešťastně a hlavně velmi zmateně. Připomíná mi to spolužáka, který dorazil do školy na přednášku sjetej kokešem.

  • jsem chtel napsat neco pro sebe a ne komercne. Takze MS .Net jsem zavrhl
    I v .Netu se dá psát nekomerčně. Kompilátor je zcela zdarma, run-time knihovny také, Visual Studio Express edition (čti Crippled edition) je také zdarma; existuje SharpDevelop, který je celkem ucházející vývojové prostředí.
  • Python se mi libil pro moznost mit i funkcni [exe] program na win/linux
    .Net a Mono (multiplatformní, byť neúplná implementace .Netu) toto umí taky. S Monem můžeš mít spustitelný .exe soubor i na linuxu - on to totiž není "pravý" exe a dll, není to nativní kód - proto je to stejné pro všechny platformy.
    Pokud bychom zabrousili do Java světa, tak i tam existují nástroje, které zabalí javový .jar do .exe (osobně mám dobrou zkušenost s JSmooth a Launch4j) a přibalí k němu Java Runtime Evnironment, takže na cílovém počítači nemusí být Java předinstalovaná. To samé se dá udělat i pro většinu skriptovacích jazyků.
  • Navic je pouzivan tusim v Blenderu, Gimpu atd.
    Pokud nechceš psát pluginy pro tyto grafické aplikace, je to argument k ničemu. To je jako kdybych si jej vybral proto, že byl použit v Civilization IV (což mimochodem skutečně byl).
  • Umi export do .net
    WHAT THE F*CK?????? Implementace pythonu jménem Iron Python se kompiluje do MSIL a běží na .Netu, Jython zase do bytecodu JVM a běží na Javě. Ale jsou to trochu "second-class citizens" v tomto světě. Originální implementace je jen jedna. Při použití IPythonu nebo Jythonu můžeš narazit na celkem dost problémů s knihovnama.
  • a ten Google na nem jede
    To je pravda jen z části.
  • i kdyz co je dulezite je [tusim] v C
    CPython (to, co všichni známe pod názvem Python) je napsáno v C (až na části,  které jsou v Pythonu nebo TCL). Iron Python (ten co umí "export do .net") nikoliv. Jython také ne.

    Nechci Ti brát vítr z plachet, ale PHP je také napsáno v C. .Net bude buď C++ nebo C. Java to samé. Perl je také v C.
  • dobra spoluprace Python - C
    Ještě aby ne :-) . Ostatně Cčkové knihovny se dají natáhnout celkem slušně v .Netu (už jsem si z .Netu vyzkoušel co to je hrabat přímo na hardware ... nebylo to tak zlý), v Javě, PHP nebo Perlu taky. Někde je to trochu lepší, někde trochu horší. Ale hele, interpret JavaScriptu, který je součástí Firefoxu (nevím jak u ostatních - tam jsem to nezkoušel), má také celkem slušné rozhraní pro volání C knihoven.