Delphi и прочие тулзы быстрого связывания GUI с событиями и логикой поощряют смешение GUI с моделью и проводят к антипаттерну «GUI Trap». Поэтому отделение GUI от модели это хорошо и правильно. А delphi-йский подход «всё в кучу» ужасен. Чтобы нормально отделить GUI от модели в delphi надо затратить не меньше, а то и больше усилий чем в средах где это изначально отдельные вещи.
Ещё была Watcom Optima. Кто не помнит, Watcom — это фирма которая делала оптимизирующий компилятор Watcom C а затем и C++. Многие игры, работавшие под DOS4GW компилировались Watcom-ом. В Википедии об этом продукте только одна строчка:
Watcom was acquired by Powersoft in 1994, and Powersoft merged with Sybase in 1995.[2] In May 2000, Sybase spun off their mobile and embedded computing division into its own company, Sybase iAnywhere (formerly iAnywhere Solutions Inc.). Sybase tried to re-target the Watcom compiler into a visual RAD tool, Optima++, but in 2003, because the product competed directly with the Sybase offering PowerBuilder, the product was discontinued.
Так вот, Optima++ выглядела примерно как первый 32-битный C++Builder, с различными удобными фичами. Причём поскольку она не несла груз совместимости с Win16 в неё не было VCL-подобного монстра, всё было проще, компактней и поддерживались все Win32-контролы и все их свойства. В общем, «Жаль что она умерла».
В C++ таких проблем нет — там есть size_t.
ps. Вообще с delphi уже давно всё грустно и там остаётся в основном мохнатый софт. Поэтому я год-три назад занимался миграциями с windows на linux, с x86 на ARM и с delphi на java/C++ с промежуточной остановкой на кроссплатформенном fpc/lazarus. Миграция по частям с использованием fpc позволяла не тратить время на переписывание всего и сразу.
Cardinal был ещё с 16-битной Delphi 1. И был 16-битным беззнаковым integer. Исторически планировалось использование Cardinal как платформозависимого представления беззнакового числа. Однако сейчас скомпилировать под 16-битную платформу можно только в FPC, в котором Cardinal жёстко гвоздями прибит к 32-битному беззнаковому integer. Да и при компиляции под 64 бит в любых компиляторах Cardinal также останется без изменений — 32 битным.
Я говорю о том что параллельная иерархия возникает часто. Параллельная иерархия может возникать при разделении GodObject. Так что обычно параллельная иерархия не является антипаттерном, подлежащим ликвидации. Также я упомянул, что параллельная иерархия может возникать (хотя мы обычно стремимся избегать этого) при mutable/immutable вариациях объектов, и это как раз относится к обсуждаемой ситуации, так как builder обычно mutable, а объект — нет.
Параллельная иерархия возникает всегда когда у вас появляются новые представления объекта. И это гораздо лучше чем GodObject, вмещающий в себя все представления, в результате чего при подключении, например, одного DTO появляется зависимость от кучи прикладных библиотек. Конечно, иногда удаются объединения, например, в вариациях mutable/immutable, но и тут не всё может быть гладко. Так что не бойтесь параллельных иерархий — лучше бойтесь GodObject :)
Не «благодаря планетарному механизму» (там нет никакой планетарной передачи) а благодаря переключению передач.
Планетарная передача это вот что: https://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D0%BD%D0%B5%D1%82%D0%B0%D1%80%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B0
Бывают планетарные вариаторы (бесступенчатые передачи) для велосипедов. Но это примерно такие вот штуки: http://velofun.ru/hub/planetarnyy-variator-dlya-velosipeda-nuvinci-n360-i-n171-cvt.html
А как же серия TrackMania? https://ru.wikipedia.org/wiki/TrackMania_(%D1%81%D0%B5%D1%80%D0%B8%D1%8F_%D0%B8%D0%B3%D1%80)
Часть TrackMania Nations — бесплатна. И есть куча бесплатных серверов на которых можно играть.
Также как и в древнем Stunts есть встроенный редактор.
Сообщество генерирует огромное количество треков. Возможно использование скриптов и добавление специальных функций.
На самом деле рассказывать про TrackMania можно долго — и это может потянуть не на одну статью.
Вы пишите программу для квантового компьютера.
Вы запутываете замок, принцессу, коня и себя.
Никто не понимает что происходит, но на случай проверок у вас есть 100-страничное доказательство правильности того что вы сделали.
Изначально в 50-60-х годах подобные шрифты делались для автоматического распознавания текста.
https://en.wikipedia.org/wiki/Westminster_(typeface)
https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition
Более поздние шрифты 80-х годов не несут такой функциональной нагрузки и являются просто мимикрией под эти.
Насчёт loss/lossless:
Давно как-то спорил, что сгенерирую сигнал в котором все услышат отличие между исходным wav и сжатым с максимальным качеством mp3.
Сгенерировал сигнал из двух прямоугольных (или пилообразных — не помню уже) сигналов, плавно меняющих частоты.
Думал — все сразу услышат — оказалось, не совсем так.
Большинство, действительно, почувствовало разницу, но всё равно оставалась часть людей, её не слышащих.
Но! Выяснилось, что можно тем людям, которые разницы не слышат, рассказать, на что именно обратить внимание при сравнении этих записей. И тогда начинали слышать и они.
Так вот, Optima++ выглядела примерно как первый 32-битный C++Builder, с различными удобными фичами. Причём поскольку она не несла груз совместимости с Win16 в неё не было VCL-подобного монстра, всё было проще, компактней и поддерживались все Win32-контролы и все их свойства. В общем, «Жаль что она умерла».
Только без системы поддержания низкого давления. Тоннели по прежнему нужны.
ps. Вообще с delphi уже давно всё грустно и там остаётся в основном мохнатый софт. Поэтому я год-три назад занимался миграциями с windows на linux, с x86 на ARM и с delphi на java/C++ с промежуточной остановкой на кроссплатформенном fpc/lazarus. Миграция по частям с использованием fpc позволяла не тратить время на переписывание всего и сразу.
Turbo Vision 1.0 появился в Turbo Pascal 6.0
В Borland Pascal 7.0 Turbo Vision обновился до заключительной версии 2.0
Планетарная передача это вот что: https://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D0%BD%D0%B5%D1%82%D0%B0%D1%80%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B0
Бывают планетарные вариаторы (бесступенчатые передачи) для велосипедов. Но это примерно такие вот штуки: http://velofun.ru/hub/planetarnyy-variator-dlya-velosipeda-nuvinci-n360-i-n171-cvt.html
Часть TrackMania Nations — бесплатна. И есть куча бесплатных серверов на которых можно играть.
Также как и в древнем Stunts есть встроенный редактор.
Сообщество генерирует огромное количество треков. Возможно использование скриптов и добавление специальных функций.
На самом деле рассказывать про TrackMania можно долго — и это может потянуть не на одну статью.
https://www.youtube.com/watch?v=9jCwSEG_zgU
https://www.youtube.com/watch?v=M9Bp3N9TdLc
Вы запутываете замок, принцессу, коня и себя.
Никто не понимает что происходит, но на случай проверок у вас есть 100-страничное доказательство правильности того что вы сделали.
https://en.wikipedia.org/wiki/Westminster_(typeface)
https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition
Более поздние шрифты 80-х годов не несут такой функциональной нагрузки и являются просто мимикрией под эти.
Давно как-то спорил, что сгенерирую сигнал в котором все услышат отличие между исходным wav и сжатым с максимальным качеством mp3.
Сгенерировал сигнал из двух прямоугольных (или пилообразных — не помню уже) сигналов, плавно меняющих частоты.
Думал — все сразу услышат — оказалось, не совсем так.
Большинство, действительно, почувствовало разницу, но всё равно оставалась часть людей, её не слышащих.
Но! Выяснилось, что можно тем людям, которые разницы не слышат, рассказать, на что именно обратить внимание при сравнении этих записей. И тогда начинали слышать и они.