Жестокое обращение с животными

Жестокое обращение с животными Картинка с текстом, Комиксы, IT, IT юмор, Javascript, Программирование

IT-юмор

5.7K постов52.6K подписчиков

Добавить пост

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
40
DELETED
Автор поста оценил этот комментарий

Потому что в числа преобразовывать надо

раскрыть ветку (86)
43
DELETED
Автор поста оценил этот комментарий

Тогда получается картинка не правильная ибо должно быть написано [,"10",], а не просто [,10,].

раскрыть ветку (11)
30
DELETED
Автор поста оценил этот комментарий

Я не так выразился. sort обрабатывает массив, как-будто он чисто строковый. Чтобы от этого уйти нужно писать какую-нибудь доп. функцию, которая будет за него сортировать. То есть, если ниче не путаю, то одним лишь .sort нельзя отсортировать числовой массив правильно

раскрыть ветку (9)
38
Автор поста оценил этот комментарий

Функция sort() по умолчанию сортирует элементы как строки. Тем не менее, в качестве параметра он принимает callback-функцию, которая принимает два аргумента (например, a и b) - два обрабатываемых элемента. Далее эта колбэк функция должна возвращать.

1. 0, если объекты трогать не нужно.

2. число < 0, если a должен быть меньше b.

3. число > 0, если b должен быть меньше a.

То есть, например, если нам нужно отсортировать массив в порядке возрастания, нужно, чтобы a был меньше или равен b. Как это сделоть? Ну, очевидно, вычесть из a b. Если они равны, будет 0, если а больше b, то b будет меньше а, если наоборот, то а будет меньше b. Т.е. слева всегда будет меньшее число.

Поэтому мы пишем примерно следующее:

array.sort((a, b) => a - b);

И получаем правильно отсортированный массивус.

Вроде нигде не ошибся, сам только познаю этот великий и могучий JavaScript.

раскрыть ветку (6)
2
Автор поста оценил этот комментарий

Пишем arr.sort(compareNumeric) и не ебём мозги себе и людям

function compareNumeric(a, b) {

if (a > b) return 1;

if (a < b) return -1;

}

раскрыть ветку (2)
12
Автор поста оценил этот комментарий

писать компаратор чтобы просто числа сортануть еще и без лябды это и есть ебать мозги

4
Автор поста оценил этот комментарий
Или просто return a - b;
1
Автор поста оценил этот комментарий

По-моему это все-таки лямбда, а не колбек.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Нет колбек лямбда может быть этим колбек, но может быть и обычной функцией

раскрыть ветку (1)
Автор поста оценил этот комментарий

запутался в терминах %)

Автор поста оценил этот комментарий
.sort1() ?
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

А?

4
Автор поста оценил этот комментарий

Немного консоли

Иллюстрация к комментарию
29
Автор поста оценил этот комментарий

Где JS и где строгая типизация ))) А так - да, согласен

раскрыть ветку (69)
17
Автор поста оценил этот комментарий
TS?
раскрыть ветку (3)
8
Автор поста оценил этот комментарий

TS - must code on.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
И почему эти слова, у меня в голове, пропел Фреди Меркури в мотиве show must go on...
Автор поста оценил этот комментарий

TS, вроде, в конкретно этом случае не поможет.

1
Автор поста оценил этот комментарий

При чем тут строгая типизация вообще?

раскрыть ветку (5)
3
Автор поста оценил этот комментарий

при том что если бы она была, то sort() бы себя так не вел, потому что он бы не знал как сравнить число и строку, но потому что в JS нестрогая типизация то он начинает автоматически приводить типы, и самое очевидное во что можно приводить типы для операции сортировки - строка, потому для не строго типизированного языка такая сортировка вполне ожидаема

раскрыть ветку (4)
DELETED
Автор поста оценил этот комментарий

Да, скрипт бы просто вывалил ошибку посреди выполнения, а так хоть что-то выведет, пусть и не правильно)

4
Автор поста оценил этот комментарий

Не шарите. В lua(очень похожа на js) тоже нестрогая тизация, и такой поебени там нет.


Потому что приведение как раз таки самое неочевидное поведение, учитывая что ни одной строки в этом массиве нет.


Дефолтный компаратор получает на вход number и number. И чтобы их сравнить приводит оба объекта к строке. Очевидно?


Нет, это пиздец. Это просто ужасный дизайн языка. Это мало того, что не логично, да еще и медленно.


Вот если бы там была мешанина из number и string, да, было бы разумно привести к одному типу. И то в только в рамках сравнения двух объектов разных типов.

раскрыть ветку (2)
5
Автор поста оценил этот комментарий

Луа строготипизирован . Вы путаете строгую-нестрогую и статическую-динамическую

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Не путаю, lua не строготипизирован. Там тоже много неявных приведений, просто они адекватные, а не ебанизм как в js

