А какой твой родной язык?

А какой твой родной язык?

IT-юмор

5.6K постов52.5K подписчик

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

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

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

Вы смотрите срез комментариев. Показать все
387
Автор поста оценил этот комментарий
А я реально теперь буду ждать от вас пост, даже подписался!
раскрыть ветку (66)
580
Автор поста оценил этот комментарий

Я бы не советовал. С постами мне не везет, это раз. А во вторых, был бы я действительно хорошим программистом, то не сидел бы сейчас без работы

Иллюстрация к комментарию
раскрыть ветку (64)
150
Автор поста оценил этот комментарий
И всё-таки навыки у вас неплохие.
Иллюстрация к комментарию
раскрыть ветку (41)
137
Автор поста оценил этот комментарий

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

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

Я твоё определение в сокращённом варианте вставлю в заметку о тебе. И подпишусь.

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

Да, надо заметки ставить, мне теперь интересно почему я уже на него подписана.

Мне ещё покоя не даёт тот человек что на меня подписан. Это странно.

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

Подписалсо и не палиццо. Кродётся.

4
Автор поста оценил этот комментарий
Так вы на меня посмотрите, посты все в адовых минусах, однако 2 человека было , 1 остался
раскрыть ветку (4)
2
Автор поста оценил этот комментарий
Ах вот ты где комментишь... А ну, вспоминай, зачем я на тебя подписался!
1
Автор поста оценил этот комментарий
Это не я.
1
Автор поста оценил этот комментарий
Такая же тема... Выложил пост про состав дольки мандарина и на меня подписались двое. Куда, зачем? Никто не скажет...
Автор поста оценил этот комментарий

подозреваю, что это административный подписчик

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

Пифия?

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

Про смысл жизни весьма интересно. Уже есть, что почитать?)

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

тебе может преподавателем айтишников в универе стать? будешь знаниями делиться.

Автор поста оценил этот комментарий
А вы мне уже нравитесь.
Автор поста оценил этот комментарий
Почему хорошего мало? Хорошего как раз много, просто оно не всегда очевидно
Автор поста оценил этот комментарий
Архитектор! Вызывайте Нэо!
Автор поста оценил этот комментарий

Я твой пятисотый подписчик. Призы будут?)

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

Много чего о смысле жизни? Простите мой французский, но НИХ#%СЕ!

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

Пожалуйста, запилите литературу по JavaScript! Возьмите мои деньги! Вот в таком формате объяснения как у вас, язык становится понятным!

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

присоединяюсь

5
Автор поста оценил этот комментарий
Интересно, кто те избранные?
раскрыть ветку (2)
2
Автор поста оценил этот комментарий
Это не плюсы и минусы. Это попытки связать строки
3
Автор поста оценил этот комментарий
Есть теория о том что у каждого человека есть минимум 7 похожих людей
а так как он дрочит на себя то он их возможно нашёл на пикабу
Автор поста оценил этот комментарий
У вас входящее сообщение в телеграм и от сатаны
65
Автор поста оценил этот комментарий

судя по всему вам надо было не в кодеры, а курсы читать

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

Проститутка мне курсы ещё не читала

раскрыть ветку (7)
24
Автор поста оценил этот комментарий
А ты прикинь какой крышесносный секс по логике javascript, ещё не вставил а уже заебался
раскрыть ветку (5)
8
Автор поста оценил этот комментарий

То чувство, когда не ебёшь, а ебёшься

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

Не проститутка, а фрилансер

раскрыть ветку (1)
16
DELETED
Автор поста оценил этот комментарий
Проститутка-фрилансер называется "индивидуалка".
5
Автор поста оценил этот комментарий

А во вторых, был бы я действительно хорошим программистом, то не сидел бы сейчас без работы


