Си или Паскаль. Что можно и что нет.

Проектирование и разработка идеального средства программирования.

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

Лояльность Си или строгость Паскаля

Си
13
15%
Паскаль
71
85%
 
Всего голосов: 84

e-moe
новенький
Сообщения: 31
Зарегистрирован: 27.09.2007 17:00:39

Сообщение e-moe »

debi12345, спасибо за примеры, мысль понял ;)
Аватара пользователя
RENXFIL
новенький
Сообщения: 16
Зарегистрирован: 23.09.2011 16:47:57
Откуда: Я и сам не знаю.

Сообщение RENXFIL »

Мутирую ~>
=)
redwolf
новенький
Сообщения: 23
Зарегистрирован: 17.11.2012 18:16:21

Сообщение redwolf »

Для прикладного программирования, ПМСМ, ответ очевиден- Паскаль. Для системного- тоже (впрочем, в этом случае у Си появляются другие сильные конкуренты).
Да и тезис "разрешено всё, что не запрещено"- не совсем корректен.
Для решения типичных косяков, вызванных языком могут использоваться даже аппаратные средства- NX-бит, например.В Delphi переполнение буфера- это даже маленькая задачка. В Си (где всё разрешено) - это типичная ситуация :)
alexey38
долгожитель
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Сообщение alexey38 »

Практика показывает, что С и С++ меньше всего подходят для написания системного ПО, т.к. 99% дыр в безопасности - это следствие слабых строн языка С.
Но разработчики компиляторов Паскаля по какой-то причине приогнорировали тематику системного ПО, то есть не была создана возможность писать драйвера и некоторые другие модули, которые трубуют специального режима компиляции. Например, в драйвере должен применяться другой менеджер кучи (память нужно выделять по другому или вообще применять статическое выделение памяти для последующего использования ее менеджером кучи). Отсюда системное ПО оказалось сугубо полем С, который меньше всего годится именно для этих задач. Вот в прикладных задачах, на С++ уже возможно применение безопасных приемов программирования, а в системном все зациклино на внимательность и адекватность программиста.
Аватара пользователя
Рождённый_в_СССР
новенький
Сообщения: 65
Зарегистрирован: 08.08.2007 01:03:26
Откуда: Саратов

Сообщение Рождённый_в_СССР »

Практика показывает, что С и С++ меньше всего подходят для написания системного ПО, т.к. 99% дыр в безопасности - это следствие слабых строн языка С.

Чья практика? Создателей языка C--?
о каких 99% дырах идёт речь? отсутствие сборщика мусора? этого нет и в fpc, куча синтаксического сахара? остутствие контроля указателей? о каких 99% дырах речь? я впервые слышу это... C и C++ - разные вещи... лучшее на сегодняшний день для системного программирования чем C - только ассмеблер и какой-нить AHDL (но там свои тараканы)
alexey38
долгожитель
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Сообщение alexey38 »

Рождённый_в_СССР писал(а):о каких 99% дырах идёт речь? отсутствие сборщика мусора? этого нет и в fpc, куча синтаксического сахара? остутствие контроля указателей? о каких 99% дырах речь? я впервые слышу это... C и C++ - разные вещи... лучшее на сегодняшний день для системного программирования чем C - только ассмеблер и какой-нить AHDL (но там свои тараканы)

О тех, которые ежемесячно в качестве багов поступают в обновления всех видов ОС (Винда, Линухи, Юниксы и т.п.), всех вариантов браузеров и т.п.
А вот сборщик мусора в системных задачах штука принципиально не применимая.
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

alexey38 писал(а):ора в системных задачах штука принципиально не применимая.

Есть куча ОС, написанных на типобезопасных языках, с использованием сборщика мусора.
Например SPIN - написана на Модуле-3,
Виртовская Оберон - написана на Оберон
A2, она же Bluebottle, она же AOS - написана на Активном Обероне (Active Oberon)
список можно продолжать...
sign
энтузиаст
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Сообщение sign »

Kemet писал(а):список можно продолжать...

