Как стать автором
Обновить
25
14.7
Геннадий Малинин @HemulGM

Программист Delphi

Отправить сообщение

Как бы то ни было странно, да. Линукс у них считает корпоративным сегментом, по этому только редакции Enterprise и выше

Можно. Корректно работает на многих дистрибутивах. Мои личные тесты: Убунту, Арч, Гаруда, Минт, Астра (вроде Смоленск)

Что не вяжется?

Редактировать форму ты можешь текстом.

В полной мере ты можешь сделать все через текст, потому что текст является конечным результатом, а не дизайнер. Программа в конечном итоге использует именно текст. Который ты можешь редактировать, даже не открывая дизайнер. С подсветкой синтаксиса и всем прочим.

Здесь все понятно?

Блокнот упомянут тут для того, чтобы дать понять, что это не какой-то абстрактный редактор дизайна, но в виде текста, а обычный текст. Естественно, если мне нужно изменить класс, я могу просто перевести дизайнер в режим отображения кода дизайна и изменить название класса.

В остальном никаких отличий от ваших "преимуществ" нет. У вас есть лишь недостаток - отсутствие визуального дизайнера интерфейса. А тут есть и дизайнер и возможность его описывать текстом.

Нет такого компонента - он про игнорируется.

То, что у тебя форма меньше - не играет никакой роли. Он вставится и будет по тем координатам. Не нравится измени. Абсолютные координаты - это не единственный способ позиционирования.

Если у тебя уже есть Button1, он станет Button2 или другая другая цифра в сочетании с названием класса.

Все эти, выдуманные вами, проблемы есть и в ваших примерах выше.

Повторю ещё раз. Если у вас только декларативный вариант интерфейса, то в делфи тот же декларативный + есть отдельный инструмент делать это визуально.

"Как веб" - это значит адаптивный, использующий принятые в вебе подходы и имеющий такой же привлекательный вид.

object Button1: TButton
  StaysPressed = True
  DisableFocusEffect = True
  Images = ImageList24
  ImageIndex = 5
  Position.X = 128
  Position.Y = 54
  Size.Width = 101
  Size.Height = 32
  Text = 'Label'
  TextSettings.HorzAlign = Leading
  TextSettings.Trimming = None
  object Label103: TLabel
    Align = Client
    StyleLookup = 'labelstyle_badge_container'
    TextSettings.WordWrap = False
    Text = '1'
  end
end

Вот это можешь скопировать и нажать Ctrl+V на форме или любом контроле

Получаем

И в любой момент ты можешь просто взять и посмотреть код твоей формы. Изменять, удалять и создавать новые элементы. Можешь просто взять и заменить целиком класс (лишние свойства удалятся). Я так постоянно делаю, когда занимаюсь дизайном стилей. Нужен мне фон и его эффекты в одном контроле, но фон нужен не в виде Circle, а в виде RoundRect, скопировал в блокнот, заменил TCircle на TRoundRect, забрал из блокнота и вставил куда нужно.

Но с нуля форму писать текстом нет никакого смысла. Гуглить каждый класс контрола, писать вручную все его свойства. Накой черт этим заниматься, если можно просто выбрать из списка, увидеть все доступные свойства и изменить на свой вкус? И при этом я не имею никаких ограничений, который ты выдумываешь. Дизайнер лишь сам за тебя пишет код. Только быстрее и точнее.

Нет, я просто возьму и скопирую ту часть прямо в дизайнере и вставлю в мессенджер. Потому что копия части интерфейса - текст. И его можно вставить обратно на форму

Интерфейсы "как в веб", делаются легко, а интерфейсы для веб из коробки никто не делает. Потому что язык не для веб фронта. Используются сторонние решения и уже они добавляют функционал для веба.

"Любых интерфейсов" - это значит интерфейсов любой сложности. Хоть в виде 3Д сцены интерфейс делай

Ясно, что предложения без ЗП или даже в другой валюте исключены.

Swift, Rust, Dart, React - тоже не актуальны, вы знали? Цифры так говорят

