На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (6) 1 [2] 3 4 ... Последняя » все  ( Перейти к последнему сообщению )  
> Erlang vs Haskel
    Цитата D_KEY @
    Давайте уже задачки решать, что попусту разговоры разговаривать?

    Функциональщиков бы заманить малеха ... :lol:
      Ну korvin, думаю, сможет что-нибудь продемонстрировать. Я попробую(ocaml, haskell), но не уверен, что мой код будет аутентичен.
        Цитата D_KEY @
        Я попробую(ocaml, haskell), но не уверен, что мой код будет аутентичен.

        Код предназначен для реализации некоего алгоритма - т.е. цепочки действий, исполнение которых в указанном порядке приведет к желаемому результату.
        Поэтому для любого кода первична постановка задачи - и описание предполагаемого решения ее с помощью этого кода.
        Так что начните с идеи - please :)
          Так давайте какую-нибудь задачку придумаем :-?
            В голову приходит только вычисление суммы ряда или поиск максимально-минимального в массиве... :) на худой конец транспонирование матрицы. :(
              Вообще в стартовом сообщение речь несколько о других задачах=) В литературе по Erlang'у попадаются примеры историй, когда переписывание на Erlang дало не только выигрыш в объеме кода и стоимости поддержки, но и в производительности. Благодаря erlang'овской модели многопоточности, в основном. И я не вижу в этом ничего необычного.
                Я с вами согласен. И в самом первом своем посте я как раз обратил внимание собеседников на вот это:
                Цитата
                что для изученных телекоммуникационных приложений код на Erlang был на 70-85 % короче, чем на С++, а производительность системы при переписывании кода с С++ на Erlang возросла почти на 100 %.

                и спросил - а ЧТО ЭТО???
                что такое - телекоммуникационное приложение? :wall: где Erlang превыше всех???
                Дальнейшее - молчание. (с) Гамлет <_<
                  Цитата
                  Erlang [ˈɜːlæŋ][2] — функциональный язык программирования со строгой динамической типизацией, предназначенный для создания распределённых вычислительных систем. Разработан и поддерживается компанией Ericsson. Язык включает в себя средства порождения параллельных легковесных процессов и их взаимодействия через обмен асинхронными сообщениями в соответствии с моделью акторов.

                  Erlang был целенаправленно разработан для применения в распределённых, отказоустойчивых, параллельных системах реального времени[⇨], для которых кроме средств самого языка имеется стандартная библиотека модулей[⇨] и библиотека шаблонных решений (так называемых поведений) — фреймворк OTP (англ. Open Telecom Platform)[⇨]. Программа на Erlang транслируется в байт-код, исполняемый виртуальными машинами, находящимися на различных узлах распределённой[⇨] вычислительной сети. Erlang-системы поддерживают горячую замену кода[⇨], что позволяет эксплуатировать оборудование безостановочно.

                  Свой синтаксис и некоторые концепции Erlang унаследовал от языка логического программирования Пролог[3]. Язык поддерживает многие типы данных[⇨], условные конструкции[⇨], сопоставление с образцом[⇨], обработку исключений[⇨], списковые включения[⇨] и выражения битовых строк[⇨], функции[⇨] (анонимные функции[⇨], функции высшего порядка, рекурсивные определения функций, оптимизацию хвостовой рекурсии), модули[⇨], приём и отправку сообщений[⇨] между процессами. Препроцессор[⇨] поддерживает работу с макросами и включение заголовочных файлов.

                  Популярность Erlang начала расти в связи с расширением его области применения (телекоммуникационные системы) на высоконагруженные параллельные распределённые системы, обслуживающие миллионы пользователей WWW, такие как чаты, системы управления содержимым, веб-серверы и распределённые, требующие масштабирования базы данных. Erlang применяется в нескольких NoSQL-базах данных высокой доступности[4].


                  Добавлено
                  И как заточенный под конкретное применение инструмент, он вполне может быть лучше решения, написанного на языке общего назначения. Естественно, что приложив определенные усилия, можно сделать лучшее решение на C++. Просто это дополнительное время и дополнительные деньги(или заранее заложенные в проект требования, что тоже не бесплатно).

                  Добавлено
                  Цитата Oleg2004 @
                  что такое - телекоммуникационное приложение? :wall: где Erlang превыше всех???

                  Ну гугл же есть. Вот, например:
                  Цитата
                  Под телекоммуникационными системами (ТС) принято понимать структуры и средства, предназначенные для передачи больших объёмов информации (как правило, в цифровой форме) посредством специально проложенных линий связи или радиоэфира. При этом предполагается обслуживание значительного количества пользователей систем (от нескольких тысяч). Телекоммуникационные системы включают такие структуры передачи информации, как телевещание (коллективное, кабельное, спутниковое, сотовое), телефонные сети общего пользования (ТфОП), сотовые системы связи (в том числе макро- и микро- сотовые), системы персонального вызова, спутниковые системы связи и навигационное оборудование, волоконные сети передачи информации.
                  Сообщение отредактировано: D_KEY -
                    Спасибо.
                    Хорошая выборка основных понятий и процессов.
                    Основное резюме - что я посчитал важным - это семантическая сеть, покрывающая свои требования по реализации за счет распределенной сети виртуальных узлов с центром (или центрами?) управления.
                    Фактически это распределенная задача по обработке текстовой информации самых разных форматов.
                    Естественно, что задачка про Хелло ворлд тут рядом не лежала. :D

                    Добавлено
                    Ну и под занавес.
                    Я достаточно долго работаю в области теории и практики компиляции языков высокого уровня.
                    И знаком со многими языками программирования.
                    И мое глубочайшее убеждение - КАЖДЫЙ современный язык имеет свою собственную нишу применения. Классификаций языков программирования - вагон и малая тележка. Языки в подавляющем большинстве создаются не для того, чтобы конкурировать - а для того, чтобы закрывать новые потребности. Возникают новые парадигмы, новые задачи, и под них создаются конкретные языки программирования. А потому такие сравнения, типа С++ vs Erlang - неправомерны и ущербны в своей сути. ИМХО. :)
                    Простой пример - ну как можно сравнить XML и С++??? :wall:
                    Или HTML и С++?? А ведь и HTML, и XML - это языки, имеющие огромное значение в телекоммуникационном (т.е. по простому - в удаленном) взаимодействии.

                    Добавлено
                    Цитата D_KEY @
                    Естественно, что приложив определенные усилия, можно сделать лучшее решение на C++.

                    И тут вы правы.
                    В свое время лет 35 тому назад у меня был коллега, высококлассный программист, который знал только один язык - Фортран. Он мне как то сказал - я на этом языке могу написать программу для любой задачи. Любой.
                    Он был прав. По своему. Но Фортран - не предназначен для текстовой обработки. И такая программа была бы просто уродлива скорее всего.
                    Сообщение отредактировано: Oleg2004 -
                      Цитата D_KEY @
                      Так давайте какую-нибудь задачку придумаем
                      Какой-нибудь микросимулятор Ютуба подойдёт?
                        Цитата Qraizer @
                        Цитата D_KEY @
                        Так давайте какую-нибудь задачку придумаем
                        Какой-нибудь микросимулятор Ютуба подойдёт?

                        Возможно, только расскажи подробнее, что имеешь в виду :)
                          Вот здесь приводится ерланговский код для задачи о перестановках. В конце комментов приводится сишный код для той же задачи - вполне конкурентный с ерланговским. И читается вполне удобно и понятно. :)
                          И вот еще интересные откровения разрабоотчиков с Яндекса - какой язык кто и за что любит и работает на нем. Прочитал с удовольствием.
                          Нашел и такое откровение:
                          Цитата
                          Мой мимолетный опыт с функциональщиной (oCaml) закончился этим: невменяемость и ахинея. Я принимаю, что это могут быть лично мои заморочки, либо мои императивные боги сильно против языколожства.
                          :)
                          Там же на Яндексе:
                          Цитата
                          Но в будущем все будут писать на Rust. Rust — это моя любимая тема. Я всем рассказываю про Rust. Проблема C++ в том, что хотя программы получаются быстрыми, но написать их на нём так, чтобы они не падали, очень тяжело. Язык дает очень мало гарантий безопасности. Java дает очень много гарантий, но не позволяет писать программы так, чтобы они быстро работали. Rust, с одной стороны, позволяет писать безопасные программы, с другой — очень быстрые. Поэтому мой любимый язык программирования — это Rust. Но он еще не дошел до такого состояния, чтобы его можно было использовать, и будет таким лет через пять.

                          Вот это для меня открытие...все переходим на RUST... а что это за зверь?
                          Не знаю, надо смотреть.
                          Вот обсуждение на Gamedev
                          Приводится код TCP-сервера на Эрланге. Все существенно сложнее чем на С++.
                          Очень понравился луркморный обзор Эрланга :)
                          Сообщение отредактировано: Oleg2004 -
                            Oleg2004, Степан Кольцов неверно выразился. Проблема C++ не в том, что на нём тяжело писать непадучие программы, а в том, что на нём можно писать программы, сделать которые непадучими тяжело. Однако вполне можно игнорировать эту фичу, но это требует знаний и опыта.

                            Добавлено
                            D_KEY, ну например, имея несколько, можно много, источников данных, например, файлов, по запросам отдавать их контент. Запросы могут приходить к разным источникам данных, а могут и к одному, контент запрашиваться из разных регионов источников, например, по разным смещениям от начала файлов, активных запросов может быть несколько в одно время, запросы на данные из некоего источника среднестатически запрашивают их последовательно расположенными порциями со среднестатически одинаковой периодичностью, но это не всегда так.
                            Короче, тут больше над кодом клиента надо работать для получения объективных оценок кода сервера.
                              Кто пояснит, что означает такая конструкция на Эрланге - а точнее что означают три точки - и как их набрать на клаве? :wacko:
                              ∴ x = 5
                              Цитата Qraizer @
                              а в том, что на нём можно писать программы, сделать которые непадучими тяжело.

                              Если идти эрланговским путем и сделать для исполнения кода С++ некую виртуальную оболочку типа VM или фреймворка, упаковать это все в одно целое - то почему нет? Именно это обстоятельство и дает Эрланговским узлам такое преимущество.
                              Просто для приложений С++ этого не надо.
                              У него совсем другая ниша.
                              Хватает того, что все сокетные операции в эрланг-модулях gen_tcp, gen_udp, gen_sctp
                              сделаны на С++(для стека TCP/IP другого программного интерфейса, кроме сокетов Беркли и их клона Winsоck)просто нет.
                              А если честно говорить, я сегодня впервые почитал про Эрланг и идеологию его исполнения, и пришел к мнению, что для определенных видов сетевых приложений это неплохая штука. :yes:
                              И да, таки я оказался прав в своем представлении:
                              Цитата
                              Мое первое знакомство с Erlang состоялось в июле 2012-го, но зарабатывать программированием на этом языке я начал только год назад, 19 ноября 2012. В сей заметке я хотел бы поделиться своими впечатлениями от практического использования Erlang на протяжении всего этого времени. Erlang — не функциональный, а скорее объектно-ориентированный, и вовсе не язык программирования, а фреймворк для создания распределенных отказоустойчивых приложений. Ну или не очень отказоустойчивых и не очень распределенных, тут уж как напишите. Почему фреймворк — понятно, вся мощь Erlang’а заключается в Open Telecom Platform, включающей в себя поведения gen_server, gen_event и другие, а также ETS, Mnesia и так далее.

                              Спасибо ТС за тему, она была для меня полезной.
                              Так что для меня после ознакомления со всеми делами вопрос закрыт... :)
                              Сообщение отредактировано: Oleg2004 -
                                Цитата Oleg2004 @
                                ∴ x = 5

                                А откуда ты это взял? Ни разу не встречался с таким символом. И гугл ничего не говорит.



                                Что же касается темы. В Эрланге функциональщины почти столько же, сколько и в Си. Ну или в джава-скрипте. Как его сравнивать с Хаскеллом?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0500 ]   [ 16 queries used ]   [ Generated: 20.04.24, 05:47 GMT ]