Э нет, не надо так. Как показывает практика, наличие работы - это умение себя продавать, проходить собеседования, нихера не умение работать.
Я искала работу три месяца, думала, что я херовый фронт, раз сижу без работы и зависаю на вопросе "писали ли вы сложные компоненты" (что есть такое сложные компоненты?). Три недели как работаю новую работу, и есть у меня коллега, код которого заставляет меня повесить над столом плакат "обращаясь к древнегреческому богу недоумения, не забудь поднять челюсть". Я делала много всяких допущений, я пыталась понять, что со мной не так, чего-то я не понимаю может быть в этой жизни? Но нет. Сегодня я убедилась в том, что этот человек правда не понимает, зачем у нас в стилях переменные, зачем глобальные классы, зачем настройки компонентам, а если уж смирится с настройками, то почему бы не сделать по настройке для каждого отдельного свойства стилей, а в их названиях не проявить фантазию, для каждого компонента отдельную. Знаешь, в чем соль? В том, что он не заикается на собеседовании, называя себя опытным разработчиком, и не зависает на вопросе "писали ли вы сложные компоненты", потому что для него сложный компонент - это попап, а дропдаун - это сверхсложный компонент. Его не ебет, какие данные к нему придут, откуда и в каком виде. Его не ебет, как делать локализацию и версию для слабовидящих (это ведь потом будет, аж через месяц, это ведь кто-то другой подумать должен (и переписать все его говно)). Он бодро рапортует на созвонах, что все хорошо и к нему нет претензий. У него есть работа, и его пока что называют не только программистом(!!!), но и хорошим(!!!1) программистом (ведь пока все норм выглядит, а "потом" будет потом).
А ты сиди и думай, че с тобой не так. От така хуйня
Бля, я наверно хуевый поддерживатель. Но ты это, не кисни. Умение работать не равно умение искать работу

2
Автор поста оценил этот комментарий
А виджеты или интеграции для amoCRM не хотите под заказ писать?
мне как раз нужен прогер на аутсорс,часто мелкие заказы и доработки нужны)
2
Автор поста оценил этот комментарий
*то не сидел бы сейчас на пикабу.
1
Автор поста оценил этот комментарий

Лучшие тренеры получаются из посредственных игроков))

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

Безработный программист, который умеет складывать числа и строки в ЖС? Вы реактом владеете? ;)

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

А вот это неверное предположение, это вам не Java. Вы можете быть великолепным специалистом, но быть без работы или не востребованы как сотрудник по другим причинам, например, какие-то ваши личные качества мешают вам быть эффективным. Или не на своем месте. Может, как верно заметили, вам давно уже пора примерить на себя роль наставника. Ваш кадровый консультант

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

Помимо яваскрипта, на каком ещё языке пишете?

Автор поста оценил этот комментарий
Онлайн школу программирования открыл и в шоколаде.
Автор поста оценил этот комментарий

It-юмор Увы :(

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

Сразу этот видос вспомнился)

Предпросмотр
YouTube8:36
8
Автор поста оценил этот комментарий
Ещё до компьютерной эры и далеко и почти высоко в горах, была у нас такая баба Аня - буфетчица. Пирожное стоило 40 копеек, ты приходил и спрашивал два. Она так и говорила, сорок и сорок - два сорок!
раскрыть ветку (7)
2
Автор поста оценил этот комментарий
Она говорила "два по сорок, это два сорок
раскрыть ветку (6)
1
Автор поста оценил этот комментарий
Нет, говорила как написал, ещё и с акцентом. Может и не хотела обсчитывать, но звучало прикольно.
раскрыть ветку (5)
1
Автор поста оценил этот комментарий

Это похоже что с какого-то анекдота или фильма

Пересекался с одним директором по работе и у него любимая присказка была: сорок, сорок это рубль сорок

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

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

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

Не боись, пройдёт, главное не увлекаться

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

У меня так со словом «пылесос»

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

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

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

ненене!
будет 9$9$

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

"9 баксов 9 баксов"

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

"Я не гей.."

раскрыть ветку (2)
1
Автор поста оценил этот комментарий
Предпросмотр
Автор поста оценил этот комментарий
Иллюстрация к комментарию
ещё комментарии
4
Автор поста оценил этот комментарий

Ну и мразь же ты, отвратительно!

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

Мне кажется, как минимум один из этих учебников стоит не 9, а '9' баксов. Можно ли вычесть из его стоимости 0 баксов, пожалуйста?

1
Автор поста оценил этот комментарий
Ты сделал мой день
1
DELETED
Автор поста оценил этот комментарий

Лео пьёт в твою честь. жпг.

2
Автор поста оценил этот комментарий
Предпросмотр
YouTube9:12
Автор поста оценил этот комментарий
Я тоже очень хочу пост про Яву. Лёгкое обучение. Вы хоть попробуйте разок))
Автор поста оценил этот комментарий

Ору!

Автор поста оценил этот комментарий
Будет сдача со 100$? Вот вам 1 доллар, 0 долларов и ещё 0 долларов
Автор поста оценил этот комментарий
За 2 или за 11?
Автор поста оценил этот комментарий

а можно мои 10 рублей превратить в 1000000000?

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

