|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
Мне кажется что перфекционизм это когда твоя программа состоит из минимума букв. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 14:08 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
mayton Мне кажется что перфекционизм это когда твоя программа состоит из минимума букв. Ни в коем случае. Стремление к минимуму букв, к экономии каждого тика процессора, каждого байта передачи, это всё к перфекционизму ну никак не относится. Это преждевременная оптимизация. Проблема каждого начинающего программиста, через которую большинство благополучно проходят и взрослеют, когда начинают понимать, что текст программы должен быть прежде всего правильный, достаточно эффективный, хорошо читаемый и сопровождаемый. Перфекционизм, скорее, это отсутствие костылей, кривых решений, полумеров и аккуратный код. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 01:45 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
mayton, Ох, хочется прокомментировать :) mayton Ну а json - это вообще эпика. Можно отдельный тип данных вводить сразу. Что вобщем-то в JavaScript реально хорошо сделано так это нативная интеграция ООП и JSON. Это то чего другие языки должны заимстовать. Не могу согласиться. JSON это лишь текстовый формат передачи данных, и не интегрирован в JavaScript. Прошу почитать внимательно: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/JSON Ты наверное имеешь в виду словари. Так они везде есть в современных языках, ничуть не хуже и даже лучше. Кроме этого в других языках есть настоящие объекты в виде экземпляров классов, в то время, как в JavaScript ООП нету, но есть неплохая его имитация (с оговорками). Да и вообще это просто эпическое сборище костылей. Так что восхищаться можно только тем, как это чудовище выжило, дожило до наших дней, да ещё и обрело такую популярность :) mayton Ну и новые веяния в подходах к параллелизму. Класические вычислительные модели на потоках - полностью провалились. Их заменяют на что-то лайтовое. Асинки. Уступчивые функции. Тонкие потоки-фиберы. Не совсем понял, почему провалились, да её и полностью. Откуда дровишки? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 02:00 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
hVostt Ты наверное имеешь в виду словари. Так они везде есть в современных языках, ничуть не хуже и даже лучше Со стат типизацией там в общем случае будет что-то типа jackson: Код: java 1.
вместо Код: javascript 1.
hVostt Кроме этого в других языках есть настоящие объекты в виде экземпляров классов А в js экземпляры объектов фальшивые? hVostt , как в JavaScript ООП нету Что нельзя реализовать из ООП на js? В яве, например, нету множественного наследования. Совсем. В js это можно легко приделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 04:32 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
hVostt Не совсем понял, почему провалились, да её и полностью. Откуда дровишки? От того, что сложна и рядовой кодер скорее обделается, устроит дедлоков, трудноуловимых ошибок и пляски с переключением контекста чем выдаст что-то рабочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 04:35 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
hVostt mayton Ну и новые веяния в подходах к параллелизму. Класические вычислительные модели на потоках - полностью провалились. Их заменяют на что-то лайтовое. Асинки. Уступчивые функции. Тонкие потоки-фиберы. Не совсем понял, почему провалились, да её и полностью. Откуда дровишки? Это мой старый боян который еще не порван. Топик назывался Тяпничная мультипоточность.... Не могу его найти чет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 11:40 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
hVostt Ты наверное имеешь в виду словари. Так они везде есть в современных языках, ничуть не хуже и даже лучше. Кроме этого в других языках есть настоящие объекты в виде экземпляров классов, в то время, как в JavaScript ООП нету, но есть неплохая его имитация (с оговорками). Да и вообще это просто эпическое сборище костылей. Так что восхищаться можно только тем, как это чудовище выжило, дожило до наших дней, да ещё и обрело такую популярность :) Словари-то есть. Но они не всегда по синтаксису удобны для конструирования in-place. Согласись JavaScript удобнее. Как это чудовище выжило? Я думаю это был мягкий пластилин из которого можно было лепить любые структуры данных (наподобие Lisp (Ха... кстати вспомнил еще один исторический факт где судьбы Js и Lisp переплетались)) и благодаря этой мягкости мы имеем сегодя 100500 фреймворков на JavaScript и хотя большая часть из них не покидает девелоперских инкубаторов - тем не менее она продуктивнее чем Java по количеству форков и коммитов в ГитЛабе. Ну так было по состоянию на 2015-17 год. Как щас не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 11:46 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
Вот этот боян. https://www.sql.ru/forum/1303834/tyapnichnaya-budushhaya-multipotochnost Уж прошу вас - зайдите да порвите его вконец. Он уже и мне надоел. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 11:48 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
crutchmaster hVostt Кроме этого в других языках есть настоящие объекты в виде экземпляров классов А в js экземпляры объектов фальшивые? По сути да. Фальшивые. crutchmaster Что нельзя реализовать из ООП на js? В яве, например, нету множественного наследования. Совсем. В js это можно легко приделать. И на Си можно реализовать ООП и какое угодно наследование. По секрету вам скажу, что и в Яве можно легко реализовать множественное наследование через декоратор. Но Java гарантирует, что экземпляр конкретного класса будет оставаться после создания экземпляром конкретного класса, никто не сможет удалить существующее свойство или добавить каких угодно ещё. А также обеспечивает разные уровни защиты при наследовании, обеспечивает следование контракту и множество других вещей. Которые в JavaScript лишь имитируются и держатся исключительно на честном слове. Это одновременно и слабость и сила языка. При разработке крупных enterprise приложений, это не просто слабость, это полный буллшит, который грозит крупными проблемами, что недопустимо. Поэтому он в этой сфере не популярен (на стороне бекенд). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 00:03 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
crutchmaster hVostt Не совсем понял, почему провалились, да её и полностью. Откуда дровишки? От того, что сложна и рядовой кодер скорее обделается, устроит дедлоков, трудноуловимых ошибок и пляски с переключением контекста чем выдаст что-то рабочее. Тогда рядовому кодеру JavaScript вообще в руки давать нельзя. Там чего только нельзя сделать )) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 00:03 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
mayton и благодаря этой мягкости мы имеем сегодя 100500 фреймворков на JavaScript Я думаю, что дело не в мягкости. А в контексте. По крайне мере до экспансии SPA, странички содержали совсем немного логики, по сравнению с полноценным приложением, которое вынуждено работать с внутренним состоянием, потоками, различными инетрфейсами и т.д. Поэтому на качество кода JavaScript всем было плевать. Вполне достаточно, что оно работает, так как задача такого кода -- сработать один раз, после этого страничка всё равно будет перезагружена и .... вуаля! жизнь с нового листа. Я вот провожу собеседования фронтенд и бекенд разработчиков. Что интересно. При одном уровне ЗП (примерно), средний бекенд разработчик на 2-3 головы выше с точки зрения знания принципов, основ и методологий разработки ПО, вообще программирования, и глубины в понимании работы программ (любых). Это не 100% так, но в абсолютном большинстве. Просто фронтам это не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 00:11 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
глубже всего понимание даёт C/C++ фронтендам они недоступны ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 04:00 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
hVostt Тогда рядовому кодеру JavaScript вообще в руки давать нельзя. Там чего только нельзя сделать )) Трудно с вами на согласиться, чёрт возьми. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 04:13 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
hVostt Но Java гарантирует Ну так то гарантии, а не возможности. Ява с рефлексией тоже начинает гарантировать меньше. hVostt При разработке крупных enterprise приложений, это не просто слабость, это полный буллшит Ну как. Кто-то разрабатывал по крупному, но там были микросервисы и всё что касалось контрактов ушло на уровень выше. Монолит конечно, не стоит писать на таких языках, их особенности форсят делать вот эти все микросервисы и микромодули. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 05:25 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
Алексей Роза глубже всего понимание даёт C/C++ фронтендам они недоступны Понимание чего? У этих ребят задача - рисовать divы и cssы. Какое такое сакральное знание вы хотите им открыть? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 08:28 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
mayton, А еще обрабатывать события, ловить исключения, делать адаптивную вёрстку и поддерживать старых ишаков. В плюсах, по сравнению с этим, всё просто и понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 08:45 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
crutchmaster hVostt Но Java гарантирует Ну так то гарантии, а не возможности. Ява с рефлексией тоже начинает гарантировать меньше. Я просто хотел сказать, что обеспечение гарантии -- это и есть возможность :) Это не значит, что на JavaScript совсем нельзя обеспечить гарантии. Их просто руками нужно будет сделать, много лишних проверок, которые не могут быть обеспечены на уровне языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 10:23 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
hVostt Но Java гарантирует, что экземпляр конкретного класса будет оставаться после создания экземпляром конкретного класса, никто не сможет удалить существующее свойство или добавить каких угодно ещё. А также обеспечивает разные уровни защиты при наследовании, обеспечивает следование контракту и множество других вещей. Интеренно что идеи прототипирования и декорирования Js очень тесто переплетаются с идеями Егора Бугаенко под Java. (Он - автор книги Elegant Objects если кто не в курсе). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 10:43 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
mayton Интеренно что идеи прототипирования и декорирования Js очень тесто переплетаются с идеями Егора Бугаенко под Java. (Он - автор книги Elegant Objects если кто не в курсе). Я бы не стал это так тесно увязывать с языком. В этих трудах можно легко разглядеть GOF, Александревски, Фаулера и многих других. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 11:02 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
hVostt Я просто хотел сказать, что обеспечение гарантии -- это и есть возможность :) Я просто столкнулся с тем, что это всё никакого особого выхлопа не даёт. Во-первых в большом приложении легко устроить сильную связанность всего со всем. Т.е. вроде бы это и хорошо, что есть контракты и что когда что-то где-то меняешь проект просто не соберётся, но сильно легче от этого не становится. Когда переезжают на микросервисы смысл стат. типизации вообще теряется. Их просто руками нужно будет сделать, много лишних проверок, которые не могут быть обеспечены на уровне языка. Ну, по факту и на жабке приходится всё, кроме типа, проверять руками, начиная с null. А если работаешь с микросервисами, то вообще пропадает смысл возиться с типами. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 11:04 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
mayton Алексей Роза глубже всего понимание даёт C/C++ фронтендам они недоступны Понимание чего? У этих ребят задача - рисовать divы и cssы. Какое такое сакральное знание вы хотите им открыть? hVostt Я вот провожу собеседования фронтенд и бекенд разработчиков. Что интересно. При одном уровне ЗП (примерно), средний бекенд разработчик на 2-3 головы выше с точки зрения знания принципов, основ и методологий разработки ПО, вообще программирования, и глубины в понимании работы программ (любых). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 11:13 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
crutchmaster Ну, по факту и на жабке приходится всё, кроме типа, проверять руками, начиная с null. А если работаешь с микросервисами, то вообще пропадает смысл возиться с типами. Не согласен насчет проверок руками. В контексте сравнения с groovy, мы имеем определённые законы и гарантии касающиеся фазы компилляции. Компилляция прошла успешно - мы можем говорить что типизацию мы не сломаем нигде. Разумеется даункастинг и рефлексию мы рассматриваем пристально. Под сквозь призму Sonar/PMD/FindBug. И по каждому warning принимем решение. Либо ставим соотсв @SuppressWarning("...") либо исправляем возможные последствия. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 11:14 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
Алексей Роза. Я еще раз повторю свой вопрос. Что изменится после того как ты откроешь такому фронт-кодеру весь пласт знаний про шаблоны проектирования и прочее? А.. наверное ты хотел сделать его back-разработчиком? Наверное у тебя - бесконечный поток кадров и ты - эдакий благородный ресурсный менеджер? Ты способствуешь быстрой текучке? Зачем тебе это? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 11:17 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
mayton типизацию мы не сломаем нигде. Если кодовая база огромная, это да, играет роль. А если сервисы маленькие, то типизацию мы и так не сломаем, т.к. всё на виду. В любом случае всё сразу всплывёт на модульных тестах, которые и так делают везде. Причём, "сломать" типизацию можно невалидным входным запросом, поэтому нет смысла вообще заворачиваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 11:26 |
|
Создатель Node.js: Для серверов я не могу представить другой язык кроме Go
|
|||
---|---|---|---|
#18+
Ну мне как-то микросервисы попадались не как декомпозиция монолита. А как скорее уже отдельные проекты и в них были свои задачи. И если ставить такое упрощение что 1EC2 instance == 1 microservice или 1 docker instance то они в силу архитектурных обстоятельств стремятся заполнить своим телом все доступное пространство. И как следствие они были не такие уж микро. По сути экземпляры бизнес-процессов которые имели как минимум 1 ендпоинт. И типизация им была все равно нужна. Ну разве что в лямбдах можно где-то схитрить и написать лямбду на Node.Js. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 11:35 |
|
|
start [/forum/topic.php?fid=16&msg=39961616&tid=1339775]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 232ms |
total: | 487ms |
0 / 0 |