Автор Тема: [OberonJS] Мнения  (Прочитано 16873 раз)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #15 : Июль 26, 2013, 12:43:31 pm »
а что разве создатели котлина ставили своей целью генерить конечный js- код "высокой понимабильности"?

Не знаю, возможно что и нет. Но этому Мельникову это нужно -- его право, почему бы и нет...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #16 : Июль 26, 2013, 12:46:57 pm »
Будут ли у вас проблемы с производительностью - только реалистичные бенчмарки могут показать, которых пока нет ни у меня, ни у вас.

Кстати, действительно, есть же всякие бенчмарки -- хотя бы те же дристоун/ветстоун из пакета XDS Modula-2/Oberon-2. Неплохо было бы попробовать их портировать -- глядишь всякие баги компилятора посыпятся как из ведра ))))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

DddIzer

  • Гость
Re: [OberonJS] Мнения
« Ответ #17 : Июль 26, 2013, 01:30:42 pm »
а что разве создатели котлина ставили своей целью генерить конечный js- код "высокой понимабильности"?

Не знаю, возможно что и нет. Но этому Мельникову это нужно -- его право, почему бы и нет...
  бог с ним.. а haxe он рассматривал?  :D

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #18 : Июль 26, 2013, 01:47:21 pm »
а haxe он рассматривал?  :D

Вроде да, в его списке он указан:

Цитировать
Ur, Fay, Roy, Elm, Haxe, Agda, Idris - [3, 4, 5]
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #19 : Июль 26, 2013, 03:26:12 pm »
var a = RTL$.makeArray(10, 0);вместо
var a = new Array(10);?

Один из возможных вариантов решения проблемы - двигать в сторону asmJS и делать вообще все через массивы (включая рекорды). Причем не через традиционный Array, а через массивы байтов. Тогда не нужна инициализация. Но читаемость сильно пострадает - "r.field := 123" будет транслироваться во что-то типа "r[8/*field*/] = 123".

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #20 : Июль 26, 2013, 03:34:25 pm »
var a = RTL$.makeArray(10, 0);вместо
var a = new Array(10);?

Один из возможных вариантов решения проблемы - двигать в сторону asmJS и делать вообще все через массивы (включая рекорды). Причем не через традиционный Array, а через массивы байтов. Тогда не нужна инициализация. Но читаемость сильно пострадает - "r.field := 123" будет транслироваться во что-то типа "r[8/*field*/] = 123".
Ненене! Не надо так рекорды делать!
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: [OberonJS] Мнения
« Ответ #21 : Июль 26, 2013, 03:51:55 pm »
var a = RTL$.makeArray(10, 0);вместо
var a = new Array(10);?

Один из возможных вариантов решения проблемы - двигать в сторону asmJS и делать вообще все через массивы (включая рекорды). Причем не через традиционный Array, а через массивы байтов. Тогда не нужна инициализация. Но читаемость сильно пострадает - "r.field := 123" будет транслироваться во что-то типа "r[8/*field*/] = 123".
а толку   :D Мельникову один хрен этим не угодишь.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #22 : Июль 26, 2013, 03:56:46 pm »
а толку   :D Мельникову один хрен этим не угодишь.

Вобщем да - получение оптимального кода на выходе далеко не основная цель проекта на данном этапе.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #23 : Июль 26, 2013, 05:05:06 pm »
Вобщем да - получение оптимального кода на выходе далеко не основная цель проекта на данном этапе.
Вообще-то было бы хорошо заставить кодогенератор выдавать код, пригодный для AsmJS, но, конечно, без извращений над записями...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #24 : Июль 26, 2013, 05:24:07 pm »
Вообще-то было бы хорошо заставить кодогенератор выдавать код, пригодный для AsmJS, но, конечно, без извращений над записями...

"Извращения над записями" как раз и дадут наибольший прирост в производительности :) Потому что уйдет динамика с точки зрения нижележащей машины. И объектов для GC тоже будет сильно меньше.

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #25 : Июль 27, 2013, 08:14:07 am »
Если подумать, как раз представление Обероновской записи в виде map-а "ключ"-"значение" (каковым является любой JS-объект) и является извращением :)

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #26 : Июль 27, 2013, 09:55:36 pm »
Представление у записи классическое. Это реализация у неё "ключ-значение". И такая реализация была выбрана исходя из критерия читабельности. Как сделать, если важнее производительность, Влад тоже показал, но читабельность для него важнее.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #27 : Июль 27, 2013, 10:18:14 pm »
Представление у записи классическое. Это реализация у неё "ключ-значение". И такая реализация была выбрана исходя из критерия читабельности. Как сделать, если важнее производительность, Влад тоже показал, но читабельность для него важнее.
Тут не только читабельность, но и интероперабельность с чистым js-кодом без маршалинга.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #28 : Июль 29, 2013, 01:29:31 pm »
http://nponeccop.livejournal.com/333439.html?thread=3092863#t3092863
"по итогам претензий"  можно оставить разбираться г-на  А. Мельникова самому  со своими "заскоками" не претендуя ни на его "честь или достоинство" уже после того, когда он начал говорить о качестве  создаваемого js - кода (после ваших , Алексей , разьяснений по поводу текущего статуса и направленности проекта)

Честно говоря, я так и не понял, что он имел в виду, говоря про "явный бред, порочащий мою честь и достоинство". Неужели только то, что я постарался в точности передать название его ЖЖ?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [OberonJS] Мнения
« Ответ #29 : Июль 29, 2013, 04:53:04 pm »
Если подумать, как раз представление Обероновской записи в виде map-а "ключ"-"значение" (каковым является любой JS-объект) и является извращением :)
Фигня. Ни в каком месте это не противоречит Oberon report'у. Запись это вообще всегда отображение (map как минимум времени компиляции) имени поля на её значение. Как именно это реализовано - дело десятое.

И вообще, быть может у тебя еще и локальные переменные должны лежать на стеке, представляющем собой непрерывную область памяти?! ;-)
Y = λf.(λx.f (x x)) (λx.f (x x))