The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Проект Wikipedia перешёл на использование HHVM для выполнени..., opennews (ok), 07-Янв-15, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


48. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  +4 +/
Сообщение от all_glory_to_the_hypnotoad (ok), 07-Янв-15, 20:24 
а потом приходят "профессионалы" с такой же низкой квалификацией и начинают переписывать на java заменяя одни простые решения на другие.
Ответить | Правка | Наверх | Cообщить модератору

50. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  –1 +/
Сообщение от edwin3demail (ok), 07-Янв-15, 21:41 
> а потом приходят "профессионалы" с такой же низкой квалификацией и начинают переписывать
> на java заменяя одни простые решения на другие.

Ваше словоблудие не имеет ничего общего с реальным положением дел.
К примеру принятый как стандарт разработки в стартапах и засунутый во все дыры ORM (увеличение скорости разработки - что поделаешь) назвать простой вещью может только человек, который не понимает, какая прослойка стоит за ним.
Равно как и не понимающий, что начиная с определенного уровня нагрузки в ряде участков он должен быть выкинут.
Реальные архитектуры не умерших приложений не имеют ничего общего с "простыми решениями".
Так и так все сложно. или очень сложно.
А на сложные проекты приходят команды, уровень квалификации которых куда выше, чем кажется Вам. И берутся разгребать. И делается это очень успешно, вопреки Вашим сказкам.
Примеров - тьма, как к примеру в Twitter, где после анализа ряд крит. участков переписали на Java, что решило ряд проблем.


Ответить | Правка | Наверх | Cообщить модератору

80. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  +/
Сообщение от all_glory_to_the_hypnotoad (ok), 08-Янв-15, 17:24 
Знал бы типичную аудиторию пыхеров и ява гогнокодеров, то не писал бы такой херни. Во-первых, пыхеры слишком тупы чтобы пользоваться какими-то там ORMами, типичный их упровень это портянки из SQL шаблонов.

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

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

> А на сложные проекты приходят команды, уровень квалификации которых куда выше

это сильно зависит от бюджетов и области деяетельности. Реально таких специалистов могут себе позволить только крупные компании завязанные на инет бизнес. Даже у них не всегда с кадрами всё так хорошо и в принципе ява кодеров подпускают фрагментально к сложным задачам.

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

Ответить | Правка | Наверх | Cообщить модератору

51. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  –1 +/
Сообщение от edwin3demail (ok), 07-Янв-15, 21:59 
> а потом приходят "профессионалы" с такой же низкой квалификацией и начинают переписывать
> на java заменяя одни простые решения на другие.

Да, в дополнении:
Java позволяет делать такие вещи, про которые в других платформах в общем то ... только подбираются
Вот Вам самый простой пример: у Вас есть задача периодической обработки большого количества входящих запросов, пусть http, без блокирования основных потоков AS, без выноса этих задач куда-то в 3-е штуки.
в Java все весьма просто - я отправлю в отдельный поток из пула, основной поток освобождается, как обработка закончиться - клиенту отдается ответ.
Статусы, синхронизации, блокировки - все работает, если руки не из ж..

Теперь возьмем Ruby и любимый RoR ... мало вспоминать про GIL И других вещах, которые буквально ограничивают нас всех при решении задач такого класса.

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

Именно потому, такие вещи как Cassandra на Java, а MongoDB - C++, а Redis - на C


Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

75. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  +2 +/
Сообщение от Crazy Alex (ok), 08-Янв-15, 14:05 
Тоже мне, аргумент. Сейчас такая задача тривально решается на Go или node.js. Раньше - для этого был (и есть) erlang/OTP. Обратите внимание - абсолютно разные подходы к построению языка и рантайма, что намекает - не в "особенности" явы или JVM дело, а в том, что всяким рубистам оно не слишком-то надо. Не говоря о том, что поднять пачку более-менее изолированных потоком или аналогичную пачку процессов по нагрузке почти одинаково, а по надёжности - процессы куда получше будут. Очереди (которые *MQ), опять же, тоже не вчера придумали. То, что жаба распрстранена - никто не спорит. Но язык убогий, каковым, он,  вобщем-то, и планировался.
Ответить | Правка | Наверх | Cообщить модератору

76. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  –2 +/
Сообщение от edwin3demail (ok), 08-Янв-15, 14:53 
> Тоже мне, аргумент. Сейчас такая задача тривально решается на Go или node.js.

С Go не работал проф., комментировать не имею права.  

Про Node...
У Вас недопонимание разницы между понимание асинхронной обработки с псевдо потоками и полноценной многопоточной архитектурой.
Вы пытаетесь мне доказать, что Node.js который по фактически не имеет нормальной многопоточности и инструментов работы с ней будет сопоставим с нормальной многопоточностью в Java при решении одинаковой задачи.
Про то, что в Node.js просто не способен реализовать ряд решений, Вы забываете ?

