Вышла новая версия компилятора FreePascal

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ответить
perlpunk
новенький
Сообщения: 90
Зарегистрирован: 26.09.2008 21:19:48

Сообщение perlpunk »

причем тут С++
просто наглядный пример привел

вот тогда так
http://javascript.ru/basic/closure

вопрс простой - есть или нет подобные и будут ли ?

противоречит не противоречит
но в делфях последних вроде добавляли подобные вещи
http://interactiveasp.net/blogs/spgilmo ... -2010.aspx
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

perlpunk, мало ли что в дельфях добавили...

Гарантию дать не может никто, но я бы особо не ждал.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

perlpunk писал(а):противоречит не противоречит
но в делфях последних вроде добавляли подобные вещи

Бред
Как бы ещё извернуться - чтобы самому выстрелить себе в ногу...
Это разве что в для наказания, заставлять кого то разбираться в таком чужом коде...
И всё из за того, что некоторым лень соблюдать порядок.
Нет в этом реального смысла.
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Лекс Айрин писал(а):Гарантию дать не может никто, но я бы особо не ждал.

Ждать не нужно. Оно уже тут :mrgreen:
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kazalex, что ж... придется писать свой компилятор раньше, чем я ожидал... правда, я нифига не понял некоторых моментов, но это уже не так страшно -- не впервые начинать то, в чем нифига не понимаю((((
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Лекс Айрин, а анонимных методах нет ничего страшного, это прекрасная штука если не злоупотреблять. Кстати, в мейл-листе разработчиков fpc, недавно один товарищ озвучивал свои планы по созданию анонимных методов совместимых с дельфями вплоть до деталей реализации.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kazalex, один из разработчиков Lazarus (как минимум, компонент для него) резко против этого... и он объяснил почему.

Добавлено спустя 54 секунды:
На С и его потомки не указывайте... они не предназначены для нормальной верификации кода.
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Лекс Айрин, иррациональные срахи это не объяснение... это иррациональные страхи.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kazalex, это НЕ иррациональный страх. Не надо делать из одного языка другой. Тем более, добавлять сущности явно лишние. Того же почти результата наверняка легче добиться уже существующими методами. Если честно, то постоянная погоня за дельфи это скорее зло, чем благо.
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

perlpunk писал(а):
Дож писал(а):А замыкания есть с 2.6.0 («is nested» ссылки)
http://wiki.freepascal.org/FPC_New_Feat ... _variables
http://www.freepascal.org/docs-html/ref/refse17.html



я имел ввиду чтото вменяемое

типа как в C++

Код: Выделить всё

   auto lambda = [](auto x) {
      return x;
   };

типа используем
        writeln(lambda("Hello generic lambda!\n"));


объявление сразу в блоке кода и присваивание переменной

Чем приведённый код принципиально (не синтаксически) отличается от

Код: Выделить всё

procedure Code;
  function Lambda(const S: AnsiString): AnsiString;
  begin
    Exit(S);
  end;
begin
  writeln(lambda("Hello generic lambda!\n"));
end;

?

вопрс простой - есть или нет подобные и будут ли ?

Будут.
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Лекс Айрин, страх самый что ни на есть иррациональный. Из той же оперы, что и страх перед codepage-aware strings. Замыкания не присущи какому-то одному языку, поэтому их наличие в паскале не сделает его тем "другим языком", это просто очень удобная в некоторых случаях абстракция.

Лекс Айрин писал(а):Того же почти результата наверняка легче добиться уже существующими методами

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

Лекс Айрин писал(а):Если честно, то постоянная погоня за дельфи это скорее зло, чем благо

Впитывать лучшее из имеющегося это не зло, это жизненная необходимость.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kazalex писал(а):это просто очень удобная в некоторых случаях абстракция.

ключевое слово "некоторых". И потом, код нужно не только писать, но и поддерживать, а это уже совсем другая кухня.

а насчет codepage-aware strings... и прочего этого хлама... так это всего лишь последствия а) экономии б) несогласованности. Надо всего-лишь договориться, что кодировка одна и для всех. Ну и со временем привести код в соответствие с ней. Но этого никто, по крайней мере пока, делать не будет.

kazalex писал(а): Но это уж точно не легче да и писанины сильно больше.

Интерфейсы почти такое же зло как и кодовые страницы. Язык программирования, изначально, это средство упростить ассемблер... вместо этого иногда проще писать на самом ассемблере... имхо, это неправильный путь... Зачем три названия для одного и того же? ... Мы уже приходим к тому, что код программы, зачастую, невозможно нормально поправить.

kazalex писал(а):Впитывать лучшее из имеющегося это не зло, это жизненная необходимость.


Вот только где уверенность, что это лучшее... догоняя нельзя обогнать. Зачем держать язык (его реализацию) на вторых ролях (точнее, даже на третьих... сам дельфи, судя по всему, начинает "догонять С++"). Лично меня раздражает, что сейчас FPC это дельфи для бедных.
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Лекс Айрин писал(а):ключевое слово "некоторых"

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

Лекс Айрин писал(а):И потом, код нужно не только писать, но и поддерживать, а это уже совсем другая кухня

Как раз код с анонимнымми методами поддерживать код сильно проще, нежели с ООП-суррогатами замещающими их.

Лекс Айрин писал(а):а насчет codepage-aware strings... и прочего этого хлама... так это всего лишь последствия а) экономии б) несогласованности. Надо всего-лишь договориться, что кодировка одна и для всех. Ну и со временем привести код в соответствие с ней. Но этого никто, по крайней мере пока, делать не будет

