[spoiler]Из множества фреймворков, сред разработки и языков программирования авторы отчета из ThoughtWorks обратили внимание на Rake. Этот инструмент написан на Ruby и использует его синтаксис, а представляет собой DSL-язык для автоматизации сборки ПО (как утилита make). В чем же его примечательность и актуальность?
Главно, что Ruby -- язык кросс-платформный, поэтому Rake также работает фактически в любых ОС и на разных виртуальных машинах (имеются самые разные реализации, от Java до .NET), что позволяет добиться высокой степени переносимости сборочных скриптов, а это крайне важно для крупных и сложных систем. К недостаткам же аналогичных по назначению систем Ant и Maven эксперты относят излишнюю увлеченность XML, не слишком подходящего для описания сборочной специфики, а также акцент на плагинной архитектуре, которая предоставляет гораздо меньше гибкости, нежели синтаксические возможности Ruby. Специалисты thoughtworks вообще считают plugin-архитектуру ошибочным уровнем абстракции.
Подробная статья Мартина Фаулера о плюсах и возможностях Rake.
Что касается организации масштабных сборок Java-проектов под разные JVM, рекомендовано средство gemjars.org.
Для анализа и мониторинга работы масштабных распределенных систем, поддерживающих Big Data, выбран Zipkin, хорошо стыкующийся с Hadoop. Еще одна полезная система мониторинга и изучения исторических данных и сведений в реальном времени, отличающаяся мощными средствами визуализации -- Graphite. А в агрегации и изучении тысяч одновременных системных событий с вашего сервера -- в реальном времени! -- поможет riemann.io. Написан на Clojure, использует протокол Protobuf, удобно стыкуется с тем же graphite.
Еще несколько специализированных тулзов для тестирования:
- Crazyegg строит так называемые Heat Maps, напрямую подсказывающие, как конвертировать посетителей в профит (а используют ее Amazon, eBay, Dell...). Интересен принцип -- анализ движений мышки пользователя на сайте, которые хорошо коррелируют с движениями глаз;
- еще более хитрая Silverback изучает не только "экранную" активность человека, но и автоматически анализирует выражение физиономии пользователя и его недовольное бормотание во время работы с программой.
Поддержка разработки, управляемой поведением (behaviour driven development), для iOS хорошо реализована в zucchiniframework.org. В качестве скрипт-языка применяется CoffeeScript. Что касается самого программирования на Objective C, особо отмечена IDE JetBrains AppCode.
Что касается новых инструментальных трендов, то пока ничего круче идей, воплощенных в Smalltalk, не находится. Так, крайне успешно собрала финансы на кикстартере среда LightTable, крайне интересный проект по созданию интерактивной-интеграционной IDE (обратная связь с кодом в реальном времени, "на кончиках пальцев"; Clojure, Python, JacaScript), который развивает Chris Granger, выходец из Microsoft. Бюджет был исходно объявлен в 200 тыс долл, однако собрал он в итоге аж за 300 тысяч!