Геннадий Малинин @HemulGM
Программист Delphi
Информация
- В рейтинге
- 455-й
- Откуда
- Екатеринбург, Свердловская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Software Developer, Fullstack Developer
Senior
От 180 000 ₽
Delphi
SQL
Database
Git
REST
C#
Python
OOP
MySQL
PHP
Как бы то ни было странно, да. Линукс у них считает корпоративным сегментом, по этому только редакции Enterprise и выше
Можно. Корректно работает на многих дистрибутивах. Мои личные тесты: Убунту, Арч, Гаруда, Минт, Астра (вроде Смоленск)
Что не вяжется?
Редактировать форму ты можешь текстом.
В полной мере ты можешь сделать все через текст, потому что текст является конечным результатом, а не дизайнер. Программа в конечном итоге использует именно текст. Который ты можешь редактировать, даже не открывая дизайнер. С подсветкой синтаксиса и всем прочим.
Здесь все понятно?
Блокнот упомянут тут для того, чтобы дать понять, что это не какой-то абстрактный редактор дизайна, но в виде текста, а обычный текст. Естественно, если мне нужно изменить класс, я могу просто перевести дизайнер в режим отображения кода дизайна и изменить название класса.
В остальном никаких отличий от ваших "преимуществ" нет. У вас есть лишь недостаток - отсутствие визуального дизайнера интерфейса. А тут есть и дизайнер и возможность его описывать текстом.
Нет такого компонента - он про игнорируется.
То, что у тебя форма меньше - не играет никакой роли. Он вставится и будет по тем координатам. Не нравится измени. Абсолютные координаты - это не единственный способ позиционирования.
Если у тебя уже есть Button1, он станет Button2 или другая другая цифра в сочетании с названием класса.
Все эти, выдуманные вами, проблемы есть и в ваших примерах выше.
Повторю ещё раз. Если у вас только декларативный вариант интерфейса, то в делфи тот же декларативный + есть отдельный инструмент делать это визуально.
"Как веб" - это значит адаптивный, использующий принятые в вебе подходы и имеющий такой же привлекательный вид.
Вот это можешь скопировать и нажать Ctrl+V на форме или любом контроле
Получаем
И в любой момент ты можешь просто взять и посмотреть код твоей формы. Изменять, удалять и создавать новые элементы. Можешь просто взять и заменить целиком класс (лишние свойства удалятся). Я так постоянно делаю, когда занимаюсь дизайном стилей. Нужен мне фон и его эффекты в одном контроле, но фон нужен не в виде Circle, а в виде RoundRect, скопировал в блокнот, заменил TCircle на TRoundRect, забрал из блокнота и вставил куда нужно.
Но с нуля форму писать текстом нет никакого смысла. Гуглить каждый класс контрола, писать вручную все его свойства. Накой черт этим заниматься, если можно просто выбрать из списка, увидеть все доступные свойства и изменить на свой вкус? И при этом я не имею никаких ограничений, который ты выдумываешь. Дизайнер лишь сам за тебя пишет код. Только быстрее и точнее.
Нет, я просто возьму и скопирую ту часть прямо в дизайнере и вставлю в мессенджер. Потому что копия части интерфейса - текст. И его можно вставить обратно на форму
Интерфейсы "как в веб", делаются легко, а интерфейсы для веб из коробки никто не делает. Потому что язык не для веб фронта. Используются сторонние решения и уже они добавляют функционал для веба.
"Любых интерфейсов" - это значит интерфейсов любой сложности. Хоть в виде 3Д сцены интерфейс делай
Ясно, что предложения без ЗП или даже в другой валюте исключены.
Swift, Rust, Dart, React - тоже не актуальны, вы знали? Цифры так говорят
Web-like интерфейсов - да.
Слушай, это делалось уже много раз. И никто не спорит, что вакансий на делфи меньше, чем, например, на с#. Что тут сравнивать ещё? Зп? Зп одинаково, а медиана по ЗП даже выше временами.
У меня бот регулярно выводит статистику
Вакансий на делфи почти в 10 раз меньше, чем на с#, но всего в 2 раза меньше, чем на Свифт, почти в два раза больше, чем на раст, дарт, руби и столько же как на реакт.
Вилка не сильно отличается от других, а медиана выше многих.
Плюсом ко всем красотам нужно добавить то, что при любом DPI экрана, картинка будет масштабироваться пропорционально, не теряя качества и без расползания разметки (если стиль векторный, конечно же, как у меня тут).
Покупать не дорого, если уже имеешь доход, а если дохода нет, то и среда разработки для тебя бесплатная. Есть версия Community Edition, по возможностям приравнивается к Pro версии. Позволяет использовать Delphi бесплатно, если доход не превышает $5k в год.
В Delphi + FMX необходимость в других компонентах вообще отпадает. Я могу создать сам что угодно не прибегая вообще к созданию контрола отдельно. Потому что в FMX есть стили (нет, это не скины или темы). В FMX любой контрол может иметь любое представление в любой момент времени и выглядеть как угодно и даже не просто выглядеть, но и обладать новыми функциями.
Например, если я захочу, чтобы у меня в поле Edit была кнопка - я просто вставлю туда кнопку. А если хочу, что несколько Edit были такими, я создам стиль для Edit и добавлю в него кнопку, а потом применю этот стиль к тем Edit которым захочу.
Если я захочу иметь кнопку с Split частью, т.е. кнопку разделенную на две кнопки - я просто создам такой стиль и буду иметь возможность сколько угодно таких кнопок иметь и всё это без вообще строк кода. Если я хочу иметь список из сложных элементов, я могу сделать это десятком способов, могу запихать фреймы и каждый элемент будет фреймом, могу привязать датасет к списку и создать стиль для элементов этого списка и выводить любую информацию в любые элементы стиля.
Я могу создать стиль, который будет выглядеть как приложение созданное на WinUI 3.
Всё что здесь отображено - это всё одни и те же штатные контролы, имеющие разные разные представления
Всё что предоставляет мне RAD Studio с головой хватает для создания вообще любых интерфейсов. Я уже не один раз создавал приложение на основе проекта Figma, созданного для веб сервиса.
А где на это посмотреть? Откуда у вас вообще эта информация?
В Сбере, например, недавно был релиз клиента СберИнвест Про, написанный на Delphi + FMX, он не может быть по определению легаси.
А как так? Откуда вы знаете как инвестируют в Delphi? Особенно, если вы даже сравнивать не хотите. Очевидно, что у МС куда больше денег и они могут себе позволить инвестировать в свой де инструмент. Но получается, что тут самый лучший, что ли? Из всех существующих? Потому что мало кто может позволить себе инвестиций от МС.
Делфи развивают, и вероятно даже не менее интенсивно чем c#. Например, фреймворк FMX в Delphi давно уже эффективнее чем WPF, не говоря уже о том, что он полностью кроссплатформенный.
В сам язык тоже регулярно вносятся изменения, как на уровне синтаксиса, так и на уровне компилятора и всяческого сахара. Обновления выходят каждые 3 месяца вот уже лет 7-8. Проводятся вебинары, официальные, в том числе на русском языке. Можно участвовать в бета тестировании, вносить предложения и правки посредством публичной Jira. И сообщество, пусть очевидно меньше чем у c#, но не настолько, чтоб это было проблемой.
Это почему? Сам по себе язык мало что определяет. Мы говорим именно об инструменте. Вы сами написали про "Borland Delphi", сейчас это "RAD Studio" - инструмент, который позволяет создавать кроссплатформенные решения, красивые и современные GUI и что угодно по функционалу не менее удобно, чем в других инструментах.
Сам язык Delphi на месте, со времен Borland, не стоял, а развивался и развивается по сей день. Сейчас в бете находится новая минорная версия RAD Studio 12.1. Развивают как язык (добавляя в том числе новые конструкции синтаксиса языка), так и IDE и рантайм библиотеку и штатные фреймворки (их там теперь два: старый добрый VCL и кроссплатформенный - FMX).
Язык использовать просто, инструменты многое позволяют, быстро или даже быстрее, чем другие инструменты.
То, что вакансий на том же hh по Delphi меньше, чем на популярные языки - всем известно. Особой проблемой это не является. Я в своё время побывал в разных частях страны и без особых проблем находил себе работу на Delphi и нигде я не был вынужден заниматься только "легаси". Конечно, во многих компаниях есть долгоживущие проекты, это разве плохо? Нет. Плохо, когда ты вынужден каждые несколько лет переписывать всё с нуля, потому что то уже устарело и не работает.
Почему нет смысла сравнивать с Delphi?
Delphi уже давно не прибит гвоздями к Windows, а только среда разработки RAD Studio. И софт можно создавать куда презентабельнее, чем это позволяет LCL.
Ну, во-первых, если у клиента есть потребность в решении, то никто не запрещает тебе написать его на Delphi. Клиент быстро получит решение и будет доволен.
Во-вторых, много компаний которые не только используют Delphi, потому что кто-то когда-то им его создал и нужно допиливать, но и потому что создают новые решения на современном Delphi. Несмотря на все тенденции в языках, софт на Delphi создается очень быстро и требует меньше внимания в будущем, потому что нет никаких зависимостей. Я до сих пор могу на Win11 запустить софт на Delphi 20ти летней давности и он ни слова не обронит и будет без проблем работать.
Где-то 10 лет назад, я написал свой первый коммерчески-успешный продукт для одного заказчика. С тех пор, он обращался ко мне лишь несколько раз, первые два раза - это были баги в расчетах, которые нужно было поправить, и два раза были обращения на добавление новых фич. До сих пор этот софт у них работает. А программа была не простая. Там и бд и сложные расчеты и 3D моделирование. Это была программа для расчета огромных ящиков по ГОСТу с изменяющейся моделью в реальном времени, базой заказчиков и историей их заказов. Программа создавалась ещё для XP, но они сами без проблем установили её на Win10, а сейчас может уже и на Win11. Программа обошлась им где-то в 300к + 100к на две новые фичи, а пользуются они ею уже 10 лет. Насколько это выгодно? Особенно, если бы это было какое-то решение на Web. А я потратил на эту программу где-то 3 месяца (параллельно с основной работой) + неделя.
На текущем рабочем месте я стал инициатором создания нового софта на Delphi и использования современных версий языка. Под моим началом переписан бэкенд некоторых сервисов с Питона на Делфи, что решило много проблем с производительностью сервисов и сократило время на добавление новых фич сервиса (последнее вероятно просто связано с архитектурой).
Также, на работе я поспорил с тех. лидом, что напишу мобильное приложение для просмотра 3D панорам быстрее, чем наши разработчики на Unity. И написал. В итоге, именно моё решение сейчас находится в некоторых магазинах Леруа Мерлен.
Здесь скорее дело не в том, что тут математические операции поменялись местами, а в том, что у нас есть ограниченный набор регистров.
cc:=c*c; dd:=d*d; d:=(c+c)*d+n; c:=cc-dd+m;
dd:=d*d; d:=(c+c)*d+n; cc:=c*c; c:=cc-dd+m;
В первом варианте ты работаешь с "c" и "cc", а потом с "d" и "dd", а во втором, ты работаешь c "cc"/"c", потом с "c" и "d", потом c "d"/"dd". Т.е. у тебя лишний раз не перекладывается c/d при операциях и компилятор может оставить "c" в том же регистре для след. операции.