Есть ли у Паскаля будущее?

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Ответить
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

debi12345 писал(а):Но цикловые переменные бы не помешали.


а смысл? Счетчики цикла можно встроить в сам цикл, а остальное только будет путать.
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

А вместо этого опция "-Fcutf8" указывает принудительно на кодировку самого файла, что опять же достаточно кривое решение.
Алекс, не надо придираться :) UTF8-редактор - сейчас стандарт де-факто. Вставить "-Fcutf8" с мэйкфайл - рука не отсохнет. Нет в ФПЦ проблем ни со строками, ни с юникодом. А вот в С/С++ с этим полный кошмар.

Добавлено спустя 1 минуту 5 секунд:
а смысл? Счетчики цикла можно встроить в сам цикл, а остальное только будет путать.

Лень скроллиться в VAR-секцию и обратно :) Пустая трата времени.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

carrots писал(а):Не забывайте, сто C# и Java это что-то между интерпретируемыми языками и компилируемыми, которые исполняются виртуальной машиной, которая помимо того что тормозит ужасно еще и памятью управляет как душе угодно. В результате код страшно медленный, а ресурсов жрет не мерено.


Не согласен. Оверхед есть, разумеется, но в Вашем случае, скорее всего проблема архитектурная. Дайте угадаю - много мелких объектов? :D

carrots писал(а):Мне наоборот кажется что в freepascal принципиально не хотят подрожать c++, даже встроить очевидно удобные вещи такие как объявление переменных в любом нужном месте, а в остальном скорее наоборот с++ стараются сделать вторым паскалем, а получается недопаскаль

:D :D :D Мне кажется Вы плохо знакомы с историей Паскаля.

carrots писал(а):Предлагают в стандарт 2014 c++ добавить динамические массивы, которые в паскале с незапамятных времен.


Гм, а это что?

Код: Выделить всё

int *mas = new int[10];

В Паскале динамических массивов изначально не было, их делали примерно так же как в С, т.е. на указателях. Либо за счет каста к соответствующему типу с отключением проверки диапазона. Например

Код: Выделить всё

{$R-}
type TDinArray=array [0..0] of integer;

var data:pointer;
      size:Integer;

begin
 size:=100;
 Getmem(data, sizeOf(integer)*size);
 ...
 TDynArray(data^)[2]:=5;
 ...
end.

:D
В общем Вы неправы.
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

int *mas = new int[10];

Без счетчика ссылок, без ресайзинга...

Добавлено спустя 2 минуты 47 секунд:
Кроме того, в ФПС довольно криво реализованы автоматические преобразования кодировок, в отличие от Дельфей, где одновременно работая и с UnicodeString и c AnsiString
Зачем вообще работать с AnsiString ? Чтобы иметь проблемы переносимости ?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

debi12345 писал(а):Лень скроллиться в VAR-секцию и обратно :) Пустая трата времени.


использую для этих целей внешний текстовый редактор или создаю в среде текстовый файл для заметок.
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

в каком типе хранить строковые константы

эти лучше всего в UCS2 - как делается в MSE :

Код: Выделить всё

unit mseconsts_ru;
{$ifdef FPC}{$mode objfpc}{$h+}{$endif}
interface
uses
 mseconsts,msestrings,sysutils;
 
implementation
const
 ru_modalresulttext: defaultmodalresulttextty = (
  '',                                             //mr_none => Nichego
  '',                                             //mr_canclose =>
                                                  //Mozhno zakryt`
  '',                                             //mr_windowclosed =>
                                                  //Okno zakryto
  '',                                             //mr_windowdestroyed =>
                                                  //Okno udaleno
  '',                                             //mr_escape
  '',                                             //mr_f10
  '',                                             //mr_exception =>
                                                  //Neozhidannaya situatsiya
  '&'#1054#1090#1084#1077#1085#1080#1090#1100 ,   //mr_cancel => &Otmenit`
  '&'#1055#1088#1077#1088#1074#1072#1090#1100 ,   //mr_abort => &Prervat`
  '&'#1043#1086#1090#1086#1074#1086 ,             //mr_ok => &Gotovo
  '&'#1044#1072 ,                                 //mr_yes => &Da
  '&'#1053#1077#1090 ,                            //mr_no => &Net
  '&'#1042#1089#1077 ,                            //mr_all => &Vse
  #1053'&'#1080#1082#1072#1082#1080#1077 ,        //mr_noall =>  N&ikakie
  #1053#1077#1074#1072'&'#1078#1085#1086,         //mr_ignore => Neva&zhno
  '&Skip',    //mr_skip
  'Skip &all' //mr_skipall
 );
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

