IB>Можете вкратце описать какая логика в проекте F#? IB>Может парсинг, перевод данных из одной структуры в другую.
в целом именно это. хотя "перевод данных из одной структуры в другую" очень широкое определение и парсинг тоже можно в него включить
если чуть конкретнее, то примерно следующее:
— есть ряд текстовых DSL, для настройки end-user-ами определённых аспектов поведения системы (бизнес-рулы, фильтры, выражениия и тп).
это парсится в AST или какие-то структуры данных.
— большое кол-во (наверно сотни) различных функций по анализу этих настроек и их трансформаций. и вот тут f# рулит (продвинутый паттерн-матчинг, всякие функциональные приемы). могу смело утверждать, что без f# текущими силами, реализовать и контролировать этот функционал мы бы не смогли.
есть ещё всякое, но это мелочи в сравнении с п.2 по объёму функционала.
Re[8]: F# hello wordl: почему два оператора вместо одного?
T>>>короче, если я правильно понял, для каких-то алгоритмов на стороне сервера F# имел бы смысл, для UI/frontenda- больше имел бы смысл C# , правильно? MH>>в целом да. но и в UI/frontenda, могут быть сложные алгоритмы/подсистемы, тогда можно их реализацию вынести в отдельный проект на F#
T>а что, есть F# реализация под WPF(MVVM) типа Prism/Caliburn или что-то особенное под asp.net?
Здравствуйте, MadHuman, Вы писали:
MH>могу смело утверждать, что без f# текущими силами, реализовать и контролировать этот функционал мы бы не смогли.
И ты ошибся. Есть и языки не менее мощные чем f#, и специальные средства для парсинга и типизации. И на них обработка всего что ты описал будет куда проще чем на f#.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
T>>>короче, если я правильно понял, для каких-то алгоритмов на стороне сервера F# имел бы смысл, для UI/frontenda- больше имел бы смысл C# , правильно? MH>>в целом да. но и в UI/frontenda, могут быть сложные алгоритмы/подсистемы, тогда можно их реализацию вынести в отдельный проект на F#
T>а что, есть F# реализация под WPF(MVVM) типа Prism/Caliburn или что-то особенное под asp.net?
Под Web на данный момент:
Websharper,
Suave,
Giraffe,
Fable etc.
Под wpf сложнее. Вроде Gjallahorn выглядит неплохо, но руки его попробовать пока не дошли.
Re[12]: F# hello wordl: почему два оператора вместо одного?
Здравствуйте, VladD2, Вы писали:
MH>>могу смело утверждать, что без f# текущими силами, реализовать и контролировать этот функционал мы бы не смогли.
VD>И ты ошибся. Есть и языки не менее мощные чем f#, и специальные средства для парсинга и типизации. И на них обработка всего что ты описал будет куда проще чем на f#.
В чем именно? На всякий случаю поясню свою исходную мысль — я утверждал что F# для нас оказался значительно более продуктивен чем C#.
Я не утверждал, что только F# мощнее и нет других сопоставимых по мощности языков.
Ну раз упомянул про другие "языки не менее мощные чем f#, и специальные средства для парсинга и типизации", то интересно узнать что имееш ввиду.
Сразу скажу про Nemerle (думаю он будет 1-м в твоём списке) — в курсе и даже на начальном этапе рассматривали его как вариант, но выбрали F#.
Хотя соглашусь, что Nemerle в целом даже более мощный в сравнении с F#, за счет макросов. Но нам макросы были менее важны, важнее оказалось удобство для функционального подхода. А вот именно для написания кода в функциональном стиле, считаю ML-синтаксис удобнее (лично мне он очень нравится).
В нашем случае как раз парсинг — довольно простой, и тут F# не играл особой роли, хотя построение парсеров с помощью техники парсер-комбинаторов оказалось довольно и интересным и гибким и продуктивным делом. Основная сложность лежит в функционале последующего манипулирования структурами данных — их разного рода анализа и преобразования. И вот тут интересно, что по твоему (и почему) даст делать "куда проще чем на f#"?