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

Твердыня модульных языков
Текущее время: 20 апр 2024, 18:22

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




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: На Java для ZX (Java для Z80)
СообщениеДобавлено: 17 мар 2013, 15:00 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Хотелось бы прокомментировать http://ru-java.livejournal.com/1074171.html. Raydac проделал интересную и сложную работу, респект.

raydac писал(а):
достаточно велико комьюнити (особенно западное) которое посвящено ZX-Spectrum и даже досих пор идут разработки софта, иностранцы уже заинтересовались как применить в игроделании для данной платформы ))
Чем городить игру для Спектрума на Java — гораздо привлекательнее иметь исходник игры с самого начала в такой форме, что развернётся и под Java-машину, и под Спек (если понадобится). В общих чертах уже ведь есть высокоуровневая среда разработки на Си/Обероне — это XDev, и можно транслировать и в байт-код Java, и под Z80, не прибегая дополнительно к такой сомнительной выгоде как промежуточная прослойка в виде JVM.

Практический пример вот: http://zx.oberon.org/forum/viewtopic.php?f=27&t=38

Чтобы проделать работу Raydac'а — надо быть большим фанатом технологии Java. Но хотелось бы увидеть адекватный список преимуществ Java над Си именно для разработки под Z80. А то предвижу наоборот — недостатки: нет препроцессора, где беззнаковые типы, где наши любимые фичи залезть-в-любую-область-памяти AKA прострелить-себе-ногу и т.п. И здесь не поспоришь. К тому же Raydac'у пришлось пойти на компромисс и изменить стандарту Java, приняв int 16-битным и т.д. А он в стандарте зафиксирован в 32 бита.

Да, знаковая арифметика на спеке неэффективна, как и все переменные 32 бит. Тогда в чём же практическая ценность Java, как не в готовом массиве исходников, которые всё равно придётся выбросить на свалку и всё переписать заново, но тогда почему на Java? Ведь Java и Z80 стыкуются отвратительно, это мертворождённая идея фикс, возникшая из того грустного массово пиара, что Java — это кроссплатформенная технология. На самом деле — нет. Java — это ещё одна коммерческая платформа, которая идёт своим курсом, выворачивая наизнанку мозги программистов в попытках выразить на строго обязательном прокрустовом ложе ООП простейшие вещи. Попытка обойтись без модульности — попытка живого ужа на сковородке.

raydac писал(а):
наверное это первая разработка позволяющая делать софт для спектрума с применением ООП :)
Вызывает сомнение культ с бубном явовцев вокруг ООП. Вирт давно очистил эту концептуально перегруженную доктрину от шелухи. ООП в своей массе это вот:
Код: "OBERON"
  1. (* Oberon-2 *)
  2.  
  3. TYPE Class = RECORD field1: INTEGER; field2: CHAR; (*...*) END;
  4.  
  5. PROCEDURE (VAR this: Class) Method (arg1, arg2: INTEGER (*; ... *) );
  6.  
  7. VAR Object: Class;
  8.  
  9. BEGIN Object.Method(arg1, arg2 (*, ... *) );
  10.  
  11. (* Oberon-1 *)
  12.  
  13. PROCEDURE Method (VAR this: Class; arg1, arg2: INTEGER (*; ... *) );
  14.  
  15. BEGIN Method(Object, arg1, arg2 (*, ... *) );
Это предельно высветляет концепцию прицепить данные к коду. ВСЁ. Думаю, ясно, как из всего этого получается инкапсуляция, наследование и полиморфизм. То же на простом Си без плюсов:
Код: "EMPTY"
typedef
struct Class {
int field1;
char field2;
} Class;
 
Class Object;
 
void Method (Class *this, int arg1, int arg2)
{
}
 
// Вызов метода:
Method(&Object, arg1, arg2);
Это же легко выражается даже на языке программируемого калькулятора Электроника МК-61, не говоря уже о любом ассемблере. Но что поделать, делаем скидку на любовь “крутых” программистов к сложным концепциям и малопонятным для непосвящённых словесам. Половина удовольствия от программирования теряется от потери этих ключей к самоутверждению. :)

ООП-классы в стиле Java не несут никакого положительного отличия и в качестве API. Ничего нового и качественно отличающегося от DLL/.SO винды и линукса. В явовских .class'ах стало побольше мета-информации, поэтому их легко декомпилировать, но зато трудно защитить, что породило целую волну обфускаторов. Классы, в отличие от DLL, могут описывать переменные, ах, простите, поля объектов, но по-прежнему не имеют описаний типов и констант. А ведь уже больше 25 лет существует стройная и модульная парадигма, более совершенная в плане построения интерфейсов, чем Java. Так что замолвлю словечко опять за Обероны.

Ну и парочка интересных ссылок:

Z80 Java Emulator fully extensible
Эмулятор Спека и игры прямо в браузере на сайте MoonCats.ru
Культ ООП как таковой и Java, в частности


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

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


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

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


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

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