А что вы скажите за JavaScript?

А что вы скажите за JavaScript?

IT-юмор

5.6K поста52.4K подписчиков

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

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

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

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

Йуные розроботчеги, которые шутят про Си++ и жабаскрипт немного не понимают, что такое на самом деле "выстрелить себе в ногу", ибо знают только последний, а про кресты только слышали и чуть-чуть читали. Так вот, мой йуный друх, "выстрелить себе в ногу" - это не получить 2+2 = 22, или NaNNaNNaN Batman!, это несколько глубже.

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

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

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

прям за душу взяло))

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

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


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

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

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

По Js отстаёте, working threads давно есть в nоdejs , но callback hell делает код не читаемым, а более менее среднем проекте. если ты не под смузи, а typescript.. система типов без rtti .. хотя кому это все надо хуяк-в продакшн , память жрёт? AWS autoscaling ...

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

Working threads есть давно, но пользуются им почти никогда. Я когда-то упарывался, но со всякими голландскими кубернетесами сейчас их тупо не к чему применять. А вот callback hell это что-то семи-восьмилетней давности. Его почти сразу начали разруливать через async.js, потом подвезли промизы, особо упоротые разруливали елдой, но это из области эзотерического программирования, а в наш век async/await как бы вообще об этом не вспоминают.

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

Все верно если вы пишете новый проект, а не делаете фичеры в старом ентерпрайзе )

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

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


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

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

Плюсую. Лучше переписать микросервис, чем поддерживать говнокод

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

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

10
Автор поста оценил этот комментарий
Не, в js не один поток. Там абсолютно ебанутая смесь синхронного с асинхронным, примерно как в вижуалбейсике можно намутить с помощью объекта Timer, плюс ещё истинно асинхронные функции.
раскрыть ветку (8)
3
Автор поста оценил этот комментарий

В JS все таки один поток, второй поток это либо движок бразера либо нода (либо другая среда). Можно загуглить по словам event loop

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

истинно асинхронные функции

В чем истина, если тру-параллельно выполняться они не могут?

раскрыть ветку (6)
3
Автор поста оценил этот комментарий
Так, строго говоря, на одноядерном проце всё не труЪ-параллельно выполняется. Пока Win95 (и до 2К как минимум) форматирует дискету, всё остальное ждёт. )))

А асинхронные функции в js реально асинхронны в той же мере, в какой уместно говорить об асинхронности применительно к "нормальным приложениям". Определяешь а.ф., запускаешь, твой код продолжает выполнение, а а.ф. работает независимо от него.

Погугли "как сделать sleep в js", на первой странице гугла о асинхронных функциях вылезет.
раскрыть ветку (5)
1
Автор поста оценил этот комментарий

на одноядерном проце всё не труЪ-параллельно выполняется.

Только где сейчас найти одноядерные процессоры?

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

Любая виртуальная машина - контейнер для микросервиса, например

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

Виртуалке можно дать больше ядер, это не ограничение.

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

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

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

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

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

Да и для поиска утечек есть куча удобных инструментов, ну а кто ими не пользуется сам себе злобный буратино
раскрыть ветку (52)
26
Автор поста оценил этот комментарий

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

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

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

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

ленивые просто

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Не ленивые, просто в Гугле долго искать, что бы самому понятно было.
5
Автор поста оценил этот комментарий

коммунисты.

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

memory usage в VS, pvs studio не об этом но тоже ловит некоторые кейсы

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

Я вижуалкой мало пользуюсь, в основном использую фреймворк Qt, потому сижу на их IDE, и если честно, нравится больше вижуалки А аналогом PVS есть clang-tidy который идет вшитым в креатор, и меня в принципе устраивает. Отдельного полноценного анализатора как Valgrind все равно в винде оч сильно не хватает.

раскрыть ветку (19)
2
Автор поста оценил этот комментарий
Блять! Ты мне щас Сатану в сортир призвал! Отзывай ево нахуй, он опять нудит по поводу души!
ещё комментарии
1
Автор поста оценил этот комментарий

Можно использовать Valgrind c WSL2 на винде.
Собственно, нас так и учили - по крайней мере, на CLion с этим проблем не возникает.

1
Автор поста оценил этот комментарий
Спасибо, сохраню это себе, пожалуй :D
17
Автор поста оценил этот комментарий

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

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