а вы точно математик?

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

Вы пробел забыли между девятками поставить )

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

Хыыы) хорошие бухгалтеры получается тоже в некотором роде программисты)

49
Автор поста оценил этот комментарий
JavaScript !== Java
раскрыть ветку (36)
12
Автор поста оценил этот комментарий
Не равно равно?
раскрыть ветку (35)
31
Автор поста оценил этот комментарий
Строго не равно
12
Автор поста оценил этот комментарий

*зануда мод он*
не равно без преобразования типов
'1' != 1 // false
'1' !== 1 // true
*зануда мод офф*

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

Минуту. Если мы не меняем тип с строки на число, то почему первое - false? Строка не равно число. в чем проблема? Или только второе без преобразования?

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

в первом случае идет приведение типов и единица-строка равна единице-числу, по этому false (условие проверки "не равно")

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

Благодаря Neronayron я понял, почему.
Но лучше б не было этого приведения типов.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий
Тогда вам не JavaScript, а TypeScript нужен.
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Блядь, нет. Не хочу ловить баги два раза.

Автор поста оценил этот комментарий
восклицательный знак равно равно))
ещё комментарии
10
Автор поста оценил этот комментарий
В Java строгая типизация, там такая наркомания не пройдет
5
Автор поста оценил этот комментарий
А при чем тут Java?
раскрыть ветку (4)
5
Автор поста оценил этот комментарий

Java + Script = JavaScript

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

Ты ещё скажи, что JS никакого отношения к Script не имеет

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

Вы смотрите он вам учебник по java вместо javascript и подсунет

ещё комментарии
ещё комментарии
2
Автор поста оценил этот комментарий
Извинись. Учебник по JavaScript!
2
Автор поста оценил этот комментарий

Так ведь всё итак понятно.

Если стоит плюсик, то JS всеми силами пытается представить следующий элемент как строку. Если стоит минус, то наоборот, всеми силами пытается представить следующий элемент как тип данных, который можно вычитать.

Ну а в случае, если всё это не прокатывает, то просто хуячит всё в строку, разводя руками и преклоняясь перед величием разума того гения, который пытается творить всю эту дичь

раскрыть ветку (15)
2
DELETED
Автор поста оценил этот комментарий
Жалко, что математических знаков мало, а так можно было бы на каждый свою логику написать
раскрыть ветку (14)
5
Автор поста оценил этот комментарий

Логика вполне простая и понятная даже мне, хоть я и не знаток JS, а работаю с другими языками. Так что хз в чём тут проблема. Не пиши говно - не будет говна. Принцип прост и работает во всех языках.

раскрыть ветку (11)
6
DELETED
Автор поста оценил этот комментарий
Неконсистентная логика ведёт к проблемам, если ты каждый мат знак обрабатываешь по разному, ещё и в зависимости от типа объектов с которыми ведёшь операции - это просто паутина выборов
Автор поста оценил этот комментарий
Логика работы операторов не должна зависеть от операндов!

Яблоко + яблоко = 2 яблока
машина + машина = null //потому что машина не круглая и не съедобная.
раскрыть ветку (9)
2
Автор поста оценил этот комментарий

С какого перепугу не должна? Ещё как должна зависеть от типа операнда!

Допустим с числами все ясно (конкретно в случае оператора +)

1 + 2 = 3

А со строковыми типами + обычно их конкатенирует

'ab' + 'bc' = 'abbc'

А в некоторых ЯП (тот же С++) для своих типов можно операторы перегрузить.

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

Например, сложение:

Мнимые к мнимым, действительные к действительным!

1+2i + 1+2i = 2+4i


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

Почему на 0 делить нельзя? Потому что в пространстве чисел операция деления конкретно в случае деления на 0 не определена.

раскрыть ветку (8)
1
Автор поста оценил этот комментарий
Потому что это усложняет программирование.
Представь, что стоимость проезда на метро каждый день показывалась бы в новой системе счисления, основание которой - минимальный простой множитель ближайшего простого числа, образованного перемножением всех чисел месяца до текущего.

Да, логика есть и вполне детерменированная.

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

Про метро очень плохой пример плохо написанной логики, который не опровергает всего того, что я написал выше.

По твоей логике и на 0 делить можно в арифметике.

Как комплексными числами оперировать? А векторами? А пользовательские типы данных?

Ты не можешь по одной логике складывать и числа, и строки.

Возможность определять операторы не усложняет - даёт больше свободы. Просто пользуйся с умом.