15
DELETED
Автор поста оценил этот комментарий

Да пошел этот js в анус. Заебал он меня уже порядком :D

раскрыть ветку (51)
19
DELETED
Автор поста оценил этот комментарий

Хочешь значит сделать сервер для небольшой игры или просто для умного дома или даже свой сайт с блекджеком. Тыкаешь разные вещи, все громоздко, долго, сложно. Вспоминаешь про nodejs и чуть ли не за 10 минут делаешь что тебе нужно. Да, js нинужен.

раскрыть ветку (49)
9
DELETED
Автор поста оценил этот комментарий

Я и не говорил, что он не нужен. Он просто заебал, но без него сейчас никуда

2
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (27)
Автор поста оценил этот комментарий
Ах, питон, как я его люблю... Жаль, приходится переходить на другие языки.
раскрыть ветку (13)
Автор поста оценил этот комментарий

почему?

раскрыть ветку (12)
Автор поста оценил этот комментарий
Например, во имя кодинга под Андроид. Питон с андроидом вполне можно поженить, но это не совсем то, что мне нужно)
раскрыть ветку (11)
Автор поста оценил этот комментарий

ааа) а то подумал что питон усё, кончилась эра)

под андроид ява я так понимаю?

всё никак руки не доходят до нее, хоть и накачал уже всё под это дело)

раскрыть ветку (10)
Автор поста оценил этот комментарий
Ява, Котлин, c#. Есть ещё варианты, но Гугл ограничился поддержкой Явы и Колина.
раскрыть ветку (9)
Автор поста оценил этот комментарий

котлин интересная тема, но больше для себя наверно. вакансий чет не находил на нем(

раскрыть ветку (8)
DELETED
Автор поста оценил этот комментарий

Он сильно отличается от других языков что сбавляет пыл при его изучении. Кстати в js тоже самое с callback'ами.

раскрыть ветку (12)
2
Автор поста оценил этот комментарий

В JS есть много чего, что может порадовать неокрепшие умы: scope, callback, promise, call & apply, prototype, then, chain. Хотя на данный момент появилось не меньше хороших статей, объясняющих все это легко и просто.

раскрыть ветку (6)
DELETED
Автор поста оценил этот комментарий

scope - такой же как и в других языках

call&apply - как помню это что-то типа как в с# передаваемые делегаты в метод

prototype - несколько непонятный, но многие тупят представляя, что это классы, но на самом деле это не совсем так. Однако в новой версии языка добавили "классы", которые как обертка над prototype и теперь с этим проблем не должно быть.

раскрыть ветку (4)
Автор поста оценил этот комментарий

В других языка область видимости переменных ограниченна блоком, в JS область видимости ограниченна функцией. На этом так же строятся замыкания.

var a = 10;

~function test()

{

 for(var i = 0; i < 1; i++){

 var a = 20;

 }

 console.log(a); //ups, print 20

}()

Постоянно кто-нибудь из изучающих задает подобный вопрос и типичные ответы с созданием функции со своей областью видимости: https://ru.stackoverflow.com/questions/433887/Почему-асинхро...
------
Делегаты в C# являются обычными функциями в переменной, в JS с этим вообще проблем нет `var a = function(){ }`. А call&apply просто подменяют контекст this для функции - используются для заимствования функций, краткий пример, как вызвать функции массивов на объектах.

var data = {0:"Martin", 1:78, 2:67, 3:["Letta", "Marieta", "Pauline"], length:4};


console.log(Array.prototype.indexOf.call(data, "Martin") === -1 ? false : true);

console.log(Array.prototype.reverse.call(data));

console.log(Array.prototype.push.call(data, "Jackie"));

В общем-то можно заменить наследование в class или прототипированием как по старинке. Но все же такая возможность существует.
-----

Классы конечно важны, но как говорится, всегда можно углубиться в язык для его лучшего понимания и создания более эффективного или компактного кода.

раскрыть ветку (3)
DELETED
Автор поста оценил этот комментарий

В новой версии js пофикшена область видимости если использовать "strict" и let.

В c# можно в метод передать другой метод через делегат. Получится фактически тоже подмена контекста ибо делегат может быть чем угодно и делать что угодно.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Про let я знаю, но как факт scope на функциях остался и никуда не делся.


Все же call&apply работают немного по другому, тут основной упор делается на подмене this, использовав чужой класс к примеру, а не на передачу функции куда-то еще. Поскольку c# язык строгой типизации, сложно дать пример. Хорошим примером являются методы расширения в C#. Хорошей новостью, что пример с делегатами и рефлексией уже написан на SO и мне не надо придумывать его: https://stackoverflow.com/questions/19546986/c-sharp-equival...

раскрыть ветку (1)
Автор поста оценил этот комментарий

в любом языке хватает всякого говна, JS не исключние

Автор поста оценил этот комментарий
Ненавижу колбеки из js.
раскрыть ветку (4)
Автор поста оценил этот комментарий

а кто тебя заставляет их есть? существуют promise/ async await

раскрыть ветку (3)
Автор поста оценил этот комментарий

для меня это как выбор из двух стульев

раскрыть ветку (2)
Автор поста оценил этот комментарий

ну да, это ж пиздец как сложно и непонятно, еще и код не читаемый, да?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Да
10
Автор поста оценил этот комментарий

всегда же есть "профессионалы" вопящие о никчёмности языка, а по факту о собственной некомпетентности.

раскрыть ветку (5)
4
DELETED
Автор поста оценил этот комментарий

читайте внимательнее. Где сказано о его никчемности?

раскрыть ветку (2)
5
Автор поста оценил этот комментарий

Да пошел этот js в анус

это, видимо, от большой любви было сказано.

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

Да, от неё, но это никак не говорит о никчемности или фееричном великолепии языка

4
Автор поста оценил этот комментарий

Я говорю о его никчемности каждый раз, когда с ним сталкиваюсь. А знаешь почему? Потому что Adobe еще в 2006 году полностью реализовала драфт стандарт EcmaScript Harmony с классами, возможностью использовать строгую типизацию и библиотекой из 300+ высокоуровневых классов для работы с 2D графикой и полноценной IDE для Flash, а потом еще 3D в Adobe Molehill залепила под GPU в 2010. Прошло 12 лет, а JS может похвалится только половиной всего этого, развивается как черепаха.

Вот эту красоту я запускал в 2010 со своего старенького компа в браузере и оно работало: https://www.youtube.com/watch?v=tgwi0lWgX8w Жаль сейчас все ссылки уже битые.


P. S> Сори, накипело.

1
Автор поста оценил этот комментарий

Картинку в посте видели? Подобного не должно быть в нормальном языке в принципе.

4
Автор поста оценил этот комментарий

работает как говно, через пень колоду..течет памятью и отклик как у андроида 2.1 на 128 мегах памяти...зато за 10 минут и мозги включать даже не надо...ах да, жрет еще как не в себя

раскрыть ветку (11)
2
Автор поста оценил этот комментарий

если б все так было плохо им бы никто не пользовался, а так живет и радуется жизни. может ты его плохо настраивал что он работал как говно?)

