Omezení svobody projevu?

Polki
Člen | 553
+
-4
-

Předem chci říct, že nechci být nezdvořilý a na emoce nehraji, beru do úvahy jen fakta, takže toto bude spíše formou otázky, než soudu, i když vím, že bude mít akorát zase 40 mínusek bez vysvětlení, tak bych rád, aby se každý pozastavil a trošku se zamyslel, než tak udělá.

Dnes ve 2 hodiny ráno byl Davidem Grudlem přidán nový článek na blogu ohledně jeho dlouho prosazovaném kontroverzním odstranění prefixů I- ze všech interface v rámci Nette. V tomto článku je i informace o tom, že článek je pouze demo a že si máme počkat na plnou verzi:

(Článek podrobně vysvětlující důvody vyjde brzy)

Kromě toho, že je otázka, jestli článek vyjde, jelikož druhý díl seriálu o DI vychází už 2 roky a pro jistotu byl přejmenován, aby se zapomnělo na to, že nějaké pokračování mělo vyjít. Stejně tak na odpovědi mailů se čeká podobně dlouhou dobu, stejně tak na samostatný thread k jednoakčním presenterům.
Toto ale byla jen odbočka bokem, která má vést k zamyšlení, jestli článek není jen výkřik do tmy.

Nicméně článek jsem komentoval hned 2 komentáři, kdy jsem se v prvním těšil na plnou verzi, abych konečně věděl dopodrobna vysvětleny pravé důvody tohoto pro mě zatím nepochopitelného kroku. Ano, četl jsem i velké uvědomění že rozhraní jsou třídy, ale tento postup platí jen někde, protože článek vlastně říká, že volant je auto, protože volant je podmnožinou auta. Což není pravda, jelikož volant můžu odebrat a dát jej na jiné zařízení a ani sám volant jako auto fungovat nebude. Respektive když vezmu část něčeho, tak ji nemůžu stále nazývat celkem.
Proto každý ví dnes již ze základní školy (fakt se to tam učí), že platí rovnice „class = interface + implementation“ Proto, když vezmeme interface, tak se zákonitě nemůže jednat o třídu, jelikož jí chybí implementace. Tedy volant nemůže býti auto, jelikož mu chybí zbytek toho auta.
Prostě interface nemůže mít implementaci.
Ti z vás, kteří nejsou čistě odkojeni na PHP, tak určitě vědí, co znamená sousloví prototyp funkce. Jde o interface metody. V C# se dokonce tento interface metody nazývá delegát a používá se pro definování rozhraní pro callbacky, aby si byl programátor vždy jist, že může danou funkci volat s danými parametry v daném pořadí. A pokud by to, co je uvnitř článku napsáno byla pravda, tak to znamená, že:

  1. delegage = interface
  2. delegate = function

a tedy

  1. interface = function

Jenže ze článku víme, že

  1. interface = class

a tedy by mělo platit, že:

  1. interface = delegate = class = function

A můžeme jít ještě dále. Jako důkaz vám snad postačí to, že celá aplikace má taktéž rozhraní. Odborně se mu říká aplikační rozhraní a toto může mít stejné metody (příznaky spuštění) a může být tvořeno stejným principem, jako rozhraní třídy. Neznamená to ale, že aplikace jsou třídy, protože mají rozhraní které je třída přece…
Obzvlášť proto, že aplikace mohou být psány v jazyku, který ani třídy nepoužívá. (I když vlastně používá že? Když funkce jsou taky třídy. Víte co? Prdíme na to všechno je třída.)

Toto byl ± význam prvního komentáře, kterým jsem tedy prosil, aby v plné verzi článku byly zahrnuty i informace o tom, proč se jednotlivé jazyky rozhodly prefix I- případně suffixy -Interface, nebo -able zachovat. Protože ukazování prstem na ostatní, že to tak dělají taky je k ničemu. Aneb každému snad maminka říkala onu větu: „A když Pepíček skočí z okna skočíš taky?!?!“
První komentář tedy byla prosba o doplnění i podrobných informací ne jen proč se tak rozhodl sám David, ale aby nám předložil i analýzu, proč se tak či onak rozhodly i ostatní jazyky, což je z mého pohledu relevantní požadavek, pokud se tyto jazyky uvádí jako příkady:

