информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsАтака на InternetВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / miscellaneous
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Что хорошего в паскале 08.11.02 17:04  Число просмотров: 1167
Автор: dl <Dmitry Leonov>
Отредактировано 08.11.02 17:05  Количество правок: 1
<"чистая" ссылка>
Классический виртовский паскаль отлично приспособлен для обучения принципам структурного подхода и с большим скрипом пригоден для написания прикладных программ. Более-менее рабочим языком он стал после соответствующего приложения напильника - как, например, в случае Борландовских реализаций. Дальше все - практически дело вкуса. Паскалевское ООП в опять же борландовской реализации, на мой взгляд, прикручено на белую нитку.

P.S. Полноценное обучение программированию я начинал как раз с Паскаля (всякие игрушечные васики и счетные программы на фортране не в счет).
<miscellaneous>
Что хорошего в паскале 08.11.02 16:00  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Я не хочу начинать религиозную войну. Но такая вот история.
Порядок изучения языков у меня следующий: Basic - Z80 asm - C/C++ - Pascal - т.д.
Таким образом паскаль я узнал уже после це и МНЕ он кажется менее приспособленным для системного программирования (для обучения - вполне может быть). Хочу подчеркнуть, что я не навязываю СВОЮ точку зрения (т.к. не раз был свидетелем грандиозных флеймов типа C vs Pascal, Linux vs BSD...). Просто хочу получить конкретные ответы, есть ли люди которые узнали C раньше Pascal-я и при этом выбрали последний.
Если есть, то за что?
Людей, которые познали творение Вирта раньше Кернигановского сотоварищи, я могу понять даже без каких-либо аргументов: например, до сих пор регулярно юзаю эмуль Спекки и мне даже нравится.
Спасибо за внимание ;-)
Что хорошего в паскале 08.11.02 17:04  
Автор: dl <Dmitry Leonov>
Отредактировано 08.11.02 17:05  Количество правок: 1
<"чистая" ссылка>
Классический виртовский паскаль отлично приспособлен для обучения принципам структурного подхода и с большим скрипом пригоден для написания прикладных программ. Более-менее рабочим языком он стал после соответствующего приложения напильника - как, например, в случае Борландовских реализаций. Дальше все - практически дело вкуса. Паскалевское ООП в опять же борландовской реализации, на мой взгляд, прикручено на белую нитку.

P.S. Полноценное обучение программированию я начинал как раз с Паскаля (всякие игрушечные васики и счетные программы на фортране не в счет).
Я вот, к сожалению, не видел других реализаций ООП, кроме паскалёвого. Можно поподробнее про белые нитки? 09.11.02 00:19  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
попробую... 09.11.02 02:07  
Автор: dl <Dmitry Leonov>
Отредактировано 09.11.02 02:11  Количество правок: 1
<"чистая" ссылка>
Естественно, базовые возможности ООП тут в наличии. Инкапсуляция - наследование - полиморфизм, это святое. Теперь о нитках.

Переменные объявляются только в начале функции. В сочетании с необходимостью конструирования объекта в произвольном месте привело к тому, что объекты приходится конструировать только в динамической памяти, явно вызывая и конструктор, и деструктор (в додельфяных версиях это было еще менее очевидно, чем сейчас, что несколько путало). Никакой автоматической очистки ресурсов. Отсюда, кстати, вылезла обработка исключений скорее растущая от структурных Win32-исключений - ресурсы ж как-то надо освобождать.
Плюс отсутствие как множественного наследования, так и его суррогатов типа явовских интерфейсов и совсем неочевидный синтаксис использования в одних случаях ключевого слова virtual, в других override.

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

Остальные вещи, которых не хватает в паскале, относятся не столько к ООП, сколько к таким вкусностям С++, как шаблоны, перегрузка операций и пространства имен - ну да их и в Яве нет :)
Всё растёт, всё развивается (бывает, что и в обратную сторону) ;-) 09.11.02 13:59  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> Естественно, базовые возможности ООП тут в наличии.
> Инкапсуляция - наследование - полиморфизм, это святое.
> Теперь о нитках.

> Переменные объявляются только в начале функции. В сочетании
> с необходимостью конструирования объекта в произвольном
> месте привело к тому, что объекты приходится конструировать
> только в динамической памяти, явно вызывая и конструктор, и
> деструктор (в додельфяных версиях это было еще менее
> очевидно, чем сейчас, что несколько путало). Никакой
> автоматической очистки ресурсов. Отсюда, кстати, вылезла
> обработка исключений скорее растущая от структурных
> Win32-исключений - ресурсы ж как-то надо освобождать.
> Плюс отсутствие как множественного наследования, так и его
> суррогатов типа явовских интерфейсов и совсем неочевидный
> синтаксис использования в одних случаях ключевого слова
> virtual, в других override.
Это ещё ничего. Properties overriding — там вообще нет ключевого слова override, просто в потомке заново как хочешь свойство переобозначаешь(лишь бы тип совпадал) ;-)

