programmer писал(а):
И тут на сцену выходит... Monkey!
Сайт:
http://www.monkeycoder.co.nz/ (простите их за вырвиглазный сайт).
Язык от авторов Blitz Basic. По синтаксису опять же бейсик, но объектно-ориентированный. Возможно "объектно-ориентированный бейсик" звучит глупо, но это вполне адекватный язык.
Русское коммьюнити:
http://monkeycoder.ru/Лицензия на Monkey - $99 (пожизненные обновления).
Принцип работы: код на Monkey транслируется в целевую платформу (доступны языки AS3, JS, C++, Java, CSharp) и компилируется средствами SDK платформы, если имеется.
Достойнства:
- платформы: Flash, HTML5, Win/Mac/Linux, iOS, Android, WP7, WP8, PSVita.
- полностью открытый исходный код
- простая интеграция с нативным кодом - особенно полезно при мобильной разработке и необходимости интеграции кучи сторонних библиотек рекламы/статистики
- порт Flixel for Monkey:
http://devolonter.github.com/flixel-monkey/- на Monkey был написан Zombie Trailer Park (но больше NinjaKiwi нигде Monkey не использовали) и жутко популярный мобильный New Star Soccer
- есть книга о Monkey
Недостатки:
- доступен только простой набор функций для рисования растровой графики, проигрывания звуков и пр. Это как если бы на AS3 была возможность рисовать Bitmap'ы и без каких-либо Display List'ов. Этим и достигается портируемость. Недостаток вполне лечится использованием любого фреймворка.
- сложности в отладке. Отладки нет. Но в будущем это обещают исправить. Адепты Monkey при острой необходимости отлаживают программу по выходному C++ или JS коду - это нетрудно и код вполне читабелен.
- генерируемый код само собой не такой быстрый, как если бы его написали на языке целевой платформы.
О доставьте мне удовольствие.
Манки как вышел так и зашел. Разнесу счас в клочья по пунктам начиная с несущественных. Сравнивать буду с haxe/haxeNME
"Язык от авторов Blitz Basic" - для начала следовало бы знать хотя-бы что у Blitz Basic
один автор (Марк Сибли, Новая Зеландия). Но над Манки работает несколько.
"Лицензия на Monkey - $99" - тут уместно упомянуть что была она $199 - жадность, куда ж без нее, а снижена из-за невостребованности (это про зашел тоже). Поправка: была $120, а $199 - это был приемлимый набор из Манки и стороннего ИДЕ за $80, т.к. идущий в комплекте ИДЕ чуть лучше блокнота.
"платформы: Flash, HTML5, Win/Mac/Linux, iOS, Android, WP7, WP8, PSVita."
- wp7 и wp8 - ну очень разные таргеты - вы не маркетолог случаем? Поправка - говорят, что действительно разные.
haxeNME: Windows, Mac, Linux, iOS, Android, BlackBerry, Flash, HTML5
haxe: JavaScript, Flash, NekoVM, PHP, C++, C# и Java (в разработке, беты есть). Апдейтик: еще и Object-C.
тут у всех свои свои недостатки и достоинства, однозначного победителя нет.
"полностью открытый исходный код" - наглая ложь. Кода транслятора нет, кода главной либы нет, тогда как haxe/haxeNME действительно открыт весь с компилятором. Поправка: за деньги даются все исходники. Это не false, это - true.
"интеграция с нативным кодом" - это нативные расширения что-ли? У haxeNME есть такое.
"порт Flixel for Monkey" - и это есть плюс кучи подобного "добра" - выше по топику ссылки.
"на Monkey был написан Zombie Trailer Park" и чего? не считаю достоинством или показателем. На haxeNME уже куча всего понаписана ине только под флеш.
"есть книга о Monkey" - тоже ниочем, лучше нормальные доки и хорошие примеры.
"доступен только простой набор функций для рисования растровой графики, проигрывания звуков и пр" - ну а в haxeNME предоствляет почти полное зеркало флешАПИ с дисплейлистами, доступом к пикселям (а в Манки нету, как и рендеринга в текстуру, как много чего другого [ну вдруг внезапно запилили недавно доступ к пикселям, но юзеры помню слезно просили эту фичу а ее все не было, когда я в очередной раз просматривал как развивается Манки]), твинами и прочим. К тому-же haxe очень похож на АС3 и портировать под него свои наработки и сторонние с АС3 гораздо проще, чем на Манки-бейсик.
"Отладки нет" - ну тут если честно можно поспорить. Типа не писать бажный код, или трупрогер и трейсами (или аналогами) может выкрутиться, но дебаг все-ж быстрее зачастую ловить баги. Но в haxeNME - дебаг есть и это плюс.
"генерируемый код само собой не такой быстрый, как если бы его написали на языке целевой платформы" - это как так? он же нативный типа должен быть.
Еще прицеплюсь к словам: "Адепты Monkey" - звучит как сектанты, что недалеко от правды. Адепты Манки - это кодеры, которым лень смотреть вокруг и искать альтернативы. Они изучили Blitz Basic во времена его актуальности (Амига, Blitz3D на базе Blitz Basic в свое время был востребованным и конкурентным на рынке относительно доступных для инди 3д движков) и не могут переключится на что-то другое. Также там (в адептах) присутсвуют недалекие в разработке нубы, которым Манки кажется неким откровением и которые "с горящим взглядом" постят про него подобные посты.
Более толковые люди уже давно перешли на Unity3D и другие движки. И еще некоторые уважаемые разработчики (ради лулзов или дани уважения ) косьвенно тролят тему Манки. Косьвенно потому как занимаются этим не сами, а через "адептов"

а сами просто тихо создают клубы по интересам типа
http://monkeycoder.ru/ где, кстати и по ГД не относящемуся к конкретным средствам разработки можно почитать. Или просто пишут на нем игры.
Ну и краткая история Манки и Blitz Research от меня, чтобы понятно было что там было, есть и куда движется:
Есть компания Blitz Research, которую основал Марк Сибли. Специализируется на разработке ЯП с бейсик-подобным синтаксисом с ориентацией в разработку игр. Связано это с первым или одним из первых ЯП компании - Blitz Basic, бывшим очень популярным на Амиге (был такой компутер, угрожавший в свое время ПК, но китаецы всех победили дешевой комплектацией, а ИБМ взятками кому надо в нужных странах). Затем Марк сделал уже под победивший ПК парочку других бейсиков: Blitz3D с трехмерным движком и BlitzPlus с двухмерным. Blitz3D в то время стоил $99, но на данный момент его цена упала до $59. BlitzPlus стоил $59, сейчас (как написанно временно) проходит акция с бесплатной его раздачей, так что у кого есть желание "пофапать на динозавров" (или "на трупики" у кого к чему склонности) или просто ознакомится с историей игровых движков, можно скачать его бесплатно. Инструкции на
http://www.blitzbasic.com/Products/_index_.php в разделе BlitzPlus. Blitz3D был достаточно хорош для своего времени, за что Марку и можно выразить респект и уважуху.
Дальше все начало катиться "не туда". Даже не дальше, а еще во времена популярности Blitz3D. Когда некоторую популярность начали приобретать Линух и Макось, Марк выпустил следующий продукт - BlitzMax. Это был уже мультиплатформенный ЯП тоже Васик-лайк (Бэйсик-подобный), но с ООП, позволявший делать апликухи под винду, маки и линух используя и DirectX и OpenGL. Сам язык BlitzMax-а неплохой и удобный и первое время активно развивающийся в некоторый ущерб Blitz3D. И даже частично опенсорсный (либы открыты, но не сам компилятор). Однако... Это было несколько не то чего ждали фаны. А ждали они мультиплатформенного Blitz3D! Первое время Марк динамил всех что либа с поддержкой 3Д скоро будет. Додинамил до весьма значительных событий: ребята из русского комьюнити сделали биндинги к движку от Blitz3D, нехило отреверсиженерив его и потратив кучу своего времени (не сколько из-за интереса, сколько из-за того, что от Марка ничего толком нельзя было добиться, и это людей, которые могли сделать все это сами, начало доставать до активных действий). Также начали появляться биндинги к сторонним 3D движкам под тот-же BlitzMax. В первом случае Марк повел себя нехорошо и пошел войной, хотя ребята пытались подружиться. Т.е. они не стали втихаря продавать продукт, хотя вполне могли, а обратились к Марку, что вот сделали, давайте рассмотрим варианты сотрудничества. Что там у Марка переклинило, но он поднял хай вместо того, чтобы договориться. Толи все деньги себе хотел толи его задело, что другие сделали то, на что он был не способен. Но факт в том, что готовый продукт им был завернут. В свете второго факта и первого Марк таки выложил наработки 3D модуля под BlitzMax в общий доступ и родил глючное SDK от Blitz3D. Но не сразу. И это было уже не особо актуально на тот момент. Т.е. конкретно прослоупочил и продинамил своих юзеров. Особого упоминания стоит момент, что Blitz3D-SDK стоило отдельных денег $100 (я тут намекаю, что у Марка как-то постоянно проскакивает жажда наживы, там где ее совсем не надо) и не давалось уже приобревшим Blitz3D и еще было глючным в отличии от самого движка Blitz3D и СДК к нему от наших энтузиастов. Тут я подвел и к глючности. Я писал несколько движков под DirectX и копался в открытых либах того-же BlitzMax. Могу сказать что код 2Д движка там очень поверхностный, на от**ись. Можно оптимизировать очень много. И это не говоря про баги. Бичом Blitz3D была потеря контекста устройства DX API. Игры на Blitz3D просто периодически вылетали. Народ мучался, писал свои приблуды, но продолжал есть кактус, потому как АПИ движка было удобное а сам этот баг был неприятным но не критичным, потому как происходил время от времени, а не постоянно. От конечного программиста на Blitz3D ничего не зависело - там не было средств работы с "низкоуровневым" АПИ Direct3D - править надо было сам движок. Между тем проблема не стоила выеденного яйца. Надо было просто почитать доки от МС - это рядовая ситуация, описанная в доках и происходящая иногда в определенных случаях. И фиксилась всего лишь проверкой в некоторых местах на потерю и восстановление контекста устройства. И вот эта фигня (бага) продолжалась очень долго причем даже после спада популярности Blitz3D. По поводу повышенной глючности Blitz3D-SDK в сравнении с движком Blitz3D - оно типа писалось с нуля, а насколько отвественно и тщательно, юзеры почувствовали на повышенной багоглючности. По багам в BlitzMax могу сказать, что особо больших не было в рендере, но показательные были: например там криво создается окно Direct3D, не глюк но неприятные моменты в оконном режиме есть. И опять проблема - прочти доку МС идущую бесплатно с бесплатным СДК и сделай по ней, а не на "отцепись", и все будет работать отлично. Но это сделать сложно невероятно - эта проблемка присутствовала в довольно поздних версиях BlitzMax. Кстати BlitzMax в цене не поменялся и по сей день ($79).
Еще более не туда все получилось с Манки. Люди ждали BlitzMax под мобильные. А получили новый ЯП. За отдельную плату, конечно-же. Хотя тоже васик-лайк и с ООП, как у BlitzMax. Надо сказать, что выпуск Манки Марк слегка прослоупочил. На тот момент уже был haxe (но без NME), короны и то, что стало мармеладом (это из известных). То что стало мармеладом стоило вообще бесплатно, как и хэкс, который как ЯП уделывает Манки, но наглости хватило на прайс в 120 у.е. А люди просили сделать BlitzMax под мобилы, пусть и за отдельные деньги, - были посланы. Люди просили современных подходов к программированию - некоторые были реализованы (генерики, Марез будет доволен и одобрит Манки

) от некоторых отбивались, потом запилили кое-как (это например указатели на методы, нужные для событий - их таки запилили через зеркалирование, но без сахара совсем, т.е. то что на хэкс или АС3 пишется в строку будет паисаться в две-три и гораздо сложнее воспринимаемого кода. Само зеркалирование тоже было совсем не сразу сделано, хотя кто мешал?). Опять-же АПИ там укоцанее и так не особо шикарного, до достаточного АПИ BlitzMax. Короче опять все на "отцепись" - код транслируется и хорошо, остальное - ваши проблемы, платите денюшки. Еще раз замечу - изначально Манки стоил $120, но не взлетел и цену снизили до $99, но и они мне кажутся сомнительным вложением.
Про ИДЕ из прошлого века - отдельная песня. Более-менее комфорный кодинг требует платной ИДЕ. Для хэкс есть бесплатный ФД, который очень хорош. А в сравнении с "фирменными" ИДЕ продуктов Blitz Research - просто божественен!
Я думаю этой информации достаточно, чтобы понять что и как и уберечь вас от необдуманных трат.