Jaký programovací jazyk zvolit?

Hapi

Re:Jaký programovací jazyk zvolit?
« Odpověď #255 kdy: 29. 08. 2016, 13:53:29 »
No... Tak předně ten komentář jsem nepsal za účelem vyvolání bouřlivé diskuze na téma: Jak to vypadá s PHP.
Já osobně v PHP programuji od svých 14ti let a tedy 16 let, z toho 10 let profesionálně. Takže moje narážka na PHP nebyla mířena jako útok.

Za ty roky jsem více či méně poznal i jiné jazyky, ať už během kariéry a nebo hraním si po večerech. Majoritně Java a Python.

Je mi jasné, že to co teď napíšu nepovede ke zdárnému uzavření této debaty, která je spíše k pivu, než na fórum. Bohužel jsem nedokázal být natolik vyrovnaný, abych nepřijal hozenou rukavici.

PHP už dnes má vcelku dobrý základ. Kdo někdy viděl zdrojové kódy interpretu a to hlavně před vydáním sedmé verze, pak chápe, že PHP je venku huj, uvnitř fuj. Je to moloch, který vznikl za úplně jiným účelem, než ke kterému se používá dnes. A tím započala jeho cesta navrchol.

PHP vzniklo podobně jako MySQL. Původně vytvořeno tak aby bylo primitivní a později pod tlakem komunity vyrostlo na stejnou složitost, kterou mají jiné jazyky. Mělo se jednat o dynamický šablonovací systém, ve kterém se dají dělat obyčejné weby alespoň trochu efektivně.

V PHP stačilo a stačí relativně málo, aby v něm kdokoliv "cokoliv" udělal. Stačí Vám podmínky, include a cykly a máte statický web bez duplicit. A i proto se zažilo dogma, že PHP programátoři jsou bastlíři a lepiči kódu. Pro hnidopichy: To je asi 10 let dozadu.

Dlouho chyběly nástroje na na správu knihoven. Nejednotnost nastavení webhostingů vedla k tomu, že projekty byly nepřenositelné. Všichni jsme se báli extensions a psali si vlastní knihovny. Zde nastal boom až v nedávné době - composer, docker atd. A i samotný deploy je pro svět PHP docela nová věc a divili byste se, jak velké projekty dodnes používají FTP a ruční deploy.

Nicméně dodnes má PHP nejednotné jmenné konvence, každá funkce má jiné pořadí parametrů. Nelogické chování. Nikdy nenaimplementujete ArrayAccess tak, aby se choval naprosto identicky jako pole. Konkrétně se jedná o $a[null] = 'foo'; a $a[''] = 'foo';

Magické přetypování a díky tomu nelogické fungování jazykových konstruktů. Tyto podivnosti (a je jich mnohonásobně více) nejsou až tak známé a vedou k hnusným a špatně se odhalujícím chybám.

Ad statické typování. On to je zas jen po PHPčkovsku vyřešený problém. PHP 7 je už na světě nějaký pátek, ale opět nepoužitelné a verze 7.1 to malinko vylepší. Zatím ve stabilní verzi nelze použít null, pokud použijete type hint. Možnost vracet void, není až tak blocker, ale je to důkaz toho, že někdo nepřemýšlel.

Type hinting zatím není možný pro properties, proměnné a konstanty. My na projektu máme u poloviny metod komentář @todo hint a čekáme na novou verzi a to my si zaplať pánbůh můžeme dovolit aktualizovat prostředí jak se nám zlíbí. Ale většina chudáků na nové verze čeká do doby, kdy jsou staré a nemají prostor refaktorovat natolik, aby sílo novějších verzí využili.

A proto trvám na svém. NE, statické typování není možné, protože je tak 30%. Takže si na to můžeme jen a jen hrát. Nemůžeme ani říct, že metoda přijímá pouze pole objektů daného typu. Pole není Traversable.

Ano, četl jsem RFC, naposledy včera. Svítá na lepší časy, ale hodně si počkáme.

Mám ale obavu, že to je zas vše jen navenek. Podle mě by měli udělat to, co python. Udělat novou verzi a od základu jí udělat znovu, vyházet veškeré nesmysly a nechat tam to, co má smysl.

HHVM a hacklang je to, co bych čekal od PHP.


Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #256 kdy: 29. 08. 2016, 13:57:41 »
Jazyky s jedním paradigmatem jsou [...] přinejmenším neoblíbené.
Nejoblíbenější deník v Česku je Blesk.

Nejoblíbenějšími programovacími jazyky jsou C, Java a C#. O čem to svědčí? O tom, že programátoři neradi píší objektově.

Re:Jaký programovací jazyk zvolit?
« Odpověď #257 kdy: 29. 08. 2016, 14:12:45 »
Nejoblíbenějšími programovacími jazyky jsou C, Java a C#. O čem to svědčí? O tom, že programátoři neradi píší objektově.
Nepleť si "nejpoužívanější" s "nejoblíbenější".

Dev

Re:Jaký programovací jazyk zvolit?
« Odpověď #258 kdy: 29. 08. 2016, 14:15:09 »
Mirek zřejmě naráží na skutečnost, že i ta nejoblíbenější věc může reálně stát za hovno. Argumentovat oblíbeností je dost ošemetné, to je pak takový Michal David PAN zpěvák a geniální textař. Sbíráme céčka, v tom je ta léčka...

Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #259 kdy: 29. 08. 2016, 14:39:09 »
Nejoblíbenějšími programovacími jazyky jsou C, Java a C#. O čem to svědčí? O tom, že programátoři neradi píší objektově.
Nepleť si "nejpoužívanější" s "nejoblíbenější".

Blesk je přece také "nejpoužívanější", takže jsi to popletl úplně stejně.


čumil

Re:Jaký programovací jazyk zvolit?
« Odpověď #260 kdy: 29. 08. 2016, 15:18:11 »
Např: Někdo začíná u silně typových jazyků a cítí se omezován, tak přejde na slabě typové. Já naopak čím déle programuji, tím více tíhnu k jasným pravidlům.

Další důležitá vlastnost je vyzrálost jazyka, komunita a množství a kvalita knihoven. Java už je lety prověrená, doplňují se tam víceméně jen nějaké ty lahůdky. Oproti tomu PHP po dvaceti letech dostává funkcionality, které jiná jazyky umí už od začátku.

Vtip je v tom, že PHP/FI už mělo pro svět webu takové praktické funkcionality, ke kterým se ostatní jazyky propracovaly až za 10 let, proto se PHP taky rozšířilo.

PHP má dnes dynamické i statické typování, je možné si vybrat. Podobně je možné si vybrat, zda objekty budou třídní či prototypové. Mohu si vybrat, zda budu programovat špagetově, strukturovaně, funkcionálně či objektově. Vše mohu libovolně kombinovat dle potřeby. Pro někoho to znamená totální chaos, jiný si stanoví pevná pravidla a je v pohodě.

Ano PHP dnes dostává některé funkcionality, které jiné jazyky umí od začátku. Platí to však i naopak. PHP má mnoho vlastností, o kterých si ostatní jazyky nechávají jen zdát.
Multiparadigmatické jazyky jsou zlo, dříve nebo později, systém degraduje na žumpu. Pokud děláš na projektu sám, a dokážeš si to ošéfovat, žádný problém, to samé ale neplatí pro tým 10+ lidí (i míň, i míň ...).

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Jaký programovací jazyk zvolit?
« Odpověď #261 kdy: 29. 08. 2016, 15:22:22 »
Mirek zřejmě naráží na skutečnost, že i ta nejoblíbenější věc může reálně stát za hovno. Argumentovat oblíbeností je dost ošemetné, to je pak takový Michal David PAN zpěvák a geniální textař. Sbíráme céčka, v tom je ta léčka...
Když je něco nejoblíbenější, tak to není na hovno. Blesk je komerční plátek, jeho účelem je vydělávat. Kupuje ho spousta lidí -> plátek vydělává -> dělají to dobře -> není to na hovno.
Naproti tomu různých "dokonalých" plátků, které se snažily hlásat "dokonalé" názory už vzniklo a zaniklo spousty.
K tomu by se hodil nějaký výrok pana Nového o autoregulaci, dokonalosti světa a něco o tom, že jedinec ze svého pohledu nemůže činit globální rozhodnutí, protože ty učiní trh.

Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #262 kdy: 29. 08. 2016, 15:30:28 »
Multiparadigmatické jazyky jsou zlo, dříve nebo později, systém degraduje na žumpu. Pokud děláš na projektu sám, a dokážeš si to ošéfovat, žádný problém, to samé ale neplatí pro tým 10+ lidí (i míň, i míň ...).

