Wpis z mikrobloga

@5z7k9: parseInt przyjmuje dwa parametry, z czego drugi ma domyślną wartość = 10 - pierwszy to liczba, drugi to baza (np. parseInt('F', 16) === parseInt('23', 6)). .map podaje 3 argumenty - element, indeks, tablicę. Nieznajomość biblioteki standardowej szkodzi.
  • Odpowiedz
@regis3: Nie no, JS ma pełno ułomności. Obsługa dat, większość implicit konwersji, brak wbudowanych w język struktur danych, brak kontroli nad środowiskiem, jednowątkowość i pewnie wiele innych, których nie chce mi się o tej porze przypominać.
  • Odpowiedz
@regis3: @Ginden: spokojnie, każdy język ma ułomności, po prostu uwielbiam tego typu prezentacje i chętnie się nią podzieliłem(jeśli ktoś jeszcze nie widział). Można się trochę pośmiać, choć wiadomo, że tego typu prezentacje są lekko naciągane. :P

@KrzaQ2: no właśnie to mnie tak zdziwiło.
  • Odpowiedz
@KrzaQ2: Dobra, nie mogę edytować, a doczytałem. Wciąƶ jest to ułomność języka imho. No ale ja nie lubię jak funkcja w zasadzie ma gdzieś ile dostała argumentów...
  • Odpowiedz
@Ginden: Myślę, że o każdym języku/technologii można taką litanie tworzyć. Jest też przy okazji dynamicznym i nowoczesnym językiem, który adaptuje zarówno z języków obiektowych jak i funkcyjnych. Większość nowych featursów to scala.

Jedyną różnicę jaką dziś dostrzegam to ludzie, którzy korzystają z danej technologii. Próg wejścia w js jest mega mały więc średni poziom progamistów jest dość niski.

Weźmy takie c. Dość trudny, ale bardzo czytelny język. Ale ale. Był sobie
  • Odpowiedz
@regis3: To, ƶe jest zgodne z załoƶeniami twórców nie oznacza, ƶe nie jest ułomnością. Jeśli masz prosty i oczywisty kod i działa on inaczej niƶ się spodziewałeś to jest właśnie to.
  • Odpowiedz
Albo np wypowiedzi twórcy c++, jakoby stworzył ten język dlatego aby było trudno w nim pisać. Żeby zrozumieć o co chodzi w tej wypowiedzi trzeba się trochę zagłębić w społeczność programistów niskopoziomowych.


@regis3:

Trzeba się zagłębić w przypisywanie komuś stwierdzeń "bo w internecie tak pisało"

~ Albert Einstein, 1844 r.
  • Odpowiedz
@regis3: Jak czytasz czyjś kod to sprawdzasz wszystkie deklaracje funkcji, które wydają się sensownie nazwane? W jakim innym języku map/transform listy stringów po funkcji toInt zwróci takie bzdury?
  • Odpowiedz
prawdę mówiąc nie wiem co próbujesz tu udowodnić tak więc luz.


@regis3: Juƶ śpieszę Ci wytłumaczyć.

Python:
map(int, ['10', '10', '10'])[10, 10, 10]
Ruby:
['10', '10', '10'].map(&:to_i)[10, 10, 10]
Haskell:
map (read) ["10", "10", "10"] :: [Int][10, 10, 10]
D:
["10", "10", "10"].map!(to!int)[10, 10, 10]
C++:

vector vec = {"10", "10", "10"};
vector result;
transform(vec.cbegin(), vec.cend(), back_inserter(result), [](auto&& el){ return stoi(el); });
wynik:
  • Odpowiedz
@KrzaQ2: > parseInt

@KrzaQ2: ej serio szkoda mi czasu na takie spory. jestes zajebisty. To wypisz od razu jakie parametry przyjmują te funkcjei pogadamy. Też mogę parę języków wypisać.

Więc tak. W JS nie ma integera. Jest number. Zatem.

const arr = ["10", "10", "10"];
arr.map(Number)

Zgadnij co wypisze.
  • Odpowiedz
@KrzaQ2: Kontynuując twoją wyliczankę języków:

JavaScript:

['10','10','10'].map(Number) ⟶ [10, 10, 10]
lub

['10','10','10'].map(x => parseInt(x)) ⟶ [10, 10, 10]
To że ktoś świadomie (lub nie) źle używa języka nie znaczy że to automatycznie winny jest język. Bo kod .map(parseInt) to po prostu błąd programisty który akurat przypadkiem za pierwszym wywołaniem działa tak jak się ten ktoś spodziewa.
  • Odpowiedz