Первые впечатления от языка программирования Fantom?
Кто-нибудь здесь дал язык программирования Fantom вихрь? (каламбур).
Мое первое впечатление:
- Мне нравится возможность запуска кода на виртуальной машине .NET или Java.
- Синтаксис приятный и чистый, и он не пытается ничего придумать.
- У меня есть мнение, что "библиотека - это язык", а разработчики Fan считают, что их USP - это их API:
Но получение языка для работы на Java и .NET - легкая часть - на самом деле есть много решений этой проблемы. Жесткая часть - это переносные API. Fan предоставляет набор API, которые абстрагируют API Java и .NET. Мы действительно рассматриваем это одно из главных преимуществ Fan, потому что это дает нам возможность разработать набор системных API, которые элегантны и удобны в сравнении с компонентами в Java и .NET.
Любые другие мысли, первые впечатления, плюсы и минусы?
Ответы
Ответ 1
Я думаю, что их объяснение подводит итог:
"Основная причина, по которой мы создали Fan, - это написать программное обеспечение, которое может легко работать как на виртуальной машине Java, так и на .NET. CLR. Реальность такова, что многие программы организации привержены одному или другой из этих платформ.
Он не выглядит лучше всех других языков, отличных от JVM/.NET. В отсутствие какой-либо информации о них (их блог - это просто страница с ошибкой), я не вижу причин, по которым они обязательно получат этот рывок, чем другие. Каждый язык начинается довольно элегантно для множества вещей, для которых он был разработан (хотя я вижу некоторую неловкость в маленьком коде Fan, на который я смотрел только сейчас) - реальный вопрос в том, насколько хорошо он масштабируется до совершенно новых вещей, и мы просто пока не знаю.
Но если ваша организация имеет правило, что "все должно работать на нашей виртуальной машине", тогда это может быть приемлемым компромиссом для вас.
Ты отказываешься от огромного успеха только для независимости ВМ. Например, ваш первый вопрос Fan здесь на SO - на пару порядков меньше Lisp.
По какой причине Fan является лучшим решением? Python и Ruby уже могут работать на обеих виртуальных машинах (или нет), иметь большие сообщества и большие библиотеки и, по-видимому, примерно одинакового уровня абстракции, но гораздо более зрелые.
Ответ 2
Он выглядит очень вдохновленным Руби. В нем говорится, что это RESTful, но я не понимаю, как именно. Сравните с boo, который является более зрелым, но похожим во многих отношениях (его синтаксис - это вдохновленный Python).
Конструктивные решения, позволяющие ограничить общие и пространственные пространства имен, сомнительны.
Ответ 3
Я никогда не слышал о Fan до пары недель назад. С веб-сайта, это около одного года, так что все еще довольно молодой и недоказанный. Однако есть несколько интересных моментов: сначала язык решает проблему concurrency, предоставляя модель актера (аналогичную erlang) и поддерживая неизменные объекты. Во-вторых, объект следует примеру Scala с типом вывода. Вывод типа позволяет программисту опускать объявления типов, но вычислять его компилятором, предоставляя преимущество короткого и чистого кода, как на языке динамического типа, сохраняя при этом эффективность статического типа. И, наконец, это кажется очень быстрым языком, почти так же быстро, как Java, и действительно близко или избивает второй самый быстрый язык на JM: scala. Показатель производительности можно найти на http://www.slideshare.net/michael.galpin/performance-comparisons-of-dynamic-languages-on-the-java-virtual-machine?type=powerpoint.
Ответ 4
Это очень интересно.
Java (или С#) была создана для того, чтобы исключить зависимость платформы от создания JVM (или CLR), которая будет компилировать код в определенный машинный код во время выполнения.
Теперь, есть languege, который является независимым от Virtual Machine? ммм... какого черта?!?!
Опять же, это очень интересная тема: это может быть будущее...:) переход к одному универсальному одиночному languege
Ответ 5
Я думаю, что это похоже на отличный язык, но я не уверен, насколько он полезен. Я не думаю, что все это полезно для использования в .NET и JVM. Java уже кросс-платформенный, и .NET тоже, с Mono. Ориентируясь на две виртуальные машины, вы должны использовать только API, которые доступны на обоих. Вы не можете использовать ни один из великих API-интерфейсов, доступных для Java и .NET. Я не могу себе представить, чтобы их API был почти таким же полным, как и Java.NET.