Ukaž mi nějaký používaný jazyk, který není multiparadigmatický.

Re:Jaký programovací jazyk zvolit?
« Odpověď #263 kdy: 29. 08. 2016, 16:04:33 »
Mirek zřejmě naráží na skutečnost, že i ta nejoblíbenější věc může reálně stát za hovno.
Řekl bych to jinak: používanost jenom docela volně souvisí s kvalitou jazyka. Primárně rozhoduje to, jestli za jazykem stojí nějaká velká firma -> má peníze natlačit jazyk všude možně -> získá kritickou masu -> pak už se to jenom nabaluje a nabaluje -> pro mamutí devhousy je to výhodný jazyk, protože snadno najdou devs (čti: spotřební materiál) -> goto "pak už se to jenom nabaluje"

Teď třeba něco trochu dělám ve Scale a jsem tím jazykem dost zklamaný. Kdyby byl čistěji funkcionální, mohl být hezký, jednoduchý, příjemný. Ale tím, že chce dodržet interoperabilitu s Javou (viz předchozí odstavec), je to takový dost moloch se spoustou různých těžko pochopitelných pravidel, výjimek,... Třeba s čistotou Elixiru (o Elmu a Haskellu nemluvě) se to vůbec nedá srovnat. Po x letech strávených v Elixiru mě ze Scaly fakt bolí hlava...

...a to všechno kvůli "multiparadigmatičnosti".

Re:Jaký programovací jazyk zvolit?
« Odpověď #264 kdy: 29. 08. 2016, 16:05:04 »
Ukaž mi nějaký používaný jazyk, který není multiparadigmatický.
Definuj oba pojmy.

Re:Jaký programovací jazyk zvolit?
« Odpověď #265 kdy: 29. 08. 2016, 18:51:17 »
(...)

Další důležitá vlastnost je vyzrálost jazyka, komunita a množství a kvalita knihoven.

(...)

Tak ať zkusí Perl 5.

BoneFlute

  • *****
  • 2 082
    • Zobrazit profil
Re:Jaký programovací jazyk zvolit?
« Odpověď #266 kdy: 29. 08. 2016, 19:23:21 »
Mirek zřejmě naráží na skutečnost, že i ta nejoblíbenější věc může reálně stát za hovno. Argumentovat oblíbeností je dost ošemetné, to je pak takový Michal David PAN zpěvák a geniální textař. Sbíráme céčka, v tom je ta léčka...
Když je něco nejoblíbenější, tak to není na hovno. Blesk je komerční plátek, jeho účelem je vydělávat. Kupuje ho spousta lidí -> plátek vydělává -> dělají to dobře -> není to na hovno.
No jo, jenže tobě nepřijde metrika pomocí peněz poněkud omezená? Blesk třeba zabaví spoustu lidí pokleslou zábavou. Ale z nikoho to lepšího člověka neudělá (tím bych definoval onu pokleslost). A ve výsledku s těmi lidmi musí spolupracovat i ti, kteří by rádi byli lepší.

S jazykem je to podobné. To, že je jazyk X značně rozšířený je dost blbé, pokud se v něm neprogramuje dobře. Protože to znamená, že v něm budu muset dříve či později programovat i já.

Dev

Re:Jaký programovací jazyk zvolit?
« Odpověď #267 kdy: 29. 08. 2016, 20:26:37 »
Mirek zřejmě naráží na skutečnost, že i ta nejoblíbenější věc může reálně stát za hovno. Argumentovat oblíbeností je dost ošemetné, to je pak takový Michal David PAN zpěvák a geniální textař. Sbíráme céčka, v tom je ta léčka...
Když je něco nejoblíbenější, tak to není na hovno. Blesk je komerční plátek, jeho účelem je vydělávat. Kupuje ho spousta lidí -> plátek vydělává -> dělají to dobře -> není to na hovno.
Naproti tomu různých "dokonalých" plátků, které se snažily hlásat "dokonalé" názory už vzniklo a zaniklo spousty.
K tomu by se hodil nějaký výrok pana Nového o autoregulaci, dokonalosti světa a něco o tom, že jedinec ze svého pohledu nemůže činit globální rozhodnutí, protože ty učiní trh.

