The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз новой стабильной версии Lazarus 0.9.30, среды разработки для FreePascal

29.03.2011 14:11

Состоялся релиз новой стабильной версии интегрированной среды разработки Lazarus 0.9.30, основанной на компиляторе FreePascal 2.4.2. Готовые установочные пакеты с Lazarus для различных платформ и архитектур можно загрузить здесь.

Из изменений в Lazarus 0.9.30 можно отметить:

  • LCL:
    • Поддержка буфера обмена для платформы Windows CE;
    • Интерфейсы GTK2 и GTK1 разделены. GTK1 более не поддерживается, но сторонние патчи все еще принимаются;
    • fpGUI: LCL-интерфейс к fpGUI теперь поддерживает все компоненты со стандартной страницы;
    • Qt: реализована поддержка Haiku
    • Размещение и автоматический размер компонентов приведен к единообразному виду для всех наборов виджетов, улучшено межплатформенное отображение сложных форм;
    • Добавлена поддержка gif-изображений;
    • TLazIntfImage - новый функционал AlphaBlend, который позволяет отрисовывать один intfimage с полупрозрачностью в другой, используя отдельный intfimage в качестве альфа-канала;
    • TBarChar устарел. Вместо него используется новый пакет - TAChartLazarusPkg.
  • IDE:
    • Поддержка ресурсов FPC: теперь можно использовать {$R *.lfm} вместо {$i unit1.lrs}.
    • Значительно доработан конвертер Delphi-проектов.
    • Используя макросы, режимы и условия на этапе сборки можно задавать различные параметры компиляции для проектов и пакетов.
    • Новое в редакторе исходного кода:
      • Сворачивание блоков комментариев.
      • Открытие нескольких окон редакторов исходного кода.
      • Открытие нескольких редакторов одного и того же исходного кода.
      • Пользовательские шаблоны подсветки исходного кода.
      • изменяемый размер всплывающего окна автодополнения.
    • Возможность задать, по умолчанию, настройки компиляции для новых проектов.
    • При открытии проекта, открываются только те формы, которые были открыты в последний раз.
    • Различные улучшения дизайнера форм:
      • С помощью клавиши TAB и клавиш навигации можно переключаться между компонентами.
      • Перемещение/изменение размера можно отменить по клавише ESC.
      • Сохранение/восстановление положения окон для проекта.
      • Скрытие привязок при зажатой клавише ALT.
    • Путь по умолчанию для откомпилированных модулей теперь задан как lib/$(TargetCPU)-$(TargetOS). Не влияет на старые проекты.
    • Теперь IDE следит за использование единого конца строки для всего модуля.
    • Возможность быстрого переключения между версиями/ветками пакетов путем определения предпочтительного имени файла пакета для каждой зависимости.
    • Добавлена директива "%H-" для скрытия отдельных подсказок и предупреждений.
    • IDE можно переключить в однооконный режим используя пакеты AnchorDockingDsgn или EasyDockMgrDsgn.
    • Функционал ToDo list выделен в отдельный пакет - todolistlaz.lpk.
  • Отладчик / Редактор:
    • Вставленные/удаленные строки во время отладки теперь учитываются. Точки останова и выполнения перемещаются.
    • Реализован функционал "Шаг в обход".
    • Добавлена команда "показать точку выполнения".
    • добавлена команда пропуска/вхождения в функции во время отладки.
    • Добавлена панель для точек останова, дизассемблера.
    • Добавлена навигация в дизассемблер: переход к адресу/возврат к точке выполнения.
    • Улучшена скорость в режиме отладки.
  • Компоненты:
    • Добавлен пакет EducationLaz для скрытия сложных частей IDE от студентов.
    • Новый пакет AggPas (Anti Grain Geometry for Object Pascal), теперь поддерживает FPImage и LCL. AggPas highlights: субпиксельная отрисовка, 8-битный альфа-канал, пути, платформо-независимая отрисовка на чистом паскале.
    • Обновлен TAChart: добавлена возможность вращения, 3 новых вида серий, интерактивные инструменты, 6 новых примеров.


  1. Главная ссылка к новости (http://lazarus.freepascal.org/...)
Автор новости: vit
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/30063-Lazarus
Ключевые слова: Lazarus, freepascal, pascal, ide
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (73) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 15:07, 29/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Господи, кто-то еще этим пользуется?
     
     
  • 2.3, Vitaly_loki (ok), 15:36, 29/03/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Delphi-мигранты?
     
  • 2.5, Dmitry (??), 16:42, 29/03/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Господи, кто-то еще этим пользуется?

    Конечно пользуются. И килобаксы на этом зарабатывают. В то время, как доблестные Анонимусы пишут систеиы, уровня R/3 на ассемблере.

     
     
     
    Часть нити удалена модератором

  • 4.9, Аноним (-), 19:14, 29/03/2011 [ответить]  
  • +3 +/
    Дык, Си тяжеловат для студентов, не говоря уже про C++, а всякие питоны у нас в стране не больно известны - их не скачаешь с торрентов в ultimate edition с кряком
     
     
  • 5.17, ананим (?), 00:42, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >p.S. Линия Виртовских языков классная, простая, логичная. Мля, ну когда же создадут компилеры для модул/оберонов с достаточным количеством библиотек?

    это вы кого спрашиваете? неужто сишнегов?
    да ещё с этим:
    >p.S. Линия Виртовских языков классная, простая, логичная.

    вот когда вы собсно это всё сделаете то?

     
  • 3.21, User294 (ok), 08:30, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Конечно пользуются. И килобаксы на этом зарабатывают.

    К счастью вымирают уже. Потому что нормальный софт на дельфях найти - нереально почти. Дельфи - это 99% гарантия того что программа на ней - отборный образец говнокода и быдлокодерских технологий ака "во, напрограммил: расставил кнопки на форме".

     
  • 2.16, yantux (??), 22:58, 29/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну я пользуюсь:
    http://lazarus.su/downloads/explorer-picture-resize.html
    http://lazarus.su/downloads/simplecalc.html
     

  • 1.2, Аноним (-), 15:18, 29/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Еще как пользуются!!!
     
  • 1.4, Cybister (?), 16:02, 29/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Если быстро что-то мелкое кроссплатформеное - самое-то.
     
  • 1.7, Аноним (-), 17:40, 29/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Года 4 назад нужно было скомпилить какую-то либу из дельфийского исходника. Искать диск с ворованным дельфи7 было лень, скачал лазарус, поковырял, скомпилил, подумал круто получилось. С си-шной прогой нифига не заработало, но сам Лазарус очень порадовал.
    Два года назад уже на линухе потребовалось скомпилить какую-то прогу из дельфийского исходника. Поковырял, обплевался, нифига не заработало.
    Сейчас даже не знаю как на это реагировать.
     
     
  • 2.14, Программист (?), 21:45, 29/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В этой версии серьезно доработали конвертор Delphi проектов
     
  • 2.19, anonymous vulgaris (?), 02:31, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Два года назад уже на линухе потребовалось скомпилить какую-то прогу из дельфийского  исходника. Поковырял, обплевался, нифига не заработало.

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

    Кстати если вы думаете что ц++ код всегда легко портируется так это не так.

    > Сейчас даже не знаю как на это реагировать.

    Никак. Продолжать и дальше писать суперкод типа fuck[{{}}]<срл>>>^&**p(_btgbr)====?*№" на радость 294юзеру который от него тащиться будет. Впрочем нельхя не признать что усовершенствования паскаля потихоньку тянут его синтаксис в ту же сторону.

     
     
  • 3.22, User294 (ok), 12:20, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Если что я изучал паскаль когда-то Он хорош для обучения - приучит как делат... большой текст свёрнут, показать
     
     
  • 4.23, anonymous (??), 13:11, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Эй, паскалист, а ну-ка попробуй напиши аналог такому? :)
    > void (*our_func) (void);
    > …
    > our_func = (void *) 0x1000;
    > our_func();

    и что? в паскале отменили указатели на процедуры? откогда? без них — внизапна! — даже динамически подгруженую библиотеку использовать не получилось бы. а ведь используют же как-то, черти!

     
     
  • 5.26, ram_scan (?), 13:43, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    это можно сделать аж двумя способами.

    Через процедурный тип, и через декларирование типа "функция" и объявление переменной этого типа.

    будет что-то в духе

    var pmyproc : procedure;
    begin
    pmyproc := pointer(10000);
    pmyproc;
    end.

    либо

    type tmyfunc = function (integer) : integer;
    var pmyfunc : ^tmyfunc;
        bar : integer;
    begin
    pmyfunc := pointer(10000);
    bar := pmyfunc(1);
    end.

    А еще на паскале можно сразу переменные в абсолютных адресах размещать. Причем со времен pdp-11 как минимум.

    var tmp : array [0..1023] of integer absolute $10000;

    и обращаться потом к массиву по человечески не казнясь с указателями.

     
     
  • 6.35, Аноним (-), 20:00, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А еще на паскале можно сразу переменные в абсолютных адресах размещать. Причем со времен pdp-11 как минимум.

    В наше время сомнительная возможность.

    > и обращаться потом к массиву по человечески не казнясь с указателями.

    /* В DOS это было примерно так: */
    const int *tmp = (int __far *) 0x10000;

    /* Теперь tmp можно применять как массив. Не могу не обратить внимание, что такой способ был доступен в Си с самого начала и является логичным способом использования его возможностей, в отличие от Паскаля, хорошо сдобренного Борландом. Кстати, указатели придумали для удобства, и они действительно удобны, если уметь применять их */

     
     
  • 7.46, ram_scan (?), 08:32, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > В наше время сомнительная возможность.

    Отчего-же ?

    Я например в свое время заменив в турбопаскале родную RTL на самопальную вполне успешно писал на нем sys драйверы для масадоса (ибба с версии 5.0 ихний лоадер научился таки понимать MZ формат бинаря).

    При этом безо всяких трюков и ассемблерных вставок.

     
  • 4.24, q (??), 13:12, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Как паскалистам такой выгибон, нормальненько?

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

     
     
  • 5.40, User294 (ok), 23:43, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > со всеми возможностями спецификайции языка.

    Как ни странно, код упомянутого плана именно в полезных продуктах и встречается. Насчет стабильной работы пользователя - не, теория это замечательно, но на практике дельфевые программы в массе своей на 99% - редкий крап.

     
     
  • 6.45, anonymous (??), 00:49, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > на практике дельфевые программы в массе своей на 99% — редкий крап.

    это никак не вина инструмента (так же, как не вина php в том, что на нём пишут долбоклюи).

     
     
  • 7.56, User294 (ok), 12:44, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > это никак не вина инструмента (так же, как не вина php в
    > том, что на нём пишут долбоклюи).

    Не, знаете, вот на PHP написано и уйма вполне приличного софта. Хотя и крапа ессно хватает. На дельфе найти вменяемую программу ... ну ... наверное такое в теории возможно. Только это, почему-то даже вспомненый тут qip нынче ударился в пхание бэкдоров и медвежьих услуг, а скайп, абузя ресурсы чужого компа и конекции в интернет не дает над этим процессом контроля и живет своей жизнью. Хорошие программы, черт возьми. Да, я заметил, трояны почему-то часто пишут на дельфе... случайное совпадение?

     
     
  • 8.58, anonymous (??), 12:52, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    то, что ты не видел хорошего софта на дельфи значит, всего лишь, что ты не туда ... текст свёрнут, показать
     
  • 8.66, Frankl (?), 15:02, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    И этот человек когда-то защищал проблемы Си, говоря что это вина программиста, н... текст свёрнут, показать
     
     
  • 9.69, pazke (?), 15:25, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    A то в паскакале не может быть переполнений и особенно утечек памяти Это была ш... текст свёрнут, показать
     
     
  • 10.71, Frankl (?), 16:02, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    а теперь еще раз прочитай на что ты отвечаешь и главным образом как Я разве утв... большой текст свёрнут, показать
     
  • 4.25, Frankl (?), 13:21, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >И главное и асмовый фрагмент в паскале вроде стандартно впихнуть - не того :).

    всё того) плохой выхлоп :)

     
     
  • 5.57, User294 (ok), 12:51, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Есть именно стандартный и устоявшийся метод это делать А то как я помню в свое ... большой текст свёрнут, показать
     
     
  • 6.59, anonymous (??), 12:55, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    внизапна, вопрос! мы же про Delphi Language тут говорим, не так ли? так вот: стандарт Delphi Language — это… ну, ты угадаешь, думаю. и да — там ещё с тех пор, как оно было Borland Pascal With Objects есть возможность включать асм. вполне стандартизованая в рамках диалекта. как и остальные, кстати, синтаксические конструкции.

    >Делали какие-то абстрактные «юниты»

    не «абстрактные юниты», а вполне забавный формат библиотек, который обеспечивал быструю линковку.

     
  • 6.64, Frankl (?), 14:57, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>>И главное и асмовый фрагмент в паскале вроде стандартно впихнуть - не того :).
    >> всё того) плохой выхлоп :)
    > Есть именно стандартный и устоявшийся метод это делать?

    не виляй как жучка) смотри, открываю fpc, пишу:

    begin
      {$ASMMODE att}
      asm
        movl $100, Йx
        pushl Кx
        popw %ax
      end;

      {$ASMMODE intel}
      asm
        mov eax, 100
        push ebx
        xor ecx, ecx
      end
    end.

    Всё компилируется, всё работает. :)

     
  • 4.27, dq0s4y71 (??), 18:16, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > И как вы думаете, а сможете вы такое на паскакале изобразить, хотя-бы теоретически, будь такая нужда?

    Гы-гы. Да слово в слово!

    var our_func: procedure;
    ...
    our_func := Pointer($10000);
    our_func;
    ...

    Смешной вы, User294 :) Пишете патетический пост на два экрана, а в конце громко пукаете в лужу :)

     
     
  • 5.28, dq0s4y71 (??), 18:31, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, раз уж вы так хотели удивить пасквилянтов сишным "выгибоном", то могли бы ваш пример записать в три раза короче:

    ((void (*)())(0x10000))();


    Вот такого Паскаль точно не умеет :)

     
     
  • 6.29, q (??), 18:33, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ((void (*)())(0x10000))();

    Я не знаю, умеет такое паскаль или нет, но такой код не нужен.

     
     
  • 7.30, dq0s4y71 (??), 18:51, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В большинстве случаев - да, но мы сейчас не качество кода обсуждаем :)
     
  • 7.34, Аноним (-), 19:50, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В signal.h стандартной библиотеки C можно найти такое:

    void (* signal(int __sig, void (* __func)(int))) (int)

    Рядовая функция, устанавливает и возвращает обработчик сигнала - функцию с целым аргументом и результатом void. Тут что-то непонятно? )) Кстати, после чтения стандарта такие конструкции читаются на раз, и они довольно логично смотрятся с точки зрения грамматики языка, да и лаконично.
    Даже если в Паскале подобную конструкцию можно реализовать, такие вещи в нем делать просто не принято, а зря - callback-функции часто используются в системном программировании.

     
     
  • 8.36, anonymous vulgaris (?), 22:37, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вы чего все паскаль так же как 294юзер учили что-ли или или в гугле лень наб... текст свёрнут, показать
     
  • 8.43, anonymous (??), 00:38, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    и за такое, найденое в своём проекте я бы отрезал тестикулы аффтару это л тоато... текст свёрнут, показать
     
     
  • 9.60, dq0s4y71 (??), 13:16, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    О как Но что-то мне подсказывает, что полномочий лишать кого-то премии и полови... текст свёрнут, показать
     
     
  • 10.61, anonymous (??), 13:32, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    вынужден тебя разочаровать есть такая штука, как 171 стандартный стиль для не... текст свёрнут, показать
     
  • 9.70, pazke (?), 15:37, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У вас pascal brandamage Вот после таких гуру смотришь на код типа MyVeryCoolTy... текст свёрнут, показать
     
     
  • 10.76, anonymous (??), 20:53, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    это бывает попей успокоительных откуда ж я знаю, что там мудaки понаписали ли... текст свёрнут, показать
     
  • 7.54, User294 (ok), 12:42, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> ((void (*)())(0x10000))();
    > Я не знаю, умеет такое паскаль или нет, но такой код не нужен.

    Смотря что значит не нужен :). Если по поводу стиля - да, мне именно такой стиль не очень по вкусу, т.к. чрезмерно задрючен и можно облажаться. Если по смыслу, т.е. сделать по сути JMP 10000 но без ASM - вполне валидная операция, реально используемая на практике.

     
  • 6.47, ram_scan (?), 08:35, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот такого Паскаль точно не умеет :)

    С каких пор ?

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

    procedure (10000);


     
     
  • 7.55, dq0s4y71 (??), 12:44, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Delphi:
    Error: Statement expected but 'PROCEDURE' found

    FPC:
    Fatal: Syntax error, ";" expected but "(" found

    Незачет ;)

     
  • 5.51, User294 (ok), 12:35, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Смешной вы, User294 :) Пишете патетический пост на два экрана, а в

    А что по факту будет сделано? Будет ли это аналог просто ассемблерного jmp?

    > конце громко пукаете в лужу :)

    Ну ладно, уели, цуки - я паскаль последний раз юзал хренадцать лет назад, как раз ранние дельфи и т.п. появились. Мне это дельфи не понравилось и я честно съе на си :)

     
     
  • 6.62, dq0s4y71 (??), 13:59, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А что по факту будет сделано? Будет ли это аналог просто ассемблерного jmp?

    Не будет. И в вашем сишном примере не будет. Потому, что это - ВЫЗОВ ФУНКЦИИ, и нигде не указывается, что из этой функции не будет возврата. Мало того, даже если our_func() описать с __attribute__ ((noreturn)), все равно gcc будет генерить:

    mov         eax,0x00001000
    call        eax

    хотя эпилога (leave/ret) у вызывающей функции уже генериться не будет.

    А jmp вместо call оптимизатор вставит в следующем случае:

    #include <stdio.h>

    void b() {
    puts("hello");
    }

    void a() {
    b();
    }

    int main(){
    a();
    return 0;
    }

            ...
    _a:
            push        ebp
            mov         ebp,esp
            pop         ebp
            jmp         _b
            ...

     
  • 4.33, Аноним (-), 19:43, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Самое интересное, что Вирт отлично понимал недостатки Паскаля (точнее, его особенности, делающие его непригодным для промышленного применения, все-таки ориентация была на обучение), и создал небезызвестные Модулу и Оберон, в которых, в частности, уже не было идиотского begin, вот только это событие прошло совершенно мимо паскалянтов, которые до сих пор продолжают вставлять в язык костыли. Указатели - это как раз из этой серии, в первой версии ими даже и не пахло, как и операторами break/continue, ленивыми вычислениями условий, а массивы разной длины, помнится, имели разный тип, так что функция, заточенная под один размер, не могла работать с другим.
     
     
  • 5.37, anonymous vulgaris (?), 22:54, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Самое интересное, что Вирт отлично понимал недостатки Паскаля (точнее, его особенности,

    делающие его непригодным для промышленного применения, все-таки ориентация была на обучение)

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


    > и создал небезызвестные Модулу ... в которых, в частности, уже не было идиотского begin,

    http://en.wikipedia.org/wiki/Modula-3

    A common example of a language's syntax is the Hello world program.
    MODULE Main;
    IMPORT IO;
    BEGIN
      IO.Put ("Hello World\n")
    END Main.


    >вот только это событие прошло совершенно мимо паскалянтов, которые до сих пор продолжают вставлять в язык костыли. Указатели - это как раз из этой серии, в первой версии ими

    даже и не пахло, как и операторами break/continue, ленивыми вычислениями условий,

    Да уж разумное развитие это конечно явный недостаток языка. А интересно что бы Керниган с Ритчи сказали если бы им показали такое развитие их макроассемблера?

    tuple(typename add_const_reference<Head>::type v, typename add_const_reference<Tail>::type... vtail)
    : m_head(v), inherited(vtail...) { }

    > а массивы разной длины, помнится, имели разный тип, так что функция, заточенная под один размер, не могла работать с другим.

    Смешно. В ц вообще массивов нет. Указатель массивом  назвать конечно можно, как и строкой, вот только они от этого ими не станут.

     
  • 5.39, anonymous vulgaris (?), 23:22, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >  Паскаля ... все-таки ориентация была на обучение)

    Кстати кто нибудь мне объяснит откуда пошла эта байка? На самом то деле было так - был алгол 60 (про котрый никогда такой ерунды понятно не говорилось) и который выглядел примерно так (знакомо не правда ли?)
    ALGOL 60
    procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
        value n, m; array a; integer n, m, i, k; real y;
    begin integer p, q;
        y := 0; i := k := 1;
        for p:=1 step 1 until n do
        for q:=1 step 1 until m do
            if abs(a[p, q]) > y then
                begin y := abs(a[p, q]);
                i := p; k := q
                end
    end Absmax


    потом Вирт предложил Алгол В  (который стал на мой взгляд хуже)

    ALGOL W is a programming language. It was based on a proposal for ALGOL X by Niklaus Wirth and C. A. R. Hoare as a successor to ALGOL 60 in the IFIP Working Group 2.1.
    It represented a relatively conservative modification of ALGOL 60, adding string, bitstring, complex number and reference to record datatypes and call-by-result passing of parameters, introducing the while statement, replacing switch with the case statement, and generally tightening up the language.

    а потом одумался, и  и с минимальными изменениями в алгол60 сделал Паскаль. Ну а потом его снова малость занесло... Ну да нашлись хорошие люди и исправили ошибки великих родив object pascal.

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

     
  • 5.48, ram_scan (?), 08:46, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > а массивы разной длины, помнится, имели разный тип, так что функция,
    > заточенная под один размер, не могла работать с другим.

    Что как класс кстати исключало ошибки класса buffer overflow/underflow, причем контроль границ массивов ВНЕЗАПНО при этом было, ИЧСХ выполнялся всего одной инструкцией процессора bound (на x86). Напутать можно было только с указателями, но учитывая очень строгую типизацию намутить там можно было только целенаправленно, иначе компилятор давал больно по рукам. Со строками тоже кстати чтобы вылезти за границы строки нужно было СПЕЦИАЛЬНО постараться. И calling convention паскалевского типа исключает много опасных трюков со стеком.

     
     
  • 6.52, User294 (ok), 12:38, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > исключает много опасных трюков со стеком.

    Когда какие-то трюки исключают, это означает что что-то работать перестанет. Иногда например надо сделать тупой JMP на новую программу. Вообще переинициализировав стек например. Это что, такое совсем нельзя будет? И даже стандартного и-фейса для дергания асма нет? oO

     
  • 2.31, Фкуку (?), 19:03, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Года 4 назад нужно было скомпилить какую-то либу из дельфийского исходника. Искать
    > диск с ворованным дельфи7 было лень, скачал лазарус, поковырял, скомпилил, подумал
    > круто получилось. С си-шной прогой нифига не заработало, но сам Лазарус
    > очень порадовал.
    > Два года назад уже на линухе потребовалось скомпилить какую-то прогу из дельфийского
    > исходника. Поковырял, обплевался, нифига не заработало.
    > Сейчас даже не знаю как на это реагировать.

    С наскоку Lazarus'ом не запользуешься, этого не будет, корки и в Линуксах, и в Виндах долго будут получаться из скомпиленных без варнингов проектов.

    И тут уже кажному для себя решать, на ЖыСиСи-бинды к GTK пересаживаться ради надежного кросса или Lazarusa учить.

     
     
  • 3.38, anonymous vulgaris (?), 22:58, 30/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > С наскоку Lazarus'ом не запользуешься, этого не будет, корки и в Линуксах,  и в Виндах долго будут получаться из скомпиленных без варнингов проектов.

    Ерунда какая.


     
  • 3.44, anonymous (??), 00:39, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > И тут уже кажному для себя решать, на ЖыСиСи-бинды к GTK пересаживаться
    > ради надежного кросса или Lazarusa учить.

    или не мучаться с этим всем и спокойно использовать Qt, как единственный адекватный тулкит.

     

  • 1.8, dq0s4y71 (??), 18:31, 29/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что, к нему окно дизассемблера в вправду прикрутили?
     
     
  • 2.65, анон (?), 14:58, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А что, к нему окно дизассемблера в вправду прикрутили?

    Дизассемблер был, но очень кривой.

     
     
  • 3.73, dq0s4y71 (??), 16:33, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А где он был-то? Я что-то так и не нашел. А сейчас это что? Машинный код отлаживать можно?
     
     
  • 4.79, anonymous vulgaris (?), 01:53, 01/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Машинный код отлаживать можно?

    Так отладка через гдб сделана. Откуда и часть проблем ибо гдб под ц заточен. Поэтому в debugger friendly оптимизации -О1 им иногда приходится сильно неоптимальный код генерить чтоб отладка нормально работала. В -О2 все оптимально, но м.б. проблемы с отладкой.

     

  • 1.32, Del4ev (?), 19:25, 30/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Skype написан на Delphi
     
     
  • 2.42, ncux (??), 00:12, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    qip вроде тоже
     
     
  • 3.53, User294 (ok), 12:39, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > qip вроде тоже

    О, две проприетарные какашки вспомнили.


     
  • 2.49, ram_scan (?), 08:48, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Skype написан на Delphi

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

     
  • 2.50, Frik (?), 11:08, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Еще TheBat, и туева хуча программ. О туевой хуче многие не знают, потому что они в основном с БД связаны, а вот на остальных языках много ли софта с БД, делфя по этому параметру все вместе взятые сделает и не надо говорить что БД - фу, люди не только в интернетах сидят, большинство как раз работают с базами данных.
     
     
  • 3.68, pazke (?), 15:17, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Еще TheBat, и туева хуча программ. О туевой хуче многие не знают,
    > потому что они в основном с БД связаны, а вот на
    > остальных языках много ли софта с БД, делфя по этому параметру
    > все вместе взятые сделает и не надо говорить что БД -
    > фу, люди не только в интернетах сидят, большинство как раз работают
    > с базами данных.

    "Профессиональный" кидатель dbgrid'ов на формы детектед.

     
     
  • 4.80, anonymous vulgaris (?), 02:53, 01/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > "Профессиональный" кидатель dbgrid'ов на формы детектед.

    Я когда это все время слышу то мне кажется что это от зависти, нет? Или кидать не получается? Так это мышкой же просто делается.

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

    А у вас что не так?

     
  • 2.75, dq0s4y71 (??), 16:36, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, и насколько я понимаю, на Делфи написан сам компилятор Делфи :)
     
     
  • 3.77, anonymous (??), 20:59, 31/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну, и насколько я понимаю, на Делфи написан сам компилятор Делфи :)

    на сях он написан.

     
     
  • 4.81, anonymous vulgaris (?), 02:57, 01/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Ну, и насколько я понимаю, на Делфи написан сам компилятор Делфи :)
    > на сях он написан.

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

    А компилятор фреепаскаля с самого начала на паскале писался. Как и лазарь ессно.

     

  • 1.41, Аноним (-), 00:09, 31/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    на нем собираются тотал командер 8 выпускать...
     
     
  • 2.78, anonymous vulgaris (?), 01:49, 01/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > на нем собираются тотал командер 8 выпускать...

    Да, похоже дело идет именно к этому

    Total Commander. Интервью с разработчиком
    http://www.kv.by/index2011044301.htm

    - Ранее многократно вы публично заявляли, что закончили первый этап портирования Total Commander на Lazarus/Free Pascal. Как сейчас продвигается эта работа?
    - Да, я веду такую работу.

     
  • 2.82, anonymous vulgaris (?), 03:06, 01/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > на нем собираются тотал командер 8 выпускать...

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

    http://doublecmd.sourceforge.net/

     
  • 2.83, Dmitry (??), 10:54, 01/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вот САПР для прокладки кабельных трасс

    http://shamangrad.net/project.php?act=view&prj=zcadhttp://shamangrad.net/proj

     
     
  • 3.84, anonymous vulgaris (?), 22:05, 01/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот САПР для прокладки кабельных трасс

    Это на Лазаре

    а на Дельфях можно посмотреть напрмер тут

    http://delphi.wikia.com/wiki/Good_Quality_Applications_Built_With_Delphi

    в частности

    KMPlayer MediaMonkey Help&Manual FastStoneImageViewer TotalCommander InnoSetup  PowerArchiver BeyondCompare GetDataBack PhotoFiltreStudio FinalBurner CoffeeCupHTMLEditor RJ TextEd BSPlayer PSPad ZoomPlayer ConvertXToDVD FuturixImager IZArc PEExplorer ASPack DeepBurner TextAloud Editpad Multilizer TreeSize Dev-C++

     
  • 2.85, nikos (??), 14:43, 02/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > на нем собираются тотал командер 8 выпускать...

    Про тотал вопрос сложный, но, по личному опыту, в 95%  случаев куда более важно то что написано ( алгоритмы и знания "как делать"), чем чистота кода и его красота. Чем проще язык и чем меньшими усилиями людей знающих "как делать", тем быстрее  появится готовый продукт.


     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру