Геннадий Малинин @HemulGM
Программист Delphi
Information
- Rating
- 2,974-th
- Location
- Екатеринбург, Свердловская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Software Developer, Fullstack Developer
Senior
From 180,000 ₽
Delphi
SQL
Database
Git
REST
C#
Python
OOP
MySQL
PHP
Столбец "выделенная память" добавь
Так об этом я и говорил. Ошибка проявляется в рантайме, а не при написании кода.
Создайте список из объектов класса Animal, добавьте туда Cat, Dog и вызывайте Eat для каждого, передавая туда Meat
Таким образом получается, что класс Cat не может принимать параметром, например, `Meat food`?
Но таким образом получается, что если Cat как Animal в общем списке Animals, то мы можем передать в него любой Food, и объект Cat примет Meat и будет обращаться к Meat как к Fish. Это как-то регулируется вообще?
Когда ты общаешься с сервисом через API, которое ещё и имеет стандартизированный ответ в формате JSON - это НЕ парсинг. Это работа с API.
Знать немного синтаксис - это не то же самое, что "знать язык".
Больше чем на Rust, Ruby, Dart. В два раза меньше, чем на Swift.
Ну вот об этом и речь. Вы плохо знаете его современные способности. Инлайны, выведение типов, локальный скоуп, новые фреймворки, кроссплатформенные возможности. Бэкенд под Линукс прекрасно пишется с использованием бэкенд фреймворков. Гуи приложения и игры под мобильные или полностью кроссплатформенные платформы - тоже.
Исключительно винда - это пережиток. Это уже давно не так.
Философия разработки и на Delphi уже меняется. Проверьте и попробуйте написать кроссплатформенный пет-проект на FMX с дженериками, анонимками и тасками, например.
Прекрасно пользуюсь знаниями Delphi сейчас. Пишу мобильные приложения, серверные под Линукс, десктопные под Мак. На часы себе софт написал. И даже одностраничные мини веб сервисы.
XML используется много где для обмена. Да тот же XLSX/DOCX - это набор xml в архиве.
Потому что знания нужно обновлять. Тот же делфи и джава постоянно меняются и обновляются. И вот уже аккуратные знания этих инструментов могут помогать.
Мне предлагают 180-230 для мидла.
У меня тоже на hh висит резюме без статуса и мне тоже регулярно пишут рекрутеры. При чем не только на hh пишут, а лично в телеграм. В чатах по Делфи часто заходят HR и публикуют вакансии. Так что нет, действительность не такая, как вам кажется.
Это в нашем (или именно вашем) инфопространстве мало Delphi программистов, а во многих странах, да и у нас в России есть не мало специалистов.
Тем более, сам инструмент (компилятор, синтаксис, IDE, ...) активно развивают и регулярно выпускают обновления. Не только фиксы или что-то там, чтоб работало сейчас, а именно нововведения: совершенствуют компилятор, добавляют новые синтаксические конструкции в язык, обновляют среду, создают новые инструменты для разработки, расширяют RTL. Добавим к этому то, что легаси проекты на новых версиях работать не будут, а это означает, что старые проекты пересаживают на новые версии (хотя это не обязательно).
Наша и многие другие компании закупают новые версии инструмента для разработки и сейчас мы пишем уже кроссплатформенные решения на этом языке, в том числе и мобильные.
В смысле в порядке алфавита? А приоритет не?
PowerToys. Два клика в трее и меняй/добавляй)
Речь шла об этом. О том, что умные указатели не сильно нужны. Потому что есть много других способов управлять объектами. Умные указатели - лишь один из способов.
TComponent обладает методами, которые позволяют реализовать систему владения объектами и из коробки стыкуется с многими штатными классами. Этот подход, например, используется в Rust.
Далее, как я уже сказал, легко можно реализовать defer, который укладывается в несколько строк, или который можно просто стануть с гита.
После этого - интерфейсы.
Есть ещё и ARC, для извращенцев. Его можно включить директивой.
И в Делфи уже давно есть деструкторы и конструкторы у record, которые очень легко позволяют реализовать умные указатели.
https://www.embarcadero.com/case-study/image-line-software-case-study
Систему владения знаешь? Она в делфи реализована из коробки на основе TComponent (Owner, Free notify).
Ищи в GetIt пакет "Mitov" или кучу разных на GitHub.
Я себе реализовал (20 строк кода) defer/errdefer из языка Zig, и могу писать так: var s := TStringList.Create; defer(s); (именно подряд), а дальше любой код. В том числе, это работает и в локальном скоупе.
Зайди на мой гит, а потом пробуй что-то там ставить под сомнение. Реализация defer тоже есть на Гите.
И это не я ставлю минусы, так что ...
На Delphi они реализуются буквально в 10 строк, на любой вкус и цвет. Не говоря уже о том, что есть готовые реализации в официальном менеджере пакетов.
В них особой нужды в Delphi просто-напросто нет.