Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [ФЛП] Переспективы функциональных языков, В свете скорого релиза F# 
:(
    Опции темы
 
Каковы по вашему перспективы промышленного функционального программирования?
Императивные языки не будут вытестены функциональными или какими-либо другими еще оч. долго [ 26 ]  [60.47%]
Функциональные языки за пару лет займут существенную долю рынка [ 17 ]  [39.53%]
Всего проголосовавших: 43
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
Sartorius
Дата 10.9.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



MS потихоньку переводит F# из своего исследовательского отдела на рынок. Я тут посмотрел маны по F#... Оно похоже на смесь Python, C# и Haskel. Некоторые вещи можно записать оч. коротко и красиво. Однако въехать в такой стиль оказалось непросто. Хочу определитья: имеет ли смысл вообще обращать на функциональные языки внимание в плане использования их для промышленной разработки ну или под свои нужды. Кто что думает?
PM MAIL ICQ   Вверх
maggot
Дата 16.9.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 15.1.2007

Репутация: нет
Всего: нет



ИМХО, функциональные языки ещё долго не смогут вытеснить императивные.
Но всё-таки за функциональными языками будущее.
PM MAIL   Вверх
semka
Дата 17.9.2008, 07:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 21.3.2007
Где: Пермь

Репутация: нет
Всего: нет



Имеет смысл, даже если вы никогда не будете писать на функциональных языках. 
В конце концов — это банальная грамотность.
PM MAIL WWW   Вверх
Mayk
Дата 17.9.2008, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Не вижу предпосылок к "Функциональные языки за пару лет займут существенную долю рынка". Может потому что их по-просту нет?


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
semka
Дата 17.9.2008, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 21.3.2007
Где: Пермь

Репутация: нет
Всего: нет



Насчет существенной может перегиб, конечно, но что функциональные языки занимают все большую долю рынка по-моему очевидно.
Взять хотя бы Erlang. 
PM MAIL WWW   Вверх
nerezus
Дата 16.11.2008, 11:42 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Я сомневаюсь, что чисто функциональные языки наберут обороты. А фот функциональные фишки в императивных - это круто. Питон это доказывает, очень часто использую в нем функциональные вещи, однако большинство кода все же классическое ООП)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
kemiisto
Дата 21.11.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Цитата(nerezus @  16.11.2008,  09:42 Найти цитируемый пост)
однако большинство кода все же классическое ООП

Классическое ООП:
Цитата
    * Объект - базовая единица объектно-ориентированной системы.
    * Объекты могут обладать состоянием.
    * Посылка сообщения - единственный способ обмена информацией между объектами.

В Python разве так? smile 

А вообще ты прав. ФП в чистом виде не наберёт обороты никогда.

Цитата(semka)
Насчет существенной может перегиб, конечно, но что функциональные языки занимают все большую долю рынка по-моему очевидно.
Взять хотя бы Erlang. 

Ну, допустим, взять Erlang. И?

Это сообщение отредактировал(а) kemiisto - 21.11.2008, 16:47


--------------------
PM MAIL WWW GTalk Jabber   Вверх
nerezus
Дата 21.11.2008, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

В Python разве так?
 
Цитата

    * Объект - базовая единица объектно-ориентированной системы.
 Это так.

Цитата

Объекты могут обладать состоянием.
 Полубому есть, но не понял формулировку )

Цитата

Посылка сообщения - единственный способ обмена информацией между объектами.
 Это так. Только вот богаче питон этим )


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
kemiisto
Дата 21.11.2008, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



nerezus, я только насчёт последнего не был уверен. Ага, значит посылка сообщения. Ну чтож, тогда всё OK! smile 
Цитата(nerezus @  21.11.2008,  15:03 Найти цитируемый пост)
Это так. Только вот богаче питон этим )

Эм... Не понял. Богаче чем кто?

Это сообщение отредактировал(а) kemiisto - 21.11.2008, 17:24


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Gunslinger
Дата 25.8.2010, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Рас уж тут про эрланг заговорили.
Прочитал о его фишке - что легко масштабируется на любое количество процессоров. Серьезная такая перспектива, но я не в курсе про следующие вопросы: чтобы проводить параллельные расчеты (сетевые рендеры для 3d, чисто математические расчеты, нейронные сети) нужно соответствующе переписывать все алгоритмы соответствующего софта, подстраивая их под многопроцессорность?

Это сообщение отредактировал(а) Gunslinger - 25.8.2010, 19:31
PM MAIL   Вверх
Kakadu
Дата 26.8.2010, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 19.3.2008

Репутация: нет
Всего: 7



Цитата(Gunslinger @ 25.8.2010,  19:28)
 чтобы проводить параллельные расчеты  нужно соответствующе переписывать все алгоритмы соответствующего софта, подстраивая их под многопроцессорность?

Имеется ввиду, что их надо написать на ерланге, а компилятор всё сам распараллелит.

