www.open-tager.ru
https://open-tager.ru/forum/

Функциональный язык описания поведения оборудования
https://open-tager.ru/forum/viewtopic.php?f=5&t=4888
Страница 1 из 1

Автор:  LTagKirov [ 13 янв 2016, 17:52 ]
Заголовок сообщения:  Функциональный язык описания поведения оборудования

Поделка от Galois, Inc. по контракту с NASA и при поддержки NIANET
http://illumium.org/node/127

Автор:  Alexies [ 14 янв 2016, 00:30 ]
Заголовок сообщения:  Re: Функциональный язык описания поведения оборудования

История показывает, что функциональные языки почти всегда остаются уделом теоретиков программирования. На них можно красиво решить несколько сферических в вакууме задач, но в силу тех или иных причин сейчас ни на хаскеле, ни даже на лиспе не пишут почти ничего кроме сугубо научного ПО. Хотя периодически активисты создают новые фреймворки и даже компиляторы, но это не выходит на масштабы сурового энтерпрайза.

В некоторых местах наследие попыток внедрения функционального программирования даже создаёт неудобства. Типичный пример - синтаксис шаблонов в C++: попробуйте-ка написать самодельный аналог std::bind, не употребляя веществ.

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

Другими словами, ИМХО, не нужно тратить время на изучение этой экзотики. Если только не произойдёт чудо, и мир не изменится...

Автор:  Pacifist [ 14 янв 2016, 00:50 ]
Заголовок сообщения:  Re: Функциональный язык описания поведения оборудования

А как вам такая эзотерика как Алгоритмический язык ДРАКОН ?

Автор:  LTagKirov [ 14 янв 2016, 01:26 ]
Заголовок сообщения:  Re: Функциональный язык описания поведения оборудования

Alexies писал(а):
История показывает, что функциональные языки почти всегда остаются уделом теоретиков программирования. Типичный пример - синтаксис шаблонов в C++: попробуйте-ка написать самодельный аналог std::bind, не употребляя веществ.


Это будет тяжёлый холивар... :twisted:
Давайте зубы с другой стороны организма удалять будем :mrgreen:
Зачем извращаться и вставлять в С++ функциональные возможности, средствами неприспособленного для этого языка, куда проще взять нормальный язык и добавить в него пару модулей на С++, если очень уж приспичило БПФ например считать .

Нет спорить за/нет не буду, просто поинтересуйтесь как "программируют" различные "луноходы" и как им отдают команды...
Знаете ли вы что перед тем как луноход/марсоход получить команду проехать по сложному участку, инженеры лопатами в ангаре создают похожий рельеф из песка и кирпичей, это не шутки, а реальная работа - загляните на сайт NASA ;) Права на ошибку у них нет, вочдог несильно поможет, проге просто нельзя повисать ни в каких случаях.

Незнаю как там яйцеголовые считают факториалы, ниразу так и не пробовал, мне на научную деятельность наплевать, но функциональные языки уже давно очень коммерческая область и на них пишутся реальные зарабатывающие деньги системы, внедрить SQL инъекцию в код веб сервера на Хаскеле, получится только если автор сам реально захотел чтобы была такая возможность 8-) По скорости обработки БД быстрее только С++. Распаралеливание алгоритма проги органично понятная возможность, а не суровое испытание для пятой точки. Время экономится радикально, если прога собралась, то она 100% не упадёт, может быть как то не так ,будет работать но точно не повиснет, ошибки рантайма находятся моментально. Для коммерческого применения просто идеальная вещь, быстро и надёжно, любой пионер может быть допущен к работе - если специально вредить не будет - ничего не сломается. Сам лично втихушку приделываю модули на хаскель к своим прогам на java, начальство пока про это не знает, но когда узнает буду рьяно агитировать за него 8-)

Автор:  Alexies [ 14 янв 2016, 02:47 ]
Заголовок сообщения:  Re: Функциональный язык описания поведения оборудования

Не-не-не-не-не, я не хотеть холивар :) :?

Я всего лишь обратил внимание на факт, что встроенный в C++ язык программирования шаблонов - функциональный, и что это создаёт трудности. При чём тут факториалы, я не понял. Шаблоны - это совсем про другое. Например, про такие фишки: http://www.cplusplus.com/reference/functional/bind/ . Ну std::bind - это основы STL, всем известные. А реализован он очень извратно.