Я был в этой ситуации. Буквально неделю назад с этой херней закончил. У заказчика был модуль от другого разработчика, ошибка и отсутствие связи с тем самым разработчиком. При этом если с бэком исходники были, то от фронта только обфусцированный код. От такая хуйня.

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

Еще раз дико извиняюсь.


Мой пойнт следующий -- если от фронта / бека на JS нет сорца, то трогать это бессмысленно по нескольким причинам.


1 - На vanilla JS практически никто ничего уже не пишет. Везде используются фреймворки

2 - Дикая смесь из JS + TS может быть даже в одном проекте

3 - Webpack + Babel + build отсекают все разработчицкие зависимости и конвертят код в человеконечитаемое нечто

4 - Unit-тесты уже не поправишь


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


Я бы в прод такое запускать не стал.

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

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


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

раскрыть ветку (8)
Автор поста оценил этот комментарий
Что ты подразумевашь под "философию абстракций и высокоуровневых паттернов"?
раскрыть ветку (7)
2
Автор поста оценил этот комментарий

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

раскрыть ветку (6)
7
Автор поста оценил этот комментарий
Мда чел, сорян конечно но у тебя насрано пздц, и если уж существует причина по котрый "плюсовики" не любят "таких разрабов" так это вот из-за такого отвратительно отношения к программированию и от языка это не зависит, просто на c++ подобной некомпетентности существенно меньше.
Promis это вообще не абстракция и не паттерн и тем более не высокоуровневый, это всего лишь один из простейших типов для асинхронного взаимодействия. Который существует в любом языке где есть асинхронный код и делает он ровно тоже самое.
Типы данных в python это просто "типы" и от того что в python они имеют разные свойства и методы не меняет того факта что каждый из них представляется PyObject в С.

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

"использования dataclasses", ляя это называется "рефлексия" которая ещё бывает compile time и runtime. И это то что очень легко реализуется в любом интерпретируемом языке. И это не фича и не что то новое это существует уже хз сколько лет.

О какой неизменяемости данных можно вообще говорить в js где даже const это не const.

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

https://developer.mozilla.org/ru/docs/Web/JavaScript/Referen...

Типы данных в python это просто "типы" и от того что в python они имеют разные свойства и методы не меняет того факта что каждый из них представляется PyObject в С.
В пайтон всё является объектом. PyObject - это объект, как ни странно.

сорян конечно но у тебя насрано пздц
Не, милчеловек. Насрано в голове у тебя, если ты путаешь такие понятия, как объект и тип. Или обёртку и тип. Рекомендую ознакомиться с устройством очередей событий в JS прежде, чем писать опусы на тему "объект - это не объект, а тип".

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

И это не те промайсы, мальчик. Учи матчасть.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий
"не те промисы", ахаха, иди сам учись, а то такую чушь пишешь что волосы дыбом
4
Автор поста оценил этот комментарий

OMG.. "Тип данных" это больее широкое понятие чем "обёртка" или "объект" я не стану размениваться на эти мелочи это вообще не существенно в контексте обсуждения.

Чел, я вносил правки в libuv, для сборки под qnx, на которой и построены очередей событий в JS, мне не надо рассказывать как они устроены. Если это для тебя что то интересное и любопытное, то в мире C++ это всего лишь ещё одна реализация одной из многих моделей паралелизма под нзванием Event Loop. Если ты спозобен мыслить лишь в "абстракциях" одной конкретной реализации, одной конкретной модели паралелизма, то про какие "высокоуровневые парадигмы" ты вообще говоришь?

