Ответ 1
Да, наша таблица сравнения языков в значительной степени шутка. Особенно в строке "Не Lisp".:)
Как отметил Стивен С из моего первоначального поста, в общем, Госу проще, чем Scala, а Scala имеет более сложные функции, чем Gosu.
Scala и Gosu имеют много общего:
-
Оба являются статически типизированными, но используют вывод типа, чтобы уменьшить раздувание кода
-
Оба поддерживающих закрытия и более функциональное программирование
-
Оба обеспечивают дополнительную функциональность поверх существующих java-библиотек, особенно вокруг коллекций.
И вот некоторые отличия:
-
Gosu не поддерживает общую перегрузку оператора
-
Gosu не предоставляет синтаксическую поддержку Monads
-
Дженерики в Госу проще, чем в Java (за счет правильности), где они больше (или, по крайней мере, так) сложны в Scala (хотя Scala выполняет гораздо лучшую работу с правильностью.)
-
Gosu не поддерживает такие вещи, как Scala неявный '_' аргумент в замыканиях: он более явный в таких случаях.
-
Расширения Gosu для основных библиотек Java менее драматичны. Мы применяем дополнительные методы к существующим типам Java, а не добавляем новую иерархию типов.
Существует одна большая разница между Gosu и Scala со стороны функциональности: Gosu имеет то, что мы называем Open Type System. Это позволяет людям подключать произвольные ресурсы к компилятору Gosu. В качестве примера: Gosu (с 0.8.5) поддерживает файлы XSD и WSDL в качестве граждан первого класса:
Система открытого типа на функциональной стороне представляет собой реальный дифференциатор между Gosu и другими статически типизированными языками JVM.
Все, что сказано, неудачная реальность прямо сейчас заключается в том, что Scala гораздо более зрелый, чем Госу, в некоторых областях, особенно в инструментах. Существует большая поддержка IDE для Scala во всех основных средах IDE. У нас есть плагин Eclipse для Gosu, но он все еще находится в зачаточном состоянии. Точно так же наш плагин IntelliJ очень новый.
Scala имеет очень полную веб-фреймворк Lift. Я не большой поклонник их подхода, но он полон, и многим нравится это.
В Gosu также есть веб-фреймворк:
Я люблю подход Ронина, но тогда я бы, не так ли? Ronin строится парнями, которые хорошо знают Gosu, и, таким образом, он использует много функциональности на этом языке.
Надеюсь, что это поможет. Реально, если бы я начал проект сегодня, я бы, вероятно, пошел с Scala только из-за поддержки инструмента. Однако, если вы хотите ударить в другом направлении, особенно если ваш проект включает в себя веб-службы или обработку XSD, Gosu может быть полезным языком для использования. В конечном итоге я надеюсь, что Gosu станет прагматичным выбором для разработчиков JVM, но покажет время.