Каковы возможности PascalABC.Net для реальных проектов?

Для языка D есть поддержка Vulkan - https://github.com/ColonelThirtyTwo/dvulkan - https://github.com/Rikarin/VulkanizeD На этом я заканчиваю. Все.

И это мудро. По поводу холивара: “Когда слоны дерутся, мухи должны сидеть на потолке”. А тут не только слоны - такие мастодонты высказываются…

Лазарус последнее время стал более-менее нормально работать.

1 лайк

Не совсем понял, что значит снят. После чехарды с несколькими сменами владельцев Delphi в составе RAD Studio поддерживается Embarcadero/IDERA и версии выходят достаточно регулярно, вот последняя Delphi 10.2 Tokyo как раз несколько дней назад появилась и даже по недавней традиции где-то месяц версия Starter раздаётся бесплатно (https://www.embarcadero.com/ru/products/delphi/starter/promotional-download).

Фраза “Снят с сопровождения” означает, что организация, проводящая сопровождение, закрыла работу с продуктом и любые вопросы по его установке, функционированию, лицензированию и т.д. не рассматриваются.

Речь шла о Borland Software Corporation, которой принадлежали права на продукт Borland Delphi. Ясно же написано вроде: “закрытый Борландом”.

Все эти продажи и перепродажи неплохо описаны на хабре, в материале, с финальной фразой которого я полностью согласен:

С другой стороны, среда Delphi по мере развития действительно становилась все более громоздкой и малопригодной для обучения программированию. Кроме того, отсутствует бесплатная версия Delphi даже для академического использования. Данные факторы привели к практически полному исчезновению Delphi из сферы образования.

Вы наверное сами можете припомнить случаи с другими продуктами, когда действительно их закрывали. Поэтому мне такая формулировка показалась странной - тут же другая ситуация, продукт переходил другим владельцам, сопровождение продолжается, даже Delphi 6 которая лазала на старый сайт Борланда для регистрации продолжала до последнего времени это успешно делать. Мне как пользователю формально это более важно.

Много болтовни, но по сути - PascalABC.Net прекрасно подходит для полноценных проектов, это я вам говорю основываясь на своей практике, но такой “вид” программирования очень сложный тем что в отличии от того же юнити тут надо всё долго изучать чтоб сделать какую то мелочь. Почему же находятся такие “извращенцы”? Да потому что так больше чувствуешь программу, если что то не так - сразу понятно что это у тебя руки корявые а не у того кто писал движок, точно знаешь что через пол часа дебага всё заработает.

1 лайк

Ответ “молодого и зеленого”, еще не тертого и не битого жизнью, как говорится. Без обид. Все мы когда-то были такими и чувствовали в себе гигантские возможности по сворачиванию гор при помощи детского совочка. А потом была реальная жизнь, коммерческие проекты, стандарты организации и спецификации заказчиков. И приходило понимание, что все это “я могу” - песочница в детском саду. Детский возраст тем хорош, что не надо думать, на какие средства жить. Есть скатерть-самобранка - еда сама появляется и никогда не заканчивается, только успевай отпихиваться от неё. Одежда тоже сама появляется. Мысли о том, где жить не возникает. Мама с папой, конечно же, вечны… Но а реальная жизнь - она коррективы вносит. И наши “я могу сам на низком уровне…” так и остаются мечтами. Как говорил М Жванецкий, “только дома, ночью и под одеялом…”…

Гхм, @RAlex говорит в своей “а я вот уже жизнью побитый и наученный, а вы все мелочь пузатая” манере, но, по сути, сказано верно. Видите ли, использование внешних движков позволяет увеличить уровень абстракции, причем, очень сильно. Как Вы думаете, что скрывается за операцией “развернуть сцену на 30 градусов”, или, к примеру, “установить камеру и вращать ее внутри сцены, да еще так, чтобы не было видно объектов за препятствиями”? Для того, чтобы написать самые простейшие моменты(а они действительно простейшие в констексте задачи написания годной графики), уже необходимо знать не только основы арифметики, но также послушать курс-другой линейной алгебры, компьютерной графики, анализа изображений и работы с трехмерными сценами, кинематики, механики, и физики(крайне важно!). Как выпускник прошлого года и программист, работающий в крупном предприятии в том числе и с обработкой изображений и трехмерных сцен (ну, много еще кроме, не связанного с графикой, на самом деле), могу сказать, что для того, чтобы очень отдаленно понимать, каким именно образом в сложных трехмерных движках (тут речь не о школьных поделках с летающим шариком, а о том, за что люди большие деньги получают) происходит обработка и вывод данных (а тут прорва как сугубо теоретических данных, читай, математики, так и чрезвычайно аппаратных - cache-coherence, etc), у меня ушло около шести лет. Седьмой пошел. Для того, чтобы приблизиться хотя бы к отдаленно, придется потратить еще столько же - если не больше. Да и не нужно оно - в работе хватает того уровня, который есть на текущий момент. Ну, пока, по крайней мере. Тут вот optical flow грядет…

Разработчики, которые занимаются созданием поделий вроде Unreal Engine, CryEngine, даже Unity - люди, которые в этом деле за всю свою жизнь на этом даже не десять собак съели, и переписывать что-то оттуда самому - занятие крайне неблагодарное, не говоря уже о том, что они разработаны корпорациями, а в них принят особый уровень безопасности, требования по производительности, техники оценивания удобства API, и т.д. С таким одиночный разработчик даже сотни пядей во лбу спорить не сможет. И не нужно - нужно пользоваться тем, что они написали, и сразу получать бонусы огромной производительности, автоматической поддержки новых видеокарт(а таки да, игры приходится про разные устройства оптимизировать), огромной функциональности. Привязаться к событию “тут нажали мышку и потянули вправо”, и сказать движку “повернись на N градусов”, вместо того, чтобы изучать, что же такое кватернионы.

Предвкушая стандартный аргумент вроде “а как же знание теории/хочу написать все сам/не доверяю другим разработчикам/вставить нужное”… Вы знаете, как включается Ваш компьютер? Начиная от движения электронов в проводах, и заканчивая сообщением “Включите брандмауэр Windows”. Если нет, то пользоваться им нельзя, надо свой сочинить. Такая логика?

ну да графику с 0 делать я вообще пытался, у меня получилось полноценно отображать кубик и крутить его мышкой перед камерой, но в любом случае > 20 фпс с Graphics не будет поэтому я стал изучать OpenGL, но вот совпадение, если я делаю с OpenGL то он за меня всё графику обрабатывает. OpenGL это модуль и оч низкоуровневый, с тем каким макаром его использовать - можно много чего придумать так что программу не перестаёшь чувствовать. кстати я по этому поводу обсуждение создал, чо знаете - расскажите Работа с OpenGL

P.S. да и решать сложные мат. задачи уже давно стало моей привычкой как программирование, без этого я подыхаю :slight_smile:

Тут есть забавная тенденция - разработчики практически перестали писать игры под Linux. Почему? Ответ прост. OpenGL не дает возможности просто писать программу, он заставляет бороться с кодом. Разработка на DirectX обходится в разы дешевле в переводе на человеко-часы, т.к. он значительно более высокоуровневый, позволяет одной строкой написать то, что команда программистов будет реализовывать пару недель. Для того, чтобы “чувствовать” программу(брр, какая формулировка), нужно только знать 1) что нужно на входе для используемого функционала, 2) что у него на выходе, и 3) какие побочные эффекты, влияющие на пользователя, происходят в момент вызова. Практически все доступные библиотеки(не только графические) документируют все три пункта.

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

Проблема с Unity3D и ему подобных в том, что изучать их непросто. Я в своё время с Unity3D попытался работать, но понял что для моих 3D задач это уже перебор и стал делать на GLScene. Только вот какой аналог у неё есть для PascalABC.NET? Кстати, стал смотреть, с Unity3D тоже вроде не всё гладко, не уверен что можно к ней PascalABC пристроить.

с 3D графикой не будет гладко и если хочешь чтоб было просто используй именно юнити или ему подобные, а на паскале в модуле OpenLG для 3D заложено всё что надо(+ фиговое 2D) но только разобраться в нём будет сложнее

Исходя из собственного опыта, когда пишешь такую программу, не очень удобно, если разборка 3D графики отнимает много времени от основной задачи. Тут OpenGL не особо удобен, так как достаточно низкоуровневое, а у Unity и ему подобных проблема противоположная, но результат тот же - время от основной задачи опять уходит на всякие посторонние проблемы.

у каждого своя золотая середина и так уж совпало у тебя что она ровно посередине между OpenGL и юнити, сочувствую :slight_smile:

Не думаю, что только для меня. Слишком уж большой “зазор”. Поэтому и появляются средства типа GLScene. Но правда я прямо сейчас не для игр 3D разрабатываю, хотя и там это можно применять - мою 2D разработку в этой области (клеточные автоматы) даже попытались применить для игры, но она не особо пошла.