раскрыть ветку (3)
Автор поста оценил этот комментарий
Для этого нужны РАЗНЫЕ операторы для РАЗНЫХ данных с РАЗНОЙ логикой

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

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

Чивооо блять?. жпг

раскрыть ветку (2)
Автор поста оценил этот комментарий
Логика есть, зависит от операнда. что не так?
раскрыть ветку (1)
Автор поста оценил этот комментарий

на каждый свою логику написать

В некоторых языках можно:

> creation of programmer-defined operators (e.g. Prolog, Seed7, F#, OCaml, Haskell).

https://en.wikipedia.org/wiki/Operator_(computer_programming...

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Ну от функциональщины подсознательно ждёшь такой дряни от жабаскрипта - нет
Автор поста оценил этот комментарий
Java и Java Script совершенно разные вещи. Просто на будущее, чтобы однажды вдруг не было из-за этого недопониманий
Автор поста оценил этот комментарий
И я!!
Автор поста оценил этот комментарий

При чем тут Java, если речь по JS?

Автор поста оценил этот комментарий
При чем здесь джава?
Автор поста оценил этот комментарий
Почему по Java?
Автор поста оценил этот комментарий

Java и JavaScript разные вещи)

Автор поста оценил этот комментарий
https://learn.javascript.ru/
Наслаждайтесь. Это практически самый актуальный и самый толковый учебный материал по JavaScript на текущий момент.
Автор поста оценил этот комментарий

Так тебе java нужна или всё-таки js?

Автор поста оценил этот комментарий
На 5 золотых...
DELETED
Автор поста оценил этот комментарий

"на все деньги.." но потом купил пирожок и снова копить

Автор поста оценил этот комментарий
Безумству храбрых поём мы песню.
152
Автор поста оценил этот комментарий

В нормальных языках если из строчки будешь вычитать число, компилятор/интерпретатор посмотрит на того, кто это написал, как на дебила и выкинет ошибку компиляции/эксепшн а не будет делать вид, что так и надо

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

Споры про то, нужны ли такие фишки в языках программирования или нет - это уже другой разговор. Как и в целом динамическая типизация переменных. Я вот тоже люблю строгую типизацию, да и не я один. Вот тебе TypeScript для этого, наслаждайся. Однако я не люблю когда в чем-то обвиняют язык программирования, когда он все делает правильно и логично, в отличии от кретинов которые делают такие финты ушами.

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

Это не имеет отношения к динамической типизации, неявное приведение типов - признак слабой типизации (хотя антагониста ты назвал правильно - строгая/сильная типизация), бывают языки как со статической и слабой типизацией (С), так и с динамической и строгой (Python)

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

Та норм язык, просто я не понимаю зачем вообще там эта фича

раскрыть ветку (22)
24
Автор поста оценил этот комментарий
Это риторический вопрос? Если да, я все равно выебнусь) Потому что исторически JS был языком для простеньких скриптов, при его создании его хотели сделать как можно проще, без строгой типизации. Чтобы минимизировать ситуации, когда при ошибке не запускается вообще ничего
раскрыть ветку (19)
13
Автор поста оценил этот комментарий
Ну так самое простое, и очевидное - это вторую переменную приводить к типу первой. И не будет путаницы. Что первое - тот тип и используем. Это очевидно, логично, и интуитивно понятно. Зачем выдумывать разное поведение?
'5' - 2 = '5-2'
5 - '2' = 3
'5' + 3 = '53'
5 + '3' = 8
раскрыть ветку (17)
22
Автор поста оценил этот комментарий

Самое логичное — падать, если операция неоднозначна.

ещё комментарии
15
Автор поста оценил этот комментарий
Я конечно прошу прощения, но ‘5’ - 2 = ‘5-2’ ни разу не очевидно, не логично и не интуитивно понятно. Почему минус стал строкой, почему в таком случае + не стал строкой, а вышло ‘53’, вместо ‘5+3’.

Используя этот пример у кого-то будут такие вопросы и всё вернётся к тому с чего начали.

Вычитание работает так как и должно работать приводя операнды к одному типу (числу).

Ну а для конкатенации они, возможно, выбрали не очень удобный оператор, но это все решается явным привидением типов. За типами следить придётся хоть так, хоть так, ибо не всегда можно быть уверенным в том, что тебе пришло именно число, а не строка с числом.
6
Автор поста оценил этот комментарий