Кстати, тут вопрос такой. Вот Delphi32 грузится... долго... загрузился наконец. Смотрим в Диспетчере задач — отожрал 6,5 Мб памяти. А вот грузится Winword — быстро, почти сразу на экране окно ждёт ввода текста... отожрал вордец 7,5 Мб памяти. Вопрос: почему более громоздкая софтина грузится быстрее? Из-за того, что в дельфийских приложениях десятки тысяч объектов динамически себя конструируют? Но вроде и в ворде конструкторов не меньше будет. Или из-за того, что с вордовским .exe что-то сделали уже после компиляции? Если тормоза загрузки Delphi32 связаны с дин. конструированием объектов, тогда это огромный недостаток. Но мне трудно себе представить, как же всё-таки объект может себя не конструировать? Это и не объект тогда, а что-то вроде структуры с полями-функциями ;-) Просветите, плз...

> Остальные вещи, которых не хватает в паскале, относятся не
> столько к ООП, сколько к таким вкусностям С++, как шаблоны,
> перегрузка операций и пространства имен - ну да их и в Яве
> нет :)
Ну да, круто. Может просто борланд поконсервативней. К примеру, перезагрузка функций тоже не сразу появилась (а кстати, в C она сразу была?). Да и тут две стороны медали. Сколько сейчас в С исторического хлама, которого уже никто давно не использует? Компилер от этого быстрее не становится ;-)
И несмотря на мостроидальность, Delphi довольно быстро трансформировали в весёлую штуку под названием Kylix — Юниксоидам должно понравится.
Всё растёт, всё развивается (бывает, что и в обратную сторону) ;-) 09.11.02 22:56  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> Кстати, тут вопрос такой. Вот Delphi32 грузится... долго...
> загрузился наконец. Смотрим в Диспетчере задач — отожрал
> 6,5 Мб памяти. А вот грузится Winword — быстро, почти сразу
> на экране окно ждёт ввода текста... отожрал вордец 7,5 Мб
> памяти. Вопрос: почему более громоздкая софтина грузится
> быстрее? Из-за того, что в дельфийских приложениях десятки
> тысяч объектов динамически себя конструируют? Но вроде и в
> ворде конструкторов не меньше будет. Или из-за того, что с
> вордовским .exe что-то сделали уже после компиляции? Если
> тормоза загрузки Delphi32 связаны с дин. конструированием
> объектов, тогда это огромный недостаток. Но мне трудно себе
> представить, как же всё-таки объект может себя не
> конструировать? Это и не объект тогда, а что-то вроде
> структуры с полями-функциями ;-) Просветите, плз...

ggg на это ответил, объяснение выглядит вполне реалистично.

> > Остальные вещи, которых не хватает в паскале,
> относятся не
> > столько к ООП, сколько к таким вкусностям С++, как
> шаблоны,
> > перегрузка операций и пространства имен - ну да их и в
> Яве
> > нет :)
> Ну да, круто. Может просто борланд поконсервативней. К
> примеру, перезагрузка функций тоже не сразу появилась (а
> кстати, в C она сразу была?). Да и тут две стороны медали.
> Сколько сейчас в С исторического хлама, которого уже никто
> давно не использует? Компилер от этого быстрее не
> становится ;-)

В C - перегрузки отродясь не было, в С++ - если и не с начала, до с достаточно ранних версий. Перегрузки операторов в Дельфи, насколько я понимаю, нет до сих пор. Что касается исторического хлама - даже и не знаю такого. С вообще небольшой язык, в С++ скорее реже используются более новые возможности.
Если есть флейм, то грех в нем не поучавствовать ;) На счет наезда на С 09.11.02 21:02  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> Ну да, круто. Может просто борланд поконсервативней. К
> примеру, перезагрузка функций тоже не сразу появилась (а
> кстати, в C она сразу была?).

А ты не путай C и C++ ! Это два разных языка. На столько разных что у них папы разные: у С - Керниган с Ричи (мир праху ихнему стилю), а у С++ Страуструп. И что значит "кстати, в C она сразу была?" - в С никоглда не было перезагрузки функций. Патому чта в 70х годах даже понятия такого не существовало.
В С++ перегрузка была сразу, как и все остальное (исключая шаблонов которые хоть и были с начала, но развились благодоря нашему соотечественику).
Что касается Kylix... Вопрос спорный, и думаю упоминать его сдесь излишне.
Тем более что изначально вопрос был о языке, а не о средстве. Но почему то, как показывает практика, спор о языке ВСЕГДА переходит на уровень реализации (компиляторов, оболочек, ect...), что, имхо, есть демагогия и флейм
Если есть флейм, то грех в нем не поучавствовать ;) На счет наезда на С 09.11.02 23:04  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> В С++ перегрузка была сразу, как и все остальное (исключая
> шаблонов которые хоть и были с начала, но развились
> благодоря нашему соотечественику).

Ууу, если бы. Шаблоны были ой как не с начала (собственно, и прочие вещи появлялись в языке очень постепенно). Впервые они и обработка исключений были описаны в ARM, который вышел уже после версии 2.0, а компиляторы, их реализующие, появились еще позже. А Степанов все-таки не развивал шаблоны - он просто написал с их использованием библиотеку контейнеров, алгоритмов и т.п., которая, конечно, дала языку очень много.
word 09.11.02 15:41  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
имхо тормоза не из-за работы программы
на современных компах разницу в скорости конструирования не увидишь

при загрузке проги тормоза в основном от загрузки библиотек и перемещения их в памяти
всё что использует word уже давно сидит в памяти (explorer), причём думаю MS не поленились при линковке распихать библиотеки так, чтобы они не пересекались и не надо было их двигать, а для некоторых библиотек наверно и импорты привязаны
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach