Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: vyvojar 07. 11. 2013, 21:54:41
-
No napadl mě takový asi hodně bláznivý nápad. Ve škole jsme měli jazyky a překladače a dost mě to bavilo. V rámci předmětu jsme taky implementovali takový scriptovací jazyk, řekl bych, že to umělo tak 70% toho, co umí php (když nepočítám OOP). Hodně se nadává na php, že je pomalé, tak mě napadlo, že bych ten interpret zkusil napsat od začátku :D. Naprogramovat ten základní interpret, zatím neuvažovat třeba OOP a pak to rozvíjet dál. Nadruhou stranu je mi jasný, že už ten jazyk funguje hodně dlouho a dělá na tom určitě spousta chytrých lidí, takže ten můj nápad je asi hodně mimo realitu. Co myslíte?
-
Podľa mňa z toho nikdy nič poriadne nebude, ale ak ťa to baví, tak smelo do toho. Svojho času (v 80-tych rokoch) som si napísal interpret jazyka Forth. Bol celý v assembleri, zaberal asi 4kB. Nikdy som ho na nič nevyužil, pretože skôr ako sa mi to podarilo som prešiel na PC, ale myslím si, že ma to vtedy posunulo dopredu.
-
Nápad to není úplně mimo ale pohybuješ se na úrovni tisíců hodin práce, chtělo by to sehnat nějaké podobné nadšence, na jednoho je to asi příliš. Ve škole jste si jenom tak hráli, ve skutečnosti tě čeká daleká cesta.
-
Můžete se podívat třeba na Haskell: http://codeutopia.net/blog/2013/01/16/parsing-and-evaluating-php-in-haskell-part-1/
-
Můžete se podívat třeba na Haskell: http://codeutopia.net/blog/2013/01/16/parsing-and-evaluating-php-in-haskell-part-1/
Míněno interpreter PHP napsaný v Haskellu
-
To vůbec není špatný nápad, ale toho OOP bych se nevzdával.
Implementovat primitivní OOP není tak těžké, jak se zdá.
A když už v tom budeš, můžeš to upravit tak, abys mohl nahradit nejen PHP, ale i JavaScript a do návrhu zavést i přímo něco Aka smarty.
Třeba se z hračky stane něco dobrého.
-
No napadl mě takový asi hodně bláznivý nápad. Ve škole jsme měli jazyky a překladače a dost mě to bavilo. V rámci předmětu jsme taky implementovali takový scriptovací jazyk, řekl bych, že to umělo tak 70% toho, co umí php (když nepočítám OOP). Hodně se nadává na php, že je pomalé, tak mě napadlo, že bych ten interpret zkusil napsat od začátku :D. Naprogramovat ten základní interpret, zatím neuvažovat třeba OOP a pak to rozvíjet dál. Nadruhou stranu je mi jasný, že už ten jazyk funguje hodně dlouho a dělá na tom určitě spousta chytrých lidí, takže ten můj nápad je asi hodně mimo realitu. Co myslíte?
radsej by si mohol napisat transpiler pre nejaky moderny jazyk, ktory by sa kompiloval do PHP.
uz ma nebavi pisat:
function foo($max)
{
return array_filter(array_map(function($i)
{
return ord($i);
}, array('a', 'b', 'c', 'd', 'e', 'f')), function($i) use($max)
{
return $i >= $max;
});
}
namiesto:
let foo max =
['a' .. 'f']
|> List.map int
|> List.filter (fun i -> i >= max)
-
Bez ohledu na to, že je to velký úkol, protože je zapotřebí udržovat zpětnou kompatibilitu, která nemusí být zrovna pěkná, tak bych doporučil se podívat na LLVM.org a možná to napsat jako vrstvu mezi jazykem PHP a JIT v LLVM.
A samozřejmě ten jazyk nedělá jen základní syntaxe, a základní sada knihoven, což je už úkol na úplně jiné úrovni, pokud teda nebudete podporovat přímo nahrávání nativních PHP extensions (ale to se pak pravděpodobně dostanete tam, kde je teď PHP).
Osobně bych Vám místo psaní úplně nového interpreteru PHP doporučil vylepšit ten stávající (třeba tím, že tam tu podporu pro JIT z LLVM doprogramujete).
-
http://www.youtube.com/watch?v=mXaNt2yFJwk
-
http://morepypy.blogspot.cz/2012/07/hello-everyone.html
ale radeji se podivej po smzsluplnejsi praci jak lestit php ;)
-
Ve škole jsme měli jazyky a překladače a dost mě to bavilo.
...
Co myslíte?
Směle do toho. Zažiješ peklo, budeš nadávat, zažiješ bezesné noci, kdy Tě budou strašit noční můry, ale udělá to z Tebe lepšího developera. ;-) Na druhou stranu, moc nepočítej s produkčním nasazením. Napsat interpret/kompilátor není zadek ani u jednoduchých jazyků a ať se budeš snažit sebevíc, první verze rozhodně nebude dosahovat produkčních kvalit.
Samozřejmě, pokud Tvůj projekt bude hodně dobrý, může vzbudit zájem v některých lidech a na jeho základě může vzniknout druhá verze (počítej z kompletním přepisem ;-) ), která udělá díru do světa. Stejně tak se toho může chytnout nějaká firma a financovat vývoj.
Ale reálně ani s jednou možností moc nepočítej - je to fajne téma na bakalářku, toť asi vše.
-
Hmm, a co tak si najskor precitat o tychto veciach?
Namiesto kompilatora:
PHP virtalna "masina" od Facebooku http://en.wikipedia.org/wiki/HipHop_for_PHP (vraj chvilami az 6-9x rychlejsi ako Zend PHP interpreter)
kompilator (sice pre C#, a skor Windows, a skor 32bit, ale z Prahy!) http://en.wikipedia.org/wiki/Phalanger_(compiler)
(inak, este sa mi zda, ze tento rok som cital aj o nejakom dalsom "kompilatore" PHP, co je este rychlejsi ako ksichtoknihovy "HipHop")
a ked uz sa hrat s kompilatormi:
dufam, ze nie Lexxom a Yaccom, ale nejakym modernejsim pristupom:
ako PEG (parsing expression grammers)
napriklad OMeta: tinlizzie.org/ometa/ (je to implementovane v roznych jazykoch)
(na hranie, mozno JavaScript: http://tinlizzie.org/ometa-js/#OMeta_Tutorial)
ale, ako to uz niekto spominal, hor' sa do prace, hocico vas zlepsi ako programatora...
-
Tiez myslim, ze ho ucili s lexxom a yaccom :) Aspon ja som sa pred par rokmi ucil v skole tieto veci pomocou tychto dvoch nastrojov.
-
My jsme se ve škole dokonce učili bez těchto nástrojů. :-)
-
No napadl mě takový asi hodně bláznivý nápad. Ve škole jsme měli jazyky a překladače a dost mě to bavilo. V rámci předmětu jsme taky implementovali takový scriptovací jazyk, řekl bych, že to umělo tak 70% toho, co umí php (když nepočítám OOP). Hodně se nadává na php, že je pomalé, tak mě napadlo, že bych ten interpret zkusil napsat od začátku :D. Naprogramovat ten základní interpret, zatím neuvažovat třeba OOP a pak to rozvíjet dál. Nadruhou stranu je mi jasný, že už ten jazyk funguje hodně dlouho a dělá na tom určitě spousta chytrých lidí, takže ten můj nápad je asi hodně mimo realitu. Co myslíte?
Tak PHP zase tak pomale neni, jen clovek musi tento jazyk dobre znat a vedet jak jej spravne pouzivat. Pokud ale i tak narazy na vykonnostni problemy tak pak se da pouzit HipHop (Sam jsme ho testoval v praci na nasem kodu a opravdu je to docela ficak). A pokud by i tak nadale byl kod pomaly, tak uz asi pomuze jen prepsat do kompilovatelneho jazyka.
Jinak nechci te od toho odrazovat. Myslim si ze jako zajimavy projekt, na kterem se toho hodne naucis to nemusi byt uplne ztrata casu.
-
Ja myslim, ze je to ztrata casu - mozna tak pro zabavu. PHP nikdy nenahradis. I kdyz neni nejlepsi, proste je tu neuveritelne dlouho, je v povedomi lidi. A hlavne klienti, kteri maji weby v PHP nebudou prechazet na jakysi interpret. Nehlede na to, ze si myslim, ze i do budoucna je PHP mrtve. Tedy jestli nepredvedou neco lepsiho z OOP. To co je tam ted, je proste paskvil. A i kdyby se Ti to povedlo trochu uchytit, tak dopadnes jako Grudl se svym zmrsenym paskvilnim Nette, kteri pouziva jen par nadsencu. Nehlede na to, ze takovy vyvoj jsou opravdu tisice hodin, musis to stale vylepsovat. Mam hodne zkusenosti, ze lidi zacnou u PHP a nakonec prejdou na .NET / Javu. Verim ze to jei kvuli tomu jak je PHP zprasene, ale i kvuli tomu, jake jsou k dispozici projekty - prasarna PEAR atd.
-
Díky za reakce.
S yaccem ani lexem jsme nedělali, dneska už se stejně používájí tuším nějaké nástroje od apache, které tyhle dva zmíněné posouvají někam dál (bison + flex ?). Jinak to co bych dělal by byla taková nadmnožina php, tzn. určitě by se to po syntaktické a sémantické stránce chovalo stejně jako PHP, ale mohli by tam být nějaké vychytávky např. pro práci s poli, jak už někdo uváděl a taky zabudování nějakého template enginu alá smarty by nebylo vůbec špatné. Celkově doba vývoje webových aplikací od vzniku php hodně pokročila a php zůstává víceménně pořád stejné, takže by od věci vůbec nebylo promyslet třeba nějakou podporu pro websockety a podobné technologie. Zatím je to všechno takový "sen", musel bych to všechno nějak promyslet, aby to do sebe zapadalo. Jinak ještě k tomu, že by php mělo umřít nebo že lidi přechází na javu či .NET. Úplně bych to netvrdil, tyhle technologie rozhodně mají svoje místo, ale java ee cílý hlavně na opravdu true enterpreise projekty a ne nějaké eshopy atd., i když to v tom dělat lze. .NET určitě taky pěkný, kdysi jsem ho zkoušel a líbilo se mi to, ale jakož to čím dál tím větší MS hater si myslím, že fakt lidi nezačnou používat windows, aby mohli programovat v .NET. A celkově už by to bylo takový slovíčkaření, php dle mě nevymizí jenom tak. To, že PHP je dobrá volba demonstruje i Facebook, protože paradoxně i když tady jsou všechny ty javy a pythony a ruby, tak ta největší aplikace běží na PHP, byť tam dochází k nějakému překladu do C++.
-
To, že PHP je dobrá volba demonstruje i Facebook, protože paradoxně i když tady jsou všechny ty javy a pythony a ruby, tak ta největší aplikace běží na PHP, byť tam dochází k nějakému překladu do C++.
Což znamená přesný opak - pro ně to není dobrá volba, ale evidentně kompilovat to přinese méně nákladů. To, že někdo velký používá něco, neznamená, že je to dobré, zvlášť, když s tím má nemalé problémy.
java ee cílý hlavně na opravdu true enterpreise projekty
Ach ta čeština, Ty jí teda dáváš. Několikrát chyba ve shodě podmětu s přísudkem a teď "cílý"... Každopádně pro vytvoření webshopu v Javě není třeba využívat celou Java EE. Existují frameworky, které dokonce ani nevyužívají Servlety (např. Play!) a tím pádem nepotřebují ani aplikační server.
taky zabudování nějakého template enginu alá smarty
To nepřinese nic dobrého. Dostaneš se na stejnou úroveň, jako mixování php a html kódu - to v současné době je možné. Template system by měl být oddělený, ne zabudovaný v jazyku.
Zatím je to všechno takový "sen"
Tam by to taky IMHO mělo zatím zůstat. Máš příliš megalomanské plány, tohle není možné v rozumném čase v jenom člověku zvládnout, podporovat a ještě vytvořit + udržovat dokumentaci.
-
Mno sice jsem maturoval z češtiny za 1, ale je pravda, že od té doby, co jsem přestal pravidelně psát česky, jsem trochu ztratil takovou tu automatickou bezchybovost. Za chyby se omlouvám, pramení z nepozornosti než z neznalosti.
Každopádně k tomu PHP a že překladač do C++ znamená, že jim to nevyhovuje... Ono by jim na 99,9% u tak rozsáhlé aplikace nevyhovoval asi žádný interpretovaný jazyk. Navíc času na to přejít na jinou platformu měli určitě víc než dost, facebook nebyl hned obrovská aplikace a bylo tam jistě spoustu chytrých lidí, kterým by došlo, že php nebude to pravé ořechové ještě předtím, než bylo pozdě to celé přepisovat. Takžde podle mě jim to PHP opravdu vyhovuje.
-
S yaccem ani lexem jsme nedělali, dneska už se stejně používájí tuším nějaké nástroje od apache, které tyhle dva zmíněné posouvají někam dál (bison + flex ?).
Jak Vás tak poslouchám, tak byste místo megalomanských plánů měl raději začít tím, že se trochu ponoříte do problematiky.
-
Místo snu o resuscitaci slepého střeva by imho bylo rozumější pomoct nějakému dobře zacílenému modernímu projektu.
Pokud ti jde o weby, koukni na https://github.com/elixir-lang/dynamo - to je imho velmi slušně vymyšlený projekt a pokud se chceš vrtat v překladačích, tak tam taky můžeš (Elixir má překladač, který vytváří AST kompatibilní s Erlangem, dál už překládá klasický Erlang překladač).
-
http://www.reddit.com/r/IAmA/comments/1nl9at/i_am_a_member_of_facebooks_hhvm_team_a_c_and_d/