почему '5' - 2 это '5-2', а '5' + 3 не '5+3'? Уж впихивать знак - так впихивать, натягивать сову на глобус - так натягивать.


А сколько будет 5 + ' яблок' у вас?

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

'5' - 2 = '5-2'

Нелогичнее этого может быть только

define true = false

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

Попрошу внимания, но первое выражение там вовсе не '5' - 2, а '5' + - 2. Это абсолютно разные вещи (с точки зрения javascript, конечно). В первом случае, так как минус является оператором вычитания он преобразует 5 к числу, и производит вычитание 2 из 5, получает 3. Во втором случае есть уже два оператора - плюс и минус. Плюс является оператором конкатенации, а минус уже работает не как оператор вычитания, а как изменение знака у числа 2 (причем неважно, дали ли вы ему строчку '2' или число 2, он все равно преобразует в число). Только что сама проверила, что все так и работает.

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

Ну так всё верно, идеально работает язык. Первое: в JS нет строгой типизации потому что JS изначально не язык программирования, а связующее звено между элементами HTML+CSS в форме яваобразного языка программирования. То, что JS уже можно использовать даже для десктопных и мобильных приложений - следствие его распространенности и адаптации, как следствие, под другие платформы и задачи.


Математические функции приводят строку к числовому значению


Если первым идёт строка она не конвертируется и яваскрипт видит выражение формата "строка" + "число". Т.к. строка с числом не складывается математически он просто конвертирует число в строку и складывает строки.


Если строка идёт второй, математические функции конвертируют её в число и яваскрипт получает два числа. после чего успешно их складывает или вычитает, что тут непонятного?


Язык прекрасен в своей простоте. Математические функция пытается привести значение к числу изначально, если не получается оставляет строку.


Равно же это знак присваивания, а не математическое "равно".

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

Потому что исторически

Потому что был спроектирован из говна и палок в кратчайшие сроки.

Вот и получилось то, что получилось.

3
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий
-Зачем тебе это?
-'ну' + 'надо'
5
Автор поста оценил этот комментарий

Что правильного и логичного в рандомном выборе что к чему приводить?

Вычитая из строчки число - вы приводим строчку к числу? окей, понятно. Значит, при арифметических операциях строчка приводится к числу, так?
нет, нихуя не так. При сложении наоборот - число приводится к строчке. С хуя ли? А хуй знает. А потом еще строчки слепляются. не складываются - слепляются. Вообще другое действие. нахуй нам не нужное.


Вот где тут логика?

Вопрос риторический, ее нет.

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

Выбор не рандомный. Он вполне себе конкретный и, по своему, логичный. Да, непривычно что оно само додумывает за тебя, но вообще это дело привычки.

раскрыть ветку (25)
2
Автор поста оценил этот комментарий
а почему бы просто не складывать ASCII коды символов?
Смотри как просто и логично:
1+2= c
раскрыть ветку (2)
Автор поста оценил этот комментарий
Тогда уж не аски а утф=)
Основная проблема, из-за которой столько непоняток, в том что конкатенация и сложение в языке обозначаются одним символом. Поменять конкатенация на & и 3/4 подобных шуток можно в утиль списывать
раскрыть ветку (1)
Автор поста оценил этот комментарий
амперсанл занят
предлагаю оператор такой:
a ][ b
3
Автор поста оценил этот комментарий

по своему, логичный

Я понимаю, что это слово тебе не знакомо, поэтому держи https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%B8%D0%BA...


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


И на привычку можно много чего свалить, но в итоге тут нет ни логики, ни правильности. А надо тупо выучить как и что.

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

Если ты не понимаешь почему в одном случае так, а в другом иначе это говорит только об ущербности твоего ума, а не об отсутствии логики.


Некоторым конечно проще вызубрить, чем понять почему.

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

Я прекрасно понимаю, почему это так.
потому, что тот кто создавал этот язык так написал XD

Только это не наделяет функции "ну так получилось" логикой. Это именно "ну вот так получилось".


но в итоге тут нет ни логики, ни правильности

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

Можно сколько угодно доказывать что это логично и правильно, только вот это не поменяет того, что когда в таком выражении используются переменные и больше одного оператора, то предсказать результат становится невозможно. И это нихрена не "плюс" или "фича" языка, это наследие того времени, когда ср*ный js предполагался только для анимации снежинок на странице.

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

...ведь все только и занимаются тем, что вычитают числа из строк, а уж поставить угарный плюс перед числом, которое взято из непонятного источника и может прийти строкой - это так сложно, сильно сложнее явного приведения типов в других языках. Я все правильно продолжил?

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

Я так понимаю, вы все выражения пишите только с константами, переменными совсем не пользуетесь? Функции не пишите? С сервера данные не запрашиваете? Тогда да - шанс наткнуться на такую ошибку исчезающе мал.

а уж поставить угарный плюс перед числом, которое взято из непонятного источника

Про обработку ошибок, видимо, уточнять даже смысла нет?

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

Я и не говорил что это правильно. Да, такие вот неочевидные вещи это наследие "сделанного за 10 дней языка". Просто их проявление надо учитывать при написании кода, и можно либо понять логику по которой они будут проявляться, либо тупо заучить (либо не писать на JS).

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

Специально такое (почти) никто не в код не вставит, а вот когда результат одной библиотечной функции передаётся в другую, то можно только надеяться на адекватность разработчиков этих библиотек.

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

При выполнении операции пытается сперва привести типы вверх (к более широкому), если операция для него определена. Если нет - пробует вниз. Все, вся логика. Сложение для строк определено - это конкатенация. Оба операнда приводятся к строке и складываются. Вычитание для строк не определено, потому оба операнда приводятся к числу. Все просто и логично.


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

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

Зачем вы вычитаете число из строки? Зачем пытаетесь складывать строки? У вас справка есть?

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

Представьте себе библиотечную функцию, которая просто проводит некоторые вычисления. Если разработчик библиотеки не предусмотрел отдельную проверку всех переданных аргументов (тот ещё гемор, если функций много), то туда запросто может попасть не то что нужно.


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

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

Т.е. один не добавил в свой код приведение типов, второй вызывает этот код с любой херней которая ему попадется - а не нормальным считается js? :)

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

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

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