V Blesku se řeší jenom kdo koho píchá, kdo si nechal zvětšit kozy, kdo umře, kdo umřel, kdo by umřít měl, i když se k tomu nemá a další hromada nesmyslů, drbů a pomluv. I kdyby to vydělávalo miliardy, tak z pohledu kvality obsahu to pořád stojí za obří hovno. Jestli si kromě Blesku nedokážeš představit jinou literaturu, než tu, která hlásá jediný správný názor, tak to už není můj problém.

javaman )(

Re:Jaký programovací jazyk zvolit?
« Odpověď #268 kdy: 29. 08. 2016, 20:31:42 »
Mirek zřejmě naráží na skutečnost, že i ta nejoblíbenější věc může reálně stát za hovno. Argumentovat oblíbeností je dost ošemetné, to je pak takový Michal David PAN zpěvák a geniální textař. Sbíráme céčka, v tom je ta léčka...
Když je něco nejoblíbenější, tak to není na hovno. Blesk je komerční plátek, jeho účelem je vydělávat. Kupuje ho spousta lidí -> plátek vydělává -> dělají to dobře -> není to na hovno.
No jo, jenže tobě nepřijde metrika pomocí peněz poněkud omezená? Blesk třeba zabaví spoustu lidí pokleslou zábavou. Ale z nikoho to lepšího člověka neudělá (tím bych definoval onu pokleslost). A ve výsledku s těmi lidmi musí spolupracovat i ti, kteří by rádi byli lepší.

S jazykem je to podobné. To, že je jazyk X značně rozšířený je dost blbé, pokud se v něm neprogramuje dobře. Protože to znamená, že v něm budu muset dříve či později programovat i já.

Proč by to mělo z někoho dělat lepšího člověka? A co seriály, jak moc vylepší lidi? A co jízda autem? Nebo co venčení psa? Prostě každý má svoje zábavy, tak nevím, co chceš komu zakazovat. Ty si klidně čti jen filozofické knihy a ani radši nechoď do práce. Je to snad nějaký smysl života, abys byl vylepšený? A jak jsi na něj přišel? Někdo chce zůstat tam, kde je a nevadí mu to.

Ne, to neznamená. Stejně tak se nemusíš bavit s pejskaři a nebo čtenáři nějakého deníku. Pokud je máš v práci, tak asi špatná práce, pokud v rodině, asi špatná rodina. Prostě každý má rád něco jiného a pokud má nejvíc lidí rádo Blesk, tak to je fajn, ale to je tak všechno. Jejich volba, kterou ti necpou.

gl

Re:Jaký programovací jazyk zvolit?
« Odpověď #269 kdy: 29. 08. 2016, 20:35:16 »
Mirek zřejmě naráží na skutečnost, že i ta nejoblíbenější věc může reálně stát za hovno. Argumentovat oblíbeností je dost ošemetné, to je pak takový Michal David PAN zpěvák a geniální textař. Sbíráme céčka, v tom je ta léčka...
Když je něco nejoblíbenější, tak to není na hovno. Blesk je komerční plátek, jeho účelem je vydělávat. Kupuje ho spousta lidí -> plátek vydělává -> dělají to dobře -> není to na hovno.
No jo, jenže tobě nepřijde metrika pomocí peněz poněkud omezená? Blesk třeba zabaví spoustu lidí pokleslou zábavou. Ale z nikoho to lepšího člověka neudělá (tím bych definoval onu pokleslost). A ve výsledku s těmi lidmi musí spolupracovat i ti, kteří by rádi byli lepší.

S jazykem je to podobné. To, že je jazyk X značně rozšířený je dost blbé, pokud se v něm neprogramuje dobře. Protože to znamená, že v něm budu muset dříve či později programovat i já.

Proč by to mělo z někoho dělat lepšího člověka? A co seriály, jak moc vylepší lidi? A co jízda autem? Nebo co venčení psa? Prostě každý má svoje zábavy, tak nevím, co chceš komu zakazovat. Ty si klidně čti jen filozofické knihy a ani radši nechoď do práce. Je to snad nějaký smysl života, abys byl vylepšený? A jak jsi na něj přišel? Někdo chce zůstat tam, kde je a nevadí mu to.

Ne, to neznamená. Stejně tak se nemusíš bavit s pejskaři a nebo čtenáři nějakého deníku. Pokud je máš v práci, tak asi špatná práce, pokud v rodině, asi špatná rodina. Prostě každý má rád něco jiného a pokud má nejvíc lidí rádo Blesk, tak to je fajn, ale to je tak všechno. Jejich volba, kterou ti necpou.

+1