The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз компилятора Free Pascal 2.4.0, opennews (??), 02-Янв-10, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


32. "Релиз компилятора Free Pascal 2.4.0"  –1 +/
Сообщение от skmdeveloper (??), 02-Янв-10, 20:36 
>вам шашечки или ехать?

Если хочется ехать то Паскаль не по адресу. Python, Ruby и прочие с динамической типизацией и автоматическим управлением памятью.

Ответить | Правка | Наверх | Cообщить модератору

39. "Релиз компилятора Free Pascal 2.4.0"  –1 +/
Сообщение от IGX (?), 02-Янв-10, 23:42 
Если ехать то C++ без вариантов.
Ответить | Правка | Наверх | Cообщить модератору

42. "Релиз компилятора Free Pascal 2.4.0"  –2 +/
Сообщение от dq0s4y71 (??), 03-Янв-10, 02:50 
>Если ехать то C++ без вариантов.

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

Ответить | Правка | Наверх | Cообщить модератору

46. "Релиз компилятора Free Pascal 2.4.0"  +1 +/
Сообщение от Logo (ok), 03-Янв-10, 03:52 
>Ну, Паскаль - тупой язык, но
>в целом преимуществ все равно получается больше. :(

И в чем же эта тупость проявляется?

Ответить | Правка | Наверх | Cообщить модератору

56. "Релиз компилятора Free Pascal 2.4.0"  –2 +/
Сообщение от dq0s4y71 (??), 03-Янв-10, 12:46 
>И в чем же эта тупость проявляется?

Ну, например, чтобы определить массив, нужно всегда точно знать количество элементов массива. Дали мне, например, таблицу кодов, которую мне надо "жестко" прописать в программе. Я пишу:

type
  TLocoRec = record
    Name: string;
    Code: Integer;
  end;

const
  LocoCodeTable: array [1..166] of TLocoRec = (
    (Name: '2М62'; Code: 539;),
    (Name: '2М62У'; Code: 579;),
    (Name: '2ТЭ10'; Code: 526;),

    //...

  );

Так вот, чтобы определить этот массив, мне нужно обязательно СОСЧИТАТЬ количество элементов и убедиться, что их ровно 166! Хорошо, что их "всего лишь" 166, а если бы их было полторы тысячи? О_о Теперь спецификация изменилась и несколько кодов выкинули, а несколько добавили. Опять надо все пересчитывать или производить сложения и вычитания. Бред... В Си и других языках можно просто написать LocoCodeTable[] и редактировать массив как угодно.

Ответить | Правка | Наверх | Cообщить модератору

59. "Релиз компилятора Free Pascal 2.4.0"  –1 +/
Сообщение от паскальщик (?), 03-Янв-10, 16:27 
> Хорошо, что их "всего лишь" 166, а если бы их было полторы тысячи?

Честно говоря, не вижу большой проблемы.
Делов-то:
type
  TLocoRec = record
    Name: string;
    Code: Integer;
  end;

  TLocoCodeTable = array of TLocoRec;

var

myarray: TLocoCodeTable;

function LoadTableFromCSV(filename: string): TLocoCodeTable;
И вообще, для связок name = value есть StringList. Там уже все реализовано тыщу лет назад.

А csv можно править через Excel/ОО. Так, имхо лучше.
Но от возможности писать
const
  LocoCodeTable: array of TLocoRec (...)
я бы тоже не отказался. ;)

Ответить | Правка | Наверх | Cообщить модератору

60. "Релиз компилятора Free Pascal 2.4.0"  +1 +/
Сообщение от dq0s4y71 (??), 03-Янв-10, 20:12 
>[оверквотинг удален]
>    Code: Integer;
>  end;
>
>  TLocoCodeTable = array of TLocoRec;
>
>var
>
>myarray: TLocoCodeTable;
>
>function LoadTableFromCSV(filename: string): TLocoCodeTable;

Зачем? Мне всего лишь нужно описать массив констант, а вы предлагаете мне вместо этого загружать CVS, который я должен буду таскать везде вместе с экзешником или прилинковывать к нему в виде ресурса. К тому же, мне не надо чтобы к этой таблице имел доступ любой чайник.

>И вообще, для связок name = value есть StringList. Там уже все реализовано тыщу лет назад.

А инициализировать его как? Опять загружать из внешнего файла? Или писать 166 раз LocoCodeTable.Values['...'] := '...'? А чтобы получить целое значение Code каждый раз вызывать StrToInt? Я уже не говорю о том, что это будет работать медленнее чем с обычным массивом...

>А csv можно править через Excel/ОО. Так, имхо лучше.

Ага, а еще это можно сделать как-нибудь через собственный COM-объект... :) Вот о чем я и говорю! Как только не приходится извращаться в Паскале вместо того, чтобы просто написать:

locorec_t mytable[] = {
    "2М62", 539,
    "2М62У", 579,
    //...
};

>Но от возможности писать
>const
>  LocoCodeTable: array of TLocoRec (...)
>я бы тоже не отказался. ;)

Да я и не против. Но зачем указывать размерность массива! Это же константы! У студентов, может быть, время есть их пересчитывать, а мне семью кормить надо! :)

Ответить | Правка | Наверх | Cообщить модератору

63. "Релиз компилятора Free Pascal 2.4.0"  –1 +/
Сообщение от anonymous vulgaris (?), 04-Янв-10, 00:47 
>Да я и не против. Но зачем указывать размерность массива! Это же
>константы! У студентов, может быть, время есть их пересчитывать, а мне
>семью кормить надо! :)

Вы не обессудьте, но проблема представляется несколько надуманной. Если бы мне это было постоянно нужно, то я бы написал утилитку для автоподсчета элементов и формирования кода для описания массива который бы потом закопипастил в исходник. А один раз можно и посчитать.

А другие претензии есть?

В Си кстати у массива размерности по существу просто и нет. Там массив по существу указатель, и это создает свои проблемы, про которые тоже можно поговорить.

Ответить | Правка | Наверх | Cообщить модератору

65. "Релиз компилятора Free Pascal 2.4.0"  +1 +/
Сообщение от dq0s4y71 (??), 04-Янв-10, 02:17 
>Если бы мне это было постоянно нужно, то я бы написал утилитку для автоподсчета элементов и формирования кода для описания массива который бы потом закопипастил в исходник.

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

>А другие претензии есть?

Есть, но высказывать их я больше не собираюсь - Паскаль от этого все равно не изменится. А вообще на эту тему есть классическая (правда, кое в чем уже устаревшая) статья Кернигана "Why Pascal is Not My Favorite Programming Language" http://www.lysator.liu.se/c/bwk-on-pascal.html

>В Си кстати у массива размерности по существу просто и нет. Там массив по существу указатель, и это создает свои проблемы, про которые тоже можно поговорить.

Вообще-то это не совсем так. Арифметика указателей и массивов в Си действительно одинаковая, но они суть разные вещи: http://c-faq.com/aryptr/aryptrequiv.html

Насчет проблем - согласен.

Ответить | Правка | Наверх | Cообщить модератору

66. "Релиз компилятора Free Pascal 2.4.0"  –1 +/
Сообщение от anonymous vulgaris (?), 04-Янв-10, 02:36 
>То есть, купив за несколько десятков тысяч рублей Делфи, я, вместо того чтобы работать, должен изготавливать самодельный костыль, который будет подсчитывать элементы массива вместо компилятора.

Зачем. Скачайте Лазаря бесплатно.

>(правда, кое в чем уже устаревшая) статья Кернигана "Why Pascal is
>Not My Favorite Programming Language" http://www.lysator.liu.se/c/bwk-on-pascal.html

Керниган создатель Си, ну как ему может нравиться Паскаль. А я писал на обоих языках и с ним не согласен. А это
Comparing C and Pascal is rather like comparing a Learjet to a Piper Cub - one is meant for getting something done while the other is meant for learning
мне просто смешно читать. Я как раз наоборот считаю - сделать это Паскаль, мозг посношать - Си.

>Вообще-то это не совсем так. Арифметика указателей и массивов в Си действительно
>одинаковая, но они суть разные вещи: http://c-faq.com/aryptr/aryptrequiv.html

Это только с точки зрения сишников есть, а с точки зрения паскалистов нет. Сравните аналогично указатели и массивы в Паскале, разница будет заметна. Один sizeof чего стоит. В общем то с точки зрения Паскаля в Си и строк нет. И это тоже создает массу проблем.

Ответить | Правка | Наверх | Cообщить модератору

68. "Релиз компилятора Free Pascal 2.4.0"  +1 +/
Сообщение от dq0s4y71 (??), 04-Янв-10, 04:43 
>Зачем. Скачайте Лазаря бесплатно.

То есть, я буду точно так же подсчитывать элементы массива, но теперь уже бесплатно? :)

>Я как раз наоборот считаю - сделать это Паскаль, мозг посношать - Си.

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

>Это только с точки зрения сишников есть, а с точки зрения паскалистов нет.

