Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Обсуждение статей
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2019, 02:15   #1
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,757
По умолчанию Почему я перестал программировать на Delphi ?

Хочу обсудить эту статью, так как сам давно не программирую на Delphi, по причине того что виндос хп был дырой, и перешёл на убунту, а там всё уже не про делфи.

Неужели у Delphi, у Паскаля, всё так плохо?

Вот сама статья которую я прочитал, я скопирую в цитаты только выводы

Цитата:
Резюме

Как это ни печально, но все вышеизложенные причины привели меня к одному (в прочем вполне закономерному) следствию. Писать на Delphi в настоящее время:

Практически бесперспективное занятие в плане опыта и карьеры;
Просто не выгодно по деньгам.

Это и заставило меня перейти с Delphi на альтернативные технологии и в 2017 году я полностью прекратил разработку на этом языке программирования.

Ничего личного. Просто работа.

Искренне надеюсь, что эта статья в достаточной степени разъяснит основания для принятия мной такого решения.
http://streletzcoder.ru/pochemu-ya-p...sat-na-delphi/

Автор статьи форумчанин Streletz
Alar вне форума Ответить с цитированием
Старый 11.02.2019, 09:31   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А чего тут обсуждать? Это всегда примерно так было, Дельфи никогда не был сверхпопулярным, а сейчас десктопные приложения вообще мало кому нужны.

В 3 пункте непонятно чего именно в ООП не хватает, по-моему там больше с другими вещами проблемы, типа отсутствия стандартного нормального способа автоматического управления памятью (например как smart pointer'ы в С++), отсутствия менеджера пакетов/зависимостей (даже в С++ уже есть всякие vcpkg, conan). Ну и из-за непопулярности часто может быть сложно найти какую-нибудь библиотеку доступную в других языках.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.02.2019, 23:19   #3
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,723
По умолчанию

Цитата:
smart pointer'ы в С++
В Делфи потомки TObject "умные из коробки".

Цитата:
типа отсутствия стандартного нормального способа автоматического управления памятью
Оно же в динамике работает, т.е. классы таких объектов и соответствующие контейнеры писать/обобщать/специализировать/наследовать несложно. "Свойства" поддерживают синтаксис оператора присваивания - через такую его "перегрузку" и стиль на функциональный можно не менять.

Цитата:
Не ужели у Delphi, у Паскаля, всё так плохо?
Бесплатный аналог развивается быстрее. Смысл платить? Тем более для РФ - дорого.
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 11.02.2019 в 23:37.
MihalNik вне форума Ответить с цитированием
Старый 12.02.2019, 01:05   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от MihalNik Посмотреть сообщение
В Делфи потомки TObject "умные из коробки".
И чего там умного? Ну или они настолько умные, что никто так и не понял их и так и пишут Free в try finally на каждом шагу )

С интерфейсами как-то можно всегда было, но я не особо помню, наверняка это добавляло кучу сложностей.
После 2009 с Дженериками люди как-то создавали юзабельные смарт поинтеры, но стандартные вроде так и не завезли.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.02.2019, 04:21   #5
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,723
По умолчанию

Цитата:
так и пишут Free в try finally на каждом шагу
Всегда можно сделать обертку, позволяющую писать "finally AllesGut" вместо finally <освобождение конкретно указанных объектов>, считая AllesGut неотъемлемой частью finally, и забыв про соответствие повторных имен.

Цитата:
настолько умные
Под копирку же. Как людям покажут/сами увидят - так и делают. Тут дело не в делфи.
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 12.02.2019 в 04:33.
MihalNik вне форума Ответить с цитированием
Старый 12.02.2019, 06:07   #6
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
С интерфейсами как-то можно всегда было, но я не особо помню, наверняка это добавляло кучу сложностей.
Интерфейсы так не работают. Вернее они никак не работают, поэтому ими не пользуются.

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
отсутствия менеджера пакетов/зависимостей
Для Delphi они не требуются.

А вот умных указателей не хватает. Обещают в скорее время сделать, но как-то без радужно. Там реально надо добавить автодеструктор, а они какую-то чушь суют в виде слабых ссылок.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 12.02.2019, 06:34   #7
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,723
По умолчанию

Цитата:
Обещают в скорее время сделать, но как-то без радужно
Вот поэтому берется open-source и допиливается что там душе угодно.
Ну или поверх просто делается оболочка, как Kotlin над Java.
Или зашивается asm.