Офигеть, а языки в курсе этой своей задачи? :) Назовите пожалуйста хоть один язык, минимизирующий ошибки (кроме js, естественно) - но именно язык, так чтоб без учета компиляторов/интерпретаторов/сред разработки.

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

Офигеть, а языки в курсе этой своей задачи?

Внезапно да? Я понимаю, конечно, что после js это сложно представить.

но именно язык, так чтоб без учета компиляторов/интерпретаторов/сред разработки.

Нихрена себе вы загнули - а кто будет проверять что хотя-бы опечаток нет, если исключить "компиляторов/интерпретаторов"? Если брать близкий к js язык - то, например, typescript. Уже одно то, что можно указывать ограничения типов позволяет транслятору проверять корректность вызова функций. А уж если есть поддержка в среде разработки - то там и автодополнение будет корректным (т.е. показывать именно то, что гарантированно доступно в текущем контексте, а не список всего и вся).


И да, если захотите рассказать что "И в js такое возможно", то рассказывайте о чистом js, без сторонних инструментов на связанных с языком, вроде jsdoc, jslint и прочих костылей.

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

Да, есть. В школе выдали вместо аттестата. Еще идиотские вопросы будут?

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

int + string

Как ты предлагаешь джаваскрипту понять что ты хочешь сделать сложить или конкатенировать. Написать парсер мыслей? Другое дело сходство этих операторов, но это отдельный вопрос

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

Да все логично. В первом случае операция сложения строки и числа не определена, ок, тогда попытаемся привести их к одному типу, первый операнд - это строка, есть ли операция сложения строк? Есть. Можем ли мы второй операнд привести к строке? Можем. Хорошо, тогда приводим второй операнд к строке и выполняем сложение. Второй случай - операция вычитания числа из строки не определена, ок, тогда пытаемся привести их к одному типу, первый операнд строка, но у строк тоже нет операции вычитания, ок, что там со вторым операндом? Число, числа можно вычитать. Можем ли мы привести первый операнд к числу? Можем, ок, тогда приводим к числу и вычитаем. Третий случай, складываем строку с минус строкой, ну сначала выполняется операция отрицания по порядку, а потом сложения. Ок, выполняем отрицание. Стоп, для строк отрицание не определено, а для кого определено? Для чисел, ну тогда приводим к числу и выполняем отрицание. Дальше выполняем сложение строки и числа, опа, опять операция не определена, ну тогда приводим их к одному типу, первый операнд - строка, можем ли мы сложить строки? Да. Можем ли мы второй операнд привести к строке? Да. Ок, тогда приводим второй операнд к строке и складываем их

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

И что логичного в описанном тобой заученном алгоритме?)

