Какие у вас впечатления от OCaml по сравнению с производными от Algol?
Другой момент, что вы пытались продемонстрировать гифкой, что нельзя продемонстрировать текстом?
Вы правы, всё то же самое можно донести и текстом.
На выборе гифки сказалась скорее спецификаго того, как я воспринимаю информацию. Когда вижу взаимодействие с программой на видео, лучше понимаю о чём вообще идёт речь. Как будто почти сам выполнил записанные действия. (Ну с той поправкой, что в данном случае я их сам и выполнил :))
достаточно показать, что компилируется какой-то hello world.
Да, пример кода в любом случае надо было брать покороче.
Спасибо!
Да, гифка получилась слишком долгой. Записывать полноценное видео с таким же содержанием — вроде бы и перебор? Может быть, оптимальный вариант — разделить гиф на два отдельных. Тогда первый будет показывать окно редактора с кодом. А второй — выполнение команд в консоли. По отдельности они будут достаточно короткими, чтобы не вызывать желание перемотать.
предпочитаю сам разобраться, а не подглядывать у кого-то
Мне кажется, для этого очень хорошо подойдёт книжка [Crafting Interpreters](craftinginterpreters.com/contents.html). Я и раньше думал, что автор хорошо объясняет: кратко, но не упуская важных деталей, доходчиво и точно. А когда сам попытался письменно сформулировать свои мысли для этой статьи, прочувствовал с новой силой, насколько талантливо пишет Нистром.
И не знаю считается ли это подглядыванием :) Но если знакомы с C#, в репозитории проекта [Minsk](github.com/terrajobst/minsk) код написан очень неплохо. Чисто, хорошо структурирован — в общем, приятно читается. При этом объём кода достаточно небольшой. Проект хорошо подходит для того, чтобы в нём разобраться за разумный срок без подсказок.
Спасибо!
Спасибо!
Технически проект можно было реализовать практически на любом языке. Поэтому критерии выбора F# — субъективные. Которые в общем сводятся к: надо, чтобы мне было интересно. Разумеется, если бы речь шла о коммерческой командной разработке, приоритеты были бы другие.
Если оставить за скобками функциональный подход, чем ещё оправдан выбор F#?
Во-первых, хотелось попробовать что-то новое и отличающееся от C# и вообще семейства языков с фигурными скобками. C# — по-моему, вполне приятный язык. Просто мне хватает «общения» с ним в рабочее время. При этом F# работает на .NET. А это значит, что не пришлось выделять время на изучение нового менеджера пакетов и системы управления билдами.
Во-вторых, в F# реализовано много современных языковых фишек. Многие из них появились в C# совсем недавно. Например, nullable reference types добавили в C# 8.0, релиз состоялся в сентябре 2019. В частности, при работе с F# можно «пощупать»:
В-третьих, от некоторых свойств, характерных для функциональных языков, можно не отказываться и в ОО коде на F#, а от некторых — отказаться в принципе невозможно. И необходимость под них подстраиваться расширяет кругозор и помогает держать мозг в тонусе. Что-то сродни тому, когда рекомендуют почистить зубы левой рукой, стоя на одной ноге :)
Мне кажется, проект было бы приятно писать и на TypeScript. С одной стороны, в TS есть return, break, continue и все остальные вещи привычные нам по языкам типа C#, Python или Ruby. С другой, в TS есть и Null safety и Discriminated Unions и, хоть и не такой мощный как в F#, но удобный вывод типов. Плюс некоторые возможности, которых нет ни в C#, ни F#, например тот же [Control flow based type analysis](mariusschulz.com/...pe-analysis-in-typescript).
Дякую!
Так як сайт університету Wisconsin—Milwaukee періодично змінює розташування документу, то замінив в дописі посиланням на копію, зебережену в Wayback Machine.