Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 17 июн 2025, 00:01

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: реформа
СообщениеДобавлено: 29 янв 2018, 19:28 
Не в сети

Сообщения: 108
budden писал(а):
Цитата:
А там и не реализован Оберон-2, только 7 и Eberon
. Понял, спасибо. В контексте объёма расширений, добавленных Eberon-ом, самым трудоёмким будет избавиться от них в коде самого компилятора, на этом фоне отличия 7 от 2 не кажутся (пока) большими.


Я их не для того туда добавлял, чтобы избавляться :) Компилятор изначально был написан на JS, потом частично переписан на O7, потом Eberon позволил избавиться еще от какого-то количества JS-кода и сделать O7 код более читабельным. Я очень сомневаюсь, что тебе удастся выразить используемые Eberon-расширения на O7 (или даже O2) более читабельно, разве что ты сделаешь собственные расширения.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: реформа
СообщениеДобавлено: 29 янв 2018, 20:31 
Не в сети

Сообщения: 350
Да и я тоже писал раньше, не зная, что есть другие платформы - и вроде было нормально. Но сейчас-то уже известно, что всё разное - зачем грабли-то закладывать? Если Оберон хочет быть только ассемблером - это одно. Если он хочет быть языком высокого уровня, то это уже другое. Вроде тут нет препроцессора и нельзя написать #define INTEGER int64, но это скорее вопрос "а почему тут нет препроцессора". В целом же нет никакого видимого смысла нарочно создавать неопределённость, когда понятно, что в будущем с ней будут проблемы и при этом ничего не стоит эту неопределённость не создавать.

Ну и если мы следуем духу минимализма, то Оберон должен быть похож на штангенциркуль или на ручную швейную машинку. Вещи простые, но качество должно быть без всяких компромиссов. Решение с INTEGER-ом не удовлетворяет этому критерию.

Насчёт eberon - во-первых, название исключает возможность того, что я буду пользоваться им напрямую :)

Во-вторых, это не очень дружественно по отношению к последователям - пихать столько расширений в реализацию компилятора. Понятно, что с ними писать удобнее, но вэ том случае получается, что я, если делаю форк, то должен их тащить за собой - а их вес, наверное, не такой уж маленький. Я очень вас понимаю, и сам в случае CL я делал именно так: раз сообществу не нужны расширения, то плевать мне на такой сообщество - я промодифицировал ряд библиотек и поддерживал свои расширения, которые резко увеличивали удобство. Затем я форкнул сам 500000 строчный SBCL и тут стало ясно, что мои ресурсы исчерпаны. О содеянном не жалею.

Но! Тот, кто идёт за вами, должен полностью разделять вашу точку зрения. Поскольку это уже не "высокоуровневый ассмеблер", а более-менее полноценный ЯП - он теряет такое преимущество, как минимализм. При этом ваша точка зрения на ООП далеко не единственная в наше время (см. Rust и Golang) и я её не разделяю. Также мне точно не понравилась невозможность указания типа в in-place variable-s - на мой взгляд, это должно быть опцией.

Если бы вы написали транслятор с вашего ebereon-а на какой-то (уж не знаю какой из зверинца) "наиболее стандартный" Оберон или если бы оставили всё на JS - я бы это поприветствовал весьма и весьма. Есть ещё одна вещь - через время вам покажется, что ваш Eberon не вполне совершенен и что-то из него, допустим, надо выкинуть и заменить на другое. И тут вы окажетесь в ловушке, поскольку ваш язык написан на себе же самом.

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


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: реформа
СообщениеДобавлено: 29 янв 2018, 22:08 
Не в сети

Сообщения: 108
budden писал(а):
Да и я тоже писал раньше, не зная, что есть другие платформы - и вроде было нормально. Но сейчас-то уже известно, что всё разное - зачем грабли-то закладывать?


Если знаешь про другие платформы, то можно и не закладывать грабли, а сразу писать переносимо. В том же С++ есть стандартные средства для того, чтобы удостоверится в том, что тип имеет ожидаемую разрядность в тех местах, где это важно. Я уже не говорю про то, что вся арифметика легко покрывается тестами.

budden писал(а):
Если Оберон хочет быть только ассемблером - это одно. Если он хочет быть языком высокого уровня, то это уже другое. Вроде тут нет препроцессора и нельзя написать #define INTEGER int64, но это скорее вопрос "а почему тут нет препроцессора".


Препроцессор - это лишь одно из средств "переключения" по платформе, причем не самое удачное и оно откровенно злоупотребляется в массе сишного кода. Применительно к оберону достаточно иметь что-то типа "TYPE MyInt32 = INTEGER;" (в O7 Вирт выпилил такую возможность) + средства для импорта нужного модуля на нужной платформе (язык для этого трогать не надо).

budden писал(а):
В целом же нет никакого видимого смысла нарочно создавать неопределённость, когда понятно, что в будущем с ней будут проблемы и при этом ничего не стоит эту неопределённость не создавать.


Смысл в "неопределенности" вполне конкретный - эффективность на любой железке без переусложнения компилятора и рантайма.

budden писал(а):
Насчёт eberon - во-первых, название исключает возможность того, что я буду пользоваться им напрямую :)


Да вы, батенька, этот... как его... ксенофоб! Вот.