Автор поста оценил этот комментарий
Поиск утечек - это легко, есть куча инструментов, которые действительно работают, а вот поиск heap corruption это невероятная боль, где инструменты вроде как есть, но я ни разу не видел, чтобы они помогли
раскрыть ветку (4)
Автор поста оценил этот комментарий
А как же address sanitaizer?
раскрыть ветку (3)
2
Автор поста оценил этот комментарий
Пробовали, не помогло :(
Там, в добавок, само приложение жрало 40-60 гигов (не утечка, не хреновый код, действительно перелопачивало столько данных)
раскрыть ветку (2)
2
Автор поста оценил этот комментарий
Интересно, и в чем же проблема оказалась по итогу?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Мы так и не узнали, просто с какого-то релиза оно перестало падать, мне было чем заняться кроме выяснения причин, так что все забили. Я даже не был разработчиком этого приложения, я SDET, я даже не должен был его нагружать, но людей не было, а на безрыбье и лифт - рыба
Автор поста оценил этот комментарий
Сорцмапы в помощь
Автор поста оценил этот комментарий
Как разраб на плюсах, мне проще

Прям КЭП- оказывается разрабу на плюсах проще на плюсах, чем на том в чем он не дупля не отбивает.

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

раскрыть ветку (2)
1
Автор поста оценил этот комментарий
да вот только момент, что это касается также, rust,. Net, python, и т.д. на jave вообще пришлось с разбираться с dalvik байткодом после "декомпиляции".
Это первый момент, а второй, часто ли нужно обфусцировать бинарник для прода? Как часто ты вообще это видел? Вот собирать js код в один файл для поставки задача абсолютно рядовая
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Вот собирать js код в один файл для поставки задача абсолютно рядовая

- на JS минификация, обфускацию никто не делает почти.

- Не в один файл, а в набор.

- Только на фронте

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

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

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

хоть кто-то нашёлся, кто может объяснить значение "выстрилить себе в ногу". А то банальные баги из-за кривокода называют "выстрелить себе в ногу" или "фарш" - это действительно детсад какой-то.

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

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

рекурсия. Зачем она здесь?

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

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

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

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

если хочется писать на каком-то языке - просто берёшь и пишешь.

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

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

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

Я не буду спорить что каждый язык для своих задач и что для фронта у джс просто нет конкурентов, но в сравненни с языками с нормальным ооп такими как java или c# -- js это ебаный набор костылей.

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

Ну а что ты хочешь от языка, спецификация для которого была сделана за неделю? Я смотрел новые версии - ECMA честно пытается сделать из него удобоваримый ЯП, проблема как всегда в обратной совместимости. Потому что если её убрать - 3/4 веба наебнется. Но и поддерживать уже сил нет. Можно все свалить на Netscape (неделя на спеки, помним, да?) - да только смысла нет, netscape давно уже почил в бозе. Ну и он как бы создавался, чтобы на страничке там снежинки красиво падали, а не вот это вот все. А еще долбанный node. Охуенная же идея - мы и так вынуждены пользоваться одним из самых хуевых ЯП на фронте, давайте его затащим еще и на бэк!

П.с. для фронта таки есть конкурент - webasm.

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

> Потому что если её убрать - 3/4 веба наебнется.


Нет, если разрешить запускать старые сайты «в режиме совместимости» и ввести понятие модульности.


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

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

чем тебе нода не нравится? И Js - ахуенный язык, особенно с тайпскриптом!

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

Понимаешь, ТS - это костыль. И тот факт, что ты, защищая JS вынужден упоминать этот костыль как раз доказывает, что JS - хуевый язык. Да, не спорю, TS  делает его более удобоваримым, но все равно он не решает все проблемы.

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

раскрыть ветку (7)
Автор поста оценил этот комментарий
Почему это костыль? Это фича.

Чем язык плохой, я не пойму. Очень классный!
раскрыть ветку (6)
1
Автор поста оценил этот комментарий

А ты на чем-нибудь кроме JS/TS писал?

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

на джаве и на php

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

А, ну тогда понятно, почему тебе JS хорошим языком кажется. С жавы уже даже самые упорные жависты бегут в котлин/скалу, а пых... ну что пых, про него все и так ясно.

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

С жавы уже даже самые упорные жависты бегут в котлин
Звучит так, будто котлин - это что-то принципиально новое, совсем не джава.

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

Так а какой язык норм по твоему?

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

Мне JS кажется хорошим языком - потому что я пишу на нем более 5 лет, хорошо его знаю, видел много разных проектов, и знаю как писать так чтобы было и понятно и удобно и все остальное. Не особо вижу минусов языка!

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

вы как то умудряетесь понимать, что каждый инструмент для своих задач и сравнивать JS с Java и C#.

JS - встраиваемый язык, для управления приложением.

Java, C# - языки на которых можно писать полноценные приложения.


Очень хочется, всех кто критикует JS, заставить переписать весь веб на C.

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


говнокодить можно на чем угодно.

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

> Очень хочется, всех кто критикует JS, заставить переписать весь веб на C.


Очень хочется, всех кто критикует Ладу, заставить ездить на УАЗе.


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

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

причем тут демагогия?

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


Тогда об чем пошутейки то?

Инструмент выполняет свою функцию, и раз альтернатив нет, значит это самый дешевый вариант. Как только это станет не так - появятся альтернативы.

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

альтернатив ему сейчас нет

Всегда было навалом альтернатив. Сейчас - C#/Blazor, к примеру. А вообще, сейчас TS становится практически стандартом де-факто.

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

допустим, какой процент сайтов использует JS, и какой то, что вы перечислили?


Это напоминает мне дискуссию Linux vs Windows. При всех косяках винды именно windows стала одной из самых массовых ОС, и наряду с удешевлением железа, именно низкий порог входа обеспечил колосальный толчок развития ПК.


То же самое и с JS. При всех его  недостатках, именно он обеспечил толчок веб индустрии.


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

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

какой процент сайтов использует JS, и какой то, что вы перечислили?

Речь шла про наличие альтернатив. Таки они есть.


При всех его недостатках, именно он обеспечил толчок веб индустрии.

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

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

чего вам стыдится, вы как-нибудь, без меня разберетесь.

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


другое дело по любому удобному поводу поливать работающее решение.

с JS'ом, PHP и многим другим происходит именно это. Устраивается мишень для "остроумия".


Мне не понятно с какой целью это происходит.

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

Устраивается мишень для "остроумия".

Зачем так близко к сердцу принимать критику пусть даже любимой технологии?


Говорить о недостатках любых технологий важно и нужно, дабы не допускать религиозной увлеченности по причинам недоинформированности. Серебряных пуль нет. У винтажных технологий всегда будет больше недостатков больше, чем у более современных.

раскрыть ветку (4)
Автор поста оценил этот комментарий
А вообще, сейчас TS становится практически стандартом де-факто.

ты зэ знаешь что TS это JS? :)

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

JS - это TS, обратное не верно)

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

ты зэ знаешь что TS это JS? :)
А ты же знаешь, что нет? И когда говорят про TypeScript, то чаще всего подразумевают использование фишек этого языка в процессе кодинга.

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

Да-да, TypeScript никто не изобрел.

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

Плюсы и минусы чего?


Если взять текущие языки, но не одних легче загонять малоопытных, другие удобнее в финансах (например, kdb), третьи удобны для работы с базами, четвёртые позволяют лучше контролировать программу, пятые позволяют легче писать большие программы, шестые позволяют лучше работать в больших коллективах, седьмые позволяют дольше присасываться к бюджету, восьмые известны тимлиду/менеджеру (а значит ищут людей именно на них), девятые упрощают vendor lock-in и так далее.


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

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

Тут надо гуглить кто считается создателем ООП и какое оно было изначально ) (Если что в js именно оно)

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

Тут проблема, что "нормальный" он по сугубо субъективному мнению предвзятых разрабов, которые и пишут на этих "нормальных" ЯП, но вдруг реалии заставляют свитчится на JS, но конечно не на сам JS, а на TS. А потом 10+ лет ходят и везде с недоумевающим видом вопрошают, почему еще все не пишут хотя бы на TS- он хоть как то похож на "нормальную" джаву!! почему!? почему!? Та же хрень, как дельфину предложить ноги приделать- на суше ведь самое то!

3
Автор поста оценил этот комментарий
Долго листал и думал, найду я тут человека, который понимает, как это работает или самому написать и нахватать минусов. Я тоже фронт, с джс работаю мало - всего пару лет, но не могу понять в чем его проблема и почему его так говнят. Недавно перешел на тайпскрипт в силу обстоятельств - вообще красота. Я понимаю, что память хорошо бы беречь и все такое, но когда у тебя стандартный браузер при запуске отьедает 1гб оперативки, а в телефоне хотя бы 100мегабитный инет, какой смысл экономить пару килобайт? Раньше это диктовалось ограничениями железа, но сейчас то что не так.
раскрыть ветку (4)
4
Автор поста оценил этот комментарий

Пукан рвет, что зп ниже, а ебаться больше

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

Кому больше? Фронтам? Ерунда, Сишникам и джавистам сложнее. А если юзать, например, тайпскрипт, как сказал человек выше, то проблем становится в разы меньше. Плюс, фреймворк нормальный, плюс думать, как оно будет работать в будущем и перестать писать убогие костыли - вуаля, у вас нормально поддерживаемый код и не надо с ним "ебаться".

раскрыть ветку (2)
Автор поста оценил этот комментарий
Я полагаю, как раз "не фронтам"
Автор поста оценил этот комментарий
Кому больше? Фронтам? Ерунда,

ну недавно сеньор Фронт Реакт/Ангулярист оффер на 12к$ поднял в Украине.

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

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