Можно.
Теперь от вас список реального применения этих ОС.
В промышленности? Может в планшетах? Или в телефонах? Ещё где?
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

sign писал(а):Теперь от вас список реального применения этих ОС.
В промышленности? Может в планшетах? Или в телефонах? Ещё где?

Если персонально вам они не нужны, ну и ради бога.
Лично мы используем A2 - направление роботизация. Систему, основанную на Native Oberon, используем для управления производственной линией.
ОС Оберон и производные также используют
Где-то на сайте ETH был более подробный список.
В любом случае, речь шла не о чьём-то персональном использовании, а о наличии и возможности использования типобезопасных языков с использованием сборщика мусора для построения минималистичных и надежных операционных систем.
alexey38
долгожитель
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Сообщение alexey38 »

Kemet писал(а):с использованием сборщика мусора

Кстати не нужно путать функцию автоматического удаления строки или объекта при выходе из зоны видимости (что есть в паскале в строках, динамических массивах и ком-объектах) со сборщиком мусора который живет своей жизнью, оторвавшись от бизнес-логики. Для реальной ОС должно быть очевидным время выполнения конкретной функции, не должно быть так, что в этот раз мы память не очистим, а в другой раз очистим.
fwp
новенький
Сообщения: 29
Зарегистрирован: 25.03.2008 11:00:06

Сообщение fwp »

Kemet писал(а):Есть куча ОС, написанных на типобезопасных языках, с использованием сборщика мусора.
Например SPIN - написана на Модуле-3,
Виртовская Оберон - написана на Оберон
A2, она же Bluebottle, она же AOS - написана на Активном Обероне (Active Oberon)
список можно продолжать...

Проект Singularity. А также его потомки Cosmos и Fantom. Написаны не только на типобезопасном языке, но и использует "управляемый" код. По производительности и надежности дадут фору многим современным коммерческим поделкам.
Аватара пользователя
carrots
постоялец
Сообщения: 138
Зарегистрирован: 28.03.2008 01:13:02

Сообщение carrots »

Я, например, немного чувствую дискомфорт в фрипаскале из-за его строгости. Часто хочется объявлять переменные в любом месте, иногда удобно тело функции написать при объявлении типа. и т.д.. Думал даже препроцессор написать чтоб добавить такие возможности. В fpc естественно есть свои плюсы..
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Сообщение serbod »

carrots писал(а):Я, например, немного чувствую дискомфорт в фрипаскале из-за его строгости. Часто хочется объявлять переменные в любом месте, иногда удобно тело функции написать при объявлении типа.

Это типичное впечатление новичков при написании программы с нуля. Поэтому новички так любят Python и JavaScript, где нет "бюрократии".
Но когда проект разростается до десятков модулей и тысяч функций/методов, то возникает проблема навигации и рефакторинга. И вот тут паскаль со своими предварительными объявлениями и строгой типизацией рулит и педалит. А в других языках придумывают костыли для типизации и оглавления, которые непонятны новичкам. =)
Аватара пользователя
runewalsh
энтузиаст
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Сообщение runewalsh »

Паскаль не может рулить на «больших проектах», потому что в Паскале ПРИНЯТО использовать низкоуровневые штучки вроде взятия УКАЗАТЕЛЕЙ на элементы динамических массивов, приведения через простой (не as) каст классов, которые ТОЧНО-ТОЧНО ПРИВОДИМЫ и т. д. Или вот, по крайней мере, в среде Delphi по непонятной мне причине есть ТРАДИЦИЯ слишком привязываться к платформе — как среди программистов, так и разработчиков самой Delphi. Вспомните, например, зачем были введены интерфейсы, или как объяснялись изменения в компиляторе под iOS. FreeAndNil, официально НЕ ПРОВЕРЯЮЩИЙ тип параметра — это вообще вышка (пропускает незамеченной смену типа FreeAndNil'ящейся переменной с объекта на интерфейс, массив или запись — что там про типизацию?). Всё это — мины замедленного действия, в отличие от Питона — с неопределённым поведением.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 836
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

runewalsh писал(а):Питона

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