http://blah.winsmarts.com/2008-4-SharePoint_limits.aspx
для № 3: можно индексировать определенные столбцы в списке, но необходимо все еще подавить размеры.
Да. В отношении Scala на Android наблюдается некоторое движение. Что касается J2ME, я кое-что видел в этом отношении, но не очень. В репозитории исходного кода есть некоторый код, относящийся к J2ME. Я не уверен, насколько это жизнеспособно, но мне кажется, что на это нет особого спроса.
Я также упомяну, что на Scala-Lang есть / был пул о желаемых целевых платформах, и J2ME был одним из них, очень низким на тотемном столбе.
Вы также можете смешивать C ++ с Java, чего бы это ни стоило. Если у вас нет опыта в этом, вы можете просто прочитать ресурсы Java, поскольку все в них будет применимо к Scala без изменений (кроме синтаксиса Scala).
Определенно, да. Scala делает все возможное, чтобы вам не нужно было программировать в функциональном стиле. Фактически, это основная критика Scala со стороны функциональных людей: некоторые не считают язык функциональным, если он не заставляет программиста писать в функциональном стиле.
В любом случае, вы можете продолжать делать все по-своему. Я уверен, что вы приобретете функциональные привычки, даже не осознавая их функциональности.
Возможно, вы можете посмотреть серию Матрицы в моем собственном блоге о написании класса Matrix. Несмотря на то, что он выглядит как стандартный объектно-ориентированный код, на самом деле он очень функциональный.
IDEA (IntelliJ), NetBeans и Eclipse имеют хорошую поддержку Scala. Кажется, что IDEA - лучшая, а NetBeans / Eclipse продолжают прыгать друг с другом, хотя NetBeans определенно был более стабильным, чем Eclipse в последнее время. С другой стороны, поддержка Eclipse идет очень многообещающим путем, который должен дать результаты в ближайшие 6 месяцев или около того - просто это неровный путь. : -)
Некоторые интересные признаки инструментов Scala для этих сред - это тот факт, что плагин Eclipse в разработке использует AOP для более плавного слияния со всей IDE, что плагин NetBeans полностью переписывается на Scala, и что в IDEA есть пакет Scala Power Pack, который поддерживает, среди прочего, перевод кода Java в код Scala.
У сотрудников EMACS также есть обширные инструменты для Scala, и множество небольших редакторов также поддерживают его. Например, мне очень нравится поддержка jEdit небольших программ и скриптов.
Есть также хорошая поддержка Maven - фактически, стандартный способ установки Lift - это установить maven, а затем построить архетип Лифта. Это приведет к появлению соответствующей версии Scala. Существует цель scala: cc
, которая также будет выполнять инициированную перекомпиляцию.
Говоря о перекомпиляции, ни Maven, и особенно Ant, не умеют хорошо определять, что нужно перекомпилировать. Из этой проблемы возникла SBT (Simple Build Tool), написанная на Scala, который решает эту проблему с помощью плагина компилятора Scala. SBT использует ту же структуру проекта, что и Maven, а также репозитории Maven / Ivy, но конфигурации проекта выполняются в коде Scala, а не в XML - также с поддержкой файлов конфигурации Maven / Ivy.
Очень быстро. Как чисто объектно-ориентированный язык, Scala уже содержит некоторые полезные функции, сравнимые с некоторыми вещами, присутствующими в C ++, но не в Java, хотя они работают по-другому. В этом отношении, когда вы поймете, для чего нужны эти функции и свяжете их с материалами C ++, вы намного опередите Java-программистов, так как вы уже будете знать, что с ними делать.
То же, что и Java. Вы можете развертывать JAR, WAR или любые другие цели Java, потому что компилятор scala генерирует файлы классов. Фактически, вы используете Java jar для генерации файла Scala JAR из файлов классов, а цели Maven для Lift поддерживают создание файлов WAR.
Однако есть альтернатива для файлов скриптов. Вы можете вызвать «scala», чтобы напрямую запустить исходный код Scala, подобно сценарию Perl of Shell. Это также можно сделать в Windows. Однако даже при использовании демона компиляции для ускорения выполнения время запуска достаточно велико, поэтому для эффективного использования Scala в среде с тяжелыми сценариями требуется что-то вроде Nailgun .
Что касается недостатков Scala, взгляните на мой (и другие) ответ в этот вопрос о переполнении стека.
Вы можете развертывать JAR, WAR или любые другие цели Java, потому что компилятор scala генерирует файлы классов. Фактически, вы используете Java jar для генерации файла Scala JAR из файлов классов, а цели Maven для Lift поддерживают создание файлов WAR.Однако есть альтернатива для файлов скриптов. Вы можете вызвать «scala», чтобы напрямую запустить исходный код Scala, подобно сценарию Perl of Shell. Это также можно сделать в Windows. Однако даже при использовании демона компиляции для ускорения выполнения время запуска достаточно велико, поэтому для эффективного использования Scala в среде с тяжелыми сценариями требуется что-то вроде Nailgun .
Что касается недостатков Scala, взгляните на мой (и другие) ответ в этот вопрос о переполнении стека.
Вы можете развернуть JAR, WAR или любые другие цели Java, потому что компилятор scala генерирует файлы классов. Фактически, вы используете Java jar для генерации файла Scala JAR из файлов классов, а цели Maven для Lift поддерживают создание файлов WAR.Однако есть альтернатива для файлов скриптов. Вы можете вызвать «scala», чтобы напрямую запустить исходный код Scala, подобно сценарию Perl of Shell. Это также можно сделать в Windows. Однако даже при использовании демона компиляции для ускорения выполнения время запуска достаточно велико, поэтому для эффективного использования Scala в среде интенсивного написания сценариев требуется что-то вроде Nailgun .
Что касается недостатков Scala, взгляните на мой (и другие) ответ в этот вопрос о переполнении стека.
потому что компилятор scala генерирует файлы классов. Фактически, вы используете Java jar для генерации файла Scala JAR из файлов классов, а цели Maven для Lift поддерживают создание файлов WAR.Однако есть альтернатива для файлов скриптов. Вы можете вызвать "scala", чтобы напрямую запустить исходный код Scala, аналогично сценарию Perl of Shell. Это также можно сделать в Windows. Однако даже при использовании демона компиляции для ускорения выполнения время запуска достаточно велико, поэтому для эффективного использования Scala в среде с тяжелыми сценариями требуется что-то вроде Nailgun .
Что касается недостатков Scala, взгляните на мой (и другие) ответ в этот вопрос о переполнении стека.
потому что компилятор scala генерирует файлы классов. Фактически, вы используете Java jar для генерации файла Scala JAR из файлов классов, а цели Maven для Lift поддерживают создание файлов WAR.Однако есть альтернатива для файлов скриптов. Вы можете вызвать «scala», чтобы напрямую запустить исходный код Scala, подобно сценарию Perl of Shell. Это также можно сделать в Windows. Однако даже при использовании демона компиляции для ускорения выполнения время запуска достаточно велико, поэтому для эффективного использования Scala в среде с тяжелыми сценариями требуется что-то вроде Nailgun .
Что касается недостатков Scala, взгляните на мой (и другие) ответ в этот вопрос о переполнении стека.
и цели Maven для Lift поддерживают создание файлов WAR.Однако есть альтернатива для файлов сценариев. Вы можете вызвать «scala», чтобы напрямую запустить исходный код Scala, подобно сценарию Perl of Shell. Это также можно сделать в Windows. Однако даже при использовании демона компиляции для ускорения выполнения время запуска достаточно велико, поэтому для эффективного использования Scala в среде с тяжелыми сценариями требуется что-то вроде Nailgun .
Что касается недостатков Scala, взгляните на мой (и другие) ответ в этот вопрос о переполнении стека.
и цели Maven для Lift поддерживают создание файлов WAR.Однако есть альтернатива для файлов сценариев. Вы можете вызвать «scala», чтобы напрямую запустить исходный код Scala, подобно сценарию Perl of Shell. Это также можно сделать в Windows. Однако даже при использовании демона компиляции для ускорения выполнения время запуска достаточно велико, поэтому для эффективного использования Scala в среде с тяжелыми сценариями требуется что-то вроде Nailgun .
Что касается недостатков Scala, взгляните на мой (и другие) ответ в этот вопрос о переполнении стека.
Парадигма программирования: Мне неудобно переключаться на FP в настоящее время. Могу ли я сначала использовать объектно-ориентированный и процедурный методы с некоторыми FP, а затем менять пропорции по мере изучения?
Scala полностью поддерживает императивное программирование, писать программы без элементов FP очень просто (однако FP полезен и стоит
Скорость обучения: учитывая мой опыт, как вы думаете, как быстро я смогу достичь рабочего уровня с помощью Scala?
Быстро. В Scala есть ряд интересных функций, которые могут быть не знакомы людям, работающим в среде C ++, Java, например, некоторые из функций системы набора текста. Некоторые утверждают, что тот факт, что нужно многому научиться в Scala, прежде чем вы все это узнаете, является проблемой языка; Я не согласен. Наличие этой функции является преимуществом языка. Чем больше возможностей, тем веселее. В конце концов, вам не обязательно использовать их все сразу, как и не обязательно покупать все, что продается в магазине.
Джеймс Страчан (продуктивный разработчик Java с открытым исходным кодом, для тех, кто не в курсе) имеет интересное обсуждение Scala здесь , и почему он считает, что это продолжение Java (язык, а не платформа).
Похоже, Scala набирает обороты. Я не думаю, что это пустяк, и сейчас он в моем списке языков для изучения (частично из-за функционального аспекта)
Скорость обучения: учитывая мой опыт, как вы думаете, насколько быстро я могу достичь рабочего уровня с помощью Scala?
Я тоже имею опыт работы на C ++. Я заметил одну вещь: поскольку вы напишете намного меньше кода по сравнению с C ++ для сопоставимой задачи, ваше обучение будет ускоряться, поскольку вы сделаете больше за тот же период времени. Это было то же явление, что я испытал с Руби.
Scala - развивающийся язык, в который стоит инвестировать, особенно если вы пришли из мира Java. Scala широко описана в Artima . См. Эту статью Билла Веннерса, а также прочтите о Twitter и Scal a.
Относительно ваших вопросов:
На самом деле - на вашем месте я бы изучал парадигмы программирования вместо языков. Конечно, чтобы изучить парадигму, вы должны изучить примерный язык. Знание недостатков и преимуществ разных парадигм позволяет вам взглянуть на свои проблемы с другой стороны и делает вас лучшим программистом (даже на языках, которые вы уже знаете).
Выбрать язык с уже известной парадигмой относительно легко задача при необходимости. Поскольку Scala - это FP (по крайней мере, вы упомянули об этом), а C ++ / Python - это ООП, я бы сказал, что это хороший язык для вас.