> Например прямая конверсия - и близко невозможна несмотря на схожесть поверхностно.Что такое прямая конверсия? Приведение типов? В смысле enum к int? Да, это в паскале раздражало, всегда описывать эти преобразования, и макроязыка нет, чтобы задавать их автоматически. Но это на самом деле нюансы, к ним приспосабливаешься, и пишешь ровно одно и то же, вне зависимости от языка.
Вот когда ты начинаешь вместо void* использовать подстановку типов или наследование, или там чайнить методы вместо того чтобы писать f(g(h(...))), или жонглировать замыканиями, вместо того чтобы на каждый чих плодить классы и их инстансы, или запиливать макросы, создавая язык заточенный на задачу, вместо того, чтобы создавать выверенную иерархию классов -- вот это уже указывает на заметную разницу между языками.
> И writeln - наверное самый паршивый тут пример, если не сказать
> вообще высосанный из пальца.
Не. Мне как-то захотелось в паскале райтэлэны заменить на что-то типа, но для дебага и вывод я хотел отправлять куда-то в очень интересное место, не помню куда. И я испытал кучу баттхёрта, потому что нельзя так сделать.
> Лично мне самая критичная разность тяжело портабельная - вызов конструкторов предков в
> конструкторе т.к.в Pascal они более универсально вызываются - в любом месте
> конструктора, ну и ещё встроенные асемблеры, не говорю уже про inline
> у TP.
Хз, я на ООП в стиле 90-х забил в самом начале нулевых, решив даунгрейдится до C. Даже забавно слышать о таких проблемах сегодня. Я успел забыть о том, что они существуют. Но может быть это одно из концептуальных различий "C с классами" и Pascal. Сложно сказать.