А вот ебля с потоками и дедлоки - о да, классика, тут плюсую. Добавим в коллекцию ещё непотокобезопасные типы (для плюсов не сильно актуально, а всё тот же go передаёт привет). И ещё асинхронности добавим, и протухающие переменные, передаваемые в колбэки через захват в лямбду по ссылке, вот где красота.


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

2
Автор поста оценил этот комментарий
>гыдыба
Флешнамские вьетбеки 1
2
Автор поста оценил этот комментарий

воистину так, бро!

5
Автор поста оценил этот комментарий
Да нормальный язык JavaScript. Он охуенно выполняет свою задачу.
раскрыть ветку (18)
4
Автор поста оценил этот комментарий

Настолько охуенно, что его всю дорогу пытаются спрятать под CoffeScript, Dart, TypeScript, Flow и т.п.

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

Дык в этом и охуенность. Гибкий, относительно безопасный. Чего ещё надо для написания веба? Конечно, не без своих заёбов, но, в целом, язык очень неплох

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

Чего ещё надо для написания веба?

Хотя бы начать с сильной типизации и вообще развитой системы типов (в т.ч. в рантайме).

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

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

И вообще, типизированные ЯП это мамонты, удел которых писать ядро ОС или части встраиваемых систем- они эволюционно устарели и при удешевлении ресурсов железа вымрут как мухи, но очень доставляет, что кодеры этих ЯП, свято верят, что это у них прогрессивность :)

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

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

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

На момент создания js отсутствие типизации было киллер-фичей.

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

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

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

1
Автор поста оценил этот комментарий
На момент создания js отсутствие типизации было киллер-фичей.

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

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

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

Вы не выкупаете суть типизации как таковой и статической в частности) Оптимизация - это часть успеха.

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

Эксепшн в рантайме всегда лучше внезапного NAN в интерфейсе. Ошибка компилятора - всегда лучше эксепшна в рантайме. А ошибки в коде будут всегда и у всех.

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

Хех достаточно выкупаю уже 15 лет как :) Я как бы дипломированный Embeded разараб то есть плюсы, ASM, VHDL, но по коммерции я CTO JS/Nodejs, ну и год делфи повеслал до этого.

И нет, мне смешивать не надо, это ЯП с разными соглашениями, паттернами и парадигмами, в том числе в разработке, они должны остаться поляризованными, а не перенимать старческие болезни. И сюрприз, хоть с каким то внятным опытом нету в JS разрабов никаких проблем с неявными типами от слова совсем, по крайней мере частых и которые не решаются за 10 сек. Эти недостатки сугубо ошибки наблюдающего с другой церкви. TS это не документация, это частичное пересечение с темой, вопрос документирования публичных интерфейсов закрывается достаточно простыми инструментами типа JSDOC и главное делаются уже постфактум, что отлично ложится на Ажайл. И его абсолютно достаточно, чтобы вникнуть в интефейс модуля, хотя зачастую и он избыточен и чисто формален, если код написан прозрачно.

Эксепшн в рантайме всегда лучше внезапного NAN в интерфейсе.

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

Это тесты, которые уже написаны за вас при минимальных усилиях.

Ржу в голосину))) минимальных мать его усилиях )) ахах)) минимальные усилия это не заниматься бредом в ЯП без строгих типов, особенно до написания стабильной версии кода. Тесты все ровно придется писать, если нужно качество и это не MVP ибо TS по факту проверяет только что разраб имеет опыт в JS более полу года и не сидит на героине.

Документация это не зона ответственности TS, как бы вам этого не хотелось, дабы обосновать его практическую пользу. Это сугубо костыль, не более. Как внешний дополнительный инструмент для описания публичных интерфейсов, как d.ts файлы он может быть полезным, как надстройка ЯП, которая якобы что то там фиксит по мнению лагеря свитчеров - нафик не нужна. Если конечно не цель ебаться с тем, с чем ЯП тебя не обязывает, а потом ныть лиду или на стековерфлов, что не собирается, потому что кто то там накосячил, или опенсорс с кривыми тайпингами импортировали в проект.

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

вопрос документирования публичных интерфейсов закрывается достаточно простыми инструментами типа JSDOC и главное делаются уже постфактум

С тем же TS вам не нужно это делать постфактум. Эта документация УЖЕ написана и синхронизирована с кодобазой (ибо ее часть).


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

Получить такое сообщение после фатальной поломки состояния приложения/данных в базе и т.п. едва ли будет лучше. Fail-fast как бы.