Если, как вы утверждаете, вы писали на обоих языках, то должны понимать, что нет "сишников" и "паскалистов". Есть студенты, которые знают один из этих языков, а второй не осилили. Такие понятия, как "массив", "указатель" и "строка", являются универсальными и в разных языках различается только их реализация. Например, в Паскале традиционно длина строки хранилась в нулевом символе, а в Си строка ограничивалась терминальным нулем. И это вовсе не означает, что "с точки зрения Паскаля" (или с какой-либо другой точки зрения) в Си нет строк. Что-то надоело мне сегодня объяснять прописные истины... :(

Ответить | Правка | Наверх | Cообщить модератору

77. "Релиз компилятора Free Pascal 2.4.0"  +2 +/
Сообщение от anonymous vulgaris (?), 05-Янв-10, 00:20 
>>Я как раз наоборот считаю - сделать это Паскаль, мозг посношать - Си.
>
>Вам показывают черное, а вы говорите: "белое". Вот как раз сделать на
>Паскале и не получается - приходится массив констант из отдельного файла
>загружать или дополнительные утилиты к компилятору писать :) Прав Керниган.

Вы привели 1 частный пример. Мне например это неудобств не доставляло. А примеров сишных проблем я могу вагон написать. Керниган не прав ни по одному из пунктов сейчас, и по многим неправ в 1981.

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

Я писал заметно больше чем на 2. А такое деление наблюдаю в жизни. Сишники это те кто игнорирует громадное количество сишных проблем.

>Есть студенты, которые знают один из
>этих языков, а второй не осилили.Такие понятия, как "массив", "указатель"
>и "строка", являются универсальными и в разных языках различается только их
>реализация.

Только указатель универсальное, с остальным далеко не все так просто.

>Например, в Паскале традиционно длина строки хранилась в нулевом символе,
>а в Си строка ограничивалась терминальным нулем. И это вовсе не
>означает, что "с точки зрения Паскаля" (или с какой-либо другой точки
>зрения) в Си нет строк.

Разница громадна. В 1 случае чтобы определить длину строки надо 1 чтение из памяти. Во 2 надо сканировать всю строку. Но сишники этого не понимают.

>Что-то надоело мне сегодня объяснять прописные  истины... :(

Вы их не можете объяснить, сишники их не знают.

Что до Кернигана, то посмотрим повнимательнее

-------


To close, let me summarize the main points in the case against Pascal.

Since the size of an array is part of its type, it is not possible to write general-purpose routines, that is, to deal with arrays of different sizes.

Неактуально. Open array parameters

In particular, string handling is very difficult.

Как бы не наоборот.

The lack of static variables, initialization and a way to communicate non-hierarchically combine to destroy the ``locality'' of a program - variables require much more scope than they ought to.

Инициализация есть, полезность Си-подобных static в процедурах сомнительна, и как бы не вредна.

The one-pass nature of the language forces procedures and functions to be presented in an unnatural order; the enforced separation of various declarations scatters program components that logically belong together.

Несерьезно.

The lack of separate compilation impedes the development of large programs and makes the use of libraries impossible.

Неактуально.

The order of logical expression evaluation cannot be controlled, which leads to convoluted code and extraneous variables.

Несерьезно. Скобки. Если кто не любит скобки, так, как люблю их я, тот сам себе злобный буратино.

The 'case' statement is emasculated because there is no default clause.

Неактуально. case...else...end;

The standard I/O is defective. There is no sensible provision for dealing with files or program arguments as part of the standard language, and no extension mechanism.

Неактуально.

The language lacks most of the tools needed for assembling large programs, most notably file inclusion.

Неактуально.

There is no escape.

Неактуально.


Ну и его не main points, типа

In particular, there are no bit-manipulation operators (AND, OR, XOR, etc.)

тоже давно неактуальны.


И вообще он выдумал какой-то сферический pure pascal в вакууме (In its pure form, Pascal...) и его критикует.

Да и его способность пронзать мыслью время не впечатляет

It has certainly influenced the design of recent languages, of which Ada is likely to be the most important.

ну и где теперь Ада и где Паскаль?

А уж это заявление, это вообще абзац.

This last point is perhaps the most important.  The language is inadequate but circumscribed, because there is no way to escape its limitations.  There are no casts to disable the type-checking when necessary.  There is no way to replace the defective run-time environment with a sensible one, unless one controls the compiler that defines the ``standard procedures.'' The language is closed.


Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

84. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от dq0s4y71 (??), 05-Янв-10, 03:05 
>Вы привели 1 частный пример. Мне например это неудобств не доставляло.

Кому-то и на потолке спать неудобств не доставляет. Не аргумент.

>А примеров сишных проблем я могу вагон написать.

Проблем у Паскаля от этого не убавится.

>Керниган не прав ни по одному из пунктов сейчас, и по многим неправ в 1981.

Необоснованное утверждение.

>Я писал заметно больше чем на 2. А такое деление наблюдаю в
>жизни. Сишники это те кто игнорирует громадное количество сишных проблем.

Я такого деления не наблюдаю. Возможно, вам следует больше общаться с опытными программистами.

>Только указатель универсальное, с остальным далеко не все так просто.

Звучит внушительно :)

