куда катится мир? в частности Delphi а за ним и Лазарус

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение iN0k » 19.07.2012 20:21:07

Но "аналогичный" обьект данных в Дельфи есть, и это object?
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение Sergei I. Gorelkin » 19.07.2012 21:09:56

record и object не аналогичны. Внутренняя структура у record предсказуема и бинарно совместима с другими языками, у object - нет.

object в FPC не является устаревшим, поддерживается, в нем исправлен ряд ошибок, имеющихся в его аналоге из Дельфи.

ps. А сборщик мусора к Дельфи уже приходил, в районе 2002 года (Delphi 8 ), если память не изменяет. После чего контора сменила два названия и до сих пор нельзя сказать, что до конца оклемалась.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение alexey38 » 20.07.2012 01:33:15

Текущая реализация методов у записи не меняет бинарную структуру записи, а только добавляет неявные параметры у самого метода, и неявно выполняет аналог with RecName do.
В некоторых случаях, такая форма синтаксиса бывает удобнее. Вернее сказать, что процедуры, обрабатывающие только одну запись выглядят синтаксически коряво (сам код).

Насчет того, что нужно ли бояться, что вставят ВМТ, то если бояться, то всего. А вдруг завтра begin ... end, заменят на { ... }? А вдргу запретят процедуры? А вдруг еще что-то произойдет?

Если объективно, то смена синтаксиса и расширение языка иногда бывает, но практически всегда - это разовое и концентрированное изменение. Искать тенденции - на мой взгляд глупо. Это не та тема, которая годами исследуется и плавно внедряется. Те же самые классы в паскаль (дельфи) - пришли в один миг. Потом в один миг в паскаль (дельфи) пришли генерики. В один миг в дельфи пришла полноценная подержка Unicode, в паскаль Unicode тоже взял и пришел (хотя реализация возможно будет развиваться) и т.п. Искать вззаимосвязи изменений - это гадание на кофейной гуще и не более.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение iN0k » 20.07.2012 08:49:23

Sergei I. Gorelkin писал(а):object в FPC не является устаревшим, поддерживается, в нем исправлен ряд ошибок

а какие ошибки были исправленны?
пуф или на словах :-)
поиск на bugs.freepascal.org по слову object дает ~3000 (уровень знания англ. и скорость работы сайта не распологает к просмотру каждого :oops: ), а при фильтре "FPC core .." пусто
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение Sergei I. Gorelkin » 20.07.2012 08:58:50

Исправлена обработка управляемых полей при наследовании (при уничтожении объекта освобождаются строки и т.п. в родительских объектах, Дельфи этого не делает).
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение iN0k » 20.07.2012 09:23:31

Sergei I. Gorelkin писал(а):Исправлена обработка управляемых полей при наследовании (при уничтожении объекта освобождаются строки и т.п. в родительских объектах, Дельфи этого не делает).

Спасибо за столь быстрый ответ
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение stikriz » 20.07.2012 10:39:17

iN0k писал(а):Вопрос: зачем добавили методы в рекордах?

Лучше задать вопрос так:
- Рекорды без методов - это те же самые рекорды? Могу я сделать GetMem, FreeMem, Move так же как и раньше?
И тогда половина душевной боли поутихнет.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение iN0k » 20.07.2012 11:42:26

alexey38 писал(а):Насчет того, что нужно ли бояться, что вставят ВМТ, то если бояться, то всего. А вдруг завтра begin ... end, заменят на { ... }? А вдргу запретят процедуры? А вдруг еще что-то произойдет?

согласен. "Волков бояться в лес не ходить". НО при походе в лес и знании что там много-много волков, глупо не готовиться к встрече с ними :D
если Дельфи идет в сторону Джава-Руби то и фиг на него
если Лазарус пойдет за Дельфи ... это будет печально

alexey38 писал(а):Если объективно, то смена синтаксиса и расширение языка иногда бывает, но практически всегда - это разовое и концентрированное изменение. Искать тенденции - на мой взгляд глупо.

с поправкой на комерческие проекты согласен. Там решения принимают, скорее всего, больше в угоду своим (корпаративным) интересам или Манагеры волевым методом (мода, мнение-желание конкретного чела). В качестве примеров наверно можно притянуть ранние Офисные пакеты от Мастадонтов индустрии :D . Однако ж, ну не полные дятлы же там сидят, и продавить освсем идиотское решение ну очень сложно, следовательно обсмеять решение и несогласиться с ним можно при условии понимания мотивов и целей.

alexey38 писал(а):Это не та тема, которая годами исследуется и плавно внедряется.

в опенСурсе хочется верить что это всетаки ТЕМА

поэтому вопрос для меня всетаки открыт:
зачем добавили методы в рекордах?

неудовлетворенность данными ответами следующая:

alexey38 писал(а):В некоторых случаях, такая форма синтаксиса бывает удобнее. Вернее сказать, что процедуры, обрабатывающие только одну запись выглядят синтаксически коряво (сам код).

в условиях отсутствия наследавания объединение данных и функций мне кажется странным, вот тните меня носом, потому что фантазия дальше "ненужных" банальныйх гетер/сетер не идет (пример хачу :) ).
А процедуры, на мой взгляд, выглядят логично и самое главное ЯВНО.

SSerge писал(а):Я подозреваю, что в delphi это сделали для того, чтобы поддерживать аналогичный тип объекта данных из .NET Framework

подозрения ... неужто так? :shock:

