Re[2]: почему я предпочёл паскалю си
От: DangerDen  
Дата: 06.01.05 11:23
Оценка:
Здравствуйте, Аноним, Вы писали:

ПОлностью согласен!

Когда я знал более менее паскаль, мне умные люди рассказывали как круто знать С и С++. Что его могут знать лишь избранные (я жил в маленьком городе и там таких не было ). И тогда я понял надо бросать Паскаль и Дельфи и рулить к Visual Studio (тогда я думал что это тоже что и С++) — то что там нельзя написать прогу мышкой доказывало мне силу С++ .
В итоге я перешел на С++, узнал что много где заблуждался, а С++ реально крут!
Re[5]: почему я предпочёл паскалю си
От: ssm Россия  
Дата: 06.01.05 11:24
Оценка:
Здравствуйте, yxiie, Вы писали:

Y>шаблоны как раз есть.


То что там есть, находится на таком уровне развития, что
Re[3]: почему я предпочёл паскалю си
От: Algorithmus Украина  
Дата: 06.01.05 11:27
Оценка:
Мрак полный, но для обработки строк ничего круче Perl я не знаю.
Тернарный оператор на мой взгляд — очень полезная вещь.
Re[2]: почему я предпочёл паскалю си
От: ssm Россия  
Дата: 06.01.05 11:34
Оценка: 4 (1) +2
Здравствуйте, Algorithmus, Вы писали:


A>Но если уж на то пошло...

A>Мне Паскаль не понравился по многим причинам:

а мне пофиг на чем писать, абы платили

A>0. В компиляторе изначально не было оптимизатора.


зато компилятор был очень быстрый, что для машин того времени играло не последнюю роль

A>1. Нет арифметики указателей (я вообще прослезился, когда увидел, как в паскале делают динамические массивы).

A>2. И вообще — реализация указателей очень негибкая.

ну в Java, C# их вообще как таковых нет

A>3. Морока с приведением типа.


опять же Java, C, C#

A>4. Нет объединений, перечислений, битовых полей...


зато есть set (или это уже в дельфине?)

A>5. Негибкие операторы (for, например).

A>6. Нет некоторых полезных операторов (тернарный, например)

замени функциями

A>6. Скудные возможности стандартных библиотек.


для прикладника один паскалевский string чего значит!

A>7. Присваивание := ненавижу!


а такое любишь?

std::vector<boost::shared_ptr<MyObj<double> > >
                                           ^ ^ 
operator+(int)
           ^

и т.д. и т.п.
Re[3]: почему я предпочёл паскалю си
От: Algorithmus Украина  
Дата: 06.01.05 11:50
Оценка:
ssm>а мне пофиг на чем писать, абы платили

А мне и за С++ и за Delphi платят

ssm>зато компилятор был очень быстрый, что для машин того времени играло не последнюю роль


Согласен. Но при разработке довольно серьезных проектов определяющую роль часто играет производительность конечного продукта.

ssm>ну в Java, C# их вообще как таковых нет


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

ssm>опять же Java, C, C#


См. выше.

ssm>зато есть set (или это уже в дельфине?)


И в паскале тоже есть. Согласен — это то, чего С/С++ и по сей день не хватает. Хотя без них можно обойтись... но временами не очень приятно.

ssm>замени функциями


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

ssm>для прикладника один паскалевский string чего значит!


Ограниченный до 255 символов

ssm>а такое любишь?


ssm>
ssm>std::vector<boost::shared_ptr<MyObj<double> > >
ssm>                                           ^ ^ 
ssm>operator+(int)
ssm>           ^
ssm>

ssm>и т.д. и т.п.

Когда как
Re[4]: почему я предпочёл паскалю си
От: ssm Россия  
Дата: 06.01.05 11:58
Оценка:
Здравствуйте, Algorithmus, Вы писали:

A>А мне и за С++ и за Delphi платят


там где я сейчас живу, на дельфистов спрос нулевой


ssm>>ну в Java, C# их вообще как таковых нет


A>А они там и не нужны. Это языки другого плана, которые компилятся в промежуточный код, и т.д. и т.п.

A>В Perl их тоже нет

а тебе не призодила мысля, что и Pascal язык другого плана?


ssm>>замени функциями


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


ну а ты когда на C под дос писал, что тоже без ассемблера обходился?
Re[5]: почему я предпочёл паскалю си
От: Algorithmus Украина  
Дата: 06.01.05 12:19
Оценка:
Во-первых, давай без агресии и наездов, пусть даже небольших. Если тебе так сильно нравится паскаль, что я своим сообщением оскорбил твои убеждения, тогда извини.

ssm>а тебе не призодила мысля, что и Pascal язык другого плана?


Я и говорю, что для каждого класса задач есть "свой" язык программирования. Но так сложилось, что С и паскаль используются для решения похожих, а то и одинаковых задач. О том и разговор.
А под языком "другого плана" я имел в виду то что C# и Java не могут быть использованы в некоторых сферах, в которых C и Pascal с успехом применяются.

ssm>>>замени функциями

ssm>ну а ты когда на C под дос писал, что тоже без ассемблера обходился?

Вопрос не в том, что я обходился без АСМа (а без него я не обходился), а в том, что некоторые моменты программирования можно упростить, чтобы программер сам не изобретал велосипед, и не воротил своих заменителей уже готовым конструкциям.
Re[4]: почему я предпочёл паскалю си
От: Privalov  
Дата: 06.01.05 12:19
Оценка:
Здравствуйте, ssm, Вы писали:

ssm>а че там вообще проверить то можно? ни шаблонов, ни исключений...


Что-то подсказывает мне, что в программе, кроме шаблонов и исключений, есть еще кое-что.

И потом, путь от идеи до реализации довольно долгий. Иногда быстрой прикидки "на коленке" бывает достаточно, чтобы убедиться в правильности /ошибочности выбранного направления.

Кстати, в 3.1 шаблоны как раз и появились. Говорят, они были еще в 3.0, но прошла эта версия мимо.
Re[6]: почему я предпочёл паскалю си
От: ssm Россия  
Дата: 06.01.05 12:31
Оценка:
Здравствуйте, Algorithmus, Вы писали:

A>Во-первых, давай без агресии и наездов, пусть даже небольших.


непонятно, что было принято тобой за наезд

A>Если тебе так сильно нравится паскаль, что я своим сообщением оскорбил твои убеждения, тогда извини.


мне нравится рыбалка и пиво с таранкой, а если есть возможность выбора между дельфином и C++, то выбирать я буду не по предпочтению, а в соответствии с поставленной задачей и рациональностью применения того или иного инструмента применительно к решаемой задаче. можно и на XSLT положить и сделать все при помощи XML парсера, мы ведь не ищем легких путей! правда?

ssm>>а тебе не призодила мысля, что и Pascal язык другого плана?


A>Я и говорю, что для каждого класса задач есть "свой" язык программирования. Но так сложилось, что С и паскаль используются для решения похожих, а то и одинаковых задач. О том и разговор.

A>А под языком "другого плана" я имел в виду то что C# и Java не могут быть использованы в некоторых сферах, в которых C и Pascal с успехом применяются.


ладно давай завязывать, с меня таранка, с тебя пиво
Re[5]: почему я предпочёл паскалю си
От: ssm Россия  
Дата: 06.01.05 12:34
Оценка: +3
Здравствуйте, Privalov, Вы писали:


P>Что-то подсказывает мне, что в программе, кроме шаблонов и исключений, есть еще кое-что.


в современном C++

P>И потом, путь от идеи до реализации довольно долгий. Иногда быстрой прикидки "на коленке" бывает достаточно, чтобы убедиться в правильности /ошибочности выбранного направления.


P>Кстати, в 3.1 шаблоны как раз и появились. Говорят, они были еще в 3.0, но прошла эта версия мимо.


знаешь, давай не будем грешить, и называть, то что было в 3.1 шаблонами
Re[7]: почему я предпочёл паскалю си
От: Algorithmus Украина  
Дата: 06.01.05 12:50
Оценка:
>можно и на XSLT положить и сделать все при помощи XML парсера, мы ведь не ищем легких путей! правда?

Ага... Недавно учавствовал в обсуждении проекта, который взялись делать программеры, недавно закончившие читать книгу по С++
Вот там и было что-то типа "Легких путей не ищем"... Ничё, сократили раза в 4

ssm>ладно давай завязывать, с меня таранка, с тебя пиво


Не вопрос
Re[2]: почему я предпочёл паскалю си
От: AndrewJD США  
Дата: 06.01.05 13:25
Оценка:
Здравствуйте, Algorithmus, Вы писали:

A>Каждый выбирает инструмент для своих задач. Кому-то и VB достаточно...


A>Но если уж на то пошло...

A>Мне Паскаль не понравился по многим причинам:
A>0. В компиляторе изначально не было оптимизатора.
AFAIK в то время у сишных компилеров тоже не было оптимизаторов. А компилер очень быстрый

A>1. Нет арифметики указателей (я вообще прослезился, когда увидел, как в паскале делают динамические массивы).

А куда она делась?

A>2. И вообще — реализация указателей очень негибкая.

Не дает отстрелить ногу по самую шею. Но в принципе все те же возможности что и в си

A>3. Морока с приведением типа.

Это какая?

A>4. Нет объединений, перечислений, битовых полей...

есть и обьединения и перечисления и даже множества

A>5. Негибкие операторы (for, например).

A>6. Нет некоторых полезных операторов (тернарный, например)

A>6. Скудные возможности стандартных библиотек.

Вполне нормальный набор. Единственное что математики очень мало было

A>7. Присваивание := ненавижу!

"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[3]: почему я предпочёл паскалю си
От: Algorithmus Украина  
Дата: 06.01.05 13:48
Оценка:
С тобой, что ли еще поспорить...

AJD>AFAIK в то время у сишных компилеров тоже не было оптимизаторов. А компилер очень быстрый


Для меня "то время" — это время, когда я писал под ДОС (1995-1998). А в то время у всех популярных С компиляторов оптимизаторы были.

AJD> А куда она делась?


А ты хочешь сказать, что в Паскале можно свободно писать A := B + 2, где A и B — указатели?
Интересно...
А если ты имеешь в виду Inc(Longint(A)), то это никакая не арифметика указателей, а один из возможных выходов из ситуации.

AJD>Не дает отстрелить ногу по самую шею. Но в принципе все те же возможности что и в си


Да? Чтобы объявить указатель на указатель, сколько кода написать нужно? А как тебе работа с
динамическим массивом?

A>>3. Морока с приведением типа.


Нет автоматического приведения. С одной стороны, конечно, хорошо...
Но при работе с символами и их кодами, например, постоянные Ord, Chr и т.д. меня раздражают.

AJD>есть и обьединения и перечисления и даже множества


Открой глаза незнающему, пожалуйста. Как в паскале объявить объединение? Перечисление?
Множество и сам знаю как.

AJD>Вполне нормальный набор. Единственное что математики очень мало было


Смотря для каких задач, опять же...

AJD>


Постоянно нужно лезть к двоеточию... Это СУГУБО СУБЪЕКТИВНАЯ мысль. Кому-то == не нравится в сравнении...
Re[4]: почему я предпочёл паскалю си
От: AndrewJD США  
Дата: 06.01.05 14:25
Оценка:
Здравствуйте, Algorithmus, Вы писали:

A>Для меня "то время" — это время, когда я писал под ДОС (1995-1998). А в то время у всех популярных С компиляторов оптимизаторы были.


Последний паскаль от борланд был в 92 году. А в 98 был уже VS6.0 c весьма навороченым оптимизатором

A>А ты хочешь сказать, что в Паскале можно свободно писать A := B + 2, где A и B — указатели?

Ну в виде В + 2 нет
A>Интересно...
A>А если ты имеешь в виду Inc(Longint(A)), то это никакая не арифметика указателей, а один из возможных выходов из ситуации.

A>Открой глаза незнающему, пожалуйста. Как в паскале объявить объединение? Перечисление?

A>Множество и сам знаю как.


type
  Class  = (Num, Dat, Str); { перечисление }
  Date   = record
     D, M, Y: Integer;
  end;
  Facts = record
    Name: string[10];
    case Kind: Class of  { обьединение }
      Num: (N: real);
      Dat: (D: Date);
      Str: (S: string);
  end;

type WordPtr = ^word;

var
   p : WordPtr;
Begin
     p := nil;
     Inc(p, 10); { адресная арифметика  int* p = (int*)0 + 10; }
End.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[5]: почему я предпочёл паскалю си
От: Algorithmus Украина  
Дата: 06.01.05 14:52
Оценка:
AJD>Последний паскаль от борланд был в 92 году. А в 98 был уже VS6.0 c весьма навороченым оптимизатором

Это я знаю... Но речь же шла не о том, когда появились навороченные компиляторы.

AJD>Ну в виде В + 2 нет


А как насчет вычетания указателя из указателя?
И, кстати (я конечно могу ошибаться, но если что, поправь) — при Inc(P, 10) адрес
увеличивается на 10 байт, а не на 10 * sizeof(word).
Достаточно небезопасный вариант.

AJD>
AJD>type
AJD>  Class  = (Num, Dat, Str); { перечисление }
AJD>  Date   = record
AJD>     D, M, Y: Integer;
AJD>  end;
AJD>  Facts = record
AJD>    Name: string[10];
AJD>    case Kind: Class of  { обьединение }
AJD>      Num: (N: real);
AJD>      Dat: (D: Date);
AJD>      Str: (S: string);
AJD>  end;

AJD>type WordPtr = ^word;

AJD>var
AJD>   p : WordPtr;
AJD>Begin
AJD>     p := nil;
AJD>     Inc(p, 10); { адресная арифметика  int* p = (int*)0 + 10; }
AJD>End.
AJD>


С перечислением согласен, погорячился.
Но под объединением похоже, мы разные вещи понимаем.

