ПроектыФорумОцените

ObjectScript — добавлено видео по установке под Windows, новый встраиваемый язык программирования (скрипты, веб, 2d mobile engine) (9 стр)

Страницы: 18 9 10 11 12 Следующая »
#120
18:45, 10 дек 2013

Прочитал в доке:

Кроме этого, ObjectScript разрешает вызов функции по нулевой ссылке. В этом случае, никакая функция конечно не вызывается. Результат попытки вызова будет null.

А аргументы при таком вызове вычисляются?

#121
21:03, 10 дек 2013

сам сайт с документацией, тоже написан на ОС? круто!
он только для веба или еще для чего-то? какие платформы поддерживает?
сложно ли биндится на другие языки?
ну и не мешало бы тесты производительности в сравнении с другими подобными прогнать и афишировать результаты.
вообще реквестирую небольшой FAQ на сайте с такого рода вопросами. Если есть такой, сорри в глаза не бросился.

#122
22:20, 10 дек 2013

Я не нашел способа передать массив в сишный код, все методы для работы с массивами оказались скрыты.
Неплохо бы добавить это в примеры, если поддерживается...

#123
15:50, 11 дек 2013

tirinox
>> Кроме этого, ObjectScript разрешает вызов функции по нулевой ссылке. В этом случае, никакая функция конечно не вызывается. Результат попытки вызова будет null.
> А аргументы при таком вызове вычисляются?

Да, вычисляются. Проверка на возможность вызова и тип вызова (это может быть, например, создание экземпляра класса) выполняется уже после подготовки аргументов.

#124
2:55, 12 дек 2013

респект, конечно.
но те же яйца, только в изометрии.
нужно двигать новые концепты...
я вот все думаю над новой концепцией ооп, ибо наследование для меня давно уже выглядит как-то ущербно и больше похоже на какой-то костыль.
не всем нравятся JavaScript-lua-python подобные языки. мне, например.
Честное слово, лучше бы очередной C++синаксисоподобный язык, мультиплатформенный и быстрый, для геймдева.
А вообще я делал свой визуальный скриптовый язык, так и закинул его, не хватило меня.
Но там все на порядок проще, гораздо меньше исходного кода и заморочек, зато профит от него очевиден (если довести до ума).
Хотя это все может показаться игрушкой в сравнении с настоящим программированием, но на самом деле иногда нужна совсем уж простая логика,
и использовать программиста для этих целей ну совсем уж не обязательно.

а что касается критики - то синтаксический сахар не нужен.. .как уже было сказано: код написанный в стиле синтаксического сахара в одну строчку легко писать, но невозможно поддерживать. write-only. нужно быть проще.

а еще не нравится использование "__". можно придумать гораздо более красивый префикс для специальных функций - любой из знаков "$%&@" будет намного лучше.
а еще лучше без всего - зарезирвированные слова, и все тут
constructor
destructor
operator_plus
operator_minus
...
operator_power (естественнее смотрится не 2**2, а 2^2)
ну или
op_add
op_sub
op_mul
op_div
op_pow
op_and
op_not
op_etc

ну в общем, респект за титанический труд.
желаю, чтобы язык развивался и занимал свою нишу.
жалко, если такой энтузиазм и столько сделанной работы пропадёт даром...

#125
9:36, 12 дек 2013

divol13
> сам сайт с документацией, тоже написан на ОС? круто!

Да, сайт написан на ObjectScript. Спасибо!

> он только для веба или еще для чего-то?

ObjectScript  - это универсальный язык программирования общего назначения. Его можно использовать для разработки сайтов, написания скриптов, а также встраивать в программы на C++. Например, программа на C++, которая выполняет скрипт на ObjectScript:

#include <objectscript.h>
using namespace ObjectScript;
int main(int argc, char* argv[])
{
    OS * os = OS::create(); // craete ObjectScript instance
    os->require("main.os"); // run ObjectScript program
    os->release();          // release the ObjectScript instance
    return 0;
}

> какие платформы поддерживает?

Испробовано на Windows, Linux, Android (ARM), x32, x64, да любые платформы.

> ну и не мешало бы тесты производительности в сравнении с другими подобными прогнать и афишировать результаты.

В этой теме тесты производительности уже публиковались, скорость не плохая, сравнимая с lua, согласен, надо еще опубликовать. Скорость работы сайта - довольно хорошая. На сайте http://objectscript.org внизу каждой страницы справа пишется время генерации текущей страницы, например, 9ms (означает 9 миллисекунд). При этом, сайт работает на контролерах, представлениях, виджетах и т.п., т.е. все по-человечески на мой взгляд. Исходники сайта находятся в этом репозитории https://github.com/unitpoint/objectscript.org , а сам сайт можно скачать на локалку и запустить под виндой. Именно так я его и разрабатываю, потом заливаю в репозиторий на гитхабе, а затем делаю git pull на сервере.