PS
alexey38 писал(а):Искать вззаимосвязи изменений - это гадание на кофейной гуще и не более.

:D не согласен. искать НАДА :D :D :D

Добавлено спустя 2 минуты:
stikriz писал(а):Лучше задать вопрос так:- Рекорды без методов - это те же самые рекорды? Могу я сделать GetMem, FreeMem, Move так же как и раньше?И тогда половина душевной боли поутихнет.

согласен. на так важен рекорд как поинтер на него )))

Добавлено спустя 4 минуты 12 секунд:
на счет GetMem, FreeMem, Move ...
дамется никуда это не уйдет :D

степень моей боязни будущего в моих постах преднамеренно утрирована :oops: :D :P
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение alexey38 » 20.07.2012 14:55:10

iN0k писал(а):неудовлетворенность данными ответами следующая:
alexey38 писал(а):
В некоторых случаях, такая форма синтаксиса бывает удобнее. Вернее сказать, что процедуры, обрабатывающие только одну запись выглядят синтаксически коряво (сам код).
в условиях отсутствия наследавания объединение данных и функций мне кажется странным, вот тните меня носом, потому что фантазия дальше "ненужных" банальныйх гетер/сетер не идет (пример хачу ). А процедуры, на мой взгляд, выглядят логично и самое главное ЯВНО.


Всякие гетеры, сеттеры и прочие проперти я считаю актуальным только для случая, когда необходимо менять одновременно несколько связанных полей, например, при смене Id, автоматом менять ссылку (указатель). Это все косвенные причины.

Я вижу два смысла использования методов у записей:
1. Информативный, когда зная типа записи не нужно искать какие же процедуры с ней работают. Немного помогает, когда нудно смотреть чужие исходники. Или свои старые, когда иногда уже не помнишь есть ли такая-то процедуры, или ты что-то путаешь (с другим проектом). А так все описано рядом, и уже без лишних вопросов.

2. Косметический. Для процедуры, обрабатывающей только одну запись, причем работая с многими полями, то экономим на 3-х строках: with do, begin, end.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение Sergei I. Gorelkin » 20.07.2012 15:51:38

О направлении движения можно не строить предположений, идет совершенно безумное и бездумное копирование .net, начиная от названий (EArgumentOutOfRangeException -- в то время как в раннем Дельфи ни один класс исключений, кроме базового Exception, не содержал в названии слова Exception, вместо него применялся префикс "E"), сигнатур методов (TEncoding.GetChars(const Bytes: TBytes; ByteIndex, ByteCount: Integer)) -- в то время как в Паскале это должно было бы выглядеть как TEncoding.GetChars(const bytes: array of byte), причем этот подход ничуть не менее "безопасен", и заканчивая целыми классами и фичами языка.

И это, в общем-то, не так уж и плохо - те, кому надоел .net, смогут перейти на FPC и найти много знакомых вещей :mrgreen:
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение Vapaamies » 24.07.2012 23:26:06

Sergei I. Gorelkin писал(а):object в FPC не является устаревшим, поддерживается, в нем исправлен ряд ошибок, имеющихся в его аналоге из Дельфи.

В Delphi 6/7 можно было написать так:
Код: Выделить всё
type
  TMyObj = object
    class function ClassValue: Integer;
  end;

Но этой функции всё равно передавался на вход несуществующий Self! В FPC как?
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение Sergei I. Gorelkin » 25.07.2012 14:02:45

Так же, вместо self передается nil. Но к class-методу можно применять модификатор static, тогда self передаваться не будет.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение iN0k » 27.07.2012 09:05:58

наконец подошли к сути вопросов :D
позволю себе без контекстное цитирование, но надеюсь это не исказить смысла

итак:
1. "куда катится мир? в частности Delphi":
Sergei I. Gorelkin писал(а):идет совершенно безумное и бездумное копирование .net


2. "а за ним и Лазарус":
ответ звучит как в противовес Delphi
Sergei I. Gorelkin писал(а):смогут перейти на FPC и найти много знакомых вещей


В итоге, для себя я получаю:
1. Подтверждение смутных догадок сводящихся к фразе "с Delphi мне не по пути".
2. Поиск альтернатив.

И тогда, хочется задать следующий вопрос:
"Когда Lazarus|FPC полностью оторвется от своего старшего брата Delphi и пойдет своим путем. Произойдет ли это."
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение SSerge » 27.07.2012 10:19:40

iN0k
Lazarus/FPC оторвется от Delphi и пойдет своим путем только тогда, когда Delphi перестанет существовать.

И он нифига не старший брат - и не брат вовсе, скорее фетиш, знамя и икона. :)
По "братству" скорее ближе C# и Delphi, у них биологический папа практически один и тот же. :P
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: куда катится мир? в частности Delphi а за ним и Лазарус

Сообщение stikriz » 27.07.2012 10:43:08

Разработчики Lazarus очень неплохо экономят время и разгружают мозги, когда не парясь тырят интерфейсы классов у Delphi. Уйти от этого не так-то просто. Копи-пасте - это наше все! Тем более, что забот хватает в реализации кросплатформенного по самое нехочу... Поэтому, Delphi - это тот кто протаптывает дорогу. Можно отстать - не проблема. Но, если уйти далеко в сторону, то резко затормозится разработка. Да, и всегда проще на основе хорошего делать лучше, чем идти своим непротоптаным путем.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Пред.След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Рейтинг@Mail.ru