В понимании С объединение — структура, у которой все члены начинаются с одного и того же адреса памяти. Таким образом можно, напрмер, совместить массив char и double.
После чего записав в член типа double вещественное число, из массива его можно побайтово прочитать.
А то, что привел ты — это структура с вариантами (не помню, как она "по научному" назывется).
Re: почему я предпочёл паскалю си
От: adr Украина  
Дата: 06.01.05 15:22
Оценка:
Здравствуйте, DEMON HOOD, Вы писали:

DH>Чегото вспомнилось сегодня, решил запостить...


DH>Начинал программировать на паскале, причина тривиальная — в наличии был только компилятор паскаля. IDE Borland Pascal

DH>потом появилась у меня IDE Borland C. И там и там были жёлтые буквы на синем фоне да и паскаль от си не сильно отличается,
DH>но единственная фича которая перевесила в пользу си — это возможность обьявлять переменные в произвольном месте , а не где-то там, в блоке var.

я просто и то и то знал хреново, поэтому спросил у старших, чего полезнее на будущее? мне сказали, что С, вот я и поверил..., прошло время (год) и я опять поверил, что Java — rulezz . потом понял сколько нормальная Java IDE гребёт памяти и понял, что PII-233, 32MB SDRAM — suxx. и на таком suxx только C++ & ASM есть rulezz, а потом пришла память и возродилась Java... так и стали друхно жить ASM, C, C++, Java
Re[6]: почему я предпочёл паскалю си
От: AndrewJD США  
Дата: 06.01.05 15:24
Оценка: +1
Здравствуйте, Algorithmus, Вы писали:

A>Это я знаю... Но речь же шла не о том, когда появились навороченные компиляторы.

Речь о том, что для своего времени это был продвинутый компилятор. И пункт об отсутствии оптимизатора не может приниматься во внимание

A>И, кстати (я конечно могу ошибаться, но если что, поправь) — при Inc(P, 10) адрес

A>увеличивается на 10 байт, а не на 10 * sizeof(word).
A>Достаточно небезопасный вариант.
прибаляется на sizeof(word)


A>С перечислением согласен, погорячился.

A>Но под объединением похоже, мы разные вещи понимаем.

A>В понимании С объединение — структура, у которой все члены начинаются с одного и того же адреса памяти. Таким образом можно, напрмер, совместить массив char и double.

A>После чего записав в член типа double вещественное число, из массива его можно побайтово прочитать.
A>А то, что привел ты — это структура с вариантами (не помню, как она "по научному" назывется).
Структура с вариантами == union в сях
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[7]: почему я предпочёл паскалю си
От: Algorithmus Украина  
Дата: 06.01.05 15:47
Оценка:
Ладно, будем завязывать... Каждый выбирает себе инструмент в зависимости от задач и личных предпочтений... Как я и говорил, Delphi я тоже юзаю и очень часто. Но только для интерфейсных приложений, которые не содержат сложной логики.

AJD>Речь о том, что для своего времени это был продвинутый компилятор. И пункт об отсутствии оптимизатора не может приниматься во внимание


Еще и как может, потому что даже Turbo C++ 2.0 имел встроенный оптимизатор, который на многих программах дает преимущество перед аналогичными паскалевскими. Но это в прошлом...

AJD>прибаляется на sizeof(word)


Окей. Буду знать (хотя предварительно проверю )

AJD>Структура с вариантами == union в сях


Интересно, интересно... Будем смотреть... Пока не верю
Re: почему я предпочёл паскалю си
От: ScorpZ Украина  
Дата: 06.01.05 15:57
Оценка: +2 :)
Здравствуйте, DEMON HOOD, Вы писали:

DH>Чегото вспомнилось сегодня, решил запостить...


DH>Начинал программировать на паскале, причина тривиальная — в наличии был только компилятор паскаля. IDE Borland Pascal

DH>потом появилась у меня IDE Borland C. И там и там были жёлтые буквы на синем фоне да и паскаль от си не сильно отличается,
DH>но единственная фича которая перевесила в пользу си — это возможность обьявлять переменные в произвольном месте , а не где-то там, в блоке var.

В любом случае для многих людей эта возможность объявления переменных является не плюсом а минусом .
Re: почему я предпочёл паскалю си
От: ScorpZ Украина  
Дата: 06.01.05 16:03
Оценка:
Здравствуйте, DEMON HOOD, Вы писали:

DH>Чегото вспомнилось сегодня, решил запостить...


DH>Начинал программировать на паскале, причина тривиальная — в наличии был только компилятор паскаля. IDE Borland Pascal

DH>потом появилась у меня IDE Borland C. И там и там были жёлтые буквы на синем фоне да и паскаль от си не сильно отличается,
DH>но единственная фича которая перевесила в пользу си — это возможность обьявлять переменные в произвольном месте , а не где-то там, в блоке var.

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