U jiných frameworků (např. Symfony, CakePHP, Zend nebo PSR) se můžete setkat s odlišnou konvencí, a to používáním koncovky Interface (např. Psr\Cache\CacheItemInterface) společně s předponou Abstract pro abstraktní třídy (např. Psr\Log\AbstractLogger). A nakonec tu máme knihovny (např. Laravel nebo systémová knihovna PHP), které rozhraní ani abstraktní třídy nijak neodlišují (např. rozhraní Throwable nebo Iterator, abstraktní třída FilterIterator).

_______

Druhý komentář se věnoval problému, že vlastně vzniká spousta různých PHP frameworků s cílem zjednodušit práci s PHP a hlavně vznikla spousta wrapperů nad výchozími PHP funkcemi, které měly za cíl zjednodušovat práci tím, že sjednotí rozhraní a názvy těchto php funkcí, jelikož PHP bylo psáno na koleně a tedy pořadí argumentů a způsoby nazývání funkcí jsou psány způsobem, jak zrovna byla nálada a jak se kdo vyspal.

Jako příklady jsem uvedl prefixy u funkcí, kdy nějaké funkce pracující s řetězci mají prefix str_ a jiné ne. Že některé funkce jsou nazývány malými písmeny s podtržítky a jiné malými písmeny bez podtržítek (str_starts_with vs strcasecmp) a hlavně, že příbuzné funkce pro stejnou práci mají proházené pořadí argumentů, například funkce pro práci s polem mají jednou pořadí $array, $callback a jindy $callback, $array.
S těmito skutečnostmi se tedy pojila druhá otázka a to ta, jestli by mi mohl David objasnit, proč když se obecně nesouhlasí se zápisem historických naming conventions v rámci PHP, tak jak je možné je uvádět jako relevantní příklady správného použití, že tomu moc nerozumím, jestli by mi to mohl objasnit.

nebo systémová knihovna PHP), které rozhraní ani abstraktní třídy nijak neodlišují (např. rozhraní Throwable nebo Iterator, abstraktní třída FilterIterator).

Btw: přípona -able je rozlišení interface, takže to nebyl moc kvalitní argument…

_________

Na otázky jsem odpověď nedostal, ale to nevadí. Přichází totiž jedna velká jiná otázka.
Z jakého důvodu byly mé dva komentáře přidané někdy nad ránem bez předchozího upozornění odstraněny a hlavně, proč mi bylo znemožněno daný článek nadále komentovat?
Mé komentáře nejsou útočné, urážlivé, ani protiprávní. Pouze poukazuji na nedostatky které vidím a chci odpovědi na otázky, které jsem položil, jelikož dokonalost mé práce je mou zárukou a vizitkou, tak nemohu dělat v něčem, čemu nerozumím, protože autor nevysvětlil všechny detaily spojené s velkými rozhodnutími, které výrazně ovlivňují zisky naší společnosti.
Pokud autor nechce, aby jeho názory a postoje nebyly podrobeny kritickému myšlení a zkoumání, tak nemá psát články a tyto rozhodnutí dělat.
Takovéto chování ze strany autora je dle mého nepřípustné a taktéž porušuje zákon, jelikož omezuje svobodu projevu tím, že mi maže komentáře bez upozornění a znemožňuje nadále komentovat.

Toto je zcela legitimní důvod k podání žaloby. Vzhledem k tomu ale, že na emoce prdím a beru v úvahu jen fakta, tak toto nechám býti a provedu jiné opatření a to, že tedy tímto podle GDPR žádám o Zapomenutí všech mých údajů v rámci všech Nette aplikací, webů, blogů a dalších webů spojených s Davidem Grudlem. Toto zapomenutí se tedy týká VŠECH mých osobních údajů, mezi které se řadí taktéž Hashe ip adres, E-mailů a ostatní fingerprinty včetně dynamických IP adres generovaných mým terminálem.
Taktéž jsme se dnes na výjimečně svolané valné hromadě usnesli, že od dnešního dne přestáváme používat Nette jak pro naše české pobočky, tak pro pobočky v USA.

Mějte se pěkně komunito.

emololftw
Člen | 81
+
+6
-

Chlape nehroť to tolik… dle mého názoru není důvod se z chystaných změn rozčilovat a už vůbec ne „vyhrožovat“ možným podáním žaloby. Snad jsme tolerantní lidi a dokážeme komunikovat na úrovni. Jsem troufám si říct novým členem komunity okolo Nette a kdybych se takto rozepsal kdykoliv mi někdo napíše něco na co jsem se neptal tak tu zakládám jeden thread za druhým. Hezký den