Вопрос риторический) Ничего.
Это весьма костыльный алгоритм без капли логики.

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

Это простой алгоритм же, если оператор для этих двух типов не определен - то проверяется определен ли он для типа первого операнда и можно ли к нему привести второй, если да - второй приводится к первому типу и выполняется, если же нет - то проверяется то же самое для второго операнда. Все логично вроде.

Если не согласны - то какой более простой и логичный алгоритм Вы бы предложили для неявного приведения типов?

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

Сколько людей не знакомы с понятием "логика", оказывается)


алгоритм - это не логика, ау.
если я создам алгоритм "Черное = белое", "красное=дерево", "сложить значит умножить", "вычесть значит закончить" - это будет логичным?) Нет, но это будет вполне себе простым алгоритмом.


Я не собираюсь ничего придумывать. Зачем это, какой в этом смысл?
Самое логичное при возникновении ошибки писать "ошибка". Вот, что логично.
А действовать согласно алгоритму написанному просто шоб было - это костыли. И никакой логики.

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

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

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

"Как я хочу", " как я привык" - это хотелки, а не логика. Чтобы какое-то действие считалось ошибкой - недостаточно, чтобы лично ты считал это ошибкой. Если ты найдёшь официальный документ, применимый ко всем языкам в целом либо к яваскрипту, где чётко формализовано, что вычитание разных типов является ошибкой - тут у тебя будет хоть какая-то аргументация кроме личной хотелки. Если есть аналогичный документ, подтверждающий, что при возникновении "ошибки" такого типа (некритичной с точки зрения джс) обязательно надо писать "ошибка" - это опять же будет хоть какой-то аргумент. Твои хотелки, твои привычки и твоё личное представление о том, что такое ошибка - это не аргументы, и потому к логике они отношения не имеют.

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

А потом у вас сайт ломается, потому что бэк строку вместо числа прислал.

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

Лучше пусть дичь показывает :) тесты никто не отменял :)

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

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

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

..потому, что на беке - такой жабосракер под нодой сидит.

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

Не, ну можно конечно написать что в "нормальных языках" компиляторы написаны для дебилов которые пытаются из строк числа вычитать и как бы об этом неплохо было бы предупредить т.е. как бы до компиляции таки следует следить за типизацией - в JS за этим тоже нужно следить, либо сразу писать те типы которые ожидаются если код имеет критических момент к этому. Удобно\не удобно ... На заднем сидении "Оки" неудобно сексом заниматься, но если очень хочется ...

6
Автор поста оценил этот комментарий
В нормальных языках если из строчки будешь вычитать число, компилятор/интерпретатор посмотрит на того, кто это написал, как на дебила
Как на писателя JavaScript же.
6
Автор поста оценил этот комментарий

Ф нямяних яфихах мюмюмю. В типизированных ты хотел сказать? А на js не гони, посмотрел бы я на тебя как ты на коленке сайтец "по-быстрому" написал на плюсах каких-нибудь, ага

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

Отсутствие альтернативы не меняет того факта, что многие решения в js как минимум спорные.

На счет типизации - питон не очень-то типизированный, но за строку минус число сделает приложению бросок через бедро.

Ну а на счет сайта на плюсах. бэк энд легко, а фронтэнд только если найдете поддерживающий его браузер :)

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

Сайт - фронтенд. Веб-приложение - фронт + бек. Я говорил вполне конкретно: проблематично писать фронт, юзая не js.

Вообще языки придумывались конкретно под работу с определенными данными. JS отлично работает с DOM. Есть что-то удобнее, чем JS для работы с DOM? - вот в чём был посыл

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

в случае с питоном программа просто не выполнится, в случае с JS при ошибке остановится выполнение любых скриптов на странице

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

Почему не выполнится? Кто тебе такую глупость сказал?

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

А почему оно должно выполниться?

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

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

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

Почему любых? Кто тебе такую глупость сказал?

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

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

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

Есть транспиляция номальных языков в js, есть Blazor, который позволяет пользовательскую логику сайта делать на C#. Ещё жив GWT, который позволяет то же самое на Java.

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

Как нехер ссать. Поспорим?

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

Это означает "нелегко", а не "невозможно", о чем спорить-то? Что тебе будет легко? Ну ок, кому-то может и будет легко юзать не js(ts) для скриптинга сайта, но явному большинству всё-таки удобнее (проще) юзать js. Ну это так, чисто по статистике, которая врёт и вообще

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