P.S. Как автор расшифровывает ФЛП?

Это сообщение отредактировал(а) Kakadu - 26.8.2010, 12:23


--------------------
Добрые мариносы долго кормили украдкой маленьких зерлингов. От этой украдки зерлинги пухли и дохли
PM MAIL   Вверх
kemiisto
Дата 26.8.2010, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Цитата(Kakadu @  26.8.2010,  13:21 Найти цитируемый пост)
Имеется ввиду, что их надо написать на ерланге, а компилятор всё сам распараллелит.

Да ладно? smile Там же вроде Actor model, как в Scala. Точнее, наоборот. Но не суть. Ничего там компилятор сам не распараллелит.

Цитата(Kakadu @  26.8.2010,  13:21 Найти цитируемый пост)
P.S. Как автор расшифровывает ФЛП?

Функционально-логическое программирование?

Это сообщение отредактировал(а) kemiisto - 26.8.2010, 12:38


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Kakadu
Дата 26.8.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 19.3.2008

Репутация: нет
Всего: 7



Цитата

Там же вроде Actor model, как в Scala. Точнее, наоборот. Но не суть. Ничего там компилятор сам не распараллелит.

Возможно, xто я погорячился. smile Знакомство с эрлангом мне оставило именно такое впечатление. Сам я фанат OCaml/

Цитата
Функционально-логическое программирование?

Если так, то опрос построен немного нелогично. Хотя, это всё вопрос толкования русского языка. 
Лично я к логическим языкам отношуся предвзято и очень подозрительно. Я читал математические модели, на которых они построены, но не могу пока найти им применение.


--------------------
Добрые мариносы долго кормили украдкой маленьких зерлингов. От этой украдки зерлинги пухли и дохли
PM MAIL   Вверх
Gunslinger
Дата 26.8.2010, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(kemiisto @  26.8.2010,  12:38 Найти цитируемый пост)
Ничего там компилятор сам не распараллелит.

Получается эрланг всего лишь платформа для многопроцессорных расчетов в функциональном стиле, весь затык в правильно построенных алгоритмах? Как бы и не в эрланге фишка, а в мозгах программистов. Только тут странность: программист строит параллельный код, определяя количество "параллельностей". Затем появляется процессор с большем количеством ядер. Возможности распараллелить увеличиваются. В итоге опять рефакторить код, чтобы и их задействовать?
PM MAIL   Вверх
kemiisto
Дата 26.8.2010, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Gunslinger, ну можно ведь программно определять кол-во имеющихся ядер и, зная их число, вычислять кол-во потоков.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Gunslinger
Дата 28.8.2010, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(kemiisto @  26.8.2010,  18:10 Найти цитируемый пост)
ну можно ведь программно определять кол-во имеющихся ядер и, зная их число, вычислять кол-во потоков. 

На моем дилетанстком уровне программа (например, математическое моделирование какого-либо процесса) состоит из данных, которые последовательно обрабатываются различными алгоритмами. Тогда результаты одних расчетов будут входными данными для других расчетов. Поэтому мне и не ясно,как автоматически можно распараллеливать вычисления.
PM MAIL   Вверх
k0rvin
Дата 29.8.2010, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Цитата(Gunslinger @ 28.8.2010,  15:36)
На моем дилетанстком уровне программа (например, математическое моделирование какого-либо процесса) состоит из данных, которые последовательно обрабатываются различными алгоритмами. Тогда результаты одних расчетов будут входными данными для других расчетов. Поэтому мне и не ясно,как автоматически можно распараллеливать вычисления.

Код

foo (bar x) (gee y)

вычисления (bar x) и (gee y) можно провести параллельно

Добавлено через 6 минут и 23 секунды
Цитата(Gunslinger @ 26.8.2010,  16:42)
Цитата(kemiisto @  26.8.2010,  12:38 Найти цитируемый пост)
Ничего там компилятор сам не распараллелит.

Получается эрланг всего лишь платформа для многопроцессорных расчетов в функциональном стиле, весь затык в правильно построенных алгоритмах? Как бы и не в эрланге фишка, а в мозгах программистов. Только тут странность: программист строит параллельный код, определяя количество "параллельностей". Затем появляется процессор с большем количеством ядер. Возможности распараллелить увеличиваются. В итоге опять рефакторить код, чтобы и их задействовать?

ну  можно ж хотя бы в вике почитать?


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Gunslinger
Дата 29.8.2010, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(k0rvin @  29.8.2010,  09:22 Найти цитируемый пост)
ну  можно ж хотя бы в вике почитать? 

читал я.
Цитата(k0rvin @  29.8.2010,  09:22 Найти цитируемый пост)
вычисления (bar x) и (gee y) можно провести параллельно

Они обрабатывают разную информацию? Минимальные единицы, до которых можно распараллелить - функции?

PM MAIL   Вверх
k0rvin
Дата 29.8.2010, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Цитата(Gunslinger @ 29.8.2010,  18:57)
Они обрабатывают разную информацию?

