LINUX.ORG.RU
ФорумTalks

Вышел Lazarus 2.0.4

 ,


0

1

Сабж. Список исправленных багов: https://wiki.freepascal.org/Lazarus_2.0_fixes_branch#Fixes_for_2.0.4_.28merge... .

Релиз Free Pascal'я 3.2 ожидается осенью (список уже известных изменений, которые войдут в релиз: https://wiki.freepascal.org/FPC_New_Features_3.2)

Скачать Lazarus 2.0.4 можно по ссылкам отсюда: https://www.lazarus-ide.org/index.php?page=downloads .

★★★★★

Для какой ниши вообще нужен сегодня этот Лазарь? Для десктопов аппы писать? Ну для этого есть VS / C# и ХCode / Swift. Для Линукса есть Qt. Для Андроида - гугложава и егойный фреймворк. Для веба используются совсем другие ЯП. Для всякого численного моделирования - Фортран, С++, Джулия.

А этот самопальный новоПаскаль для чего? Чтобы можно было пo-старому преподавать основы программирования на Паскале? Ну так проще запустить TurboPascal в виртуалочке, и не парить мозг новыми проблемами нового кода.

Не понятно.

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от seiken

Для Линукса есть Qt.

Не всем нужно писать десктопный софт на C++. Lazarus нужен чтобы писать десктопный софт на Object Pascal'е.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Lazarus нужен чтобы писать десктопный софт на Object Pascal'е.

За этим «нужен» стоит какая-либо существенная причина? Ну там, богатая и отлаженная библиотека для GUI, сети? Удобная работа с многопоточностью? М.б. компилятор работает быстрее плюсовых (вроде Дельфи хвастался скоростью компиляции 1млн строк кода в секунду)? M.б. есть обширное коммьюнити?

seiken ★★★★★
()
Ответ на: комментарий от seiken

ХCode / Swift

Я могу это по быстрому поставить на свой линукс и за 10 минут написать графическую морду к базе данных? Которая скомпилится в нативные версии (с нативными виджетами) под линукс/винду/макось?

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Я могу это по быстрому поставить на свой линукс и за 10 минут написать графическую морду к базе данных? Которая скомпилится в нативные версии (с нативными виджетами) под линукс/винду/макось?

А на Лазаре это возможно?

seiken ★★★★★
()
Ответ на: комментарий от seiken

Да. Готовые компоненты для доступа к БД, готовые компоненты для визуализации данных, нативные виджеты, мгновенная компиляция, кросскомпиляция под различные системы.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от Artamudo

Lazarus используют для GUI, предмет: «ВИзуальное программирование».

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

seiken ★★★★★
()
Ответ на: комментарий от seiken

Они видимо преподают именно Лазарь, потому-что преподы знают только Паскаль, а из нормальных и «бесплатных» реализаций гуя на Паскале - это только Лазарь. Причём странность была в том, что до Лазаруса изучали плюсы. То есть логичнее было бы перейти на какой-то CodeBlocks, если уж на то пошло, но получилась деградация.

Artamudo ★★★★
()
Ответ на: комментарий от Artamudo

логичнее было бы перейти на какой-то CodeBlocks

Это если нужны C/C++, D и Fortran. А если нужен именно Паскаль, то не логичнее.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от seiken

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

gremlin_the_red ★★★★★
()
Ответ на: комментарий от seiken

вакансий

Реальность не ограничивается вакансиями. Если программист любит Паскаль, то ему может быть удобнее писать именно на Паскале как для самого себя так и, например, для сообщества линуксоидов. А по работе при этом можно писать и на других языках. Хоть на Питоне и Яве.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Просто задача не подготовить специалиста именно по Лазарусу, а дать базу визуального программирования, то есть рисования формочек. И после изучения C++ переходить обратно к Паскалю не очень понятно.

Artamudo ★★★★
()

Релиз Free Pascal'я 3.2 ожидается осенью
gdb

