LINUX.ORG.RU

Вышел Lazarus 3.0

 ,

Вышел Lazarus 3.0

2

4

Команда разработчиков Lazarus рада сообщить о выпуске Lazarus 3.0 — интегрированной среды разработки для Free Pascal. Этот релиз по-прежнему собирается компилятором FPC 3.2.2.

В этом выпуске:

  • добавлена поддержка Qt6, основанная на версии 6.2.0 LTS; Минимальная версия Qt для lazarus 3.0 — 6.2.7;
  • полностью переработана привязка Gtk3;
  • для Cocoa исправлены многочисленные утечки памяти и реализована поддержка многомониторных конфигураций;
  • добавлена подсветка синтаксиса для PasDoc;
  • исправления и улучшения для компонентов TCustomImageList, TTaskDialog, TSpeedButton и других.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: Virtuos86 (всего исправлений: 5)
Ответ на: комментарий от MOPKOBKA

А что такое writeln? Почему не writeline? Почему не write line? Почему end и end с точкой? Почему где то begin end есть а где то нету?

А почему «жи» и «ши» пишется через «и»? :) А почему while, а не whl или wl? Аргументы кончились? :)

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

Что-то Вы совсем зарапортовались. :)

А тебе объяснили почему нужен begin?

Какое это имеет отношение к навыкам реализовывать алгоритмы?

Тупо больше информации, и она качественнее, и разнообразнее, есть много инструментов, есть много примеров кода, можно открыть почитать опенсурсный проект, а что читать на паскале? Исходники лазаруса?

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

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

У Вас совершенно не правильное мнение. На производстве полно кода на Паскале, тем более в 90-е.

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

А тебе объяснили почему нужен begin?

begin это начало программы.

Тупо больше информации, и она качественнее, и разнообразнее, есть много инструментов, есть много примеров кода, можно открыть почитать опенсурсный проект, а что читать на паскале? Исходники лазаруса?

По Паскалю море качественной литературы и исходных текстов.

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

По Паскалю море качественной литературы и исходных текстов.

Можно узнать, эти «исходные тексты» во что то собираются? А то я из программ на паскале знаю только CudaText. А зная C/C++ можно читать исходники ядер, плееров, файловых менеджеров, и всего такого.

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

Нужно. Иначе регулярно встречаю персонажей для которых смена IDE уже проблема.

PS Кстати, а знание таблицы умножения нужно?

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

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

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

PS Кстати, а знание таблицы умножения нужно?

Если что то нужно, то сразу есть ответ зачем, а вместо таблицу умножения лучше научиться как работать на калькуляторе, это намного эффективнее.

Нужно. Иначе регулярно встречаю персонажей для которых смена IDE уже проблема.

Как от смены IDE поменяется std::println? Не хочу уходить в тему IDE.

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

Если что то нужно, то сразу есть ответ зачем, а вместо таблицу умножения лучше научиться как работать на калькуляторе, это намного эффективнее.

А писать, тоже не нужно?

Как от смены IDE поменяется std::println? Ну, например, там будет другой шаблон приложения. :)

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

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

Многие приходят в программирования, начиная с создания модов для игр, например с создания модов для Minecraft на Java, речь про детей, хотя конечно никакой разницы между 8 годами и 80 особо нету, если человек здоров.

Вот такой у этих модов begin, end, и что то никто не впадает в ступор

https://github.com/Bukkit/SamplePlugin/blob/master/src/main/java/com/dinnerbo...

Вот уже скорее сам writeln('hello world')

https://github.com/Bukkit/SamplePlugin/blob/master/src/main/java/com/dinnerbo...

это все один проект, просто разные файлы

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

Это как изучать арифметику по книжке по квантовой электродинамике.

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

А писать, тоже не нужно?

На бумаге? Наверное кому то нужно, есть же наверное у кого то такие условия, что бумага безальтернативна, а так конечно если есть возможность, лучше на клавиатуре печатать.

Как от смены IDE поменяется std::println?
Ну, например, там будет другой шаблон приложения. :)

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

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

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

Кто перенесет шаблоны? Сам этот недопрограммист что-ли? :)))

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

Ну не смогут такие персонажи ничего вписать. Часто даже опечатку найти не могут.

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

«Я вам не скажу за всю Одессу, вся Одесса очень велика», но в школьной математике, и математике за пределами физмата такого символа нету. Хотя в вике пишут, что вроде могут использовать вместо ≜. Опять же, Паскалю с нуля никого не учил, только Бейсику и, однажды, SQL (с которым как раз проблем не было, хотя возможно просто обучаемый был восприимчивый), но да, двоеточие по идее должно снимать этот вопрос.

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

А в паскале begin. Про begin и include говорим что это начало программы, все.

Уже неверно. begin – простое слово на ангельском, означает начало блока операторов. Инклюды же вообще иное.

заучить #include как какую то магию это очень просто

В обучении НЕ ДОЛЖНО быть неясной обучаемому магии. Потому в начальной школе НЕТ учебников с деепричастными и причастными оборотами в тексте и т.д.

они могут часто думать что #include добавляют функции в язык, или что это подключение библиотеки, ну им и не нужно для начала знать что это.

Для начинающего это звучит как не несущий смысловой нагрузки белый шум.

C/С++ намного более выразительнее

Вопрос с выразительностью НЕ стоит, стоит вопрос с более ПРОСТО и ЯСНО.

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

Предложите учащимся выбрать между эрзянским и мокша. Куда они вас пошлют?

Кто то бы выбрал паскаль, кто то С++.

Решать будут королевской битвой? Кстати, никто в школе не имеет возможности выбрать себе иностранный, разве что третий факультативно. Максимум – выбрать нужную школу.

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

А что такое writeln? Почему не writeline? Почему не write line? Почему end и end с точкой?

А потому что синтаксис ЕДИНООБРАЗЕН для. Про енд с точкой я УЖЕ ответил, одно слово – одна команда, потому никаких write line, кстати, правильнее было бы write new line.

Почему где то begin end есть а где то нету?

Если хотите, ставьте везде, не запрещено.

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

А что такое writeln? Почему не writeline?

Потому что на стародавних машинах в целях экономии памяти длины идентификаторов имели ограничение.

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

Уже неверно. begin – простое слово на ангельском, означает начало блока операторов. Инклюды же вообще иное.

И?

В обучении НЕ ДОЛЖНО быть неясной обучаемому магии. Потому в начальной школе НЕТ учебников с деепричастными и причастными оборотами в тексте и т.д.

Тогда нужно начинать с транзисторов.

Для начинающего это звучит как не несущий смысловой нагрузки белый шум.

Как и begin end.

Вопрос с выразительностью НЕ стоит, стоит вопрос с более ПРОСТО и ЯСНО.

Почему? Я считаю его более простым.

Кстати, никто в школе не имеет возможности выбрать себе иностранный

Никогда не слышал о таком, все выбирали.

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

А потому что синтаксис ЕДИНООБРАЗЕН

Вообще нет.

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

#include;

Что это такое и что оно делает в программе?

return 0;

Почему нуль? Что будет, если поставить 1.5?

P.S. Почему return 0; } ? Почему не просто return 0;?

end. ставиться ДЕЙСТВИТЕЛЬНО в конце текста программы, тогда как return 0; можно воткнуть куда угодно в main().

Т.е. прога на Паскале уже структурой исходного кода существеннее яснее, чем си-подобная клинопись.

Блок описаний:

  • имя программы
  • константы
  • типы пользователя
  • переменные
  • процедуры и функции

Блок операторов (собственно, запись алгоритма; идёт ОТДЕЛЬНО от структур данных) между begin и end. Причём если треба вставить несколько операторов там, где синтаксис требует единственного оператора, их так же обрамляем begin и end, никаких int main() в for.

Самое важное: не учат детей Паскалю, т.е. не должны учить, как не должны учить Си или Питону. Сколько школьников пойдет в программисты? 1 из 100 в лучшем случае. Этот 1 и будет учить ЯП, остальные должны освоить алгоритмические конструкции, способ их записи, «пощупать» разницу между исходным кодом и исполняемым, осознать трудоёмкость работы программиста.

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

Что это такое и что оно делает в программе?

А что begin делает? Почему нельзя написать start? Почему может быть несколько begin?

Хватит задавать глупые вопросы.

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

А что begin делает?

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

Почему нельзя написать start?

Потому же, почему нельзя написать про гусеницу «побежала». ЯП – язык, то, что слова в языке имеют определённый смысл и должны использоваться в соответствии с этим смыслом, человеки понимают на этапе овладения речью. Т.е. годам к 5ти.

Вопрос про инклюд законен, в том числе от учеников. Если вы не способны ответить на него ПОНЯТНО для нулёвок в программировании за 2 минуты, то вы тем самым признаёте НЕПРИГОДНОСТЬ всех ваших си, с++ или джав для обучению ПРОГРАММИРОВАНИЮ на нулевом уровне.

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

Да (и, собственно, после его ухода из Borland Delphi стало тем, чем стало)

be_nt_all ★★
()
Последнее исправление: be_nt_all (всего исправлений: 1)
Ответ на: комментарий от MOPKOBKA
MODULE Areas;

(* Coronado Enterprises - 1987 *)

FROM Terminal2 IMPORT WriteString, WriteChar, WriteLn, ReadChar,
                      WriteReal, ReadReal;

VAR InChar, CapInChar : CHAR;

(* ************************************************ Area Of Square *)
PROCEDURE AreaOfSquare;
VAR Length, Area : REAL;
BEGIN
   WriteString("Square    Enter length of a side : ");
   ReadReal(Length);
   Area := Length * Length;
   WriteLn;
   WriteString("The area is ");
   WriteReal(Area,15);
   WriteLn;
END AreaOfSquare;

(* ********************************************* Area Of Rectangle *)
PROCEDURE AreaOfRectangle;
VAR Width, Height, Area : REAL;
BEGIN
   WriteString("Rectangle    Enter Width : ");
   ReadReal(Width);
   WriteLn;
   WriteString("Enter Height ");
   ReadReal(Height);
   Area := Width * Height;
   WriteString("      The area is ");
   WriteReal(Area,15);
   WriteLn;
END AreaOfRectangle;

(* ********************************************** Area Of Triangle *)
PROCEDURE AreaOfTriangle;
VAR Base, Height, Area : REAL;
BEGIN
   WriteString("Triangle    Enter base : ");
   ReadReal(Base);
   WriteLn;
   WriteString("Enter height : ");
   ReadReal(Height);
   Area := 0.5 * Base * Height;
   WriteString("      The area is ");
   WriteReal(Area,15);
   WriteLn;
END AreaOfTriangle;

(* ************************************************ Area Of Circle *)
PROCEDURE AreaOfCircle;
VAR Radius, Area : REAL;
BEGIN
   WriteString("Circle      Enter Radius : ");
   ReadReal(Radius);
   WriteLn;
   Area := 3.141592 * Radius * Radius;
   WriteString("The area is ");
   WriteReal(Area,15);
   WriteLn;
END AreaOfCircle;

(* ************************************************** Main Program *)
BEGIN
   REPEAT
      WriteLn;
      WriteString("Input the first letter of the selection");
      WriteString("and press Enter.");
      WriteLn;
      WriteString("Select shape: Square Rectangle Triangle ");
      WriteString("Circle Quit");
      WriteLn;
      WriteString("Requested shape is ");
      ReadChar(InChar);
      CapInChar := CAP(InChar);           (* Get capital of letter *)
      CASE CapInChar OF
        'S' : AreaOfSquare;    |
        'R' : AreaOfRectangle; |
        'T' : AreaOfTriangle;  |
        'C' : AreaOfCircle;    |
        'Q' : WriteString("Quit program");
              WriteLn;
      ELSE
         WriteChar(InChar);
         WriteString(" Invalid Character ");
         WriteLn;
      END;
   UNTIL CapInChar = 'Q';
END Areas.

Так лучше?

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

«Я вам не скажу за всю Одессу, вся Одесса очень велика», но в школьной математике, и математике за пределами физмата такого символа нету.

Вот и не надо говорить за всю Одессу. Обозначение «:=» нередко встречается в математических текстах ровно по той же причине, по какой его ввели в Паскале, - чтобы не путать присвоение значения с равенством.

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

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

#include разберем позже, пока не обращаем внимание, это начало программы типа.

Потому же, почему нельзя написать про гусеницу «побежала».

Поэтому и пишем #include, так надо.

Вопрос про инклюд законен, в том числе от учеников. Если вы не способны ответить на него ПОНЯТНО для нулёвок в программировании за 2 минуты, то вы тем самым признаёте НЕПРИГОДНОСТЬ всех ваших си, с++ или джав для обучению ПРОГРАММИРОВАНИЮ на нулевом уровне.

Просто бредятина, вообще никак не связанная с рассуждением, корчевателя выключай. Я тоже так умею: Если вы не можете написать компилятор паскаля за 2 минуты на ассемблере, то вы подтверждаете его НЕПРИГОДНОСТЬ.

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

Не понял что должен показать мне этот код, совсем.

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

Давай напрямую, у вас с вторым челом который тут топит за паскаль, очень странные аргументы. Почему 2 минуты, почему #include должен объяснятся на первом уроке? Я понимаю почему, потому что вам так кажется правильным, но слабовато для того что бы делать паскаль стандартным, и живые языки с кучей материалов и примеров не пущать.

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

Это не зеркалирование это именно что глупость.

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

почему #include

Вот именно, почему взять и вставить содержимое файла в место вызова целиком, в 2023-м году, вместо того чтобы импортировать символы, содержащиеся в модуле? Даже в Питоне с этим получше.

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

В питоне как раз #include и есть, интерфейсы были хороши в 1970х, сейчас вообще хорошо бы позволить компилятору ради оптимизации прошерстить все, и построить оптимальный код. Ну и напомню что в C++ они есть.

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

Я рад. Если := обозначает в некоторых разделах математики именно присваивание (что логично, Algol-60, прямым продолжением которого и стал Паскаль, таки в основном математики придумали), то ни у одного математика использование этого символа в таком качестве когнитивного диссонанса не вызовет. Ч.Т.Д.

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

#include разберем позже, пока не обращаем внимание, это начало программы типа.

Т.е. вы сделали сразу 2 ошибки, недопустимые в преподавании, (а) использовали нечто непонятное, (б) соврали о.

Просто бредятина, вообще никак не связанная с рассуждением

Мы говорим о пригодности языков к иллюстрированию на них алгоритмов при введении в программирование. Что вам не ясно? Что всякие си для этого просто непригодны по очень многим причинам, одна из которых – высокий порог вхождения?

не можете написать компилятор паскаля за 2 минуты на ассемблере, то вы подтверждаете его НЕПРИГОДНОСТЬ

Непригодность чего для чего? Ассемблера для написания компиляторов? Ну, тут я соглашусь, компиляторы надо писать на Си.

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

Т.е. вы сделали сразу 2 ошибки, недопустимые в преподавании, (а) использовали нечто непонятное, (б) соврали о.

Так ты тоже соврал, begin это не начало программы, ведь далее он будет использоваться в if, for. А еще программа начнется со _start. И ты даже не объяснил зачем оно должно быть, почему без него нельзя?

Мы говорим о пригодности языков к иллюстрированию на них алгоритмов при введении в программирование.

С/C++ отлично подходят.

Что всякие си для этого просто непригодны по очень многим причинам, одна из которых – высокий порог вхождения?

В чем он измеряется? Где я могу увидеть точные значения для С и паскаля, ты же это не выдумал, правда?

Непригодность чего для чего?

Для обучения.

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

Почему 2 минуты, почему #include должен объяснятся на первом уроке?

Я вам УЖЕ это объяснил: потому что НЕ должно быть чего-то, что учитель НЕ может объяснить кратко и понятно «прямо сейчас». Это не программирование, это МЕТОДОЛОГИЯ обучения.

Потому если у нас есть 2 инструмента, один из которых не имеет «магии», а второй просто наполнен ею, то выбор ДЛЯ ОБУЧЕНИЯ очевиден.

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

Какой смысл в «примерах», если для их понимания придётся сначала изучить то, что они, примеры, должны были бы проиллюстрировать?!

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

так ты тоже соврал, begin это не начало программы

Не-а, Я такого НИГДЕ не утверждал.

Вы ПРЕКРАСНО демонстрируете те сложности, которые приходится постоянно преодолевать учителю, а именно вы демонстрируете упорное НЕЖЕЛАНИЕ понимать объяснения.

А еще программа начнется со _start. И ты даже не объяснил зачем оно должно быть, почему без него нельзя?

Это вы вообще оп чём?!

С/C++ отлично подходят

Вообще не подходят. Если в Паскале цикл со счётчиком – это цикл со счётчиком, то в Си в for можно вставлять какие угодно условия и не использовать счётчик.

В чем он измеряется?

Во времени между началом изучения ПРОГРАММИРОВАНИЯ и моментом, когда твоя первая программа заработала и ты понимаешь, что именно делает каждая «закорючка» в программе. Для Си это время равно времени, за которое индивид закончил введение в программирования и перешёл к изучению конкретных ЯП и следующих после процедурной концепций программирования. Т.е. это в среднем 1 год усиленных занятий, а для Паскаля это 45 мин.

Для обучения.

Я согласен, ассемблер не пригоден для обучения, его надо учить отдельно много позже.

mister_VA ★★
()
Последнее исправление: mister_VA (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.