Тесты все ровно придется писать,

Такие тесты - не нужно. Да и вы бы не стали наверняка)


TS....Это сугубо костыль, не более

Согласен. Но совместимого с легаси на JS выбора пока не так много.

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

Дык нам олдам ваш тайпскрипт с прочими поделками нафик не нужен, эти проекты плодят свитчеры и для свитчеров.

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

Мне так лет 10 тому рассказывали, что прототипное наследование - это круто и ООП маст дай. А теперь даже в язык сахар косящий под Java завезли.

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

Ох неучи...

1) Наследование и осталось прототипным, добавили только семантику, которая делает ровно тоже, что куча библиотек-инициализаторов прототипных цепочек. Библиотек, предоставляющих API ала $.Class(constructor, proto, [staticProto]) были с незапамятных времен, зарезали просто велосипедостроение на эту тему. И ввели ее в основном из-за свитчеров и особенно джавистов. Есть небольшой нюанс в порядке построения цепочки, но он не так важен в большинстве случаев.

2) Прототипное ООП тоже ООП, отсутствие семантической структуры класса никогда не делало JS не ООП, разве только что в умах всяких джавистов. JS объектно-функциональный ЯП и в нем всегда были классы, просто в виде конструкторов, а класс нынче это ровно тот же конструктор.

косящий под Java завезли.

3) Уморительно, что юзание ключевого слова class это закос и именно под джаву )))

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

Уморительно, что юзание ключевого слова class это закос и именно под джаву

Там одним ключевым словом не обошлось. Таки да, больше всего напоминает джаву. Кому все эту нужно, если не свитчерам?) А теперь это стандарт. Так же и со статической типизацией. Только если остальные всасывают мудрость индустрии за десятки лет и осваивают TS, некоторые другие на форумах будут рассказывать, насколько это все им не нужно, пока это не станет новым стандартом в землях JS.

раскрыть ветку (2)
Автор поста оценил этот комментарий
Там одним ключевым словом не обошлось.

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

Не станет оно стандартом, потому что это поделка для свитчеров, которую кое как продвинули за счет их вливаний в наши ряды и Ангуляра . Для динамического ЯП оно не несет никакого профита и не юзатся оптимизатором от слова вообще. Это просто разносить СПИД по здоровых ЯП. Да, если у тебя в команде половина  вчерашних джавистов, то тут особо выхода нет- они на чистом JS и о его соглашениях не бум-бум, но все ровно отношение от этого не поменяется к этой поделке.

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

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

что ж там поменялось в классах JS.

Выше писал - сахар добавили. Невозможный для фанатов скрепного JS.


Дальше идет что-то религиозное личное мнение без аргументации, которому мне нечего противопоставить, извините.

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

Сказал аки боженька. Господа, это коммент достоен главной в виде скриншота.

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

Чем ниже уровень абстракции, тем ниже поцелуи.

Автор поста оценил этот комментарий
вот полностью согласен, единственное что будет в проде это смесь крови, блевотины и говна но никак не фарш
Автор поста оценил этот комментарий
Добавлю про хардкор. Еще веселее, когда контроллер падает в hard fault вообще без объяснения причин...
2
Автор поста оценил этот комментарий

Сразу видно- ровный пацан. Нормально по понятиям раскидал

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

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

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

Все тобой написанное  справедливо, если писать вообще весь код самостоятельно и не использовать либы, что не возможно в 99% продакшн проектов и не так уж редко бывают такие зависимости, что просто охуеть и задебажить будет по факту невозможно, без человека, который строил проект с нуля, и то ему попотеть придется.
А по поводу ужасности js, лично я не согласен, он кажется ебанутым только по началу из за его банального предназначения, управление по факту любыми системами, которыми не всегда очевидно, как управлять. Но эту проблему почти полностью решил тайпскрипт и с учетом того, что зная всего лишь js, который учится примерно за месяц, я могу написать приложение по сути для всего (веб, мобилка, десктоп), язык вообще не выглядит ужасным говном, пусть и теряется некоторая производительность на выходе (которую по факту можно и не терять, заказывая некоторые модули на нативном языке).

Автор поста оценил этот комментарий
Ну с потоками всегда ебля, не только на плюсах, какие именно в этом случае вы имеете в виду шаблоны?) Если больше приложение на js, а не просто страничка с тремя скриптами, то там приколов ничуть не меньше, чем сзади, поверьте.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку