Rebol

Софт только для Windows (всех версий)

Rebol

Сообщение Sergey_vl » 13 ноя 2021, 14:34

Тема создана для обсуждения Rebol
Последний раз редактировалось Sergey_vl 30 сен 2023, 23:41, всего редактировалось 1 раз.
Sergey_vl
Опытный даунгрейдер
 
Сообщения: 18
Зарегистрирован: 19 ноя 2008, 02:58

Re: Rebol

Сообщение KPG » 14 ноя 2021, 09:49

Не густо выводит поисковый запрос наличие проектов с упоминанием этого языка на Github.
Rebol on Github
Последний раз редактировалось KPG 30 сен 2023, 23:41, всего редактировалось 1 раз.
KPG
Мастер Даунгрейда
 
Сообщения: 318
Зарегистрирован: 21 окт 2015, 20:53

Re: Rebol

Сообщение Sergey_vl » 14 ноя 2021, 12:51

Третья версия с открытыми исходниками, но в начальном состоянии. Так же есть последователи, типа Red, которые работают не только как интерпретатор, но и позволяет делать кросскомпеляцию, т.е. на любой поддерживаемой системе может создать исполняемый файл для любой из поддерживаемых систем. Red так же ещё альфа, но на многое способна. Для себя пока выбираю Rebol 2, т.к. он более документирован, менее требовательный и завершён, как продукт.
Последний раз редактировалось Sergey_vl 30 сен 2023, 23:41, всего редактировалось 1 раз.
Sergey_vl
Опытный даунгрейдер
 
Сообщения: 18
Зарегистрирован: 19 ноя 2008, 02:58

Re: Rebol

Сообщение igor_pc » 14 ноя 2021, 14:57

Sergey_vl писал(а):...интерпретатор...кросскомпеляцию...

Ну шо, придумали очередное "шило на мыло"? Мало нам вашей явы? Насмотрелся уж, как тормозят даже сейчас уже древние версии опенофиса, типа 3-й, больше нихАчу :( Если пишешь софт под винду - сипользуешь ВИНДОВЫЙ компилятор, если под линукс - значит ЛИНУКСОВЫЙ. Так делают правильные пацаны, так и только так! Как у него с производительностью и ресукрсовыжираемостью, с VB6 хотя бы сравнится? Не говорю уж про Си и Ассемблер всемогущий... "Ой, бабоньки, чой-то я сомневаюся" :lol:
Последний раз редактировалось igor_pc 30 сен 2023, 23:41, всего редактировалось 2 раз(а).
igor_pc
 

Re: Rebol

Сообщение Sergey_vl » 15 ноя 2021, 13:12

Сравните размер явы и ребола :)
И Rebol это наверно больше "язык данных", чем "язык программирования" (всё есть данные, пока оно не оценено/выполнено).
Про скорость - есть RebCode, это диалект Rebol`а, на котором можно делать ресурсоёмкие вычисления, хотя в 99, 9999% случаев к этому не приходится прибегать.
Легко можно подключить любую библиотеку и вызвать любую функцию из неё:
Код: Выделить всё
lib-so: load/library %libc.so.6

get-nprocs: make routine! [
    return: [ integer! ]
] lib-so "get_nprocs"

print [ "Number of processors:" get-nprocs ]

free lib-so


Он намного лаконичней многих языков, и уж тем более Си :)
Для примера - код создания графического окна:

Rebol:
Код: Выделить всё
view layout [size 400x300]


Си:
Код: Выделить всё
#include <windows.h>

/*  Объявить процедуру Windows  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Превратите имя класса в глобальную переменную  */
char szClassName[ ] = "C_Example";

int WINAPI
WinMain (HINSTANCE hThisInstance,
         HINSTANCE hPrevInstance,
         LPSTR lpszArgument,
         int nFunsterStil)

{
    HWND hwnd;               
    /* Это заголовок для нашего окна */
    MSG messages;           
    /* Здесь сохраняются сообщения в приложение */
    WNDCLASSEX wincl;       
    /* Структура данных для оконного класса */

    /* Структура окна */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;     
    /* Эта функция вызывается окнами */
    wincl.style = CS_DBLCLKS;                 
    /* Обработчик двойных нажатий */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Использовать значок и указатель мыши по умолчанию */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 
    /* Без меню */
    wincl.cbClsExtra = 0;                     
    /* Без дополнительных байтов после класса окна */
    wincl.cbWndExtra = 0;                     
    /* структура или экземпляр окна */
    /* Использовать цвет Windows по умолчанию в качестве фона окна */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Зарегистрируйте класс окна. В случае неудачи выйдите из программы. */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* Класс зарегистрирован, давайте создадим программу */
    hwnd = CreateWindowEx (
           0,                   
            /* Расширенные возможности для вариаций */
           szClassName,         
            /* Имя класса */
           "C_Example",       
            /* Текст загаловка */
           WS_OVERLAPPEDWINDOW,
            /* окно по умолчанию */
           CW_USEDEFAULT,       
            /* Разрешение позиций окон */
           CW_USEDEFAULT,       
            /* где окно заканчивается на экране */
           400,                 
            /* Ширина программ */
           300,                 
            /* и высота в точках */
           HWND_DESKTOP,       
            /* Окно является дочерним по отношению к рабочему столу. */
           NULL,               
            /* Без меню */
           hThisInstance,       
            /* Обработчик экземпляра программы */
           NULL               
            /* Нет данных о создании окон */
           );

    /* Сделать окно видимым на экране */
    ShowWindow (hwnd, nFunsterStil);

    /* Запустите цикл сообщений.
    Он будет работать до тех пор, пока GetMessage () не вернёт 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Перевести сообщения виртуального ключа
            в символьные сообщения */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* Возвращаемое программой значение 0 -
            значение, которое дал PostQuitMessage () */
    return messages.wParam;
}

/*  Эта функция вызывается Windows
        функция DispatchMessage ()  */

LRESULT CALLBACK
WindowProcedure (HWND hwnd, UINT message,
    WPARAM wParam, LPARAM lParam)
{
    switch (message)                 
    /* обрабатывать сообщения */
    {
        case WM_DESTROY:
            PostQuitMessage (0);       
                /* отправить WM_QUIT в очередь сообщений */
            break;
        default:                     
            /* для сообщений, которыми мы не занимаемся */
            return DefWindowProc (hwnd, message,
                wParam, lParam);
    }

    return 0;
}


А если ваша программа должна работать не только в Window, но и в Linux/OpenBSD/Android/... то в случае Rebol нечего менять ненужно, а в случаи Си? :)

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

UPD: Атроникс - неплохой пример промышленного использования Rebol 3.
Последний раз редактировалось Sergey_vl 30 сен 2023, 23:41, всего редактировалось 2 раз(а).
Sergey_vl
Опытный даунгрейдер
 
Сообщения: 18
Зарегистрирован: 19 ноя 2008, 02:58

Re: Rebol

Сообщение KPG » 15 ноя 2021, 23:43

Sergey_vl писал(а):Легко можно подключить любую библиотеку и вызвать любую функцию из неё:

А, под GTK2 Linux примеры есть? (понял, что это некорректный вопрос т.к. в самом языке включена поддержка графического интерфейса и Rebol_View есть и под Linux)

P.S. Синтаксис языка вроде не обременителен. :)
и также как в Форт построен на использовании Слов.

Использование квадратных скобок у меня сасацировалось с их вариантом присутствия в Factor языке https://factorcode.org/
но он построен на использовании модели стековых вычислений при передаче и обработке данных между словами (взято из Forth)
+ добавлены разные комбинаторы для операций над данными передаваемыми через стек
и варианты построения кода в стиле парадигмы функционального программирования.
отсюда и "место" использования слов в постфиксной нотации.
Выполнив в оболочке
Код: Выделить всё
"demos" run
можно посмотреть присутствующие примеры.
(какие то примеры могут не заработать т.к. потребуют дополнительные библиотечные файлы сторонних приложений)
при запуске Factor в рамках LiveCD Linux Puppy потребовалось доставить ещё пару Deb пакетов.

Factor язык на 23-ем месте по количеству решённых задач с ресурса rosettacode.org
Интересно, что отсечкой 12-ти языков оказался функциональный язык Racket.
Rosetta Code: Popular Programming Languages
Изображение
Последний раз редактировалось KPG 30 сен 2023, 23:41, всего редактировалось 8 раз(а).
KPG
Мастер Даунгрейда
 
Сообщения: 318
Зарегистрирован: 21 окт 2015, 20:53

Re: Rebol

Сообщение KPG » 16 ноя 2021, 04:01

Sergey_vl писал(а):А если ваша программа должна работать не только в Window, но и в Linux/OpenBSD/Android/... то в случае Rebol нечего менять ненужно, а в случаи Си? :)

Уже в какой то степени приноровились c Си.
Можно, например, и под Windows Си софт от Linux собирать, a Win софт запускать через Wine.

P.S. Кстати не только Rebol имеет возможности кросс платформенного выполнения программ с Gui.
Например тот же TCL/TK неплох, Pascal/Lazarus вполне кроссплатформен, про Java и JavaScript можно вообще не упоминать т.к. работают "везде"
...

Вроде под Андроид Rebol не сделан и для создания исполняемых нативно файлов нужно покупать лицензию?

Рускоязычный чат по языку Red
Интервью с Nenad Rakocevic о языке Red, преемнике Rebol (Habr, 30 августа 2015)
Red on rosettacode.org

Вирус с одной из версий нагрузки Rebol исполнения MirrorBlast. Гляжусь в тебя, как в зеркало… :)
Последний раз редактировалось KPG 30 сен 2023, 23:41, всего редактировалось 8 раз(а).
KPG
Мастер Даунгрейда
 
Сообщения: 318
Зарегистрирован: 21 окт 2015, 20:53

Re: Rebol

Сообщение Sergey_vl » 16 ноя 2021, 14:57

KPG писал(а):Можно, например, и под Windows Си софт от Linux собирать, a Win софт запускать через Wine.

Ага... когда-то делал кассовую консольную программу на PHP, скомпилировав Bambalam в EXE и всё это запускалось под Wine в Ubuntu 8.04 :). Фискальный регистратор был Штрих-КОМБО, а драйвер для него написан на freebasic`e и обмен с ним был через файлы :) Но тогда я просто не знал о Реболе....

