Есть ли у Паскаля будущее?

Любые обсуждения, не нарушающие правил форума.

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

Re: Есть ли у Паскаля будущее?

Сообщение Mikhail » 31.10.2013 20:50:08

Mirage писал(а):Есть же LLVM, который не только оптимизацию даст, но и генератор кода для многих платформ.


Предлагаете компилятор писать на C++?
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Есть ли у Паскаля будущее?

Сообщение Mirage » 31.10.2013 21:03:45

На мой взгляд, снижение интереса к Паскалю происходит от отсутствия развития и репутации устаревшего языка.
По поводу развития поясню: Delphi развивается, но некоторые из означенных направлений пугают (ARC, например). В общем, EMBT дает понять, что производительность их не интересует. А в этом случае логичнее использовать JVM. У нее производительность не сильно хуже (далеко не так, как нам тут рассказывают).
FPC тоже развивается, но медленно по понятным причинам и неконсистентно, по непонятным.
Думаю для нативного языка есть две основных и обязательных цели для развития:
1. позволять писать низкоуровневый высокопроизводительный код, давая полный контроль над генерацией машинного кода. Вплоть до того, чтобы выдавать ошибку, если не удалось заинлайнить то, что указано.
2. позволять не погружаться в низкоуровневые дебри, когда это не требуется. Т.е. иметь высокоуровневые конструкции. Причем желательно не тормозящие на ровном месте. Тот же подсчет ссылок неплохая идея, если не делать это обязательным.
Остальное уже соотносится с этими двумя целями. Например развитие RTL, оптимизации и т.п.

С репутацией сложнее.
Думаю, тут и для Delphi и для FPC оптимальным является создание нового языка, на бинарном уровне обратно совместимого с текущим.
Т.е. новый язык с новым названием, свободный от тяжести совместимости с уже существующим кодом на уровне исходников, но могущий использовать при компиляции .ppu, или .dcu.
Тут уже проще будет добавить интересные современные языковые фичи, поддержку LLVM и многое другое. Не получив при этом перегруженный синтаксис.
Хотя для этого подумать хорошенько надо сперва.

Вот RemObjects, кстати, хорошее дело делают. Язык у них свежий, без груза обратной совместимости. Хотя многие нововведения спорны.
Если сделают поддержку генерации нативного кода, то можно будет всерьез рассматривать переход на Oxygen.

Добавлено спустя 6 минут 18 секунд:
Mikhail писал(а):Предлагаете компилятор писать на C++?


Разве поддержка LLVM обязывает компилятор на С++ писать? Это же бакенд, занимающийся оптимизацией и генерацией конечного кода.
Все что для этого надо, скомпилировать исходный код в промежуточное представление, понятное LLVM.

Как-то в FPC майллисте один С++ программист предложил свою помощь в адаптации FPC для LLVM, по каким-то своим причинам. Но его зачем-то убедили, что это слишком сложно, т.к. есть некоторая несовместимость между FPC и LLVM. Epic fail. Т.к. это необходимо. Даже до EMBT дошло. Думаю у Delphi такая несовместимость тоже была.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Есть ли у Паскаля будущее?

Сообщение Mikhail » 31.10.2013 22:04:22

Mirage писал(а):Разве поддержка LLVM обязывает компилятор на С++ писать? Это же бакенд, занимающийся оптимизацией и генерацией конечного кода.

У него есть Сишный api? Как их компоновать-то?
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Есть ли у Паскаля будущее?

Сообщение carrots » 01.11.2013 01:31:01

Mirage писал(а):carrots, код в collections.pas просто чудовищен. Надеюсь, Вы его приложили в качестве иллюстрации того, как не надо делать.

Ха, вы еще не видели как у меня на с++ коды выглядят, можно исходки смело выкладывать, все равно никто ничего не разберет..

А если честно - там тест возможностей генерика в 2.7.1. Генерик для использования двумерных массивов через sharedmemory, список и словарь с for in как у C#, возвращающем ключ и значение одновременно. Ключевой момент именно в словаре.

Добавлено спустя 11 минут 42 секунды:
Зато они при использовании выглядят красиво и удобно
Аватара пользователя
carrots
постоялец
 
Сообщения: 138
Зарегистрирован: 28.03.2008 02:13:02

Re: Есть ли у Паскаля будущее?

Сообщение sign » 01.11.2013 09:23:29

А кто в курсе, будут в FPC helper`ы на простые типы расширять, как это есть в Delphi?
Типа
Код: Выделить всё
TDateHelper = record helper for TDate
public
  function ToMySQL: string; inline;
end;
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Есть ли у Паскаля будущее?

Сообщение zub » 01.11.2013 09:34:14

>>А кто в курсе, будут в FPC helper`ы на простые типы расширять, как это есть в Delphi?
быстрый способ узнать - пошерстить на багтрэкере или в списке рассылки, если этого еще нет, написать соответствующий фичреквест
оно? http://bugs.freepascal.org/view.php?id=23817
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Есть ли у Паскаля будущее?

Сообщение carrots » 01.11.2013 09:48:55

sign писал(а):А кто в курсе, будут в FPC helper`ы на простые типы расширять, как это есть в Delphi?

Уже есть, работают, проверял, только в mode delphi, вроди. В mode objfpc лучше object использовать, от record ничем не отличается, только в него еще можно функции и проперти вписывать и хелперы клеить без проблем + компилятор сам решает когда его создать и освободить, и сборщика мусора не нужно, и работает быстро и оперативки не ост много.
Хотелось-бы хелперы для еще более простых типов, таких как string..
Аватара пользователя
carrots
постоялец
 
Сообщения: 138
Зарегистрирован: 28.03.2008 02:13:02

Re: Есть ли у Паскаля будущее?

Сообщение zub » 01.11.2013 10:04:37

>>+ компилятор сам решает когда его создать и освободить, и сборщика мусора не нужно, и работает быстро и оперативки не ост много.
с обжектами лучше конструнтор\деструктор лучше вызывать руками - компилятор его не вызывает, даже если виртуальных методов пока нет - малоли потом появятся - придется лопатить старый код искать где нет инициализации
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Есть ли у Паскаля будущее?

Сообщение Vadim » 01.11.2013 10:47:26

А что такое "неконсистентно" применительно к Паскалю? :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Есть ли у Паскаля будущее?

Сообщение carrots » 01.11.2013 13:09:45

zub писал(а):>>+ компилятор сам решает когда его создать и освободить, и сборщика мусора не нужно, и работает быстро и оперативки не ост много.
с обжектами лучше конструнтор\деструктор лучше вызывать руками - компилятор его не вызывает, даже если виртуальных методов пока нет - малоли потом появятся - придется лопатить старый код искать где нет инициализации

Действительно компилятор для object не вызывает конструктор init автоматически, но это как-раз плюс в отличии от class, поскольку с ними можно работать как с record, и не тратить время на вызов конструктора, но в дополнение они хранят относящиеся к ним проперти и функции, что значительно упрощает их использование и упорядочивает библиотеки... Не понял в чем там может быть проблема.
http://wiki.freepascal.org/Programming_Using_Objects
Аватара пользователя
carrots
постоялец
 
Сообщения: 138
Зарегистрирован: 28.03.2008 02:13:02

Re: Есть ли у Паскаля будущее?

Сообщение mse » 01.11.2013 15:44:36

I started a Wiki page about MSElang, the future compiler for the MSEide+MSEgui project:
http://sourceforge.net/p/mseide-msegui/wiki/MSElang/
Please use the mailing list if you like to discuss the matter in English:
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
mse
новенький
 
Сообщения: 68
Зарегистрирован: 08.08.2013 15:40:31

Re: Есть ли у Паскаля будущее?

Сообщение Mikhail » 01.11.2013 17:04:07

mse писал(а):I started a Wiki page about MSElang, the future compiler for the MSEide+MSEgui project:
http://sourceforge.net/p/mseide-msegui/wiki/MSElang/
Please use the mailing list if you like to discuss the matter in English:
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk

РБНФ уже разработана?
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Есть ли у Паскаля будущее?

Сообщение debi12345 » 01.11.2013 17:55:59

РБНФ уже разработана?

Сперва (3..5 лет) интерпретатор типа Java (под своего рода виртуальную машину), затем - компиляторы в экзешники под разные платформы... Вылизывание на универсальном (плаптформо-независимом) уровне, затем тиражирование на платформы.

What will not be implemented
Macros.

Я бы наоборот расширил язык до C-ых "#define"-макросов. Иногда их не хватает.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Есть ли у Паскаля будущее?

Сообщение Mikhail » 01.11.2013 18:36:34

debi12345 писал(а):Сперва (3..5 лет) интерпретатор типа Java (под своего рода виртуальную машину), затем - компиляторы в экзешники под разные платформы... Вылизывание на универсальном (плаптформо-независимом) уровне, затем тиражирование на платформы.


Я вообще-то о грамматике. :D

debi12345 писал(а):Я бы наоборот расширил язык до C-ых "#define"-макросов. Иногда их не хватает.

Вот этого как раз не нужно.

Вообще, лучше начать со списка требований.
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Есть ли у Паскаля будущее?

Сообщение mse » 01.11.2013 19:28:09

Mikhail писал(а):EBNF is already developed?

In a first step the syntax is the language currently used in MSEgui, a subset of Delphi 7/FPC 2.6.2.
mse
новенький
 
Сообщения: 68
Зарегистрирован: 08.08.2013 15:40:31

Пред.След.

Вернуться в Потрепаться

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

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

Рейтинг@Mail.ru