любую, одна из основных черт ФП -- отсутствие побочных эффектов, в вике об этом написано же.

Цитата(Gunslinger @ 29.8.2010,  18:57)
Минимальные единицы, до которых можно распараллелить - функции?

думаю да, функции, а что может быть минимальней (в ФП)?

Это сообщение отредактировал(а) k0rvin - 29.8.2010, 19:19


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
ZyK
Дата 12.9.2010, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 18.3.2008

Репутация: нет
Всего: нет



Цитата(Gunslinger @ 26.8.2010,  16:42)
Цитата(kemiisto @  26.8.2010,  12:38 Найти цитируемый пост)
Ничего там компилятор сам не распараллелит.

Получается эрланг всего лишь платформа для многопроцессорных расчетов в функциональном стиле, весь затык в правильно построенных алгоритмах? Как бы и не в эрланге фишка, а в мозгах программистов. Только тут странность: программист строит параллельный код, определяя количество "параллельностей". Затем появляется процессор с большем количеством ядер. Возможности распараллелить увеличиваются. В итоге опять рефакторить код, чтобы и их задействовать?

Фишка эрланга в легковесных процессах. Таким образом при написании программ для машины с 8-ю ядрами, можно смело создавать одновременно сотню процессов. При переносе программы на машину с 50-ю ядрами, производительность резко растет.
При тяжелых процессах мы такого позволить не можем.

Вторая черта эрланга - процессы не имеют общей памяти, это позволяет работать на машинах без общей памяти.
PM MAIL   Вверх
ZyK
Дата 14.9.2010, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 18.3.2008

Репутация: нет
Всего: нет



Цитата(Gunslinger @ 25.8.2010,  19:28)
Рас уж тут про эрланг заговорили.
Прочитал о его фишке - что легко масштабируется на любое количество процессоров. Серьезная такая перспектива, но я не в курсе про следующие вопросы: чтобы проводить параллельные расчеты (сетевые рендеры для 3d, чисто математические расчеты, нейронные сети) нужно соответствующе переписывать все алгоритмы соответствующего софта, подстраивая их под многопроцессорность?

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

PM MAIL   Вверх
Gunslinger
Дата 17.9.2010, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(ZyK @  12.9.2010,  02:53 Найти цитируемый пост)
при написании программ для машины с 8-ю ядрами, можно смело создавать одновременно сотню процессов. При переносе программы на машину с 50-ю ядрами, производительность резко растет.

100 процессов в расчете на увеличение количества ядер? Чуда  нет - автоматически не масштабируется?

Цитата(ZyK @  14.9.2010,  23:49 Найти цитируемый пост)
На эрланге не пишут числодробилок, математика там медленная.

ясно.
PM MAIL   Вверх
ZyK
Дата 19.9.2010, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 18.3.2008

Репутация: нет
Всего: нет



Цитата(Gunslinger @ 17.9.2010,  12:47)
Цитата(ZyK @  12.9.2010,  02:53 Найти цитируемый пост)
при написании программ для машины с 8-ю ядрами, можно смело создавать одновременно сотню процессов. При переносе программы на машину с 50-ю ядрами, производительность резко растет.

100 процессов в расчете на увеличение количества ядер? Чуда  нет - автоматически не масштабируется?


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

Соответственно, у тебя количество процессов не всегда зависит от предлагаемого количества ядер.
Даже для одноядерной тачки, может быть удобным создать 100 процессов одновременно, в частности для медленно выполняющих операций - таких как загрузка страниц с веба.
PM MAIL   Вверх
kemiisto
Дата 9.11.2010, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Цитата
Функциональные языки за пару лет займут существенную долю рынка    [ 14 ]

Прошло 2 года. I have bad news for you. smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Sartorius
Дата 9.11.2010, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



Нда... Что-то этого F# не слышно не видно. На TIOBE у Cobola наверно рейтинг больше  smile 
PM MAIL ICQ   Вверх
ZyK
Дата 13.11.2010, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 18.3.2008

Репутация: нет
Всего: нет



Цитата(Sartorius @ 9.11.2010,  20:52)
Нда... Что-то этого F# не слышно не видно. На TIOBE у Cobola наверно рейтинг больше  smile

да и подозрительно, что под апачем недавно выпустили.
PM MAIL   Вверх
A5uKa
  Дата 30.11.2010, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



Цитата(Sartorius @ 9.11.2010,  20:52)
Нда... Что-то этого F# не слышно не видно. На TIOBE у Cobola наверно рейтинг больше  smile

Вполне даже слышно ... 
PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума «Функциональные языки: общие вопросы»
Void
  • Пожалуйста, создавайте темы с содержательными названиями. Если у Вас вопрос по конкретному языку, укажите его в заголовке, например: «[Haskell] Как использовать монаду State».
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Функциональные языки: общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1059 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.