1
Автор поста оценил этот комментарий

И что вы предлагаете в качестве альтернативы, в описанных случаях?

раскрыть ветку (9)
1
Автор поста оценил этот комментарий

включить мозги, выбрать наиболее подходящий способ реализации и сделать его, а не лепить из говна и палок, абы было.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну вот человек и выбрал наиболее подходящий для него способ реализации. Годами лепить тру-энтерпрайз не все могут себе позволить.

1
Автор поста оценил этот комментарий

c# + net core

раскрыть ветку (5)
Автор поста оценил этот комментарий

Как сервер для бюджетной игры?

раскрыть ветку (4)
2
Автор поста оценил этот комментарий

он бесплатный от слова полностью

раскрыть ветку (3)
Автор поста оценил этот комментарий

А какой минимальный инстанс под него нужен, скажем, на Amazon AWS? Ну или где вы предложите его запускать?

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

любой VPS, прекрасно запускается на LInux + Docker, при этом пулы едят меньше пмяти чем на винде, скорость примерно равно node js, но плюсом идёт типо безопасность, не только на этапе компиляции.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

go. он специально проектировался чтобы даже дауны(и даже разработчики из js комьюнити) могли писать нормальный код

Автор поста оценил этот комментарий

Подкинь пару статей как делать post\get запросы в nodejs с html страницы и сохранять\выводить в json. Только без express или баз данных.

Автор поста оценил этот комментарий

Синатра попроще будет

6
Автор поста оценил этот комментарий

Сразу видно всю вашу боль :D

3
Автор поста оценил этот комментарий

Кто-нибудь может мне объяснить в чем прикол динамической типизации? В функциях же всё равно обращяются в переменными как с переменными определенного типа, или я чего то не понимаю?

раскрыть ветку (5)
6
Автор поста оценил этот комментарий

Не стоит путать динамическую-статическую и сильную-слабую (строгую-нестрогую) типизации

ещё комментарии
DELETED
Автор поста оценил этот комментарий

В теории это повышает скорость написания программы. А вообще: https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC...

1
Автор поста оценил этот комментарий

вот тебе строгая типизация (new Int8Array([10,9,8,3,2,1,0])).sort()

ещё комментарии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку