Сообщество CodeProject (http://www.codeproject.com/info/guide.aspx) представило (http://www.codeproject.com/Articles/466907/ObjectScript-A-ne... новый открытый встраиваемый язык программирования ObjectScript (https://github.com/unitpoint/objectscript), основанный на идеях, заимствованных из JavaScript, Lua и PHP. ObjectScript поддерживает динамическую типизацию и копирует синтаксис JavaScript, дополняя его элементами из языка Lua (возврат и указание множественных значений), а также моделью объектно-ориентированного программирования, заимствованной из PHP.
Код компилятора ObjectScript написан на языке C++ (около 17 тыс. строк), размещён на GitHub и распространяется под лицензией CPOL (http://en.wikipedia.org/wiki/CPOL), которая позволяет свободно распространять исходные тексты и обмениваться кодом, вносить в него изменения и использовать в коммерческих продуктах. Тем не менее, лицензия CPOL не совместима с GPL и не одобрена OSI, так как содержит пункты, ограничивающие область применения продуктов, например, CPOL запрещает использование кода в приложениях, нарушающих закон и нормы морали.
URL: http://www.codeproject.com/Articles/466907/ObjectScript-A-ne...
Новость: http://www.opennet.me/opennews/art.shtml?num=34984
очередная обгортка над javascript ?
Вариации на тему javascript Растут как грибы!
Видимо в этом году урожай удался)
Они что сговорились?
ТупоСкрипт от мекрософта, теперь еще и это.
Что-то сегодня попёрло всех в сторону JS...
Это ещё ладно. Вот если бы они написали свой OpjectScript на JavaScript, вот это был бы фурор...
> ТупоСкрипт от мекрософта, теперь еще и это.
> Что-то сегодня попёрло всех в сторону JS...Предлагаю запилить опеннетовский вариант JS, а то что, теперь почти у каждого свой JS есть!
протестую! свой язык - каждому! только так и никаких компромиссов!
> протестую! свой язык - каждому! только так и никаких компромиссов!КлыкастыйСкрипт. Ну а что, вариант.
p.s. а он не кусается? :)
> p.s. а он не кусается? :)не больше чем claws-mail ;)
> не больше чем claws-mail ;)claws-mail и вправду не кусается, но шипит, рычит и скрипит.
>> не больше чем claws-mail ;)
> claws-mail и вправду не кусается, но шипит, рычит и скрипит....и сильфид.
> ...и сильфид.сильфид они лечат, неприличная болезнь же.
>> ...и сильфид.
> сильфид они лечат, неприличная болезнь же.жаль, а такая рифма
YAvascriptJS?
Видимо никто из выше отписавшихся не понял сути. ObjectScript не для веба и не позиционируется как замена JavaScript, он лишь заимствует его идеи. ObjectScript - встраеваемый, для тех кому нужно добавить поддержку скриптов в свои приложения.
ну хоть кто-то новость читает, а не знакомые слова ловит
> свои приложения.С такими странными условиями и лицензией? Нафиг нужно.
>> свои приложения.
> С такими странными условиями и лицензией? Нафиг нужно.//fixed
MIT
Это все понятно. Было бы интересно почитать сравнительную характеристику ObjectScript, LUA, AngelScript, Perl, Phyton и т.п. В качестве встраиваемых скриптовых языков.
Вы забыли Tcl и Haxe с его NekoVM
Язык, в котором куча дублирования функционала (все можно делать несколькими способами (похоже они решили этим Perl переплюнуть) встраеваемым никому не сдался (IMHO).Хороший язык это система парадигм, а не просто их набор.
Ого, мощно:source]$ ls
main.cpp objectscript.cpp objectscript.h os-api-helper.hsource]$ du objectscript.cpp
528 objectscript.cppИ самое главное:
bin]$ ls
os.exeИнтересно, годная замена Lua, ибо его не с-лайк синтаксис слегка вымораживает.
> Интересно, годная замена Lua,Кривая лицензия с невнятными формулировками все портит. Закладываться на такое - жутко граблеопасно. Несовместимость с GPL - плохо. А с нормами морали вообще подстава, ибо они могут дичайше варьироваться в зависимости от местности. Одни не считают аморальным жрать себе подобным, а другие требуют какашки на газоне за собачкой убирать. Вот и думай - есть у тебя лицензия, или ты пират позорный...
каменты не читай @ ерунду отвечай!
mruby нравится больше
Ждем JS++ теперь.
"встраиваемый" и "C++"? Это достаточно смешно.
Там от libc++ вообще ничего не используется, юзаются только фичи языка.
Всем привет, я автор языка. На codeproject.com закралась ошибка на счет лицензии, проект полностью бесплатный.
> Всем привет, я автор языка. На codeproject.com закралась ошибка на счет лицензии, проект полностью бесплатный.На GitHub про лицензию на код нет упоминания, под какой лицензией распространяются исходные тексты ?
> На GitHub про лицензию на код нет упоминанияуже есть. MIT.
Евгений, какова производительность языка (хоть в каких-то попугаях)?
Используете ли Вы LLVM?
> Используете ли Вы LLVM?нет, конечно — это лишняя ОГРОМНАЯ зависимость. там внутре обычная стековая VM.
>> Используете ли Вы LLVM?
> нет, конечно — это лишняя ОГРОМНАЯ зависимость. там внутре обычная стековая VM.Жаль. А ведь даже при местном использовании LLVM была бы производительность очень неплохая.
слова про «зависимость» мимо сознания прошли, да?
>> Используете ли Вы LLVM?
> нет, конечно — это лишняя ОГРОМНАЯ зависимость. там внутре обычная стековая VM.Предлагаю сделать конвертер скриптов ObjectScript в C, C++ (или в инструкции LLVM), чтобы можно было задействовать ЛЮБОЙ штатный компилятор C/C++ для получения высокопроизводительного двоичного кода.
делай.
Я напишу отдельную статью про оценку производительности.
> Я напишу отдельную статью про оценку производительности.Ждём с нетерпением. Желательно добавить сравнение с другими скриптовыми языками и их реализациями, например, JavaScript (V8, TraceMonkey и другие VM), Java, .NET, PHP, Perl, а также со скомпилированным кодом C/C++ (Visual C++, GCC).
Добавил информацию о лицензии на гите, вообще это MIT
> Добавил информацию о лицензии на гите, вообще это MITа нельзя ли WTFPL?
насыпало кучу варнингов, да ещё и не собралось в итоге. как-то рановато аннонсить было, по-моему.
Может быть зависит от компилятора. По умолчанию проекты под студию с примерами. Недавно aperezdc залил комит Unix-related fixes and basic interactive interpreter, т.е. наши иностранные друзья уже подключились, а как же "наши". Ребят! наш язык, надо брать и совместно дорабатывать.Вот что получается у меня на тему кросс платформенного движка для мобильников, сделанного полностью на OS:
http://youtube.com/watch?v=uep2SvXdCNU
http://youtube.com/watch?v=3RHek-UhkCk
http://youtube.com/watch?v=OCWIfQYW9rc
http://youtube.com/watch?v=P5KPJOVSs3E
http://youtube.com/watch?v=htDqDNqHX-I
http://youtube.com/watch?v=wqiDeuf7yu8
это зависит от libedit, о которой в prerequisites ничего не сказано. а варнинги сыпят switch'и без default
> Ребят! наш язык, надо брать и совместно дорабатывать.В мире открытого софта нет понятий наш/не наш. А есть только нужен/не нужен.
есть ещё «забавно».
автору: пожалуйста, убери из репозитория .gitignore. ужасно неудобно.
> автору: пожалуйста, убери из репозитория .gitignore. ужасно неудобно.Гм. Чем же?
>> автору: пожалуйста, убери из репозитория .gitignore. ужасно неудобно.
> Гм. Чем же?тем, что при разработке не-автором могут появляться всякие другие файлы, которые тоже хочется туда запихать, чтобы git не дёргался лишний раз. и получим дёрганье гита на сам .gitignore. увы, у гита нет механизма для «юзерского локального игнора».
> увы, у гита нет механизма для «юзерского локального игнора».кстати. а почему это его нет?! должен быть, ящитаю. щаз высплюсь и допилю.
поздравляю, Шарик, ты балбес. документацию читать надо. core.excludesfile рулит.не совсем, правда, то, что хотелось бы: в подкаталогах такие дополнительные "игноры" уже не работают. тоска.
>>> автору: пожалуйста, убери из репозитория .gitignore. ужасно неудобно.
>> Гм. Чем же?
> тем, что при разработке не-автором могут появляться всякие другие файлы, которые тоже
> хочется туда запихатьЕсли действительно нужно, в чем проблема "запихать"? и сделать pull request на гитхабе.
> Если действительно нужно, в чем проблема «запихать»? и сделать pull request на
> гитхабе.а зачем? во-первых, это вспомогательный файл. во-вторых, надо регистрироваться на гитхабе (нет, не всем нравится гламурный недохостинг), в третьих — неужто вот так вот без вопросов и возьмут патч, который правит только .gitignore, добавляя туда исключения для файлов, которые автор проекта никогда в глаза не видел и не увидит?
Поместите в свой репозиторий .git/excludes -- он полностью локален. См., например, https://help.github.com/articles/ignoring-files
> Поместите в свой репозиторий .git/excludes — он полностью локален. См., например, https://help.github.com/articles/ignoring-filesзнаю. по некоторым причинам — неудобно. решений-то много есть, вопрос в удобстве оных.
первые впечатления: забавка прикольная, но сырая.не знаю, как в винде, а пингвинус-версия требует libedit (о чём нигде не написано) и собирается с кучей ворнингов (в основном про пропущеные элементы перечислений в switch). также при -O2 надо делать -fno-strict-aliasing, ибо.
ещё автор очень любит «отложеный pop», который делает при помощи объявления «на месте» структуры с деструктором. gcc на такие финты не обижается, но жалуется, что «переменная не заюзана». в принципе, это больше баг gcc, потому что деструктор-то должен выполниться, а потому переменная таки заюзана. впрочем, выправляется введением двух вспомогательных классов и тупым поиском-заменой.
завалить в сегфолт можно элементарно: собрав и запустив тот минимальный repl, который идёт в поставке и скормив ему examples-os/test.os, например. скормив через перенаправление стандартного ввода, ибо другого варианта нет. судя по всему, fuzzy-тестинг не проводился вообще.
да, с тестами полная пичалечка. examples-os/test.os больше подходит как демонстрация фич языка, а не как нормальный тестовый пакет. регресионных тестов нет вообще. ладно, ладно, я сам этого всего не пишу, но пнуть-то можно?
по скорости на моей технике оно немного отстаёт от Lua 5.1.4, но не фатально. для применения в качестве скриптового языка — совсем никак не фатально. правда, стресс-бенчей на поведение GC нет. у обоих GC инкрементальный, построен по одинаковым принципам, больших различий быть не должно.
после беглого просмотра вердикт получился такой: как встраиваемый скриптовый язык — юзабельно. но с опасением. тесты бы не помешали. и починить сегфолты неплохо, а то как-то стремновато. ну, и поубирать ворнинги, само собой (нет, не ключами компилятора %-), потому что не m$vc единым, раз уж автор решил и пингвинус поддерживать.
супернового в проекте ничего нет, однако и суперплохого тоже. эдакая переодетая в одёжку жабоскрипа Lua. переодета, впрочем, вполне достойно. конечно, не хватает поддержки хотя бы в SWIG (а лучше инструментов типа tolua/tolua++), но это дело наживное.
правда, амальгама мне не понравилась, но это уже вкусовщина. jim-tcl вон не брезгует, да и SQLite…
успехов проекту, чо.