Scala - это своеобразный язык программирования, который нацелен как на JVM, так и на CLR. Но каковы преимущества? Стоит ли рассматривать его как жизнеспособную альтернативу языку F #?
Большинство результатов веб-поиска, которые я вижу в «Scala .NET», относятся к 2008 или началу 2009 года. Scala — интересный язык, но у меня, по общему признанию, плохо информированное впечатление, что это не «жизнеспособная альтернатива» для промышленное приложение .NET.
Я вижу, как люди мимоходом говорят о написании приложений, переносимых между CLR и JVM, и это хорошая идея в теории, но на практике я не вижу никаких доказательств того, что кто-то делал это на самом деле. (Если люди знают примеры, опубликуйте их.)
Я очень люблю Scala, но в текущем состоянии реализации .NET: большое НЕТ. Он давно не обновлялся. Версия JVM действительно намного впереди. Я не думаю, что порт Scala для .NET станет достаточно зрелым, чтобы соответствовать его аналогу JVM в обозримом будущем.
Лучше использовать F#.
Преимущество по сравнению с чем?
Преимущество по сравнению с другим языком, ориентированным только на одну из крупных платформ? Ну, вы можете работать на обеих платформах; доступ к библиотекам с обеих платформ без переключения языка;
Преимущество работы на .Net вместо JVM? Ну, если вы работаете в тяжелой среде .Net, это может быть скорее требованием, чем преимуществом.
Преимущество по сравнению с F#? Я не знаю F#, но когда вы живете в мире, ориентированном на .Net, я бы предположил, что F# будет легче доступен, чем Scala в CLR. Итак, если предположить, что эти два языка несколько сопоставимы, я бы предпочел F #
Scala для .NET — это постоянно развивающаяся разработка под руководством Мигеля Гарсии. Последнее состояние заключается в том, что мы почти можем загрузить .NET. Я не сомневаюсь, что из этого получится что-то солидное, но пока рано брать на себя обязательства.
В долгосрочной перспективе я не считаю Scala конкурентом F# или C#. Было бы трудно конкурировать на равных с языками, изначально поддерживаемыми Microsoft. С другой стороны, я вижу некоторую привлекательность Scala для магазинов, которые хотят работать как на .NET, так и на JVM.
Насколько мне известно, Scala.NET еще никто не использует. Если люди хотят запускать код Scala в .NET, лучший вариант — IKVM. И Scala отлично работает на IKVM, со всех отчетов.
Работа над Scala.NET все еще продолжается, и похоже, что она будет жизнеспособной (с полной поддержкой Visual Studio) «в конце концов». Это наиболее информативный ресурс. Мигель Гарсия в настоящее время работает в LAMP, и я думаю, что он финансируется за счет гранта Microsoft для улучшения Scala.NET до статуса готовности к производству. Но об этом можно было забыть... по крайней мере, есть работа с августа 2010 года, так что она не умерла.
Из-за «умной» защиты от спама при переполнении стека я могу опубликовать только одну ссылку. Так что вам придется поискать в Google «IKVM» и «IKVM scala», чтобы узнать о них. Ссылку, которую я включил, труднее всего найти.