>Разница громадна. В 1 случае чтобы определить длину строки надо 1 чтение
>из памяти. Во 2 надо сканировать всю строку. Но сишники этого
>не понимают.

Во-первых, "сишники" понимают, что длина каждой строки программе не нужна. Длины строк не нужны даже для многих операций со строками - достаточно знать длину результирующего буфера. Зачем плодить сущности? Во-вторых, строка может быть длиннее 255 символов. Сколько байтов тогда отводить под длину? Два? А может быть сразу четыре? И таскать эти байты с каждой строкой, независимо от того нужна программе длина строки или нет? А может быть еще добавить динамические строки и наплодить зоопарк строковых типов как в Делфи? Решение в духе Паскаля! Ну, и наконец, вы экономите микросекунды на подсчете длины строки, но для подсчета числа элементов массива у вас есть время даже для написания отдельной утилиты! Да уж, "сишникам" этого не понять! :)

>
>>Что-то надоело мне сегодня объяснять прописные  истины... :(
>
>Вы их не можете объяснить, сишники их не знают.
>

Эти "сишники" вас, похоже, чем-то обидели... :)

>Что до Кернигана, то посмотрим повнимательнее
>...
>Неактуально. Open array parameters
>...
>Неактуально.
>...
>Неактуально.

Для того, чтобы это все стало неактуально, пришлось создать современный Делфи-подобный Паскаль, который отличается от тогдашнего как небо от земли. А вот для Си это не было актуальным _никогда_, потому что он изначально был более последовательным языком и изменений претерпел гораздо меньше. Я помню еще как синтаксис Паскаля запрещал игнорировать возвращаемые функцией значения. То есть если ты вызываешь функцию и возвращаемое ей значение тебе не нужно, ты все равно должен объявить переменную и сделать присваивание! Вот идиотизм-то! Не удивительно, что пришлось потом придумать "расширенный синтаксис", чтобы избавиться от этой и других таких же замечательных фич... :)

>А уж это заявление, это вообще абзац.
>
>This last point is perhaps the most important.  The language is
>inadequate but circumscribed, because there is no way to escape its
>limitations.  There are no casts to disable the type-checking when
>necessary.  There is no way to replace the defective run-time
>environment with a sensible one, unless one controls the compiler that
>defines the ``standard procedures.'' The language is closed.

Абсолютно правильно! От ограничений Паскаля до сих пор никуда не денешься. Он даже препроцессором вменяемым до сих пор не обзавелся. И намертво привязан к своей run-time среде, что значительно сужает область его применения по сравнению с Си. Про проверку типов - даже у нынешнего Паскаля - и вспоминать не хочу! Парсить нетипизированные двоичные данные без геморроя просто не возможно.

Ответить | Правка | К родителю #77 | Наверх | Cообщить модератору

87. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от Павел Ишенин (?), 05-Янв-10, 07:47 
>[оверквотинг удален]
>не нужны даже для многих операций со строками - достаточно знать
>длину результирующего буфера. Зачем плодить сущности? Во-вторых, строка может быть длиннее
>255 символов. Сколько байтов тогда отводить под длину? Два? А может
>быть сразу четыре? И таскать эти байты с каждой строкой, независимо
>от того нужна программе длина строки или нет? А может быть
>еще добавить динамические строки и наплодить зоопарк строковых типов как в
>Делфи? Решение в духе Паскаля! Ну, и наконец, вы экономите микросекунды
>на подсчете длины строки, но для подсчета числа элементов массива у
>вас есть время даже для написания отдельной утилиты! Да уж, "сишникам"
>этого не понять! :)

AnsiString = 4 байта под длину. Ну и что? Надо без длины строку типа C - используй PAnsiChar.

> Про проверку типов - даже у нынешнего Паскаля
>- и вспоминать не хочу! Парсить нетипизированные двоичные данные без геморроя
>просто не возможно.

Не замечал проблем.

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

97. "Релиз компилятора Free Pascal 2.4.0"  +2 +/
Сообщение от anonymous vulgaris (?), 07-Янв-10, 03:51 
>Я такого деления не наблюдаю.

Игнорирование очевидных  фактов не проиводит к их исчезновению.

>>Только указатель универсальное, с остальным далеко не все так просто.
>Звучит внушительно :)

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

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

>Во-первых, "сишники" понимают, что длина каждой строки программе не нужна. Длины строк
>не нужны даже для многих операций со строками - достаточно знать
>длину результирующего буфера. Зачем плодить сущности? Во-вторых, строка может быть длиннее 255 символов.

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

>Сколько байтов тогда отводить под длину? Два? А может быть сразу четыре? И таскать эти байты с каждой строкой, независимо от того нужна программе длина строки или нет?

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

>может быть еще добавить динамические строки и наплодить зоопарк строковых типов как в Делфи?

1. старая строка для совместимости, и обычно уже не нужна

2. новая строка, которой для всех дел обычно и хватает (и длины там 4 байта, и динамическая она, и счетчик ссылок есть, и \0 для фанатов добавили)

3. строки совместимости с другими языками

>Решение в духе Паскаля! Ну, и наконец, вы экономите микросекунды на подсчете длины строки,

речь не только об экономии (может быть довольно значительной), а и о возможном buffer overflow

>но для подсчета числа элементов массива у вас есть время даже для написания отдельной утилиты!

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

А писать утилиты обычное дело для любого программиста, а на Паскале на цикл написание-отладка уходит меньше времени, чем на Си.

>Эти "сишники" вас, похоже, чем-то обидели... :)

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

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

Вы путаете введение объектности (Си и ++ тоже рядом не лежали) с косметическими изменениями введенными давным-давно (кстати Си тоже менялся). А кроме того, лично я считаю введение многих из этих новых возможностей лишним, усложняется синтакс, без особого выигрыша по сути. Вот я например категорически против планируемого Си-подобного изменения в определении массивов.

Да и Керниган, после длинных завываний, сообщил, что все что сделано на Си он успешно сделал и на Паскале (на самом старом заметьте), и даже длина библиотеки не возросла.

The finished programs are in general about the same number of source lines as their Ratfor equivalents.  At first this surprised me, since my preconception was that Pascal is a wordier and less expressive language.

И наконец Керниган то проблемы Си понимает, поэтому сам не предрекает ему большого будущего, а выступает за Аду. В реале же улучшили Паскаль.

>Я помню еще как синтаксис Паскаля запрещал игнорировать возвращаемые функцией значения. >То есть если ты вызываешь функцию и возвращаемое ей значение тебе не нужно, ты
>все равно должен объявить переменную и сделать присваивание! Вот идиотизм-то!

В этом случае в Паскале пользуют вместо function procedure. И ничего объявлять не надо. А если функция что-то возвращает, то это обычно код ошибки или другая нужная инфа, которую игнорировать нежелательно. Как кстати и в Си.

>Не удивительно, что пришлось потом придумать "расширенный синтаксис",

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

>Абсолютно правильно! От ограничений Паскаля до сих пор никуда не денешься. Он
>даже препроцессором вменяемым до сих пор не обзавелся.

Препроцессор на самом деле не часть языка. Это просто программа, заменяющая одни наборы символов на другие. Используйте любой, например cpp.

The cpp(1) program is the C language preprocessor. The Pascal compiler driver pc normally calls cpp(1) during the first pass of a Pascal compilation. If you use the -xl switch, pc calls the alternate preprocessor cppas. Then cpp(1) and cppas will operate on files having the extension .p or .pas.

>Про проверку типов - даже у нынешнего Паскаля - и вспоминать не хочу!

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

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

Не замечал особых проблем.

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

102. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от maks_s (?), 08-Янв-10, 02:44 
> В этом случае в Паскале пользуют вместо function procedure. И ничего объявлять не надо.

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

Я не знаю, как во ФриПаскале, а в Делфи функцию можно вызывать как процедуру и не надо плодить переменных чтоб сохранять возвращаемый ф-цией результат.
Другое дело (тоже опыт Делфи), что для необъектных var(или out)-параметров функции или процедуры нужно заводить переменные для возвращения туда вызываемой ф-цией/процедурой значений (для объектных можно передавать в параметр nil на свой страх и риск)

Ответить | Правка | К родителю #97 | Наверх | Cообщить модератору

103. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от maks_s (?), 08-Янв-10, 02:52 
> В этом случае в Паскале пользуют вместо function procedure. И ничего объявлять не надо.

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

Я не знаю, как во ФриПаскале, а в Делфи функцию можно вызывать как процедуру и не надо плодить переменных чтоб сохранять возвращаемый ф-цией результат.
Другое дело (тоже опыт Делфи), что для необъектных var(или out)-параметров функции или процедуры нужно заводить переменные для возвращения туда вызываемой ф-цией/процедурой значений (для объектных можно передавать в параметр nil на свой страх и риск)

Ответить | Правка | К родителю #97 | Наверх | Cообщить модератору

106. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 09-Янв-10, 02:57 
>Я не знаю, как во ФриПаскале, а в Делфи функцию можно вызывать
>как процедуру и не надо плодить переменных чтоб сохранять возвращаемый ф-цией
>результат.

Это все понятно. Но вы все таки дочитайте что там еще написано.

>А если функция что-то возвращает, то это обычно код ошибки или другая нужная инфа, которую игнорировать нежелательно.

Ответить | Правка | К родителю #103 | Наверх | Cообщить модератору

78. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от паскальщик (?), 05-Янв-10, 00:21 
>Вам показывают черное, а вы говорите: "белое". Вот как раз сделать на Паскале и не >получается - приходится массив констант из отдельного файла загружать или дополнительные >утилиты к компилятору писать :) Прав Керниган.

Вы же сами сказали - справочник может меняться. А если он может меняться, то он будет меняться. А если он будет меняться, вы будете перекомпилировать заново. В С/С++, кстати, тоже. Так что это баг вашей архитектуры, а не паскаля.

Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

80. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 05-Янв-10, 00:27 
>Так что это баг >вашей архитектуры, а не паскаля.

Да у него пары ключ-значение. Может вообще стоило бы в эту сторону поглядеть.

Ассоциативные структуры данных. SDL - первая библиотека структур данных для Delphi, которая предоставляет естественное, атомарное хранение ассоциаций. Например, добавление к ассоциативному массиву выполняется просто как map.putPair([10,'hello']). Операция размещает значение 'hello' c ключом 10 в ассоциативном массиве. Обратите внимание, что значения определяются без каких-либо объектных оберток. Мы можем также легко добавить объекты к ассоциации: map.putPair(['RossJudson',objTest]).


Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

85. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от dq0s4y71 (??), 05-Янв-10, 03:07 
>Вы же сами сказали - справочник может меняться.

Он может меняться только в процессе разработки. Спецификация может уточняться.

Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

104. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от maks_s (?), 08-Янв-10, 03:05 
>>Вы же сами сказали - справочник может меняться.
>
>Он может меняться только в процессе разработки. Спецификация может уточняться.

а почему прицепились именно к статическому массиву, раз возможны варианты? почему бы в таком случае не набивать динамический массив в initialization модуля, например?

Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

72. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от Павел Ишенин (?), 04-Янв-10, 09:26 
Как раз в fpc-pascal обсуждается возможность реализации синтаксиса избавляющего от явного декларирования диапазона массива. Так что, глядишь в следующей версии компилятора это может и появиться.
Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

76. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от dq0s4y71 (??), 04-Янв-10, 16:33 
>Как раз в fpc-pascal обсуждается возможность реализации синтаксиса избавляющего от явного декларирования
>диапазона массива. Так что, глядишь в следующей версии компилятора это может
>и появиться.

А к тому времени, глядишь, и Лазаря допилят до уровня Делфи, и Делфи со спокойной душой можно будет выкинуть на помойку... :)

Ответить | Правка | Наверх | Cообщить модератору

83. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 05-Янв-10, 01:07 
>Как раз в fpc-pascal обсуждается возможность реализации синтаксиса избавляющего от явного декларирования
>диапазона массива. Так что, глядишь в следующей версии компилятора это может
>и появиться.

А совместимоcть побоку? Или у Дельфина такие же планы?

Ответить | Правка | К родителю #72 | Наверх | Cообщить модератору

86. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от Павел Ишенин (?), 05-Янв-10, 07:42 
>А совместимоcть побоку? Или у Дельфина такие же планы?

Ну так совместимость для FPC = компилировать код Delphi. О наоборот должны в embarcadero заботиться.


Ответить | Правка | Наверх | Cообщить модератору

98. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 07-Янв-10, 03:55 
>Ну так совместимость для FPC = компилировать код Delphi.

А для меня - возможность иметь один код для обоих сред. А так кто нибудь использует новое определение и с использованием его кода в Дельфине будут проблемы.


Ответить | Правка | Наверх | Cообщить модератору

73. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от Logo (ok), 04-Янв-10, 11:13 
>>И в чем же эта тупость проявляется?
>
>Ну, например, чтобы определить массив, нужно всегда точно знать количество элементов массива.
>Дали мне, например, таблицу кодов, которую мне надо "жестко" прописать в
>программе. Я пишу:
>.........
>пересчитывать или производить сложения и вычитания. Бред... В Си и других
>языках можно просто написать LocoCodeTable[] и редактировать массив как угодно.

Нммм да...

Ну это тупость не Пакаля ;)

В том то и преимущество Паскаля, что все заранее нужно продумать и описать, а это приводит к более быстрому выходу работоспособного кода. Я думаю Вы не против поиздеваться над "быдлокодерством"? Так, вот, паскаль и воспитывает не "давить клаву", а думать :)

Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

75. "Релиз компилятора Free Pascal 2.4.0"  +1 +/
Сообщение от dq0s4y71 (??), 04-Янв-10, 16:29 
>В том то и преимущество Паскаля, что все заранее нужно продумать и описать, а это приводит к более быстрому выходу работоспособного кода.

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

>Так, вот, паскаль и воспитывает не "давить клаву", а думать :)

Думать и тупо пересчитывать элементы массива - по-моему, не одно и то же :)

Ответить | Правка | Наверх | Cообщить модератору

96. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от аноним (?), 06-Янв-10, 18:40 
ещё в прошлый раз отвечали, что очень тупо и неправильно жестко забивать в код программы варьирующиеся данные
Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

53. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от zhnavigatoremail (?), 03-Янв-10, 10:28 
Каждый день захожу на opennet.ru, читаю новости, комментировать воздерживался, но сейчас уже не смог «промолчать»… Для начала всем, кто свято верить в то, что паскаль нужен только для обучения или он «тупой», советую ознакомиться хотя бы с этим http://pascal.sources.ru/articles/058.htm, там немного, осилите. Опять же, это касается самого языка и его развития в виде других языков: Модула-2, Модула-3,  Оберон и так далее.
dq0s4y71 в своём посту ,не подозревая сам об этом очень точно дал определение процесса разработки ПО на территории бывшего СССР. Во-первых, это туча «компьютерщиков», в лучшем случае «программистов». Почему второе в кавычках читайте далее. Большинство из этой тучи работает в маленьких коллективах IT инфраструктуры , чаше даже являясь единственным представителем этой самой инфраструктуры. Если же человек несколько, то процесс чаще выглядит так: начальник(есть несколько человек в отделе, значит и начальник будет, дрюкать надо по цыпочке) дает задание, подчиненный выполняет. Всё вроде бы правильно, но только одно но! Во-первых, как дается задание: «Сделай так, что бы бухгалтерия мне больше не капала на мозги!», нет ни тех задания, а главное объективных критерий КАЧЕСТВА ПО. Этот программист просто «клепает» «аппендикс», «геморройчик» и т.д.(список этих слов продолжите сами). А теперь сакраментальный вопрос: что будет делать в таком случае этот «программист»? Клепать! А на чем? На том что, во-первых, он знает и, самое главное, на чем быстрее. Я опущу рассуждения о знаниях этого «программиста», что же касается языка программирования(точнее среды), то это будет скорее всего Access(да, он родимый), возможно Delphi, и наконец если он «гуру» то Builder C++.  Не могу удержаться от цитирования таких «гуру»: «Я пишу на Си, в билдере можно сделать все! Там есть STL.»  и так далее. Во-первых, 99.9% процента кода в билдере вместе с любимыми компонентами написаны на Delphi(да, для тек кто не в курсе объектный паскаль используемый в Delphi, также назвали языком Delphi)! А эти «гуру» вставляю этот 0.1% кода на С++(но не Си)! Теперь о STL, в основном это map, реже vector и то, только чтобы временно создать список простых типов. При этом строки из STL не используются, т.к в Delphi/Builder C++ есть свой тип строк AnsiString. На заметку «гуру», такую программу хр…н перенесёшь… ни то чтобы под другую платформу, компилятор не поменяешь даже под Win32. Так как работает этот «гуру»? А просто: метает как икру компоненты на форму, выставляет  свойства в дизайне, в общем, творит очередной «шедевр». Да, я ведь так подробно остановился на «гуру», а еще есть просто перцы, которым достаточно Access! Из всего это может сложиться впечатление, что я такой умный ,а больше половины дураков, вовсе нет! Я хочу сказать ,что уровень результата очень низок! И в первую очередь из-за того ,что НЕ ПРЕДЯВЛЯЮТСЯ НИ КАКИХ ВМЕНЯЕМЫХ ТРЕБОВАНИЙ К ПО. А это в первую очередь из-за того, что начальники служб IT, даже не подозревают что эти требования есть…
Подытожу: расширяйте кругозор, для программиста программирование – это ремесло, и чем больше вы будете знать, тем меньше будет таких  суждении «экспертов», про  Паскаль, в частности.
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

