Wpis z mikrobloga

@gatineau Wszyscy którzy bronią tego jak JS jest zaprojektowany i produkują takie o kant dupy rozbić uzasadnienia? XD
@deryt
Programowalem w większośc języków, może poza PHP, i JS pozostaje po latach moim najbardziej znienawidzonym. Po co w ogóle pambuk coś takiego stworzył?
@gatineau: no matematycznie z tym min / max i nieskończonością to jest akurat źle. Min/max zbioru pustego nie istnieje, powinno więc zwracać jakiegoś nulla / none czy co tam w JS jest (nie znam js zbyt dobrze), a nie plus minus nieskończoność. To że zwraca te nieskończoności to wynika z konkretnej implementacji, ktora przyjmuje nieskończoność jako punkt startowy iteracji.
@Flypho: ja nic nie „bronię” jedynie przedstawiam logiczne uzasadnienie. My jesteśmy na jakiejś wojnie? Co to w ogóle znaczy „bronić języka”? Javascript to wyklepane na kolanie gowno które stało się popularne przypadkiem. I tak jest imponujące ze tak kompletny język powstał dosłownie w kilka tygodni. Zaskakująca jest jedynie jego popularność no ale wystartował przywiązany do rakiety kosmicznej wzbijającej się do lotu - wczesnego internetu i raczkującego www

JavaScript to po prostu
@Krolik:

Min/max zbioru pustego nie istnieje, powinno więc zwracać jakiegoś nulla / none czy co tam w JS jest (nie znam js zbyt dobrze), a nie plus minus nieskończoność.


Nie zgadzam się, programowanie to nie matematyka, należy unikać nulli

+Infinity ma jedna dobra cechę:

Min(min([2,3]),min([]),min([5])) to poprawnie 2. Gdyby min([]) zwróciło undefined to całe wyrażenie musiałoby być undefined. Czasem lepiej odejść odrobine od matematyki i zejść do praktyki - a praktyka
@gatineau Ale to uzasadnienie jest logiczne tylko na poziomie obnażenia niekompetencji tego, kto tworzył JSa xD. Tam nie ma nic logicznego poza powyższym wnioskiem.
@gatineau No tak, powszechnie wiadomo że korporacje wypuszczają same udane produkty xD ja #!$%@?, ale teraz #!$%@?. Jak JS. Rozumiem, że w takim razie ja mam za mało kompetencji żeby zrozumieć geniusz tego zamysłu xD.
@Flypho: nie rozumiem twojej logiki kompletnie a tak poza tym nie unoś się, nie kumam dzisiejszych czasów - umiejetność wymiany kilku myśli bez rzucania #!$%@? przerasta przeciętnego internautę?

A wracając do meritum - nie wydają samych udanych produktów ale akurat ta konkretna kilka udanych zrobiła

Po drugie wracając do JavaScript to mówisz o produkcie który zawojował świat - dziwny? Ok. nieudany? Lol, chciałbym stworzyć same takie nieudane produkty które
@gatineau: w języku z dynamicznym typowaniem nie ma sensu aby operacja min/max działala tylko na liczbach. Mogłaby też dzialac na stringach, datach i krotkach. W takiej sytuacji jednak zwrócenie braku elementu miałoby więcej sensu. Można by mieć regułę że brak elementu nie jest brany pod uwagę przy operacjach min i max i Twoje przykłady nadal działałyby.
@gatineau Programowanie to nie jest biznes. Biznes to zarabianie na produktach powstałych w wyniku programowania. Programowanie to kontrola sygnałów, w tym wypadku przy użyciu #!$%@? interfejsu jakim jest JS i jak najbardziej można ten interfejs oceniać i mierzyć jego jakość pod innymi kątami niż to, ile wygenerował pieniędzy. Wystarczy po prostu umieć programować. Brzmisz jak jakiś korposzczur, któremu pieniądze przesłoniły rzeczywistość, ale za programowaniem kryje się, poza pieniędzmi, nauka.
W którejś z
@Krolik: operacja „min” faktycznie mogłaby nie operować na liczbach ale już „Math.min” moim zdaniem powinno się opierać na liczbach i być relatywnie blisko matematyki

A min(max([])) W twoim rozwiązaniu zwróciłaby undefined - poprawnie ale bezużytecznie, nie ma to wiec większego znaczenia
: operacja „min” faktycznie mogłaby nie operować na liczbach ale już „Math.min” moim zdaniem powinno się opierać na liczbach i być relatywnie blisko matematyki


@gatineau: Math.min byłoby po prostu niepotrzebne
@Krolik: ah tak nie doczytałem

Można by mieć regułę że brak elementu nie jest brany pod uwagę przy operacjach min i max i Twoje przykłady nadal działałyby.


Ale to kolejny if i kolejne zaskakujące zachowanie i zmusiłoby cię to do akceptowania „undefined” jako poprawnej wartości w operacji min/max

Żeby twoj przykład działał to min(2, undefined, 5) musi zwracać 2 - a to nie do końca poprawne bo ten undefined może świadczyć
@gatineau: no i teraz dochodzimy, że brak wartości to jednak semantycznie coś innego niż błąd. Błędy powinny być sygnalizowane inaczej, inna wartością (albo wyjątkiem w języku z wyjątkami).