При заходе первый раз на страницу, ObjectScript компилирует еще не откомпилированный (или измененный) код в бинарное представление, что увеличивает скорость работы скрипта существенно при заходе на страницу в следующий раз. Это аналог accelerator для PHP и др. подобных расширений. Только в ObjectScript такая возможность уже встроена в язык по умолчанию.

> вообще реквестирую небольшой FAQ

Согласен, FAQ очень нужен, руки дойдут понемногу, обязатеьно буду делать.

#126
13:27, 12 дек 2013

/A\
> Я не нашел способа передать массив в сишный код, все методы для работы с массивами оказались скрыты.

В ObjectScript массив (например, [1, 2, 3]) может содержать элементы любых типов, в том числе рекурсивно ссылаться на самого себя. Кроме массивов в OS есть объекты (например, {user="Ivan", age=23}). Для массивов и объектов в OS С++ API существуют функции по чтению, записи, добавлению, удалению свойств (элементов) и обходу коллекции.

Например, обход на С++ некой абстрактной коллекции (объект или массив), который находится на вершине стека, можно сделать так:

Код на С++:

while(os->nextIteratorStep()){
  OS::String key = os->toString(-2);
  OS::String value = os->toString(-1);

  // ...
  
  pop(2);
}

т.е. при выполнении nextIteratorStep в стек помещается два значения. На вершине стека (индекс: -1) будет само значение, а перед ним (индекс: -2) будет ключ или название свойства. Т.к. ключ (для объекта) может быть любого типа, то программист сам решает, к какому типу его преобразовать. В выше приведенном примере, к строке, можно к числу и т.п.

Кроме этого можно вызывать функции самого массива (реализованные на C++ или OS) из C++ и обрабатывать их результат.

#127
9:24, 13 дек 2013

UnitPoint
Небольшой баг на сайте: нельзя открыть свойства в документации, всегда перекидывает на GitHub:
Изображение

#128
17:44, 13 дек 2013

~NucleaR~
> Небольшой баг на сайте: нельзя открыть свойства в документации, всегда перекидывает на GitHub

Огромное спасибо за найденный баг, исправил, теперь эта кнопка строится на css и кликабельна только при наведении курсором.

#129
11:53, 14 дек 2013

https://www.google.ca/search?q=objectscript&rlz=1C1LENP_enCA5… =objectscript Название уже взяли

#130
13:40, 14 дек 2013

polyfrag
тот что по первой ссылке вроде мертв, а остальные ведут как раз на этот.

#131
16:08, 14 дек 2013

UnitPoint
Спасибо за работу! Обязательно попробуем. Так как называться то будет ?  Имя то занято не ?

#132
15:42, 15 дек 2013

EvilSpirit
> естественнее смотрится не 2**2, а 2^2

В языке есть и тот и др. оператор, см. Побитовые операторы

> а еще не нравится использование "__". можно придумать гораздо более красивый префикс

"__" - стандартный префикс во мн. языках, любой др. на мой взгляд - это те же яйца, только в профиль. В контексте определения свойств вида __get@username и доступа к свойству через @username (вместо this.username) используемый префикс выглядит довольно гармонично. Нет?

> ну в общем, респект за титанический труд. желаю, чтобы язык развивался и занимал свою нишу

Спасибо огромное!

#133
14:43, 16 дек 2013

kipar
> тот что по первой ссылке вроде мертв, а остальные ведут как раз на этот.

Да верно.

ksacvet777
> Спасибо за работу! Обязательно попробуем. Так как называться то будет ? Имя то занято не ?

Есть еще "Cache ObjectScript", а ObjectScript вроде свободный, был.

В ObjectScript добавлена новая возможность - блок (в документации на сайте еще не описан), синтаксис @{ ... }. Блок - это набор команд, который можно использовать в любом выражении. Блок в качестве контекства получает текущий this и он может возвращать значение через return. Пример использования (framework/components/UrlManager.os):

parseRequest = function(request){
  return request.getParam(@routeVar) || @enablePrettyUrl && @{
    for(var _, rule in @rules){
      var route, params = rule.parseRequest(this, request)
      if(route){
        _GET.merge(params)
        return route
      }
    }
    if("${request.baseUrl}/" != request.url){
      request.redirect(request.baseUrl)
    }
  }
},
#134
2:17, 17 дек 2013

UnitPoint
> "__" - стандартный префикс во мн. языках, любой др. на мой взгляд - это те же
> яйца, только в профиль. В контексте определения свойств вида __get@username и
> доступа к свойству через @username (вместо this.username) используемый префикс
> выглядит довольно гармонично. Нет?
никогда не нравилось то, что люди, делая что-то свое, смотрят на плохие решения других, а потом говорят "так заведено".
с моей точки зрения, такое решение в любом языке выглядит ужасно. никогда не мог понять, скольно на самом деле подчеркиваний там ставится.

Страницы: 18 9 10 11 12 Следующая »
ПроектыФорумОцените

Тема в архиве.