Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

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

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

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

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

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

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

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

Автор статьи форумчанин Streletz
Alar на форуме   Ответить с цитированием
Старый 11.02.2019, 10:31   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 17,732
Репутация: 3426

icq: 512-765
skype: alexp.frl
По умолчанию

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

В 3 пункте непонятно чего именно в ООП не хватает, по-моему там больше с другими вещами проблемы, типа отсутствия стандартного нормального способа автоматического управления памятью (например как smart pointer'ы в С++), отсутствия менеджера пакетов/зависимостей (даже в С++ уже есть всякие vcpkg, conan). Ну и из-за непопулярности часто может быть сложно найти какую-нибудь библиотеку доступную в других языках.
Alex11223 на форуме   Ответить с цитированием
Старый 12.02.2019, 00:19   #3
MihalNik
Модератор
Заслуженный модератор
 
Регистрация: 27.11.2012
Сообщений: 3,874
Репутация: 1480
По умолчанию

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

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

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

Последний раз редактировалось MihalNik; 12.02.2019 в 00:37.
MihalNik вне форума   Ответить с цитированием
Старый 12.02.2019, 02:05   #4
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 17,732
Репутация: 3426

icq: 512-765
skype: alexp.frl
По умолчанию

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

С интерфейсами как-то можно всегда было, но я не особо помню, наверняка это добавляло кучу сложностей.
После 2009 с Дженериками люди как-то создавали юзабельные смарт поинтеры, но стандартные вроде так и не завезли.
Alex11223 на форуме   Ответить с цитированием
Старый 12.02.2019, 05:21   #5
MihalNik
Модератор
Заслуженный модератор
 
Регистрация: 27.11.2012
Сообщений: 3,874
Репутация: 1480
По умолчанию

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

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

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

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

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

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

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

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

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

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

Последний раз редактировалось MihalNik; 12.02.2019 в 08:23.
MihalNik вне форума   Ответить с цитированием
Старый 12.02.2019, 12:17   #8
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 17,732
Репутация: 3426

icq: 512-765
skype: alexp.frl
По умолчанию

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

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

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

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


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

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

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

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему под виндой не удобно программировать на С++ Namira Общие вопросы C/C++ 39 29.04.2017 20:04
Перестал запускаться Delphi XE8 Sibedir Общие вопросы Delphi 4 26.11.2016 16: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


23:34.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru