Diskuze: Hledá se: náhrada PHP
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 27 zpráv z 27.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Myslel jsem čistě nebo primárně back-end jazyk. Dart už používám.
A teď vážně: Pokud chceš něco staticky typovaného vhodného pro web, použij Javu.
Pokud však nemáš možnost použít webhosting s Javou, nauč se pořádně PHP, protože se v něm už dají dělat kvalitní aplikace, u kterých ti dynamické typování vadit nemusí. Zdrojový kód PHP a Javy dnes už vypadá skoro stejně.
Mozes skusit D :
https://archive.org/…day02-talk04
Než Dart opravdu nahradí JavaScript (tj. bude možné ho použít bez kompilace do JS), bude to dost dlouho trvat (pokud se zároveň nezastaví jeho vývoj). Do té doby je ho třeba pořád ještě překládat do JS a v souvislosti s tím bych chtěl zmínit ještě TypeScript, který se do JS taky kompiluje. Takovou zaručenou (tj. odzkoušenoua použivanou ve spoustě velkých projektů) alternativou je CoffeeScript. Nakonec ani samotný JS na tom není tak špatně. Osobně bych šel právě do JS (ať už CoffeeScript, TypeScript, Dart)
Kromě klienta se dá použít i na serveru a to velice dobře. Node.JS, platforma založená na V8, je hodně pěkná.
Na Javu jsem už koukal, ale ta ve mně spolu s ASP.NET budí dojem obrovského nástroje, který se hodí na velké aplikace. Stejně to u té Javy ale nakonec nejspíš skončí.
To statické typování není nezbytně nutné, ale bylo by to jenom plus. Možná se ale ještě detailněji podívám na Dart, jestli by ten k tomu nešel nějak využít, protože u něj mi to typování přijde naprosto geniální.
Já právě pokukuji po Dartu
On se ani Google nesnaží o náhradu JavaScriptu. Vytváří Dart vedle JS. Kompilace do JS probíhá jednoduše. Dart jako takový podporuje(nebo v blízké době) bude podporovat Chrome. O ostatních prohlížečích se zatím nemluví.
Dart je tu zatím cca rok a půl. JavaScript 18 let.
jj, zkusil jsem si nasadit HTTP server Node.js. Je to zajímavé řešení.
Tak hlavní výhoda Dartu je oproti těm ostatním to, že může běžet samostatně (má vlastní VM). Nijak jsem ty technologie nechtěl hodnotit, jen jsem shrnul jak se dnes používají. Osobně se mi taky nejvíce líbí Dart.
Když to shrnu tak jsou tu IMHO 2 největší problémy při vývoji větší aplikace v JS: Jak do JS přidat typování? Jak v JS vyřešit moduly a jejich načítání?
JavaScript
CoffeeScript
to samé jako JS
TypeScript
Dart
Spíše PHP neumíš dost dobře na to, abys v něm kvalitní aplikace psal. Na tom jazyce v zásadě nic špatného není kromě pár starých funkcí, na které si můžeš udělat wrapper.
Hraji si pár dní s tím Dartem na serveru a vypadá to naprosto úžasně. Pokud někoho PHP občas na štve, nebo si prostě chce zkusit něco jiného, určitě by to měl být Dart.
No jo, 156 MB v zipu. To je pěkný macek. To je snad i s frameworkem dohromady. Raději zůstanu u osvědčeného PHP a JS.
Poslední co web potřebuje je nestandardní programovací jazyk od Googlu
Jestli stahuješ Dart Editor, tak se nediv. Samotné SDK má 22MB. Ano, sice
je to cca 2x tak velké, jako PHP, ale rozhodně to není 156MB.
Python bych Ti moc nedoporučoval - po pár měsících programování v něm ho považuji za koncepční omyl a šlápnutí vedle (to je teda nápad používat tabulátory jako součást syntaxe, a dále má mnohem menší startovací kontroly než PHP, takže snáze spadne na syntaktickou chybu až za provozu).
Čo sa ti nepáči na tabulátoroch?
Vlastne skoro každý ich používa v kóde aj tak, nech už ide o C++, PHP,
alebo Javu.
Python ťa k nim akorát núti, na čom nevidim nič zlé, zvykneš si mať
pekne vyzerajúci kód
Pokud je Dart 2× větší než PHP, tak server utáhne poloviční počet klientů. To však nemusí vadit. Záleží na tom, zda se aplikace skutečně zjednoduší nebo je to stejné šméčko jako různé šablonovací systémy, které dělají všechno složitěji než nativní PHP.
Tabulátory se v Pythonu používat moc nemají, přesto je používám. Nemělo by se používat víc než 3-5 úrovní zanoření, aby zůstala zachována přehlednost kódu.
Dokonce i kód v Javě či PHP píšu v pseudopythonu, který mi editor pod rukama překládá na Javu nebo PHP. Je to velmi pohodlné.
Pokud ti skripty padají až za chodu, chybí ti asi jednotkové testy, které jsou u skriptovacích jazyků téměř nezbytné.
Moc nechápu, co přesně máš na mysli. Nějak jsi tam do toho zamotal šablony. O nich tu nikdo nemluvil a v Dartu snad ani nejsou.
Jestli má být Dart webový server, musí mít i nějaký šablonovací systém.
To asi tvorcovia nedomysleli. Komu sa chce stláčať kláves 4-8x, keď
stačí 1?
Záleží na schopnostech editoru. Podle mne by se měl používat tabulátor (proto ho máme) a každý si ho má nastavit podle svých preferencí. Někdo 2 znaky, jiný třeba 10. Tím se zlepšuje přenositelnost zdrojáků.
Když je zmínka o jednotkových testech, využiju to na dotaz. Kódy Python a PHP přebírám od šéfa, který je samouk a myslím si že to používá nějak špatně, málo objektově. U skriptových jazyků (možná jen v jeho podání) mi vadí, že chybí typy proměnných. V C++ mám jasně dané, jakého typu je která proměnná (jaká třída, struktura) a tak hned vím jaké má členy a jak ji použít. Když používám jeho kódy, musím u každé proměnné nejdříve zpětně dohledat která funkce ji vrací, pak se podívat do funkce (až zjistím ve kterém zdrojáku je definovaná) jaké proměnné v té struktuře vytváří - a ty proměnné zas dohledat co obsahují, zda to jsou čísla, struktury atd. Je to neúnosně pracné a nepřehledné. Kde je chyba v použití, jak se to má dělat jinak? (Jednotkové testy u něj moc nepřicházejí v úvahu, protože má všechno provázané se vším, nejsou to uzavřené jednoduché třídy, navíc dědičnost neumí používat)
Jednotkové testy se dělají právě proto, aby špagetové kódy nevznikaly. Skriptovací jazyky mívají dynamické typování, ale to vůbec nemusí být na závadu. V PHP se u neprimitivních typů dá použít DI včetně interface, takže to máš i s polymofním typováním.
Psát jednotkové testy k hotovému kódu je na zbláznění. Musíš začít tím testem, což by ve tvém případě znamenalo to napsat celé znovu.
Zkus šéfa přesvědčit, aby ti dodával analýzu problému, kterou ty pak naprogramuješ. Jemu zůstane řídicí funkce a ty budeš moct programovat objektově.
Dobře napsaný kód programu zpravidla nemá řádky delší než 79 znaků, metody nejsou delší než 20 řádek a třídy nepřekračují 60 řádek. Pokud jeho kód výrazně překračuje tyto limity, je to špatně a svědčí to o chybné dekompozici úlohy.
Dynamické typování je vhodné pouze pro dobré programátory, protože v něm jde udělat spoustu chyb. Když je program dobře napsaný, poznáš již podle názvu metody co vrací. U projektů, na kterých dělá více lidí (obvykle méně kvalitních) se používá buď TypeHinting nebo PHPDoc, IDE ti potom napovídá co kam napsat, co která metoda vrací a podobně.
Zobrazeno 27 zpráv z 27.