> Раньше - для этого был (и есть) erlang/OTP.

Знаете, Erlang - решение крайне нишевое, но почему Вы его в раньше поставили - ума не приложу. Он весьма активно используется в соот. кругах и теперь, более того - активность его использования растет, причем на глазах.
Erlang - это д-но шедевр для HL. К примеру RabbitMQ - это очень яркий пример.

А вот ставить его в один ряд с Node.js не стоило - это платформы разных уровней, т очень большое оскорбление для детища Ericsson

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

Мы не может реализовать нормальную многопоточность и потому будем искать аргументы почему она не нужна, позиция удобная аж жуть берет ...
Теперь про нагрузку - на ЦПУ относительно да. А вот по памяти ... извините, но fork и послед. события дают такой расход, что.
Даже такие фишки как copy on write не всегда кардинально меняют ситуацию, да и платформенно зависимые они.
Ед. здравый аргумент - многопроц. приложение и сделать проще и работать с процессами отдельными также проще, это факт.  

> Очереди (которые *MQ), опять же, тоже не вчера придумали.

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

> Но язык убогий, каковым, он,  вобщем-то, и планировался.

Знаете если Java экосистему называть убогой, то как тогда называть JS и Node.js ?

Ответить | Правка | Наверх | Cообщить модератору

83. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  +/
Сообщение от Crazy Alex (ok), 08-Янв-15, 19:31 
Я намекал, что есть масса способой обработать большой поток запросов. И "нормальные потоки" - только один из них. Там, где вычислений мало, а I/O много - нода вполне на месте. Где летает мало данных, но у них тяжелая обработка - хороши MQ и независимые узлы, что почти автоматом даёт масштабируемость, в отличие от тупой потоковой модели. А можно всё это скомбинировать, достаточно дешево добавив решения, оптимальные для той или иной задачи. Собственно, я ещё не видел больших проектов, где было бы меньше трёх языков задействовано. Бывало, что это были очевидные костыли - пришел кто-то и добавил скрипт на питоне в проект на PHP, а потом его тащат три года. А бывает осознанный выбор решений с учётом их сильных сторон - где-то хорош демон на сях, который предельно экономно расходует память, где-то веб-морда на рубях, для которых разрабатывать удобно, где-то бизнес-логика - хоть и на той же джаве, хоть на Go, хоть на чём.

Эрланг "был" - потому что, во-первых, он был первым индустриальным решением, умеющим хорошо работать с подобными задачами, а, во-вторых, он всё же несколько архаичен в синтаксисе и сейчас, когда есть больше альтернатив, можно выбрать что-нибудь более распространённое. С другой стороны - в плане "индустриальности" - то есть надёжности и наличия инструментов деплоя, мониторинга, обновлений и т.п. - он спокойно поспорит с J2EE в любой инкарнации.

Если говорить про оверхед по памяти - не согласен, сорри. Сейчас, по факту, всё больше дело идёт к тому, что каждый поток держит свою копию практически всех данных. Банально потому, что иначе имеем лишнюю связность и рано или позно - проблемы с синхронизацией. Конечно, если форкать JVM или ещё что-то подобное - то оверхед велик. А если нечто, что не тащит такой здоровеный рантайм и без необходимости память не забирает - тут получше ситуация. А что до платформозависимости - по факту сейчас есть только одна мейнстримная платформа, если речь идёт о джаве, пхп или альтернативах - Linux/Intel. И на ней форк крайне дёшев.

> Знаете если Java экосистему называть убогой, то как тогда называть JS и Node.js ?

А вот тут и кроется непонимание. Экосистема - велика и хорошо проработана. J2EE и тому подобное. Отлаженные фреймворки. туча специалистов и документации. И, собственно, этой проработанностью и берёт - даже там, где можно сделать красивее, часто разумнее и выгоднее пойти по хорошо накатанной дороге и нагородить стандартный тяжелый стек - со спрингом каким-нибудь и тому подобным. А как язык джава по сравнению с тем же C#, C++, Rust, D - примитивна и многословна. И по сравнению с Ruby примитивна. Одно время была надежда, что Scala будет лучше в этом плане, но, насколько я понимаю, на практике всё оказалось не так красиво, как хотелось.  Эта примитивность и выливается в монструозные фреймворки с полутора десятками уровней иерархии, которые плохо понимаемы и плохо оптимизируемы.

А JS с нодой - он на отдельную экосистему, как мне кажется, пока не тянет, и как язык лично мне не нравится, но здесь многие не согласятся. Зато на её элемент - вполне. У него есть свои жирные плюсы - то, что один и тот же код умеет работать на клиенте и сервере - иногда очень удобно. Что можно легко перебрасывать людей между фронтэндом и бэкэндом в зависимости от загрузки - тоже. В общем, выбирать надо разумно, а не упираться в одну технологию.

Ответить | Правка | Наверх | Cообщить модератору

91. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  –1 +/
Сообщение от edwin3demail (ok), 09-Янв-15, 10:26 
Теперь я понял, что Вы изначально имели ввиду ... жаль, что нам понадобилось так много времени и жаль, что я не понял Вас с самого начала.

Если говорить о Scala, то там как мне кажется основная корень проблемы лежит в том, что многие разработчики пытаются на ней разрабатывать в привычном стиле, не используя плюшки.
Т.е. по сути переходя на нее, они остаются на фактически чистой Java.
Это накладывает отпечаток, причем серьезный ... у нас на работе была одна подсистема, которую решили перевести как раз на Scala, Так вот вместо 3-х месяцев понадобилось почти 6. Чтобы люди начали писать именно на ней. И люди не дураки были
К слову обратите внимание на Groovy, он также весьма привлекателен в плане возможностей и  по моему мнению более прост в изучении и восприятии.

то касается нашей дискуссии о fork, То если поставить граничные условия:
- одна платформа, главное - где работает copy on write
- минимум общих данных

То в рамках таких допущений можно принять что выгода от скорости разработки позволяет пренебречь некоторыми моментами.
Но в других случаях - не могу согласиться  

Ответить | Правка | Наверх | Cообщить модератору

84. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  +2 +/
Сообщение от all_glory_to_the_hypnotoad (ok), 08-Янв-15, 22:30 
> Вас есть задача периодической обработки большого количества входящих запросов...
> Java позволяет делать такие вещи, про которые в других платформах в общем то ... только подбираются
> в Java все весьма просто - я отправлю в отдельный поток из пула, основной поток освобождается, как обработка закончиться - клиенту отдается ответ.

Это какой-то детский сад, как раз иллюстрация к картине профессионализма типичного ява кодера. Для "большого количества входящих запросов" (tm) тупая схема из начала 90 давно уже не работает. Причём даже для всех скриптовых ЯП делают сложнее обвязки, за исключением быть может пыха.

Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

90. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  –1 +/
Сообщение от edwin3demail (ok), 09-Янв-15, 10:13 
>> Вас есть задача периодической обработки большого количества входящих запросов...
>> Java позволяет делать такие вещи, про которые в других платформах в общем то ... только подбираются
>> в Java все весьма просто - я отправлю в отдельный поток из пула, основной поток освобождается, как обработка закончиться - клиенту отдается ответ.
> Для "большого количества входящих запросов" (tm) тупая схема из начала
> 90 давно уже не работает.

Вообще-то в 90-е самым продвинум откровением был prefork.
Та модель в которой говорю я стала по настоящему массово работоспособной в первой половине 2000-х и до сих пор применяется и будет применятся в приложениях.
Безотносительно того, как каком ЯП написано решение.

> Причём даже для всех скриптовых ЯП
> делают сложнее обвязки

Потому что сами платформы не способны обеспечить элементарные инструменты.
Решение задачи передается внешней подсистеме, которая обладает необходимым качеством.
Еще раз разберитесь, что представляют собой технически сегодня многие популярные вещи, разберитесь что такое GIL B т.д.
Т.е. дело как раз в коренной ущербности, где для простоты выкидывается множество функционала. Это оправданно в ряде случаев, но технологически это порождает схемы, при которых в роли стержня выступает убогая обвязка на которую нанизываются внешние системы, которые решают эти задачи.
Но не надо делать вид, что убогость - это мол благо. Надо просто и честно говорить, что к примеру разработчики способные работать с такими вещами стоят денег и их не так много, а типовой конструктор покрывает 99% стартаперских задач

> Это какой-то детский сад, как раз иллюстрация к картине профессионализма типичного ява кодера.

Это степень иллюстрации степени грамотности лиц, которые вместо применения одного из стандартных решений начинают изобретать структуры совершенно ненужной сложности, при этом делая вид, что технологически так лучше.
Но Вы делаете вид, что объявляете основу ряда систем "приветом из 90-х"
И вообще конечно, пулы потоков, выносы в отдельный потоки Slow запросов и т.д.  - это не для Вас.
Пользуясь Cassandra написанной на Java в роли NoSQL БД Вы конечно будете продолжать орать какая Java плохая и какие там кодеры плохие
Или пользуясь Pum'ой (как по мне - самый лучший Web для Ruby приложений при высокой нагрузке), где применены похожие принципы

Ответить | Правка | Наверх | Cообщить модератору

105. "Проект Wikipedia перешёл на использование HHVM для выполнени..."  +/
Сообщение от all_glory_to_the_hypnotoad (ok), 09-Янв-15, 22:15 
Сколько же словестного поноса, ужас...

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

Всё верно, только писать нужно правильно, вот так:

> Это степень иллюстрации грамотности лиц, которые используют подходящую архитектуру сервиса вместо применения единственного известного одному гогнокодеру "стандартного" решения

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру