Я не спец, но попробую ответить на основе своего текущего понимания исходников. У FB есть некоторые подсистемы, построенные по принципу иерархии классов. Один пример - dsql, внутреннее представление исполняемого запроса, выглядит как класс StmtNode с абстрактными методами типа execute(), которые уже реализуются в большом количестве классов-потомков. Второй пример - RecordSource, абстрактная ленивая последовательность строк, у которой есть очень много реализаций: фильтрованная последовательность, агрегирующая последовательность, ... . Я даже не представляю, как это выглядело без классов и наследования. Но в FB ещё есть подсистемы, которые и сейчас выглядят как код на C, например самая фундаментальная VIO.
А по делу: я глянул по диагонали код, я же правильно понимаю, что команды JMP не поддерживаются никакие, ни условные, ни безусловные, что делает эту штуку пока бесполезной для программирования?
Спасибо. Про то, что форматы меняются при изменении структуры таблицы я уже позже догадался: добрался до одной интенсивно использующейся базы и посмотрел, сколько у самой большой таблицы форматов, оказалось только 6. Вообще в тексте много предположений, которые при проверках не подтвердятся, я не авторитет и к моим выкладкам нужно относиться скептически. Спасибо, что указываете на ошибки. Текст изложен в форме, которая показывает процесс исследования кода, и неподтвердившиеся гипотезы - тоже часть такого процесса, они оставлены намеренно.
куда вы пойдете, когда у вас начнутся проблемы? Понятно, что если у вас сервис на 10 посетителей в день, можно и на OpenJDK работать. Но что, если у вас бизнес такой, что простой будет стоить миллионы рублей в день или даже час? А мы такие ситуации регулярно успешно разрешаем.
Было бы интересно почитать про решение технической ситуации, в которой проблема была в JDK. Очень давно работаю с Java, ни разу не сталкивался с такими.
Эта серия статей написана не с благородной целью помочь тем, кто переходит с Firebird на Postgres, а с целью придержать тех, кто сейчас на Firebird, но подумывает о переходе на Posgres. Поэтому текст не нужно рассматривать как объективное сравнение.
Если технические достоинства Axiom JDK будут достаточно привлекательны, то за него захотят заплатить. Платили же за JRocket, когда у Sun был бесплатный JDK. Статья - тухлое нытьё.
Вы всё правильно написали, схема хранения данных в Firebird осталась как в Interbase, это тоже copy-on-write, как Postgres. Но Firebird делает больше проверок и чаще избегает создания копий, как в указанном примере.
Это очень продвинутые техники, а Fred вышел в 1983 году. Разрывать главный графический цикл, как мне кажется, плохая идея, я не так много игр пореверсил, и нигде не видел такого подхода. Позже научились делать игры так, что обновление экрана происходит 25 кадров в секунду, опрос клавиатуры и обновление игровых событий тоже успевают обсчитаться, и геймплей получается плавным.
Я не очень правильно выразился. Я примерно представляю, как работает beeper, он управляется одним из битов великого и могучего порта ввода-вывода $FE. Но я очень плохо представляю техники, при помощи которых звук выводится, не прерывая процесса игры. Я догадываюсь, что хорошей школой было бы попробовать пореверсить Manic Miner, но всё равно слабо верится, что я разберусь.
Sir Fred - это следующая игра про того же персонажа и от тех же разработчиков. Да, она очень специфическая, там головоломки построены на том, что нужно очень хитро управлять персонажем, чтобы он делал разные физические действия: раскачивался на лианах, плавал, сражался. Я не осилил эту игру, хотя пытался. Технически она сделана совсем по-другому, нет скроллинга, только фиксированные экраны и спрайты. Поэтому тормознутость игрового процесса - это by design, оригинальное геймплейное решение. Зато графика очень цветная и стильная.
Нехорошее предчувствие об LLM-происхождении этой статьи возникло у меня почти сразу и постепенно нарастало по мере чтения, но я ещё смутно надеялся на чудо. Когда же я добрался до момента, где начали учить, как писать промпт для ИИ, чтобы он типа мысли анализировал, я прервал чтение.
Я не спец, но попробую ответить на основе своего текущего понимания исходников. У FB есть некоторые подсистемы, построенные по принципу иерархии классов. Один пример - dsql, внутреннее представление исполняемого запроса, выглядит как класс StmtNode с абстрактными методами типа execute(), которые уже реализуются в большом количестве классов-потомков. Второй пример - RecordSource, абстрактная ленивая последовательность строк, у которой есть очень много реализаций: фильтрованная последовательность, агрегирующая последовательность, ... . Я даже не представляю, как это выглядело без классов и наследования. Но в FB ещё есть подсистемы, которые и сейчас выглядят как код на C, например самая фундаментальная VIO.
Дружище, иди в продажники, ты же талант!
А по делу: я глянул по диагонали код, я же правильно понимаю, что команды JMP не поддерживаются никакие, ни условные, ни безусловные, что делает эту штуку пока бесполезной для программирования?
пропел
С какого перепугу длина строки "Hello World\n" равна 21 ?
Microsoft macro assembler из восьмидесятых умел PROC (то, что тут названо fn) , INCLUDE и SEGMENT , 40 лет прошло.
Визионер-страдалец, ты бы хоть код в репозиторий выложил. А то со страницы документации ссылки на репозиторий ведут на 404.
Хороший текст. Помимо того, что я согласен с содержанием, мне ещё очень понравился язык. От него веет конкретностью.
Мне кажется, что в первом куске Kotlin-кода комментарий "Агрегат отчёта" должен стоять над data class Report , а не над ReportingPeriod/
Спасибо. Про то, что форматы меняются при изменении структуры таблицы я уже позже догадался: добрался до одной интенсивно использующейся базы и посмотрел, сколько у самой большой таблицы форматов, оказалось только 6. Вообще в тексте много предположений, которые при проверках не подтвердятся, я не авторитет и к моим выкладкам нужно относиться скептически. Спасибо, что указываете на ошибки. Текст изложен в форме, которая показывает процесс исследования кода, и неподтвердившиеся гипотезы - тоже часть такого процесса, они оставлены намеренно.
Было бы интересно почитать про решение технической ситуации, в которой проблема была в JDK. Очень давно работаю с Java, ни разу не сталкивался с такими.
Эта серия статей написана не с благородной целью помочь тем, кто переходит с Firebird на Postgres, а с целью придержать тех, кто сейчас на Firebird, но подумывает о переходе на Posgres. Поэтому текст не нужно рассматривать как объективное сравнение.
Если технические достоинства Axiom JDK будут достаточно привлекательны, то за него захотят заплатить. Платили же за JRocket, когда у Sun был бесплатный JDK. Статья - тухлое нытьё.
UI выглядит навороченно, мой намётанный глаз узнал FlatLaF. Вашу Dimension DB вечером гляну. А зачем Berkley DB java edition?
"деревотив" - это прекрасно! От слова "дерево", то есть "ответвление".
Вы всё правильно написали, схема хранения данных в Firebird осталась как в Interbase, это тоже copy-on-write, как Postgres. Но Firebird делает больше проверок и чаще избегает создания копий, как в указанном примере.
Статья вроде техническая, но по языку видно, что у автора бомбит. Статью плюсанул.
Это очень продвинутые техники, а Fred вышел в 1983 году. Разрывать главный графический цикл, как мне кажется, плохая идея, я не так много игр пореверсил, и нигде не видел такого подхода. Позже научились делать игры так, что обновление экрана происходит 25 кадров в секунду, опрос клавиатуры и обновление игровых событий тоже успевают обсчитаться, и геймплей получается плавным.
Я не очень правильно выразился. Я примерно представляю, как работает beeper, он управляется одним из битов великого и могучего порта ввода-вывода $FE. Но я очень плохо представляю техники, при помощи которых звук выводится, не прерывая процесса игры. Я догадываюсь, что хорошей школой было бы попробовать пореверсить Manic Miner, но всё равно слабо верится, что я разберусь.
Sir Fred - это следующая игра про того же персонажа и от тех же разработчиков. Да, она очень специфическая, там головоломки построены на том, что нужно очень хитро управлять персонажем, чтобы он делал разные физические действия: раскачивался на лианах, плавал, сражался. Я не осилил эту игру, хотя пытался. Технически она сделана совсем по-другому, нет скроллинга, только фиксированные экраны и спрайты. Поэтому тормознутость игрового процесса - это by design, оригинальное геймплейное решение. Зато графика очень цветная и стильная.
Нехорошее предчувствие об LLM-происхождении этой статьи возникло у меня почти сразу и постепенно нарастало по мере чтения, но я ещё смутно надеялся на чудо. Когда же я добрался до момента, где начали учить, как писать промпт для ИИ, чтобы он типа мысли анализировал, я прервал чтение.
Где гарантии, Билли? Нам нужны гарантии! (Чёрный Пёс)