Насколько я знаю, осталось GHC только realtime-мусорщик допилить. Других преимуществ у erlang'а, как у платформы, уже не остаётся, пожалуй. Правда, есть готовые и работающие вещи, что немаловажно. Где я не прав? ;-)
Зачем первые два пункта? Точнее, зачем первый пункт и насколько нужен второй в присутствии строгих статических типов и возможность использовать прокси-сервер?
Вы заранее готовьтесь отвечать на эти вопросы в разговоре об Эрланге в моём ЖЖ. Вы повторяете одни и те же неявно очень сильные утверждения, я буду задавать одни и те же вопросы.
Про OTP.
Не сводимого к библиотеке я вижу только отсутствие связи между процессами на уровне системы времени выполнения. Это нужно для построения дерева супервизоров. Всё остальное может быть написано.
Как много вещей из OTP вы используете в своих проектах? Я думаю, процентов 10%, если не меньше. Насколько я неправ?
>Кроме того, ОТР это не только и не столько библиотека, сколько стиль написания и исполнения кода.
О, да. Таким образом, если я напишу код в определённом стиле, то это будет использование OTP, пусть я даже ничего из неё не использовал.
Простая проверка: можно ли предложить тест для вашего кода, который бы говорил, OTP это код, или нет? Если таковой тест есть, то желательно бы его прогнать по вашему коду, чтобы оценить, как же его много, этого OTP кода. Если такого кода нет, или по вашему тесту весь код является OTP (например, из-за использования gen_server хоть в одном модуле, пусть даже все остальные модули являются библиотеками), то ваша точка зрения не фальсифицируема. В последнем случае я бы порекомендовал вам больше не писать в моём ЖЖ, поскольку мне не интересны носители и распространители религиозных идей и взглядов.
Это очень важный момент, настолько важный, что остальные я опущу.
>Как я уже говорил, есть cloud haskell, неплохо мимикрирующий под ОТР-код, но не умеющий вменяемую рантайм-интроспекцию.
Как часто она нужна? Можно ли добиться схожих результатов другими способами?
>на проект из 30 модулей ровно 1 не является реализацией того или иного behaviour
Что у вас за область деятельности? Как вы думаете, для каких областей деятельности справедлива такая же оценка?
Как вы думаете, если вы перегруппируете модули, разбив их на библиотеки и сервера, сколько кода окажется в библиотеках и сколько в серверах, вызывающих библиотечный код?
>Я задал вопросы, ответы на которые я бы хотел услышать
Конечно же, вы не хотели услышать ответов, потому как у вас уже есть экспертное заключение:
>Я не считаю Эрланг достаточно интересным языком, чтобы читать по нему учебник
под которое, конечно же, традиционно подгоняется оппозиция оппонента (которые он, естественно, не говорил):
>согласны менять (весьма вероятно) сложный код логики в угоду стилю OTP
Поэтому в целом я не вижу смысла дальше дискутировать с вами в силу вашей агрессивной некомпетентности как в плане разработки чего-либо реального на ФП (прошу прощения, но онанизм с использованием тайпчекера в том, для чего есть заведомо лучшие инструменты, в свободное от написания Java/C# кода я не могу назвать опытом разработки чего-либо на ФП), так и в плане проблем, возникающих в живом сервер-сайд продакшне (IDE, как и МК, не являются софтом такого рода по достаточно очевидным причинам).
Это, кстати, была моя вторая работа, в ЮнионКард - надо было сделать разделяемый доступ к модулям криптозащиты, а до этого надо было сделать и оптимизировать (на всех доступных уровнях) систему, доступ к которой в пике достигал тысяч запросов в час (это 1992-1994 год).
>прошу прощения, но онанизм с использованием тайпчекера в том, для чего есть заведомо лучшие инструменты
Какие же инструменты для этого лучше? Расскажите, если не затруднит? Это я лично прошу, не для других.
Поскольку вы ответили nivanych, я повторю свой вопрос.
Напомню, это я исключительно для себя: "Какие же инструменты для этого (создания строго типизированных DSeL) лучше (онанизма с тайпчекером Хаскеля)? Расскажите, если не затруднит."
>Дело не в статической типизации совсем. Возможно.
Вообще, мне кажется, дело скорее в организации. Эриксону в том лохматом году, когда они начинали эрланг, нужна была в первую очередь рабочая инфраструктура; они её и построили, как язык эрланг весьма примитивен. В случае GHC всё немного наоборот - хотелось заниматься интересными вещами и получать гранты, в результате на выходе очень крутой компилятор, но достаточно мало инфраструктуры, и текущие мейнтейнеры GHC не особо заинтересованы в её развитии. Под инфраструктурой в данном случае я подразумеваю как раз всякие supervision tree/OTP/интроспекцию. То, что вы в предыдущем посте назвали «правильным путём что-то делать» - в данном случае хаскелевская «свобода пути» имеет обратную сторону - готовых решений нет :)
Других преимуществ у erlang'а, как у платформы, уже не остаётся, пожалуй.
Правда, есть готовые и работающие вещи, что немаловажно.
Где я не прав? ;-)
Reply
Reply
Вы заранее готовьтесь отвечать на эти вопросы в разговоре об Эрланге в моём ЖЖ. Вы повторяете одни и те же неявно очень сильные утверждения, я буду задавать одни и те же вопросы.
Про OTP.
Не сводимого к библиотеке я вижу только отсутствие связи между процессами на уровне системы времени выполнения. Это нужно для построения дерева супервизоров. Всё остальное может быть написано.
Как много вещей из OTP вы используете в своих проектах? Я думаю, процентов 10%, если не меньше. Насколько я неправ?
Reply
Reply
О, да. Таким образом, если я напишу код в определённом стиле, то это будет использование OTP, пусть я даже ничего из неё не использовал.
Простая проверка: можно ли предложить тест для вашего кода, который бы говорил, OTP это код, или нет? Если таковой тест есть, то желательно бы его прогнать по вашему коду, чтобы оценить, как же его много, этого OTP кода. Если такого кода нет, или по вашему тесту весь код является OTP (например, из-за использования gen_server хоть в одном модуле, пусть даже все остальные модули являются библиотеками), то ваша точка зрения не фальсифицируема. В последнем случае я бы порекомендовал вам больше не писать в моём ЖЖ, поскольку мне не интересны носители и распространители религиозных идей и взглядов.
Это очень важный момент, настолько важный, что остальные я опущу.
С нетерпением жду вашего ответа.
Reply
Reply
Как часто она нужна? Можно ли добиться схожих результатов другими способами?
>на проект из 30 модулей ровно 1 не является реализацией того или иного behaviour
Что у вас за область деятельности? Как вы думаете, для каких областей деятельности справедлива такая же оценка?
Как вы думаете, если вы перегруппируете модули, разбив их на библиотеки и сервера, сколько кода окажется в библиотеках и сколько в серверах, вызывающих библиотечный код?
Вот, смотрите на простой пример: http://20bits.com/articles/erlang-a-generic-server-tutorial/
-module(library).
-author(‘Jesse E.I. Farmer -behaviour(gen_server ( ... )
Reply
Reply
Reply
Конечно же, вы не хотели услышать ответов, потому как у вас уже есть экспертное заключение:
>Я не считаю Эрланг достаточно интересным языком, чтобы читать по нему учебник
под которое, конечно же, традиционно подгоняется оппозиция оппонента (которые он, естественно, не говорил):
>согласны менять (весьма вероятно) сложный код логики в угоду стилю OTP
Поэтому в целом я не вижу смысла дальше дискутировать с вами в силу вашей агрессивной некомпетентности как в плане разработки чего-либо реального на ФП (прошу прощения, но онанизм с использованием тайпчекера в том, для чего есть заведомо лучшие инструменты, в свободное от написания Java/C# кода я не могу назвать опытом разработки чего-либо на ФП), так и в плане проблем, возникающих в живом сервер-сайд продакшне (IDE, как и МК, не являются софтом такого рода по достаточно очевидным причинам).
Reply
Вот моё резюме, чтобы читающий нашу дискуссию мог составить мнение, имею ли я опыт написания высоконагруженных систем: http://hh.ru/resume/80f9c3f0ff0031a8380039ed1f736563726574?print
Это, кстати, была моя вторая работа, в ЮнионКард - надо было сделать разделяемый доступ к модулям криптозащиты, а до этого надо было сделать и оптимизировать (на всех доступных уровнях) систему, доступ к которой в пике достигал тысяч запросов в час (это 1992-1994 год).
>прошу прощения, но онанизм с использованием тайпчекера в том, для чего есть заведомо лучшие инструменты
Какие же инструменты для этого лучше? Расскажите, если не затруднит? Это я лично прошу, не для других.
Reply
Напомню, это я исключительно для себя: "Какие же инструменты для этого (создания строго типизированных DSeL) лучше (онанизма с тайпчекером Хаскеля)? Расскажите, если не затруднит."
Reply
Не подскажете ли, что за заведомо лучшие Хаскеля инструменты для создания строго типизированных DSEL?
Reply
Reply
Возможно.
Вообще, мне кажется, дело скорее в организации. Эриксону в том лохматом году, когда они начинали эрланг, нужна была в первую очередь рабочая инфраструктура; они её и построили, как язык эрланг весьма примитивен. В случае GHC всё немного наоборот - хотелось заниматься интересными вещами и получать гранты, в результате на выходе очень крутой компилятор, но достаточно мало инфраструктуры, и текущие мейнтейнеры GHC не особо заинтересованы в её развитии.
Под инфраструктурой в данном случае я подразумеваю как раз всякие supervision tree/OTP/интроспекцию. То, что вы в предыдущем посте назвали «правильным путём что-то делать» - в данном случае хаскелевская «свобода пути» имеет обратную сторону - готовых решений нет :)
Reply
Reply
Leave a comment