debi12345 писал(а):Лень скроллиться в VAR-секцию и обратно :) Пустая трата времени.


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

PS А кто такой Мартин? Он откуда?
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

А кто такой Мартин? Он откуда?

Разработчик MSEide+MSEgui. Швейцария.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

debi12345 писал(а):Разработчик MSEide+MSEgui. Швейцария.


Откуда он знает русский язык? Или он использует переводчик? Т.е. он не из "бывших наших".
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

Или он использует переводчик?

Ага :)

Т.е. он не из "бывших наших".

Немецко-говорящий швейцарец. Здесь пишет по-английски под ником "mse".
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

debi12345 писал(а):Немецко-говорящий швейцарец. Здесь пишет по-английски под ником "mse".


Дело пишет товарищ. Нужно сбросить груз "легаси" и Делфи совместимости. Сменить синтаксис, структуру библиотек, в общем нужен новый паскаль.
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Mikhail писал(а):Дело пишет товарищ. Нужно сбросить груз "легаси" и Делфи совместимости. Сменить синтаксис, структуру библиотек, в общем нужен новый паскаль.


С точки зрения развития языка - да, правильно. С точки зрения выживаемости... Увы, ситуация такова, что проект жив лишь поскольку интересен дельфи-программистам. Потому искусственно поддерживается слепое следование модели прототипа. Однако, вот будет полноценный уникодный компилятор, как в дельфи тип string приравняется к unicodeString... Сколько времени под изменения придется переписывать лазарус и его компоненты, если учесть что на utf8 с ascii его перегоняли лет шесть.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

SSerge писал(а):Сколько времени под изменения придется переписывать лазарус и его компоненты, если учесть что на utf8 с ascii его перегоняли лет шесть.

Еще одно подтверждение ущербности архитектуры LCL и RTL FreePascal. :(
alexey38
долгожитель
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Сообщение alexey38 »

debi12345 писал(а):Алекс, не надо придираться UTF8-редактор - сейчас стандарт де-факто. Вставить "-Fcutf8" с мэйкфайл - рука не отсохнет.

Я говорю не о том, что существуют костыли, в т.ч. удобные костыли. Я говорю о том, что в тот момент, когда в ФПС делали уникодовские строки, и еще намного раньше делали однобайтовые строки, то мало пошевелили мозгами. Юниксовая долбанутость совсем вышибает мозги, кем нужно было быть, чтобы кодировку файла использовать как обозначение типа строковой константы????

Тип констант должен определяться только самим текстом программы, но ни как ни кодировкой файла. Я могу исходники держать хоть в виде картинки TIFF, хоть в виде распечатки на бумаге, хоть в виде речи в mp3-файле (вдруг я слепой и без рук и пишу программы надиктовывая их на микрофон). Могу хранить в однобайтовой кодировки, могу в UTF8, могу в UTF16, могу в UTF32, могу в MS Word, могу в Libre Write. Какая разница?
debi12345 писал(а):Зачем вообще работать с AnsiString ? Чтобы иметь проблемы переносимости ?

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

В отличие от ФПС, Дельфовская команда отработала с уникодом по человечески, очень продуманно и эффективно. Одномоментно выпустив нормальную рабочую версию (по-моему в 2009 году).
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

всё очень плохо
Ответить