Я и не сомневался, что вся критика новых строк от непонимания.

Лекс Айрин писал(а):Интерфейсы почти такое же зло как и кодовые страницы

Непонимание в квадрате.

Лекс Айрин писал(а):Вот только где уверенность, что это лучшее... догоняя нельзя обогнать. Зачем держать язык (его реализацию) на вторых ролях (точнее, даже на третьих... сам дельфи, судя по всему, начинает "догонять С++")

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

Лекс Айрин писал(а):Лично меня раздражает, что сейчас FPC это дельфи для бедных

А меня раздражает, что совместимость с дельфями остаётся на уровне Delphi 7, а код собирающийся в Delphi 2006 самый свежий FPC собрать без оговорок не может.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kazalex писал(а): Никто не заставляет применять анонимные методы ради применения анонимных методов.

Наличие лишь ради наличия это тоже странно. Паскаль был, изначально, простым языком. Хотелось бы избежать усложнения.

kazalex писал(а):Я и не сомневался, что вся критика новых строк от непонимания.

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

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


Может быть потому, что у него слишком много от Дельфи даже в таком виде?

kazalex писал(а):А меня раздражает, что совместимость с дельфями остаётся на уровне Delphi 7, а код собирающийся в Delphi 2006 самый свежий FPC собрать без оговорок не может.


Может быть еще будем собирать программы написанные на С#? На Лиспе? Задача переноса с системы на систему не так уж часто и возникает в работе нормального программиста. Да и приступая к портированию программы всегда надо быть готовым к проблемам. Иначе не было бы необходимости портировать.
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Лекс Айрин писал(а):Наличие лишь ради наличия это тоже странно. Паскаль был, изначально, простым языком. Хотелось бы избежать усложнения.

Наличие ради использования. Если тебя сейчас посадить за Виртовский паскаль ты по другому заговоришь.

Лекс Айрин писал(а):Да мне все равно какие там строки... главное чтобы какие-то одни.

Неконсистентность RTL и LCL это не проблема новых строк.

Лекс Айрин писал(а):Может быть потому, что у него слишком много от Дельфи даже в таком виде?

Что, и тут дельфя мешает развиваться?

Лекс Айрин писал(а):Может быть еще будем собирать программы написанные на С#? На Лиспе?

Если будет декларирована совместимость с шарпом и лиспом таки будем.

Лекс Айрин писал(а):Задача переноса с системы на систему не так уж часто и возникает в работе нормального программиста

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