1.1, zo0M (ok), 10:59, 23/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
А почему про Deno так не клепаются новости на каждый новый релиз?
| |
|
|
3.12, zo0M (ok), 11:50, 23/10/2020 [^] [^^] [^^^] [ответить]
| +18 +/– |
местных грамотеев как послушать, так вообще интернеты эти ваши непонятно зачем существуют.
| |
|
4.28, НяшМяш (ok), 14:00, 23/10/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Немного расширю комментарий прошлого оратора. Пока в Deno не будет совместимости с существующими библиотеками для ноды (вроде бы это пилится https://deno.land/std@0.67.0/node/README.md) - он никому не нужен. Если всё равно кардинально менять платформу - то проще на голанг сбежать, например.
| |
|
5.30, Аноним (30), 14:48, 23/10/2020 [^] [^^] [^^^] [ответить]
| –6 +/– |
Вот не нужно это тут сравнивать, GO нормальный - императивный язык а не это фу... поделие.
| |
|
6.56, НяшМяш (ok), 16:59, 23/10/2020 [^] [^^] [^^^] [ответить]
| +7 +/– |
Go похож на внебрачную дочь C и непонятно чего по синтаксису. Вот например, зачем там нужны указатели? В Java нет, в JS их нет. Я тогда лучше на голой сяшке попишу, её хотя бы на любой утюг с компилятором вкрячить можно.
| |
|
7.63, АнонимГоним (?), 18:00, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
А как без указателей делать указатель на указатель на, например, структуру, мм? Указатели топ, если херней не страдать.
| |
7.73, анонимбр (?), 19:47, 23/10/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
потому что в Go копирование по значению:) в не к ночи помянутой Java объекты создаются оператором new.
| |
7.82, Аноним (82), 20:10, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Согласен убрать указатели и заменить на ссылки, а nul реализовать через Optional<>
| |
7.111, Jh (?), 05:27, 24/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
указателей нет, но ссылочные типы ведут себя практически так же. постоянно надо проверять на null
| |
|
6.59, proninyaroslav (ok), 17:05, 23/10/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Из преимуществ там только статическая типизация и компиляция в один бинарник. Других преимуществ придумать сложно.
| |
|
7.60, Анын (ok), 17:15, 23/10/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Ну, например, Rest API и прочие JSON в стандартной библиотеке.
| |
7.74, анонимбр (?), 19:48, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
статическая типизация помогает не писать тест на каждый чих. хотя можно использовать TS вместо JS.
| |
|
|
|
|
|
|
1.3, m.makhno (ok), 11:01, 23/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> Обработчик unhandledRejection переключен на использование по умолчанию исключений "throw" ... В режиме "throw" при отсутствии явно определённого обработчика unhandledRejection генерирует неперехватываемое исключение, но если обработчик задан поведение не изменится.
Что за «фича» такая?
| |
|
|
3.17, m.makhno (ok), 12:30, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Что не понятно?
Возможно, я не так понял, но получается, что это ВСЕГДА неперехватываемое исключение? Оно ловится каким-то особым catch? Я просто не знаю Node.js, да и JavaScript, вот и уточняю. Может, эта фича действительно интересная. А может и нет.
| |
|
4.24, Аноним (24), 13:25, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Если мы делаем fsp.writeFile('qwe.txt', 'aaaaaa').then(...)
И не написали .catch(...) то мы не узнаем если в файл записать не удалось.
Раньше это просто молча глаталось, теперь будет выкидывать ошибку.
А надо не ловить через try, а писать где надо .catch(...).
В случае с async функциями и await fsp.writeFile, оно и так сгенерит эксепшен.
| |
|
5.136, a (??), 18:57, 30/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
>> Раньше это просто молча глаталось, теперь будет выкидывать ошибку.
PIZS$%$AD, И как это жило 14 версий-то? О-о-о
| |
|
4.27, НяшМяш (ok), 13:53, 23/10/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Этот обработчик ловит необработанные исключения - например сделал throw вне блока try-catch. В предыдущих версиях если ты не ставил свой обработчик например так:
process.on('unhandledRejection', (reason, promise) => {
console.log('Unhandled Rejection at:', promise, 'reason:', reason);
// Application specific logging, throwing an error, or other logic here
});
то обработчик по-умолчанию будет просто логировать в консоль типа "ай так нельзя, в будущем будет процесс завершаться". А в новой версии вот как раз включили падение при таком событии.
| |
|
|
|
1.5, Страшно (?), 11:13, 23/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
>код трансформируется в "db.query("select..", function (result) {обработка результата});", при котором управление мгновенно перейдёт к дальнейшему коду
Это же кошмар!
| |
|
2.9, Cradle (?), 11:35, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
к асинхронному исполнению еще привыкнуть можно, но у ноды есть такие вот риски
1) в яваскрипте вы можете очень легко сделать замыкание, тогда на каждый вызов обработчика для каждой записи она будет резервировать неожиданно много памяти,
2) у V8 очень ленивый сборщик мусора, поэтому разгребать он начнет через какое-то время после того как весь запрос обработается
В результате может очень легко случиться что запрос на порядка 100к записей может запросто сожрать все ваши гигабайты оперативки, при том что на тестах вы ничего такого не замечали, обьемы-то меньше были
| |
|
3.14, vitalif (ok), 12:01, 23/10/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
хз, по моим наблюдениям память хорошо подбирает, по крайней мере по сравнению с явой. яве допустим дали 10 гб - она такая оооо гуляем!!! а нода отдаёт быстро обратно.
| |
3.21, Аноним (21), 12:33, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
да, память кушать любит. но не сильно больше, чем руби какой-нибудь
| |
3.26, Q2W (?), 13:33, 23/10/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> в яваскрипте вы можете очень легко сделать замыкание
Вот это непонятно. В каких случаях замыкание получается легче ожидаемого?
| |
|
4.31, Cradle (?), 15:07, 23/10/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
если в асинхронном обработчике использовать переменную из контекста вызывающей функции, например ненароком забыть обьявить через var, а тем более когда специально нужно использовать данные от caller, если по другому их туда не передать. Просто, многие яваскрипт используют а про замыкания не знают, и если в браузерном JS не часто требуется создавать > 100k объектов сразу, то в ноде при работе с sql реально можно нарваться. При том что до какого-то предела в тестах все будет работать, потому что эта память нужна кратковременно и GC ее потом освободит быстро, а в продакшене потом вдруг начинает процесс дохнуть.
| |
|
5.32, Cradle (?), 15:09, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
пардон, из контекста создающей функции конечно, вызываться-то будет конечно в другом месте
| |
|
|
|
2.13, Аноним (13), 11:50, 23/10/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Кошмар? Сразу видно человека, который слабо разбирается и не видит многих классных фич.
| |
2.22, Ordu (ok), 12:34, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
А как надо, чтобы не страшно было? Блокировать поток, в ожидании выполнения запроса?
Или ты о слишком многословном синтаксисе для лямбд? В смысле надо писать так, чтоб не страшно было:
db.query("select..", |result| {обработка результата});
?
| |
|
3.65, OpenEcho (?), 18:40, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
>А как надо, чтобы не страшно было?
IMHO, cоздать явно поток, инициализировать мютекс,семафор..., запустить и идти делать свои дела дальше, переодически проверяя мютекс...
Оно как то укладывается лучше в башку, по сравнению с ЖС концепцией:
function(function(function(function{pook})))
Хотя, програмист он как шофер, если умеет ездить, то будет водить любую тачку,
другое дело, что крутить руль у КРАЗа посложней чем у бэхи
| |
|
4.69, Ordu (ok), 19:10, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
> IMHO, cоздать явно поток, инициализировать мютекс,семафор..., запустить и идти делать свои дела дальше, переодически проверяя мютекс...
Зачем тебе здесь мьютекс? Мьютекс -- это медленно. А если у тебя 10k таких мьютексов будет, что ты будешь делать?
| |
|
5.88, OpenEcho (?), 20:24, 23/10/2020 [^] [^^] [^^^] [ответить] | –1 +/– | Я про концептуальность, прозрачность кода и удобство поддержки это разве читаем... большой текст свёрнут, показать | |
|
6.100, Ordu (ok), 21:43, 23/10/2020 [^] [^^] [^^^] [ответить] | +3 +/– | Мне кажется, надо спрашивать о читабельности не после деобфускации, а до обфуска... большой текст свёрнут, показать | |
|
|
8.129, Ordu (ok), 01:35, 26/10/2020 [^] [^^] [^^^] [ответить] | +/– | А я про обфускацию Точнее про машинно-сгенерированный код Я не знаю из чего он... большой текст свёрнут, показать | |
|
|
10.134, Ordu (ok), 16:13, 27/10/2020 [^] [^^] [^^^] [ответить] | +/– | Я не знаю как ты пришёл к выводу о том, как был сгенерирован код, поэтому я прод... большой текст свёрнут, показать | |
|
11.137, a (??), 19:11, 30/10/2020 [^] [^^] [^^^] [ответить] | +/– | ждем пример асинхронности для однопоточной программы И рассказ в чем его преиму... текст свёрнут, показать | |
|
12.140, Ordu (ok), 20:10, 30/10/2020 [^] [^^] [^^^] [ответить] | +/– | man 7 epoll В том, что обрабатывая соединения синхронно, ты будешь обрабатывать ... текст свёрнут, показать | |
|
|
12.143, Ordu (ok), 20:34, 01/11/2020 [^] [^^] [^^^] [ответить] | +/– | Реальные люди, с которыми я общаюсь, в отличие от тебя не имеют никаких проблем ... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
4.94, Аноним (94), 20:38, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Вы умрёте создавать 4 потока с мьютексами и следить за всеми из вашего же примера.
В js просто создадут async функцию и будут программировать в императивном стиле если надо несколько асинхронных операций выполнить
Или объединят промисы
| |
|
5.126, OpenEcho (?), 17:34, 25/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну тогда я с вами с того света говорю... если от 4х потоков должен был помереть
Я не против ноды, просто акцентирую, что программеров все больше отдаляют от хардварной реальности накидывая абстрактные вещи. Как не крути, но под капотом в конце дня - это просто обыкновенный цикл с условиями
| |
|
4.98, мяя (?), 21:31, 23/10/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> function(function(function(function{pook})))
Можно писать каллбеки без каллбечного ада и есть промизы.
Например
function asyncFunc(callback) {
https.get("url", (result) => {
result.on("data", (data) => {
callback(data);
}
}.on("error", (error) => {
console.error(error);
});
}
function anotherFunc() {
// blabla
let consoleLog = 1;
asyncFunc((result) => {
if (consoleLog) {
console.log(result);
}
});
}
| |
|
3.86, Аноним (94), 20:19, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
let result = await db.query("select..");
обработка результата...
| |
|
2.84, Аноним (82), 20:13, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Это же кошмар!
Потому что никто так не пишет.
Все пишут уже с использованием асинхронного синтакиса:
const result = await db.Query('...');
Правда остались какие-то непонятне любители callback-ов приплюснутые.
| |
|
3.96, Антон (??), 20:42, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
эвейты крайне неудобны в сравнении с Rx из мира любителей колбэков
| |
|
|
1.6, Виталик (??), 11:16, 23/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
>дополнительно Microsoft развивает вариант Node.js с движком Chakra-Core).
Уже не развивает, гугл всех победил
| |
|
2.50, Уася (?), 16:13, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
и слава госпаду богу. не нужен микрасофт с их get the facts и eee
| |
|
1.8, Аноним (8), 11:33, 23/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
А слабо вам написать целый браузер на Bash? А я написал
Так что вам ЖС не нужен
| |
1.16, YetAnotherOnanym (ok), 12:15, 23/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
> код трансформируется в "db.query("select..", function (result) {обработка результата});", при котором управление мгновенно перейдёт к дальнейшему коду, а результат запроса будет обработан по мере поступления данных
Пытаюсь вспомнить что-нибудь хорошее про ноду, но пока не вспомнил, просто напишу какой-нибудь комментарий.
> Добавлена экспериментальная реализация класса AbortController
А впрочем, нуевонафиг, коммент уже написан, можно уже ничего не вспоминать.
| |
1.18, Аноним (21), 12:30, 23/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
отличный фреймворк. а уж с параллельными вычислениями там просто сказка о колобке.
| |
1.29, Javaist (?), 14:43, 23/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
Скажите, зачем оно вообще нужно? Для поднятия ЧСВ бывших фронтэндеров, которых раньше не пускали в бекэнд? Как на JavaScript можно писать что-то более менее серьёзное?
| |
|
2.33, еее (?), 15:10, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Сам не пойму... Чел
..
Когда кто то ответит ударьте.
| |
2.35, Cradle (?), 15:14, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
а что вы можете сказать про php ruby python? Ведь не явой единной, или ?
| |
|
3.38, Аноним (38), 15:23, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
пхп стоит сравнивать с пёрл, яву с дотнетом, и только с жс никто не конкурирует
| |
|
4.41, Cradle (?), 15:44, 23/10/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
ну почему же, нода реально теснит php и python на бэкэнде, ruby там вроде как ни пытался но изза своих косяков не смог сильно распространиться, perl так вообще с 2005-го ушел из веба и не конкурент. Так что по сфере применения js сейчас вполне со старожилами бэкенда конкурирует.
| |
|
5.44, Аноним (38), 15:58, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Так php с python это такие обёртки для си по факту (и всё интерпетируемое будет тормозить), а жс нет. При этом у жс были проблемы с однопоточностью, у питона же однопоточность отключается при переходе в сишный код. Какая уж тут конкуренция?
| |
|
6.103, Аноним (131), 01:24, 24/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Кто в этот бред поверит?
PHP используется для лошья и legacy. Его только WordPress и Drupal вытягивает.
Какие бл...сайты? Сайты давным давно хостятся отдельно от бэкэнда.
| |
|
7.114, Онаним (?), 09:23, 24/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Этот "бред" знает любой, кто хотя бы мало-мальски плавает в отрасли.
Хипстеры в своих маня-мирках, естественно, мимо.
| |
|
|
5.128, анонизмус (?), 21:01, 25/10/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Уже не теснит. Хайп по ноде уже прошел. И новых проектов на ней стартует все меньше. Как в свое время было с руби.
| |
|
|
|
2.37, Аноним (131), 15:20, 23/10/2020 [^] [^^] [^^^] [ответить] | +/– | Как человек, папу лет писавший на backend на Java, а потом на Scala пару лет Ес... большой текст свёрнут, показать | |
|
3.40, Cradle (?), 15:35, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
IMHO если выбирать javascript для реально больших проектов то всетаки рискуете нарожать множество костылей и велосипедов решая довольно тривиальные задачи. Другое дело что не всякий бэкэнд должен быть большим и толстым; иногда нужны простые вещи которые потом простыми и останутся.
| |
|
4.42, Аноним (131), 15:49, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Например, какие?
Просто сейчас backend уже совсем не тот, что был раньше.
Сейчас это тонкий клиент к AWS /Google Cloud / Azure. Обвязка.
Он stateless и чисто сетевой. Для этого Node.js подходит идеально.
Масштабирование тоже давно происходит за счёт контейнеров, а не "многопоточности". https://cloud.google.com/appengine/docs/flexible.
Node.js идеален для современного backend, который service oriented. Пришёл JSON -> ушёл JSON.
| |
|
5.52, Cradle (?), 16:25, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну о том и речь, если тонкий клиент к aws то идеально, а если самим свое облако делать то уже не обязательно.
| |
|
6.54, Аноним (131), 16:47, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да, безусловно. Свой cloud provider на JavaScript писать не стоит. Наверное там нужна максимальная производительность.
Но это очень узкая ниша. Я, кстати, писал такой в Parallels. У них был свой софт для развертывания кастомного cloud provider на базе их virtuozzo контейнеров.
Сам cloud provider был написан на Java. Я бы сейчас уже Rust бы взял.
| |
|
5.77, анонимбр (?), 19:57, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Пришёл JSON -> ушёл JSON.
такая чушь. где в этой схеме полезная нагрузка которая не сводится к одним запросам к БД?
| |
|
4.43, Аноним (38), 15:50, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Лет 10 назад было модно делать браузерные ммо, так фронт с бэком пилили на жс. Очень топили за это, мол, унификация, проще работать, и вообще серебряная пуля. Понятно, что у ммо бэк это в общем случае обёртка над базой данных, но всё же, есть и такое, и в результате мы все оказались в сегодняшнем болоте. Лично я бы не выбрал жс ни за какие коврижки, и даже на клиенте он нужен только ради юзерскриптов.
| |
|
5.46, Аноним (131), 15:59, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Только 10 лет прошло. 10 лет назад это был совсем другой язык.
Не было ни модулей, ни пакетов, ни npm, ни библиотек, ни Node.js, ни async / await, ни Promise, ни ... ничего не было. Никаких продвинутых оптимизаций в V8.
Node.js появился May 27, 2009; 11 years ago. Те им ещё никто не пользовался.
10 лет для языка - это бездна, пропасть.
| |
|
6.47, Аноним (38), 16:02, 23/10/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну, си за 40 лет не очень поменялся. Особенно не очень за последние 20. Всё так же хорош. D:
| |
|
7.51, Аноним (131), 16:16, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ахахах, я всё понял. "Всё также хорош" ахахах.
Тут бесполезно серьезно что-то обсуждать, очень специфичная публика.
Вероятно приходит чисто погундеть про "про..рали все полимеры" и потроллить.
| |
|
8.53, Аноним (38), 16:44, 23/10/2020 [^] [^^] [^^^] [ответить] | +/– | Ты не допёр, что это был сарказм, даже при наличии смайлика для особо одарённых ... текст свёрнут, показать | |
|
9.57, Аноним (131), 17:00, 23/10/2020 [^] [^^] [^^^] [ответить] | +/– | Ну 10 лет назад был переход между Python 2 и Python 3 Я не могу назвать это не... текст свёрнут, показать | |
|
10.62, Аноним (38), 17:40, 23/10/2020 [^] [^^] [^^^] [ответить] | –1 +/– | Если взять питон, то ничего заметного там не случилось в 3 Разве что добавили а... текст свёрнут, показать | |
|
11.67, пох. (?), 18:58, 23/10/2020 [^] [^^] [^^^] [ответить] | –1 +/– | Абсолютно весь старый код внезапно работать перестал, и далеко не всегда почин... текст свёрнут, показать | |
|
12.93, Аноним (38), 20:37, 23/10/2020 [^] [^^] [^^^] [ответить] | –1 +/– | Прохладная история, один и тот же код прекрасно работал в 2 и 3 одновременно По... текст свёрнут, показать | |
|
|
|
|
|
7.64, пох. (?), 18:22, 23/10/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Ну, си за 40 лет не очень поменялся.
ну конечно, не очень.
Возьми, скажем, исходники apache1.3, последнего, ему ни разу не сорок лет - и попробуй собрать.
Потом приходи сюда, поржем - сумеешь ты вообще понять, что это значить, или как.
Ну, или, вот:
static struct vfs_fn_pointers vfs_xattr_tdb_fns = {
.getxattr_fn = xattr_tdb_getxattr,
.fgetxattr_fn = xattr_tdb_fgetxattr,
.setxattr_fn = xattr_tdb_setxattr,
.fsetxattr_fn = xattr_tdb_fsetxattr,
.listxattr_fn = xattr_tdb_listxattr,
.flistxattr_fn = xattr_tdb_flistxattr,
.removexattr_fn = xattr_tdb_removexattr,
.fremovexattr_fn = xattr_tdb_fremovexattr,
.open_fn = xattr_tdb_open,
.mkdir_fn = xattr_tdb_mkdir,
.unlink_fn = xattr_tdb_unlink,
.rmdir_fn = xattr_tdb_rmdir,
.connect_fn = xattr_tdb_connect,
};
в данном случае, конечно, "всепонятна", но это - C99, добравшийся до gcc не так чтоб безумно давно - и, главное - имеет совершенно неочевидный побочный эффект. Если ты учил его по книжке сорокалетней давности - ниразу не угадаешь, какой.
Про static_assert двух перпендикулярных синтаксисов уже молчу, поскольку в общем-то dd, и всех дел.
| |
|
|
|
|
3.68, банан (?), 19:01, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Как человек, папу лет писавший на backend на Java, а потом на Scala пару лет.
> Во-первых, JavaScript очень хороший и хорошо спроектированный язык,
Извиняюсь, но ваши слова звучат не убедительно.
| |
|
4.83, Аноним (19), 20:12, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну, а мой путь таков C# -> PHP -> Perl -> Node.JS И реально своременный JS самый приятный из них (хотя поначалу тоже от него плевался). Но и сишарп тоже неплохо так эволюционировал за эти годы.
| |
|
5.99, Аноним (99), 21:42, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Здесь только про плохое говорить принято, а то заминусят. Обратил внимание, что количество минусов ставят больше в это время, сначала перевес был в положительную сторону, днём. Можно предположить, что в данный момент сидят глубоко несчастные одинокие люди, и им больше ннчем заняться, как гадить на других. (Я не считаюсь, т.к. в командировке)
| |
|
6.105, Аноним (131), 01:33, 24/10/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Да, очень странный сайт. Хотя новости самые интересные и подробные.
Здесь надо кричать три вещи "про веб макак", про "не нужно", "нет чтобы написать на нормальном языке C++"
| |
|
|
|
3.107, нуприветдима (?), 03:03, 24/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
"Если бы я, как архитектор, выбирал между Java / Scala / Python / PHP и JavaScript Node.js - я бы выбрал последнее." - вы точно писали бэкенд?
"Во-первых, JavaScript очень хороший и хорошо спроектированный язык, по сравнению с Java" - всем отделом смеялись. Ага, хорошо спроектированный на коленке за 2 недели. (погуглите wtfjs)
"На JavaScript код пишется в разы быстрее, чем на Java. И он значительно понятнее." - ложь. Оно не понятнее.
"Огромное количество кода и библиотек. Большое количество знаний можно применить в смежных областях" - а в других языках нет библиотек?
"Java очень многословна и монструозна." - и?
А если серьезно. Я писал бэк на JS, TS, C#, и хочу сказать, что писать на JS будет только идиот. На TS еще куда ни шло, но джаваскриптовая экосистема сводит все плюсы TS на нет (если речь идет о крупных проектах). Писать небольшие сервисы на TS можно.
| |
|
4.108, Аноним (131), 04:59, 24/10/2020 [^] [^^] [^^^] [ответить] | –1 +/– | Я писал backend на Java и Scala для мировых компаний, таких как Parallels Inc и... большой текст свёрнут, показать | |
|
5.109, Аноним (131), 05:13, 24/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Я написал несколько сотен тысяч строчек кода на JavaScript (TypeScript) и ни разу не сталкивался с ошибками преобразований типов (пустая строка в 0 и т.п.)
| |
|
6.118, банан (?), 13:13, 24/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Я написал несколько сотен тысяч строчек кода на JavaScript (TypeScript) и ни
> разу не сталкивался с ошибками преобразований типов (пустая строка в 0
> и т.п.)
А вы код свой запускали?
| |
|
5.119, банан (?), 13:27, 24/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Мне нравятся ваши потуги доказать, что js - нормальный язык. Вы очень стараетесь и сами верите в свои слова.
| |
5.123, нуприветдима (?), 17:50, 24/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
>[оверквотинг удален]
> Ой,а там где я создаю JSON или объект в несколько символов тебе
> приходится писать сотни строчек примитивного кода? Даже не сочувствую.
> Ложь. JavaScript значительно понятнее. Потому что не надо пробираться через многословность
> Java, которая сильно отвлекает от понимания кода.
> В других языках программирования значительно меньше библиотек, в разы. Может быть даже
> на порядок. Потому что и программистов высококлассных (как и вообще программистов)
> значительно меньше. И JavaScript инфраструктура заточена под open source.
>> Я писал бэк на JS, TS
> То, что ты просто говнокодил на JS/TS это понятно. Но даже это
> их плюс. Создал файлик index.js и погнали.
Ты либо тролль, либо лжец.
Не обижайся, просто 99 % людей не воспринимают человека всерьез после слов "javascript - хорошо спроектированный язык"
| |
|
|
|
2.39, Аноним (131), 15:35, 23/10/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Не стоит забывать что JavaScript невероятно быстрый язык для интерпретируемого.
Он всего в 5-7 раз медленнее самого оптимизированного C / C++ / Rust. В некоторых случаях (Regexp) даже быстрее.
Ни в какой другой язык столько бабла / инвестиций / талантливых инженеров не вбухивали.
V8 имеет передовой State of the Art Generational Garbage Collector.
Огромное количество оптимизаций по памяти и выполнению.
Что-то похожее есть только в Java. Остальные языки тихо...в сторонке стоят.
Про tools вообще можно ничего не говорить. Здесь вообще даже близко нет конкурентов.
| |
|
3.45, Аноним (38), 15:59, 23/10/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Не стоит забывать, что это заслуга очень жручих и не всегда оптимальных jit с aot.
| |
3.79, анонимбр (?), 19:59, 23/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Что-то похожее есть только в Java. Остальные языки тихо...в сторонке стоят.
такая чушь. сами же про C, C++, Rust упомянули:) Google также много вложил в Go на котором написаны к слову Kubernetes и Docker.
| |
|
4.106, Аноним (131), 01:41, 24/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
А C++ имеет Garbage Collection?
У Go примитивный GC, не идёт ни в какое сравнение с тем что есть у JavaScript.
Есть статья с хорошим анализом GC у Go. Там примитивный 40летний Mark-And-Sweep.
| |
|
5.138, a (??), 19:17, 30/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
>> У Go примитивный GC, не идёт ни в какое сравнение с тем что есть у JavaScript.
>> Есть статья с хорошим анализом GC у Go. Там примитивный 40летний Mark-And-Sweep.
Эта, та статья за 2012 год? А поновее не нашлось?
| |
|
|
3.120, банан (?), 14:15, 24/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Огромное количество оптимизаций по памяти и выполнению.
> Что-то похожее есть только в Java. Остальные языки тихо...в сторонке стоят.
> V8 имеет передовой State of the Art Generational Garbage Collector.
Вы как будто с кастрюлей на голове. Ваш девиз - JS быстрый, всё остальное медленное!
Я не уверен, что вы вообще как-то разбирались в вопросе и сравнивали те же самые сборщики у разных технологий, учитывая как вы бросаетесь словами.
| |
|
|
5.124, банан (?), 18:00, 24/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Сравнивают те, кто исследуют и пишут эти самые сборщики мусора. Я лишь анализирую информацию.
Здравствуй, программист со стаковерфлоу.
| |
5.139, a (??), 19:19, 30/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
What kind of Garbage Collection does Go use? ... mark-and-sweep ... Asked 9 years ago
| |
|
|
|
2.71, OpenEcho (?), 19:30, 23/10/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Как на JavaScript можно писать что-то более менее серьёзное?
более менее серьёзное: EtherCalc, Etherpad, OnlyOffice, Diagram Maker... google-maps :)
| |
2.116, Lex (??), 10:49, 24/10/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Как на JavaScript можно писать что-то более менее серьёзное?
Вполне неплохо. Другое дело, что, процентов 95% «бэкендов» в принципе не так, чтобы очень серьёзные..
| |
|
1.48, Уася (?), 16:03, 23/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
1) "db.query("select..", function (result) {обработка результата});"
легко превращается в
2) "var result = await db.query("select..");"
при условии если db.query умеет в промисы а не коллбеки как в примере 1)
| |
|
2.97, Онаним (?), 20:56, 23/10/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Я знаю точно, асинхронное синхронно...
Это ж надо до такой степени доизголяться.
| |
|
1.132, Аноним (132), 10:10, 27/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows.
На самом деле libuv является надстройкой (wrapper) над системными вызовами epoll, kqueue, /dev/poll и select, IOCP, а не libev.
| |
|
2.133, Аноним (132), 10:11, 27/10/2020 [^] [^^] [^^^] [ответить]
| +/– |
Возможно, имелось ввиду, что библиотека libuv выполняет те же задачи, что и libev + имеет поддержку IOCP в Windows.
| |
|
1.135, Ilya Indigo (ok), 19:50, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Прочитал заголовок, как "Выпуск: скверной JavaScript-платформы Node.js 15.0 ", и не нащёл ошибок.
| |
|