Web-like интерфейсов - да.

Слушай, это делалось уже много раз. И никто не спорит, что вакансий на делфи меньше, чем, например, на с#. Что тут сравнивать ещё? Зп? Зп одинаково, а медиана по ЗП даже выше временами.

У меня бот регулярно выводит статистику

Вакансий на HH: 
Delphi:       221  (-3)      ~105k (25-240)
Pascal:       78   (-1)      ~60k  (30-200)
Python:       3757 (-11)     ~80k  (17-250)
C#:           2190 (+7)      ~70k  (0-300)
C++:          2656 (+1)      ~120k (19-350)
Swift:        445  (-9)      ~150k (15-540)
Java:         3490 (-73)     ~60k  (0-150)
Visual Basic: 96   (+5)      ~100k (25-200)
Go:           1243 (-1)      ~150k (0-350)
Ruby:         142  (-2)      ~130k (15-400)
Kotlin:       1057 (-8)      ~100k (0-350)
Rust:         124  (0)       ~150k (40-350)
Fortran:      3    (0)       ~0k   (0-0)
Dart:         152  (-3)      ~120k (20-300)

Flutter:      252  (-4)      ~100k (0-300)
FireMonkey:   1    (-1)      ~80k  (80-80)
Electron:     57   (-7)      ~150k (50-330)
Lazarus:      11   (0)       ~80k  (32-140)
React Native: 223  (-4)      ~120k (17-350)
1С:           6479 (-10)     ~80k  (25-350)

Вакансий на делфи почти в 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 уже давно не прибит гвоздями к Windows, а только среда разработки RAD Studio. И софт можно создавать куда презентабельнее, чем это позволяет LCL.

Ну, во-первых, если у клиента есть потребность в решении, то никто не запрещает тебе написать его на Delphi. Клиент быстро получит решение и будет доволен.

Во-вторых, много компаний которые не только используют Delphi, потому что кто-то когда-то им его создал и нужно допиливать, но и потому что создают новые решения на современном Delphi. Несмотря на все тенденции в языках, софт на Delphi создается очень быстро и требует меньше внимания в будущем, потому что нет никаких зависимостей. Я до сих пор могу на Win11 запустить софт на Delphi 20ти летней давности и он ни слова не обронит и будет без проблем работать.

Где-то 10 лет назад, я написал свой первый коммерчески-успешный продукт для одного заказчика. С тех пор, он обращался ко мне лишь несколько раз, первые два раза - это были баги в расчетах, которые нужно было поправить, и два раза были обращения на добавление новых фич. До сих пор этот софт у них работает. А программа была не простая. Там и бд и сложные расчеты и 3D моделирование. Это была программа для расчета огромных ящиков по ГОСТу с изменяющейся моделью в реальном времени, базой заказчиков и историей их заказов. Программа создавалась ещё для XP, но они сами без проблем установили её на Win10, а сейчас может уже и на Win11. Программа обошлась им где-то в 300к + 100к на две новые фичи, а пользуются они ею уже 10 лет. Насколько это выгодно? Особенно, если бы это было какое-то решение на Web. А я потратил на эту программу где-то 3 месяца (параллельно с основной работой) + неделя.

На текущем рабочем месте я стал инициатором создания нового софта на Delphi и использования современных версий языка. Под моим началом переписан бэкенд некоторых сервисов с Питона на Делфи, что решило много проблем с производительностью сервисов и сократило время на добавление новых фич сервиса (последнее вероятно просто связано с архитектурой).

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

Здесь скорее дело не в том, что тут математические операции поменялись местами, а в том, что у нас есть ограниченный набор регистров.

  1. cc:=c*c; dd:=d*d; d:=(c+c)*d+n; c:=cc-dd+m;

  2. 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" в том же регистре для след. операции.

1
23 ...

Информация

В рейтинге
455-й
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, Fullstack Developer
Senior
От 180 000 ₽
Delphi
SQL
Database
Git
REST
C#
Python
OOP
MySQL
PHP