budden писал(а):
Во-вторых, это не очень дружественно по отношению к последователям - пихать столько расширений в реализацию компилятора.


Погоди, будет еще больше, как только я с музой разберусь :) У меня еще масса идей для расширений.

budden писал(а):
Понятно, что с ними писать удобнее, но вэ том случае получается, что я, если делаю форк, то должен их тащить за собой - а их вес, наверное, не такой уж маленький.


Вес можно оценить по коммитам "до" и "после". Если хочется.

budden писал(а):
Я очень вас понимаю, и сам в случае CL я делал именно так: раз сообществу не нужны расширения, то плевать мне на такой сообщество - я промодифицировал ряд библиотек и поддерживал свои расширения, которые резко увеличивали удобство. Затем я форкнул сам 500000 строчный SBCL и тут стало ясно, что мои ресурсы исчерпаны. О содеянном не жалею.


Сообщество оберона и CL несравнимы. Так что не то что мне было наплевать, я просто убежден, что ни одному оберонщику от моих расширений ни тепло ни холодно, при том, что они еще и отклчаются одним движением. Название несколько провокационное, да, но каждый его понимает в меру своей испорченности. Попробуй произнести несколько раз - и оно уже вполне нормально звучит. А в присутствии программистов женского пола можно вообще говорить "ибирон".

budden писал(а):
При этом ваша точка зрения на ООП далеко не единственная в наше время (см. Rust и Golang) и я её не разделяю.


Я виртуальные методы реализовал в максимально простом и проверенном другими языкам виде. Там нет ничего нового и я не пртендую на какой-то прорыв, просто в О7 их вообще нет, а без них туго.

budden писал(а):
Также мне точно не понравилась невозможность указания типа в in-place variable-s - на мой взгляд, это должно быть опцией.


Да, это может быть опцией. На данной итерации я пытался покрыть массовый сценарий, когда видеть тип временной переменной не очень важно.

budden писал(а):
Если бы вы написали транслятор с вашего ebereon-а на какой-то (уж не знаю какой из зверинца) "наиболее стандартный" Оберон или если бы оставили всё на JS - я бы это поприветствовал весьма и весьма. Есть ещё одна вещь - через время вам покажется, что ваш Eberon не вполне совершенен и что-то из него, допустим, надо выкинуть и заменить на другое. И тут вы окажетесь в ловушке, поскольку ваш язык написан на себе же самом.


Это не проблема. Я уже переписывал компилятор с JS на oberon.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: реформа
СообщениеДобавлено: 29 янв 2018, 23:50 
Не в сети

Сообщения: 350
Но тут пришла злая Лискова и сказала, что виртуальные методы - это плохо и нужно оставить только интерфейсы и их реализацию. Некоторые даже поверили.
Цитата:
достаточно иметь что-то типа "TYPE MyInt3...

Мало иметь, нужно ещё пользоваться. А так - да. Просто обычно платформа всё равно одними typedef-ами не обходится - в заголовочниках Линукса макрос на макросе, хотя, казалось бы, typedef-ы в Си присутствуют. Впрочем, я мало с этим имел дела.

Цитата:
как только я с музой разберусь 

Звучит довольно неоднозначно :lol:

Цитата:
вес

оценил. После лиспа всё же очень и очень приятно это всё. Правда, программировать будет наверное настолько же неприятнее, насколько Оберон меньше.

В общем, вашу бы энергию - да в мирных целях... Ладно, пойду дальше материть html, css и js.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: реформа
СообщениеДобавлено: 30 янв 2018, 21:56 
Не в сети

Сообщения: 350
Vlad, а сколько времени вы потратили на этот проект? Меня ужаснуло, что вроде проект небольшой на вид, а два года ушло. Насколько интенсивен был ваш труд над ним?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: реформа
СообщениеДобавлено: 30 янв 2018, 22:04 
Не в сети

Сообщения: 108
budden писал(а):
Vlad, а сколько времени вы потратили на этот проект? Меня ужаснуло, что вроде проект небольшой на вид, а два года ушло. Насколько интенсивен был ваш труд над ним?


Длинными зимними вечерами, когда муза приходила. В человекочасах затруднюсь оценить. Но темп был крайне размеренный.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: реформа
СообщениеДобавлено: 30 янв 2018, 23:39 
Не в сети

Сообщения: 350
Ааа, тогда менее страшно. Мне кажется, что человек в теме должен перепахивать Оберон в одном направлении где-то месяц, значит в реальности - месяца за 4 интенсивного труда.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: реформа
СообщениеДобавлено: 02 фев 2018, 20:53 
Не в сети

Сообщения: 28
budden писал(а):
2. Точная сборка мусора. Я остаюсь при своём мнении: консервативная сборка мусора - нанадёжный механизм. Точная сборка может привести к сокращению диапазона INTEGER на 1-2 бита, поскольку понадобится отличить указатель от числа.

Сейчас, если понадобится функция на си, eё можно просто вызвать. Если делать точный сборщик, да ещё копирующий, придется городить громозкие механизмы.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: реформа
СообщениеДобавлено: 02 фев 2018, 21:10 
Не в сети

Сообщения: 350
Не обязательно копирующий. Но да, формат представления чисел изменится. Хотя, наверное, можно и без этого обойтись.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 2 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club