54. "Релиз компилятора Free Pascal 2.4.0"  –1 +/
Сообщение от Качатель (?), 03-Янв-10, 12:26 
Если программа выполняет возложенные на нее функции, то какая разница кем и как она сделана.
Ответить | Правка | Наверх | Cообщить модератору

64. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 04-Янв-10, 00:49 
>Если программа выполняет возложенные на нее функции, то какая разница кем и
>как она сделана.

В принципе да. Однако ее бывает нужно править и сопровождать. А иногда и переносить. И не всегда автору.

Ответить | Правка | Наверх | Cообщить модератору

62. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 04-Янв-10, 00:31 
>http://pascal.sources.ru/articles/058.htm

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

>касается самого языка и его развития в виде других языков: Модула-2, Модула-3,  Оберон и так далее.

Ну несерьезно поминать эту экзотику. Имеет смысл обсуждать только Object Pascal.

>все! Там есть STL.»

http://gurin.tomsknet.ru/delphidecal.html

>Во-первых, 99.9% процента кода в билдере вместе с любимыми компонентами написаны на Delphi

Точнее использованы из Дельфина. Но при чем тут это, ясно что при желании объектные модули полученные из разных языков собрать не трудно.

>тек кто не в курсе объектный паскаль используемый в Delphi, также назвали языком Delphi

Нет не назвали. Это Object Pascal и есть.

Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

70. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от zhnavigatoremail (?), 04-Янв-10, 08:44 
>Нет не назвали. Это Object Pascal и есть.

Using Delphi

Delphi is a high-level, compiled, strongly typed language that supports structured and object-oriented design. Based on Object Pascal, its benefits include easy-to-read code, quick compilation, and the use of multiple unit files for modular programming.

Это из справки DELPHI. Перевести, я надеюсь, не составит труда.
Так вот, Delphi - это язык, ОСНОВАННЫЙ на объектном Паскале, и он имеет имя собственное - DELPHI.

Ответить | Правка | Наверх | Cообщить модератору

79. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 05-Янв-10, 00:23 
>Так вот, Delphi - это язык, ОСНОВАННЫЙ на объектном Паскале, и он имеет имя собственное - DELPHI.

Каюсь виноват не успел за b[ маркетологами. А то все привык читать object pascal reference quide.


Ответить | Правка | Наверх | Cообщить модератору

71. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от zhnavigatoremail (?), 04-Янв-10, 08:57 
>Там однако прямо не сказано, что Паскаль это в общем то Алгол
>и есть. А это избавляет от многих неясностей.

Расширяйте кругозор. Почитайте вики, ресурсов хватает....

>Ну несерьезно поминать эту экзотику. Имеет смысл обсуждать только Object Pascal.

На счет Object Pascal смотрите пост выше.

>http://gurin.tomsknet.ru/delphidecal.html

Вы по диагонали сообщение читали? Если так, то у Вас плохо получается. Там была прямая речь, причем не моя.
И то, что есть SDL на свете, многие знают, в том числе и я.

>Точнее использованы из Дельфина. Но при чем тут это, ясно что при
>желании объектные модули полученные из разных языков собрать не трудно.
>Нет не назвали. Это Object Pascal и есть.

И опять, про ЯЗЫК DELPHI, смотрите пост выше...

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

81. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 05-Янв-10, 00:56 

>Расширяйте кругозор. Почитайте вики, ресурсов хватает....

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

Но речь то не об этом, а о том что Модулы и Оберон не стали популярными, поэтому их нельзя считать успешным развитием языка (я кстати сам посмотрев Модулу пользовать ее не стал, ну не глянулась как-то). А oblect pascal можно (кстати, я что в Лазаре пишу на языке Дельфина получается?) .

>Вы по диагонали сообщение читали?

Естественно по диагонали. Понимаете, у вас много букв и эмоций, а разбивки на абзацы нет.

>И то, что есть SDL на свете, многие знают, в том числе и я.

Вот и сказали бы просто о том, что данный сишник заблуждается и аналог stl есть. А то цитируете необоснованную критику, и на нее не отвечаете. Хотя реально полезность stl/sdl на мой взгляд несколько завышена.

Кстати, кто нибудь знает работает ли sdl в Лазаре?

Ответить | Правка | Наверх | Cообщить модератору

101. "Релиз компилятора Free Pascal 2.4.0"  +/
Сообщение от anonymous vulgaris (?), 08-Янв-10, 00:46 
>Кстати, кто нибудь знает работает ли sdl в Лазаре?

Нашел вот это (decal delphi container and algorythm library = sdl), но еще не попробовал

http://svn.freepascal.org/cgi-bin/viewvc.cgi/contrib/decal/?...

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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