Здравствуйте, mogadanez, Вы писали:
M>Здравствуйте, Calc, Вы писали:
C>>а node.js научился слипы параллельно делать?
M>все еще сингл тред, потому что никому не нужно другое
мне просто приходилось спасать проект, который был по незнанию написан как параллельные вычисления, но делались в одном потоке.
А почему никому не нужно другое? Много языков позволяют сделать просто fork или подключить человеческий Rx с очередями.
Здравствуйте, Calc, Вы писали:
C>мне просто приходилось спасать проект, который был по незнанию написан как параллельные вычисления, но делались в одном потоке. C>А почему никому не нужно другое? Много языков позволяют сделать просто fork или подключить человеческий Rx с очередями.
потому что длинные вычисления в рамках веб сервера делать плохо,
если нужно делается нормальная очередь за пределами веб сервера
если нужно эффективнее использовать железо — просто запускается несколько процессов
Здравствуйте, mogadanez, Вы писали:
M>Здравствуйте, Calc, Вы писали:
C>>мне просто приходилось спасать проект, который был по незнанию написан как параллельные вычисления, но делались в одном потоке. C>>А почему никому не нужно другое? Много языков позволяют сделать просто fork или подключить человеческий Rx с очередями.
M>потому что длинные вычисления в рамках веб сервера делать плохо, M>если нужно делается нормальная очередь за пределами веб сервера M>если нужно эффективнее использовать железо — просто запускается несколько процессов
В рамках запрос-ответ согласен, вопрос тогда в WebScoket и socket.io, тут архитектура уже может подразумевать какие либо вычисления, смена статусов, слипы и т.д. Такие подключения тоже в одном потоке работают?
Здравствуйте, Calc, Вы писали:
C>В рамках запрос-ответ согласен, вопрос тогда в WebScoket и socket.io, тут архитектура уже может подразумевать какие либо вычисления, смена статусов, слипы и т.д. Такие подключения тоже в одном потоке работают?
ну формально во многих потоках т.к. в реальном средне нагруженном приложении более одного инстанса сервера
Здравствуйте, Cyberax, Вы писали:
C>Scala? LOL. C>Продуктивность определяется не тем, какие в языке есть средства метапрограммирования и мега-супер-фичи, а удобством обычной разработки и отладки.
Как в Яве с такой мегафичей "обычной разработки и отладки" как repl?
Динамика с метапрограммированием говоришь не нужно? А что делать когда она таки нужна "правильному джависту"? Правильно, используй IoC и еще кучу файлов на всех возможных форматах разметок и убогим синтаксисом для каждой библиотеки. Отладка? "методом тыка"! Навигация? Попросите JBrains, они может быть сделают для вас плагинчик. Неправильные джависты" еще используют Groovy и прочую гадость. Получился продуктивный зоопарк.
C>Т.е. как быстро подключить библиотеки, как делать навигацию по исходникам (простейший Find Usage спасает часы разработки) и как отлаживать.
Find Usage с аннотацией в Py3 работает нормально. find/grep никто не отменял. За время пока ту создашь нужное для поиска проблемы в Яве окружение, пэтч на питоне уже уйдет в продакшн.
C>Краткость написания list comprehensions — где-то на 20-м пункте по важности.
Для меня нет. Говнокод не нужен, но любителям Go не понять.
Здравствуйте, Слава, Вы писали:
N>>Продуктивность по-сравнению с питоном садится в разы. Проверенно не на убогом Котлине, а на Скале. С>Работать вообще надо меньше.
Безусловно, поэтому продуктивность очень важна. Теперь на компанию можно работать всего час в день, выполняя туже работу.
Здравствуйте, neFormal, Вы писали:
WH>>А вот с этого места подробнее. WH>>Что же такого полезного могут динамически типизированные языки? F>позволяют в коде менять поведение в зависимости от входных данных
Что? Примеры можно?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Буравчик, Вы писали:
WH>>Что же такого полезного могут динамически типизированные языки? Б>Могут все то же, что и статически типизированные.
А ещё машины Тьюринга может то же самое.
Б>Почему появилось много удобных библиотек? Наверное, потому что язык позволяет делать библиотеки удобнее, за счет динамичности и интерпретируемости.
Это ты откуда взял?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, AleksandrN, Вы писали:
AN>Какой стек технологий вместо LAMP используют? Про AJAX я слышал, а на стороне сервера чем запросы обрабатывают и в БД взаимодействуют?
Когда я познакомился с аббревиатурой LAMP, она означала Linux, Apache, MySQL, Perl.
Здравствуйте, WolfHound, Вы писали:
WH>>>А вот с этого места подробнее. WH>>>Что же такого полезного могут динамически типизированные языки? F>>позволяют в коде менять поведение в зависимости от входных данных WH>Что? Примеры можно?
банальный пример с гетерогенными списками
очень актуально для конфигов, где в одном списке могут лежать разные структуры данных
в некоторых статических языках это можно ещё быстро описать, но мейнстримовые требуют довольно много действий, и большинство программистов этого старательно избегают
а если события происходят в какой-то готовой системе, то там вообще нереально таким воспользоваться
в динамике с этим в разы проще, т.к. на лету можно понять, с чем ты работаешь
Здравствуйте, Dair, Вы писали:
D>Когда я познакомился с аббревиатурой LAMP, она означала Linux, Apache, MySQL, Perl.
Потом буква P означала Perl/PHP. PHP вытеснил Perl из веб-разработки и я думал, что PHP остаётся основным языком для веб-разработки на стороне сервера. А в этой теме пишут, что это уже не так.
Здравствуйте, Ночной Смотрящий, Вы писали:
C>>Половины этого уже точно нет, плюс половину того, что там написано никто не делает. НС>Оставшейся половины вполне достаточно, чтобы признать PHP кошмаром. Тем более что про половину ты сильно преувеличил.
вообще у пхп есть своя хорошая ниша: контентные наработки
например, банальные форумы и прочие штуки лучше сделаны на пхп, поэтому для бизнеса оно быстрее и дешевле
Здравствуйте, AleksandrN, Вы писали:
AN>Потом буква P означала Perl/PHP. PHP вытеснил Perl из веб-разработки и я думал, что PHP остаётся основным языком для разработки на стороне сервера. А в этой теме пишут, что это уже не так.
Ну как бы современный веб — это статический js-фронтенд (чаще всего на каком-нибудь React или Angular), который на бекэнд ходит за данными в формате json. PHP для этого ну вообще не нужен.
Здравствуйте, Dair, Вы писали:
D>Ну как бы современный веб — это статический js-фронтенд (чаще всего на каком-нибудь React или Angular), который на бекэнд ходит за данными в формате json. PHP для этого ну вообще не нужен.
Что в современном вебе в БД, при необходимости, лезет и как с фронтэндом общается, самостоятельно сервер поднимает или через Apache/nginx/IIS?
Здравствуйте, neFormal, Вы писали:
C>>>Половины этого уже точно нет, плюс половину того, что там написано никто не делает. НС>>Оставшейся половины вполне достаточно, чтобы признать PHP кошмаром. Тем более что про половину ты сильно преувеличил. F>вообще у пхп есть своя хорошая ниша: контентные наработки F>например, банальные форумы и прочие штуки лучше сделаны на пхп, поэтому для бизнеса оно быстрее и дешевле
Самый популярный сейчас форум (Discourse) написан на Ruby.
Здравствуйте, neFormal, Вы писали:
F>банальный пример с гетерогенными списками F>очень актуально для конфигов, где в одном списке могут лежать разные структуры данных
1) Не надо так делать.
2) Какие проблемы-то?
F>в некоторых статических языках это можно ещё быстро описать, но мейнстримовые требуют довольно много действий, и большинство программистов этого старательно избегают
List<Object> — Java, []interface{} — Go, std::list<void*> — C++, ...
Здравствуйте, novitk, Вы писали:
C>>Продуктивность определяется не тем, какие в языке есть средства метапрограммирования и мега-супер-фичи, а удобством обычной разработки и отладки. N>Как в Яве с такой мегафичей "обычной разработки и отладки" как repl?
Есть. В самой удобной форме — можно остановиться на breakpoint'е и в отладчике выполнить произвольный код. Есть чистый REPL в виде JShell, но мало кому интересен.
N>Динамика с метапрограммированием говоришь не нужно?
Не нужно.
N>А что делать когда она таки нужна "правильному джависту"?
Не использовать метапрограммирование.
N>Правильно, используй IoC и еще кучу файлов на всех возможных форматах разметок и убогим синтаксисом для каждой библиотеки. Отладка? "методом тыка"! Навигация? Попросите JBrains, они может быть сделают для вас плагинчик. Неправильные джависты" еще используют Groovy и прочую гадость. Получился продуктивный зоопарк.
IoC можно делать без всяких фреймворков, я так и делаю в Golang, например. Навигация по Spring работает безупречно, так что на практике это не проблема.
Меня не интересуют теоретические возможности или невозможности, мне нужны практические инструменты, которые могут масштабироваться на проекты в миллионы строк.
C>>Т.е. как быстро подключить библиотеки, как делать навигацию по исходникам (простейший Find Usage спасает часы разработки) и как отлаживать. N>Find Usage с аннотацией в Py3 работает нормально.
А с нормальными типами — ещё лучше.
N>find/grep никто не отменял. За время пока ту создашь нужное для поиска проблемы в Яве окружение, пэтч на питоне уже уйдет в продакшн.
Нет, пока я в IDE нажму Alt-F7 и напишу патч с тестами — в Питоне всё ещё будет разворачиваться venv, тщетно пытаясь скомпилировать код на Cython.
C>>Краткость написания list comprehensions — где-то на 20-м пункте по важности. N>Для меня нет. Говнокод не нужен, но любителям Go не понять.
Это просто у тебя опыта работы нет. Иначе знал бы, что твоя собственная нетленка — это тот же говнокод.