LINUX.ORG.RU

Lazarus 1.6.4

 , ,


2

3

Вышла новая версия свободной кроссплатформенной среды разработки на языке Object Pascal. Данная версия собрана при помощи Free Pascal версии 3.0.2 (предыдущая использовала 3.0.0).

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

Lazarus по функциональности сопоставим с некогда популярной проприетарной средой разработки Delphi, однако является кроссплатформенным (поддерживает Windows, GNU/Linux, FreeBSD и macOS).

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



Проверено: Shaman007 ()
Последнее исправление: sudopacman (всего исправлений: 2)

Ответ на: комментарий от NextGenenration

чем мучаться с неудобным языком.

Я так и не понял, в чём неудобность.

Недавно пришлось снекромантить древний код, написанный ещё на Delphi 3. И несмотря на то, что новых программ на паскале я не пишу уже лет 8, освоился быстро.

Единственное, что было реально неудобно после крестов - в крестах я привык переменные объявлять по необходимости и тут же инициализировать. А тут переменные объявляются только в начале блока. И то, надо посмотреть, может, в современном FPC уже и такое сделали, он ведь продолжает развиваться...

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

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

Подобное есть в PascalABC.NET. Но в FPC подобного (объявление переменной в произвольном месте внутри блока) по-прежнему избегают. Инициализация при объявлении добавлена довольно давно:

var
  a: Integer = 0;
  b: String = 'Hello world!';

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

И не поспоришь же. Школьников(да и вообще не программистов по профессии) надо обучать алгоритмизации с помощью самого простого относительно ученика способа. Сложность таки отталкивает.

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

Переменные из контекста внутри локальной функции видны.

Кстати, да, вот это мегаудобная фича.

Я как-то задолго до C++11 пытался сделать в программе на крестах подобие локальной функции - объявил внутри внешней функции класс с одним методом. И всё бы ничего, но вот переменных внешней функции она, естественно, не видела, что убивало половину смысла этой затеи.

hobbit ★★★★★
()

Единственная доступная для простого человека IDE под Linux - мининовость. Предзаказ на какой-то телефон, неясно зачем и кому нужный - новость полная. У вас логика сломалась.

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

С ES6 уже он приобретает человеческое лицо.

Позовите, когда он его приобретёт.

Плюс - ничего устанавливать не надо, просто открой браузер.

И хтмл заодно выучить, да.

Как альтернатива - Java, там все хорошо с синтаксисом, сразу приучает не говнокодить.

Хватит жиром брызгать.

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

Малым потреблением ram, охуенно удобным управлением памяти, интуитивно понятным синтаксисом. Мне, например, приятно видеть приложение с полноценным гуём, которое полноценно работает с базой данных и жрёт при этом АЖ 8 мб оперативки

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

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

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

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

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

А еще такое умеет из современных ЯП та же Scala, в которой вообще все, что угодно во все, что угодно можно вложить.

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

Как альтернатива - Java, там все хорошо с синтаксисом, сразу приучает не говнокодить.

Java выросла из Modula-2, который ты сам знаешь, чей потомок.

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

С ES6 уже он приобретает человеческое лицо.

Это непонятно чем компилить в ES5, да и попахивает как последние пхп. Тут typescript вполне так норм, но по сравнению со связкой kotlin/java все эти браузерные заморочки полное гавно. Что еще можно сказать о javascript мире, если в нем ошибки загрузки модулей пропадают без вести в сраных костылях заменителях модульности типа RequireJS. Сплошные бубны со всякими bowerами, либами, в которых у каждого свое понимание ООП и модулей и так далее. В общем надо будет наловчится кодить на котлине, тестить на jvm а потом, если настроение выдастся, выкатывать через бекенд в javascript (браузеры никто не отменял).

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

Ну-ну, университет Беркли ищет постдока с зп в 100к в год на 5 лет. Требуется знание стандарта f77 для «переписывания» одной софтины под ускоритель.

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

Подписываюсь. Очень часто вижу новость про какую-нибудь ерунду, которая МОЖЕТ понадобиться для полтора человека, аппрувят как полную. А что-то действительно важное - мининовость.

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

Я имел ввиду для обучения, внутри index.html накидать кода и сразу визуально увидеть как оно шевелится - самое то. А так в продакшене - лютый адЪ и зоопарк.

navrocky
()

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

А разбить на обычные функции никак?

А еще такое умеет из современных ЯП та же Scala

в данный момент я не знаком ни с одним из jvm языков

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

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

«Г» значит «годный»?

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

Локальные функции нужны для повышения читаемости программы. Они нужны только для выполнения операций, характерных только для этой функции или процедуры. Зачем им быть где-то ещё? Логично, если он и будут спрятаны в ней.

anonymous
()

Java выросла из Modula-2, который ты сам знаешь, чей потомок.

Откуда такие сведения?

The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

Это с педивикии.

А Модула-2 писал Вирт после Паскаля, который потом ушел в майкрософт писать Дотнеты и Сишарпы. Его присутствие там выдаёт странный кодстайл, когда методы пишутся с большой буквы.

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

Ну, насчёт Вирта в майкрософте — это ты погорячился.

А насчёт явы — вот, тоже с википедии:

Niklaus Wirth stated on a number of public occasions, that the Sun Java design team licensed the Oberon compiler sources a number of years prior to the release of Java and examined it: a (relative) compactness, type safety, garbage collection, no multiple inheritance for classes – all these key overall design features are shared by Java and Oberon.

Только не Модула-2, а Оберон.

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

Да, точно, это я прогнал по поводу Вирта в Майкрософт. Андерс Хейлсберг - автор Borlad Pascal же. Перепутал ._.

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

Есть у тебя в функции условно расчёт площади прямоугольника по координатам. Больше это нигде не надо. Заносишь это во вложенную функцию. В тексте основной просто пишешь a := area(p1, p2) если это часто встречается внутри функции то удобно. А ты думал? Прояви фантазию.

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

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

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

Зачем тогда делить функцию на части, если не хочешь чтоб эти части были видны снаружи?

Чтобы вызвать один и то-же кусок кода дважды с разными параметрами, при этом не копипастя и не извращаясь с циклами.

Нынче это решается через лямбды и замыкания.

navrocky
()

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

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

Есть у тебя в функции условно расчёт площади прямоугольника по координатам. Больше это нигде не надо. Заносишь это во вложенную функцию. В тексте основной просто пишешь a := area(p1, p2) если это часто встречается внутри функции то удобно. А ты думал? Прояви фантазию.

Я не вижу ничего плохого, если в классе где есть код для вычислеия площади будет видна функция для вычисления площади(извинте за многословие). Типа того

class SomeClass {
  double area(Point p1, Point p2) { ... }
  void SomeMethod() { ... a = area(p1, p2) ... }
  ...
}

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

если в классе где есть код для вычислеия площади будет видна функция для вычисления площади

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

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

пытаясь определить место между примитвно, нормально, переусложнённо я склоняюсь к последнему.

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

Зачем тогда делить функцию на части, если не хочешь чтоб эти части были видны снаружи?

Чтобы вызвать один и то-же кусок кода дважды с разными параметрами, при этом не копипастя и не извращаясь с циклами.

Нынче это решается через лямбды и замыкания.

Нынче (и последние лет N) это делается через модули и локальные (на уровня модуля) функции, которые снаружи не видны.

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

это делается через модули

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

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

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

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

автор которого ни в зуб ногой как работает ЭВМ, что такое тип данных, и вообще что делать
Но в мои школьные годы где-то 80% учащихся и так очень слабо представляли что за программы они пишут, хотя там был Паскаль

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

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

Это не ко мне, а к грёбаным разрабам, что в кассы пихают всякую фигню. По схеме стоит в качестве статикОЗУ винбондина - вместо неё впаян нувотон. Огребаем тучу непонятных глюков. и т.д. и т.п.

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

Когда-то читал про очередную олимпиаду, по написанию кусков кода оторванного от реальности. Задача: перевернуть строку. И тут у одного из экзаменаторов пригорает от кода вида «12345».reverse

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

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

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