То есть решений можно найти кучу при желании и знании. Только желание всегда одно - копипаста.
Копипаста с ЦПП ничего хорошего не принесет, если требуется быстрый перевод кода с C++, то будет вечно утекать и падать, даже после 100500 поправок, как FF)

Цитата:
в виде слабых ссылок
Скобка из конструктора и деструктора - это очень частный случай.
Если нужен блок - любая такая пара заменяется функцией, вообще всегда можно перейти к функциональному или логическому стилю.
Освобождение внешнего ресурса по границе не специализированного блока - перегрузка его функциональности и сразу логическая дыра, баги из такого розового мира вытекают просто эпичные.

Только проблема среды разработки не в этом. Таблицы, конструкторы запросов, обработка текста - никому уже такие сырые компоненты не нужны.
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 12.02.2019 в 07:23.
MihalNik вне форума Ответить с цитированием
Старый 12.02.2019, 11:17   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Интерфейсы так не работают.
С чего вдруг?
https://delphisorcery.blogspot.com/2...in-delphi.html

Цитата:
Сообщение от Pavia Посмотреть сообщение
Для Delphi они не требуются.
Ну да, лучше качать глючащие инсталяторы для каждой библиотеки.
Или хотя бы запускать dpk и нажимать кнопки для компиляции и установки.

И хранить их в какой-нибудь левой папке на компе указывая абсолютные пути в IDE вместо относительных в проекте (в туториалах обычно так делают и IDE не возражает и не подсказывает другие способы).
А потом гуглить имена модулей из Uses.

И даже если библиотеки лежат в проекте, то проект может быть скомпилируется, но для использования компонентов в дизайнере все равно придется запускать и ставить все dpk.
Ну и придется их хранить в своем репозитории.


Цитата:
Сообщение от MihalNik Посмотреть сообщение
Всегда можно сделать обертку, позволяющую писать "finally AllesGut" вместо finally <освобождение конкретно указанных объектов>
Так тогда объекты должны быть более глобальными и жить дольше, чем надо.

Ну и вообще язык явно препятствует созданию лишних максимально локальных объектов, как будто его кто-то просил заниматься преждевременной оптимизацией, в итоге часто бывают всякие переиспользования, общие имена непонятно к чему относящиеся и т.п.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 12.02.2019 в 12:47.
Alex11223 вне форума Ответить с цитированием
Старый 12.02.2019, 15:15   #9
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,723
По умолчанию

Цитата:
Так тогда объекты должны быть более глобальными и жить дольше, чем надо.
Не должны.

Цитата:
в итоге часто бывают всякие переиспользования
Только строго мат. направленные языки запрещают повторное присваивание. Хотя, как написал выше - ничто не мешает писать в функциональном стиле.

Цитата:
Ну и вообще язык явно препятствует созданию лишних максимально локальных объектов<...>общие имена непонятно к чему относящиеся и т.п.
Для этого с самого начала существуют локальные подпрограммы и with, которым всегда можно настроить текущее пространство имен)

Чтобы грамотно писать на конкретном ЯП - его нужно порядком изучить.
Ну никогда не переносился наивной копипастой С++ в Делфи
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 12.02.2019 в 15:22.
MihalNik вне форума Ответить с цитированием
Старый 12.02.2019, 15:21   #10
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Интерфейсы так не работают. Вернее они никак не работают, поэтому ими не пользуются.
Интерфейсы в Delphi работают. Другое дело, что их реализация в Delphi сильно заточена под COM со всеми вытекающими. Может быть в новых версиях это уже исправили.
Цитата:
Сообщение от Alar Посмотреть сообщение
Не ужели у Delphi, у Паскаля, всё так плохо?
Не стоит стричь под одну гребёнку весь Pascal и его частный случай.
Прекрасно развиваются, например, Lazarus, а также Pascal based языки для промышленного программирования. А, вот Delphi свои позиции сильно сдал.
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему под виндой не удобно программировать на С++ Namira Общие вопросы C/C++ 39 29.04.2017 19:04
Перестал запускаться Delphi XE8 Sibedir Общие вопросы Delphi 4 26.11.2016 15:56
Часть Странички в delphi код перестал работать! Fahman Общие вопросы Delphi 0 02.12.2013 19:11
Перестал работать таймер в Delphi 2010 Shouldercannon Общие вопросы Delphi 4 10.07.2012 22:54
Начать программировать на Delphi xak2 Свободное общение 25 18.08.2008 07:03