Олег Чирухин @olegchir
Продакт Sber Giga IDE, продюсер в Failover Bar
Information
Specialization
Chief Technology Officer (CTO), Chief Executive Officer (CEO)
From 2,000,000 ₽
Product management
Project management
Marketing research
Game Development
Web development
Software development
Что, по вашему, должен делать докладчик — сидеть дома, ничего не говорить публично и прятаться от людей только по той причине, чтобы некий «грамотный маркетолог» не превратил это в рекламу?
Кстати, я конечно разработчик, но сейчас я работаю в отделе маркетинга. Не боитесь меня? Страшный человек же. :-)
Кроме того, как уже сказал Женя, непонятно, чего кому тут продавать. Разве что, продавать идею о светлом будущем профессии тестировщика. Но с каких пор это стало чем-то плохим?
JS — очень хороший язык для сайтиков с объемом не больше 10 тысяч строк кода
JS — очень плохой язык для больших настоящих проектов.
Основной вопрос в том, что в больших проектах код в основном не пишут, а читают. Оптимизация по скорости написания не очень важна. Оптимизация по скорости чтения с использованием IDE, возможность автоматического анализа хоть чего-то, возможность стабильных недеструктивных рефакторингов — это самые важные приоритеты
Навскидку, десять тысяч строк кода для JS уже могут показаться сложными, требующими десятков джаваскриптеров (и тут вступает на сцену «мифический человеко-месяц», и утаскивает в пучину ада). Проект на сто тысяч строк кажется джаваскриптеру чем-то невероятно непредставимо сложным. Проект на десятки миллионов строк кода в JS существовать не может вообще
Большие проекты без IDE ты и не попишешь, вообще. Если IDE нет для языка, его просто не используют.
V8 — куда слабей как виртуальная машина, особенно в части сборки мусора (нет возможности работать с дейтсвительно большими объемами данных, или действительно маленькими объемами оперативной памяти)
Зачем на системных языках быстро нафигаривать веб-сервер?) Берешь котлин, фигаришь. А на системном языке решаешь системные задачи. Тот же веб-сервер, но маниакально перфомансно, очень долго, очень дорого и невероятно офигенно. А потом оборачиваешь в нативную обёртку и зовёшь его из Котлина, чтобы получить лучшее из двух миров одновременно
UPD: а ведь это идея! Попробую заняться на выходных. Если будет время, потому что блин — Техтрейн же
Сорян, пойду пожру.
Это очень хороший вопрос, и тут я на вашей стороне :-) Сейчас я разобраюсь с GraalVM и пытаюсь популяризовать её в широких народных массах. Одна из основных частей технологии — это так называемый Polyglot Runtime, позволяющий быстро и без оверхеда пистать приложение сразу на куче языков, выбирая нужный под задачу.
Но в попытке объяснить это людям встречаюсь с очень большими затруднениями. На практике донести эту аргументацию бизнесовым чувакам очень, очень сложно.
У разных областей применения разный процент распространенности. Например, опердени для коммерсов пишет половина мира, а спутники запускают три с половиной счастливчика. Очевидно же, что платформа общего назначения (что операционная система, что платформа для программирования), созданная для широких народных масс, должна ориентироваться на самые частые кейсы использования.
Использование сразу нескольких языков добавляет несколько дополнительных уровней сложности. Например, массовое обучение специалистов по этим языкам. Или удобство тулинга. Или скорость интеропа.
Попробуйте объяснить бизнесмену, почему он должен обучать свои десять тысяч разработчиков не одному языку (Java или JS), а сразу двум (Java+JS). В конечном итоге все упирается во время, деньги, скорость вывода продуктов на рынок, и так далее. Обучение и зарплаты сотрудников — это очень большие расходы. Коммуникация между разработчиками — это очень большие расходы (есть формальное объяснение в "мифическом человеко-месяце"), а несколько языков (и несколько связанных с ними программных платформ) увеличивают сложность коммуникации.
Да, писать задачу на языке, удобном для этой задачи — это очень приятно для программиста. Далеко не всегда очевидно, что это действительно будет экономить деньги. Например, сейчас многие пишут веб-фронтенды на Java хотя камон, Java вообще никак для браузера в его текущем виде не подходит. Многие пишут бэкенды на JS, хотя JS для хайлоадной системы это кошмар и ад. Но пробиться сквозь простую логику, что раз у нас уже есть 2 тысячи JS разработчиков, нафига нам покупать еще тысячу джавистов или упаси бог C++-ников, если можно просто перекинуть JS разрабов на бэкенд — очень сложно эту логику пепреплюнуть.
Если у вас есть хороший ответ на этот вопрос — пожалуйста, расскажите. Скопипащу, сохраню, запомню наизусть, буду использовать в повседневной деятельности.
Сам Ритчи был одним из авторов Юникса, вовсе не очевидно, что юникс бы написали вообще. Вы это хотели услышать?
Свяжите дважды два: я не собираюсь отвечать на ваши наезды. В приличном обществе не общаются наездами, а с террористами не ведут переговоров. Токсичность — это плохо. Это последний ваш комментарий, на который я отвечаю.
Я не только люблю использовать Java, но и постоянно пишу про неё на Хабр :-) В общем-то, это основная и практически единственная тема, про которую я пишу на Хабр.
Например, сейчас я дико увлечен проектом по переписыванию рантайма Java с C++ на Java. Сейчас про это речь идет в проекте GraalVM, но целиком это называется Project Metropolis и поддерживается основными архитекторами Java-рантайма. Так что да, безусловно, я бы хотел увидеть написанным на джаве вообще всё, и работаю в этом направлении.
Но мы не одни такие. Например, еще есть JavaScript, и сейчас бэкенды серверных приложений стало нормально писать на JS, и переводить на JS софт, который ранее был написан на Java и С/C++.
Это совершенно нормально — не связываться с излишней сложностью, когда с ней можно не связыватья. Введение дополнительного языка — это сложность. Использование Си позволяет избавиться от неё. В чем проблема?