Очевидно одно: не существует языков программирования, которые будут думать за программиста и не существует "серебряных пуль" для всех задач. Уязвимости были, есть и всегда будут, по крайней мере пока код пишется человеком. Это касается и SQL, и многопоточности, и чего угодно.
С SQL и, особенно, с высокопроизводительными параллельными вычислениями я знаком не по наслышке, но убеждать ни в чём не буду.
Если приведете хоть одну реализацию SQL-сервера на Haskell, буду рад. Те, что на слуху (MariaDB, Oracle, Microsoft, Percona, Postgres, Berkley, ...) написаны на C или C++

Цитата:
но функциональные языки уже давно очень коммерческая область

LISP вообще на десяток лет раньше появился, чем C.

О теперешней популярности в enterprise говорят цифры: 0,05-0,1% вакансий на крупных хайринговых сайтах приходятся на функциональные языки в последние годы, это о чём-то говорит. Примерно такой процент программ и пишут на них. Всё это - специфические ниши. Кстати, Scala и Erlang в разы популярнее хаскеля (например, https://dev.by/lenta/main/v-poiskah-sam ... mirovaniya , хоть и не свежак).

Автор:  LTagKirov [ 14 янв 2016, 11:14 ]
Заголовок сообщения:  Re: Функциональный язык описания поведения оборудования

Alexies писал(а):
Не-не-не-не-не, я не хотеть холивар :) :?
Очевидно одно: не существует языков программирования, которые будут думать за программиста. Уязвимости были, есть и всегда будут, по крайней мере пока код пишется человеком.


Вы думаете что функциональные языки никому ненужны, на самом деле они окружают нас со всех сторон ;)
Электронная промышленность много лет вовсю использует функциональное описание сруктуры микросхем. На выпушеную партию микросхемок патч уже не накатить и апгрейд по инету не закачать - придётся всю партию в помоечку везти. Релейные схемы в ПЛК, уже лет 60 применяют, а по сути это чистая функциональщина. И только потому что применён такой подход станки,заводы, котельные, электростанции и прочее более менее всё таки работают - ошибки "перевариваются" языком без непосредственного указания программиста.

Alexies писал(а):
О теперешней популярности в enterprise говорят цифры: 0,05-0,1% вакансий на крупных хайринговых сайтах приходятся на функциональные языки, это о чём-то говорит.
Если хочется найти работу для зарабатывания денежки, то для этого незачем вообще идти в программисты, есть вакансии подороже и с большим спросом, в том же ентерпрайзе ;)


ЗЫ. Вообще то тема про написание скриптов поведения для Лазертаг оборудовани.
Скриптов которые явно не выделяют какая строка за какой будет выполнена - только поведение от входных воздействий.

Автор:  onegray [ 14 янв 2016, 18:53 ]
Заголовок сообщения:  Re: Функциональный язык описания поведения оборудования

LTagKirov писал(а):
Если хочется найти работу для зарабатывания денежки, то для этого незачем вообще идти в программисты, есть вакансии подороже и с большим спросом, в том же ентерпрайзе ;)
И что же за вакансии? Может не тем занимаюсь )))))

Автор:  onegray [ 14 янв 2016, 19:01 ]
Заголовок сообщения:  Re: Функциональный язык описания поведения оборудования

Alexies писал(а):
ИМХО, не нужно тратить время на изучение этой экзотики. Если только не произойдёт чудо, и мир не изменится..
ИМХО, изучение этой экзотики очень сильно расширяет кругозор программиста... В "филосовском" смысле ))

Автор:  Alexies [ 15 янв 2016, 15:14 ]
Заголовок сообщения:  Re: Функциональный язык описания поведения оборудования

onegray писал(а):
Alexies писал(а):
ИМХО, не нужно тратить время на изучение этой экзотики. Если только не произойдёт чудо, и мир не изменится..
ИМХО, изучение этой экзотики очень сильно расширяет кругозор программиста... В "филосовском" смысле ))

Чисто ради расширения кругозора, мне кажется, целесообразно начать с функционального программирования под PC, благо учебников и видеокурсов хватает, и экосистема богатая. Если конечно функциональное программирование в вашем личном списке "неплохо бы изучить" стоит на первом месте.
Также, стоит бегло просмотреть курс лямбда-исчисления, чтобы понимать причины.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/