хех) не прошло и полувека. Годно. С юникодом проблему решили в text ide?

Deleted
()
Ответ на: комментарий от Deleted

Тестируемую версию пока ещё не смотрел. Вот выйдет релиз тогда посмотрю. А, вообще, я пользуюсь компилятором, а не текстовой IDE.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

А мне охота бывает поностальгировать в text mode ide.

Deleted
()
Ответ на: комментарий от Artamudo

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

Какая там может быть «база», если все инструменты разные? Изучать типы графических элементов и основные концепции UI? Ну это проще по картинкам в методичке сделать.

seiken ★★★★★
()
Ответ на: комментарий от saahriktu

Я на предыдущей работе юзал. Надо было подцепиться к OPC-серверу, забрать оттуда данные, произвести над ними кое-какую математическую обработку и положить результаты в базу. Если делать так как принято в промышленности (брать готовую SCADA с модулями для работы с БД и быдлокодить обработку на встроенном языке скриптования), то получалось для заказчика слишком дорого.

Alden ★★★★
()
Ответ на: комментарий от Alden

Ну дык, разумеется, работа разной бывает. Даже если зайти на hh.ru и вбить в поиск «lazarus», то сразу находятся пару вакансий конкретно с ним (с Delphi там почти половина тысячи вакансий). Но в том-то и дело, что это капля в море. А некоторым, вон, ЧСВ как-то выражать надо. Мол, я-то являюсь востребованным специалистом, а потому, мол, пишу на языке, который в самом топе всех имеющихся вакансий, а не как некоторые. Поэтому, в этом смысле, бывает полезно перевести диалог в другое русло.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от seiken

Для ниши, для которой ты не готов же!

grem ★★★★★
()
Ответ на: комментарий от saahriktu

Не всем нужно писать десктопный софт на C++. Lazarus нужен чтобы писать десктопный софт на Object Pascal'е.

А паскакаль кому-то типа нужен? Ну кроме двух аутистов.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)

Хорошая новость.
fpc и Lazarus - свободные инструменты.

record ★★★★★
()
Ответ на: комментарий от seiken

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

LinuxDebian ★★★★
()
Последнее исправление: LinuxDebian (всего исправлений: 2)
Ответ на: комментарий от hateyoufeel

Паскаль нужен всем! Просто не все об этом знают.

Чем больше компилируемых языков программирования - тем лучше! А то обколются своими байткодами и интерпретаторами, а потом нормальных ELF'ов днём с огнём не найти...

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Зачем он нужен? Я в последний раз на паскакале в школе писал. А потом, выпустившись, узнал про лишп. Даже лишп лучше паскакаля.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Затем, что он рулит. На Паскале можно писать более короткий код чем на Си, и при этом Паскаль умеет работать с юникодом не через костыли (как это происходит в C, C++, Фортране,... и т.д.).

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Затем, что он рулит. На Паскале можно писать более короткий код чем на Си, и при этом Паскаль умеет работать с юникодом не через костыли (как это происходит в C, C++, Фортране,... и т.д.).

Ты с хацкеллом не попутал, случайно?

hateyoufeel ★★★★★
()

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

Но сам лазарус понравился, напомнил молодость и Visual Basic. Быстро накидал пару форм, пару компонентов, пару строк кода, и готово!

skyman ★★★
()
Ответ на: комментарий от hateyoufeel

Нет. Например, в C/C++ switch/case не умеет работать со строками. Нужно городить батарею if'ов. А в Паскале case умеет работать со строками. Потом, например, текущие значения дня, месяца и года в Паскале можно получить так:

        y, m, d: Word;
...
        DecodeDate(Date(), y, m, d);
, а в C нужно
    int y, m, d;
    struct tm *now;
    time_t tt_now = time(0);

    if ((now = localtime(&tt_now)) != NULL){
        y = now->tm_year + 1900;
        m = now->tm_mon + 1;
        d = now->tm_mday;
    }
Ну и т.д.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от kirk_johnson

strftime() выводит строку же. А тут нужны числовые значения. Зачем? Ну мало ли задач. Может быть, например, я хочу сделать

switch (m){
case 12:
case 1 ... 2: puts("Сейчас зима.");
              break;
case 3 ... 5: puts("Сейчас весна.");
              break;
case 6 ... 8: puts("Сейчас лето.");
              break;
case 9 ... 11: puts("Сейчас осень.");
              break;
default: puts("Сейчас неизвестное время года.");
}

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от kirk_johnson

Это только один из кучи возможных примеров. Могу привести другой, где задействуются все три переменные. Например, есть у меня программа, которая выводит сколько мне лет. На C она выглядит так:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>

int
main()
{
    int y, m, d, x;
    struct tm *now;
    time_t tt_now = time(0);

    if ((now = localtime(&tt_now)) != NULL){
        y = now->tm_year + 1900;
        m = now->tm_mon + 1;
        d = now->tm_mday;
        if (m < 4 || (m = 4 && d < 2)) x = y - 1985;
        else x = y - 1984;
        printf("The current age of Saahriktu is %d years.\n", x);
        return 0;
    }
    else puts("Some error detected.");
    return 0;
}
Она же на Паскале:
program ageofsaahriktu;
uses sysutils;
var
        y, m, d: Word;
        x: Integer;
begin
        DecodeDate(Date(), y, m, d);
        if (m < 4) or ((m = 4) and (d < 2)) then x := y - 1985
        else x := y - 1984;
        writeln('The current age of Saahriktu is ', x, ' years.');
end.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Она же на Паскале:

program AgeOfSaahriktu;
uses SysUtils;
var y, m, d: Word;
begin
  DecodeDate(Date, y, m, d);
  WriteLn('The current age of Saahriktu is ', 
    y - 1984 - Ord((m < 4) or (m = 4) and (d < 2)), ' years.');
end.
bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от seiken

Чтобы можно было пo-старому преподавать основы программирования на Паскале?

Почему бы и нет? Если хочешь отпугнуть человека от программирования навсегда, покажи ему сишные строки.

K22
()
Ответ на: комментарий от hateyoufeel

Вот тебе паттерн матчинг для строк на C++

Неудобные костыли. Вот если бы возможность задавать case'ы по строкам была бы в базовой функциональности языка как это реализовано в Паскале...

можно взять Haskell

Не всем нужен Haskell. Однако, я же ни разу не против того, что он кому-то удобен. Удобен - пожалуйста, юзайте.

А ряду людей удобнее Паскаль.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

возможность задавать case'ы по строкам была бы в базовой функциональности языка как это реализовано в Паскале...

К слову, case ... of по строковому селектору для Паскаля штука не сильно стандартная и добавлена в Delphi/FPC не так и давно (считая относительно возраста языка от публикации Никлауса Вирта).

bormant ★★★★★
()
Ответ на: комментарий от Deleted

А там хештейбл получается?

Для строк не проверял, а для ординалов зависит от количества вариантов и их распределения по интервалу.

bormant ★★★★★
()
Ответ на: комментарий от Deleted

Для коротких вариантов — перечень сравнений:

function Test(const num: Integer): Integer;
begin
  Test := -1;
  case num of
    0: Test := 0;
    2: Test := 3;
    5: Test := 5;
  end;
end;

test(smallint):
        movw    $-1,%ax
        testw   %di,%di
        jl      .Lj8
        testw   %di,%di
        je      .Lj9
        subw    $2,%di
        je      .Lj10
        subw    $3,%di
        je      .Lj11
        jmp     .Lj8
.Lj9:
        movw    $0,%ax
        jmp     .Lj7
.Lj10:
        movw    $3,%ax
        jmp     .Lj7
.Lj11:
        movw    $5,%ax
.Lj8:
.Lj7:
        movswl  %ax,%eax
        ret

Можно поиграться там:
https://godbolt.org/z/SjFAcK

bormant ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.