Kojo — среда для обучения языку Scala
Не так давно была анонсирована Kojo — среда для обучения языку Scala на платформе NetBeans. Kojo включает в себя много интересных возможностей, таких как, например, Scala REPL, и позиционируется как развлекательно-обучающая среда для детей. Автор Kojo, Lalit Pant, отвечает на вопросы сайта netbeans.org:
NetBeans: Lalit, здравствуйте. Расскажите, кто Вы и чем занимаетесь?
Lalit: Я — учитель математики в школе для девочек из малообеспеченных семей, в маленьком городке Dehradun в Северной Индии. Ранее я был профессиональным разработчиком и работал в США. В течение 16 лет карьеры мне довелось писать на самых разных языках — С, С++, Java, Prolog, Ruby, Python и, наконец, Scala. Последние 10 лет моей жизни так или иначе были связаны с Java.
NetBeans: Ну, и что же такое Kojo? С какими продуктами можно ее сравнить?
Lalit: Kojo является тем, что я называю обучающей средой. При помощи Kojo ребенок может играючи обучаться работе с компьютером, овладевать азами программирования, экспериментировать с математикой и визуальными образами. Из похожих продуктов я отмечу Scratch, Processing и The Geometer's Sketchpad.
NetBeans: Чем же Kojo уникальна?
Lalit: Kojo сочетает в себе:
- мощный язык;
- компьютерное искусство;
- анимацию и визуализацию;
- интерактивную математику.
Ни один из конкурирующих продуктов не предоставляет такого уникального набора возможностей в составе единой среды.
NetBeans: Почему Kojo написана именно на Scala?
Lalit: Должен признать, что знакомство со Scala способно сильно расширить кругозор даже самого опытного разработчика в объектно-ориентированной парадигме. Я столкнулся с такими новыми (и очень мощными) концепциями как Traits, Implicits, Abstract Types, полиморфизм type constructor'ов. Scala также явилась для меня примером практического применения функционального программирования, позволяя использовать функциональный подход внутри объектно-ориентированного кода. Поэтому, когда я стал задумываться об обучающей среде для детей, я не колебался в выборе Scala.
NetBeans: И в качестве пользовательского языка тоже?
Lalit: Да. Я решил, что буду обучать детей программировать именно на Scala, потому что даже узкое подмножество Scala (гораздо более простое, чем Java; по простоте приближающееся к Python или Ruby) обладает порядочной мощью. Да и Scala REPL пригодится мне для собственных разработок ;)
NetBeans: Каковы, по-Вашему, преимущества платформы NetBeans?
Lalit: Что мы имеем "из коробки":
- редактор исходных текстов: великолепная инфраструктура для создания редакторов, предоставляющая подсветку синтаксиса, автодополнение, автоформатирование и т.п.;
- оконная система: фиксация (docking) / передвижение окон внутри рабочего пространства;
- профессиональный внешний вид;
- окно вывода с автоматическим переносом строк, "умным" скроллингом, настраиваемым шрифтом и гиперлинкингом для сообщений об ошибках;
- прочее: всевозможные «свистелки» ("bells and whistles") наподобие splash-заставки, диалога "About" и инсталлируемого zip-дистрибутива.
Kojo свободно распространяется по лицензии GPL. Доступны исходный текст, бинарные сборки и баг-трекер.