KPG писал(а):... про Java и JavaScript можно вообще не упоминать т.к. работают "везде"...

Только размер обоих великоват. А для GUI в JavaScript наверно ещё и браузер нужен, или его в HTA запихивать.

KPG писал(а):Вроде под Андроид Rebol не сделан и для создания исполняемых нативно файлов нужно покупать лицензию?

Есть третий, но опять же Rebol не компилятор, а интерпретатор. Даже в виде единого приложения была демонстрашка (...)

Ещё версия для sl4a была.

Немного текста про Rebol и Android/

А с компиляцией - это к Red

KPG писал(а):Вирус с одной из версий нагрузки Rebol исполнения MirrorBlast. Гляжусь в тебя, как в зеркало… :)

Забавно :)
Последний раз редактировалось Sergey_vl 30 сен 2023, 23:41, всего редактировалось 1 раз.
Sergey_vl
Опытный даунгрейдер
 
Сообщения: 18
Зарегистрирован: 19 ноя 2008, 02:58

Re: Rebol

Сообщение KPG » 16 ноя 2021, 18:58

SDK на сайте rebol.com тоже опубликовано 3-Jan-2021
REBOL/SDK 2.7.8 Downloads
Но просит лицензию. :)

Переведённая и оригинальная докуметация

Скрипты на сайте rebol.org
Последний раз редактировалось KPG 30 сен 2023, 23:41, всего редактировалось 5 раз(а).
KPG
Мастер Даунгрейда
 
Сообщения: 318
Зарегистрирован: 21 окт 2015, 20:53

Re: Rebol

Сообщение Sergey_vl » 17 ноя 2021, 15:40

license.key нигде достать пока не смог. Официально приобрести возможности нет. Carl Sassenrath меня "игнорит", хотя на другие темы, например радиолюбительство отвечает :)
Собственно без этого ключа SDK/Pro/Command работают как View.
Создать один исполняемый файл можно с помощью xpackerx.
Последний раз редактировалось Sergey_vl 30 сен 2023, 23:41, всего редактировалось 1 раз.
Sergey_vl
Опытный даунгрейдер
 
Сообщения: 18
Зарегистрирован: 19 ноя 2008, 02:58

Re: Rebol

Сообщение KPG » 17 ноя 2021, 17:53

Sergey_vl писал(а):license.key нигде достать пока не смог. Официально приобрести возможности нет.

Думаю, что при желании ничего не стоит "крякнуть" и этот софт. :)
а имеет ли это смысл, если создаётся "исполняемый файл" reb на базисе подключения к исходнику библиотеки времени исполнения?
(в варианте байт-кода его исполнения)
Последний раз редактировалось KPG 30 сен 2023, 23:41, всего редактировалось 2 раз(а).
KPG
Мастер Даунгрейда
 
Сообщения: 318
Зарегистрирован: 21 окт 2015, 20:53

Re: Rebol

Сообщение Sergey_vl » 18 ноя 2021, 05:43

KPG писал(а):Думаю, что при желании ничего не стоит "крякнуть" и этот софт. :)

Найти бы того, "с желанием"... Даже если это "ничего не стоит", то с удовольствием угощу его хотя бы чашкой кофея, с плюшкой, за валидный license.key :)
KPG писал(а):а имеет ли это смысл, если создаётся "исполняемый файл" reb на базисе подключения к исходнику библиотеки времени исполнения?
(в варианте байт-кода его исполнения)

А вот тут, извините, мне знаний не хватает, понять смысл. К исходнику подключается счётчик времени работы программы? "Байт-код" это то, что генерируется препроцессором при инкапсуляции в REBOL/Encap?
Последний раз редактировалось Sergey_vl 30 сен 2023, 23:41, всего редактировалось 1 раз.
Sergey_vl
Опытный даунгрейдер
 
Сообщения: 18
Зарегистрирован: 19 ноя 2008, 02:58

Re: Rebol

Сообщение Sergey_vl » 16 мар 2022, 13:18

http://hostilefork.com/media/shared/replpad-js/ - Rebol 3 (Ren-C branch) вариант реализации третей версии ребола и консоли на js (работает в окне браузера).
Последний раз редактировалось Sergey_vl 30 сен 2023, 23:41, всего редактировалось 1 раз.
Sergey_vl
Опытный даунгрейдер
 
Сообщения: 18
Зарегистрирован: 19 ноя 2008, 02:58


Вернуться в Программы для Windows

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4