Это называется слабая и сильная типизация. При этом это не дискретное значение. И вот спорить о том хорошо это или плохо бессмысленно. Есть языки слишком сильно типизированные, в которых строгость может помешать или заставит делать сложные механизмы, которые умещается в одну строку на языке с более слабой типизацией

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

ААга, а прибавлять можно :)

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

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

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

Да смысл то в этом есть. Можно и велосипед с квадратными колесами использовать в узкоспециализированной задаче, но блин, JS стал единственным стандартом целой индустрии.

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

Какая индустрия, такой и стандарт. Какие программисты, такие и программы. Какие люди, такое и человечество.

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

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

Но когда фронтенд становится тежелым, с кучей логики на нем, да еще потом на NodeJS делают бекенд - это буквально на том велике с квадратными колесами идут на велогонку, какого черта? Это же тупо.

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

А может просто взять typescript + nestjs + eslint, проблема с типами резко исчезает.

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

а потом открываешь код и видишь:

let a:any = 3;
let b:any = 'qqq';
let c: any = [];
.....
c = a + b

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

Можешь мне не объяснять, я писал SPA

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

Ну пиши на тайпскрипт, хуле.

Не обязательно писать на js, можно в него компилировать же.

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

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

С нетерпением жду когда WebAssembly или еще что такое даст писать на нормальных языках.

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

Не костыли.

JavaScript на удивление мощный язык, но не особо developer-friendly за счёт некоторых неочевидностей. И раз уж так вышло, что именно этот язык понимают все необходимые устройства, то не обязательно писать на нём, можно использовать его как псевдо-байткоды.


А аналогии с палками и прочей хернёй вообще не к месту, так можно про любой язык сказать. Все они чем-то жертвуют: или читабельностью (C++), или компактностью (Java), или ещё чем-нибудь.

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

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

TypeScript же даёт нормальный удобный интерфейс, но через медленный неуклюжий внутренний механизм. То есть нативная поддержка TS могла бы быть в разы быстрее. Это я и называю знаком, как лечить зубы у проктолога - в целом работает и лучше чем совсем не лечить, но блин...

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

А почему костыли и причем тут интерпретатор?

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

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

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

Артугментировано.

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

Потому что конкатенация работает через плюс. Неужели мало символов на клаве, чтобы сделать конкат отличным от сложения? Отсюда и отличия от минуса или скажем умножения. Поэтому у тебя и не получается складывать строки или сделать конкат чисел, а не потому что ты долпаеп

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

Все верно, JS считает тебя гением, поэтому не пишет ошибку. В отличии от других, где при попытке так сделать, то тебе скажут: "Исправляй или не билданусь, сукаблять!".

4
Автор поста оценил этот комментарий
А если сделать '5'- '-2', он их сложит?
раскрыть ветку (5)
2
Автор поста оценил этот комментарий

Да.

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

!+[]

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

Разумеется

раскрыть ветку (2)
1
Автор поста оценил этот комментарий
То есть наконец-то будет 7?
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Угу.
Вычесть из строки строку нельзя, приводим к числам, 5 минус минус 2 равно 7

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

В общем-то это нихрена не логично, и внезапно уже не одну спецификацию js противоречит сам себе.

Я просто оставлю это здесь

Предпросмотр
YouTube32:46
раскрыть ветку (3)
23
Автор поста оценил этот комментарий

На вас уже нервов не хватает. Ну я не спорю, найдутся дауны которые будут такую ахинею писать в реальном коде, а не рофлов ради. А что делать то? Уже не первый год кричат, что джаваскрипт маст дай, да даже не первое десятилетие по моему. Но он - сама неотвратимая реальность. Можете плеваться желчью а можете писать нормальный код. Хуйню можно написать и на Java. И шедевры я встречал на JavaScript.

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

Проблема то в том, что ты не пишешь в коде такое напрямую. Ты используешь язык, ожидаешь логичности, а потом -1 < Number.MIN_VALUE вдруг true.

А потом ты складываешь две переменных, ожидая что там строчки, и отправляешь это куда-то на бекенд. А вот вдруг у тебя вместо строчек из-за ошибки в другом месте список или еще что, и вот ты какую-то несусветную дичь отправил на бекенд. И никак тебя ничто от этого не защищает. В итоге язык просто побуждает тебя писать как-то слегка работающий говнокод, который ни за что не выдает своих поломок явно.

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

которые будут такую ахинею писать в реальном коде
Дык выпустите новый стандарт, который эту ахинею запретит нафиг.

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