Страница 2 из 4

СообщениеДобавлено: 23.10.2007 22:47:24
e-moe
debi12345, спасибо за примеры, мысль понял ;)

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

СообщениеДобавлено: 17.11.2012 16:25:18
RENXFIL
Мутирую ~>
=)

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

СообщениеДобавлено: 17.11.2012 18:43:50
redwolf
Для прикладного программирования, ПМСМ, ответ очевиден- Паскаль. Для системного- тоже (впрочем, в этом случае у Си появляются другие сильные конкуренты).
Да и тезис "разрешено всё, что не запрещено"- не совсем корректен.
Для решения типичных косяков, вызванных языком могут использоваться даже аппаратные средства- NX-бит, например.В Delphi переполнение буфера- это даже маленькая задачка. В Си (где всё разрешено) - это типичная ситуация :)

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

СообщениеДобавлено: 18.11.2012 08:42:51
alexey38
Практика показывает, что С и С++ меньше всего подходят для написания системного ПО, т.к. 99% дыр в безопасности - это следствие слабых строн языка С.
Но разработчики компиляторов Паскаля по какой-то причине приогнорировали тематику системного ПО, то есть не была создана возможность писать драйвера и некоторые другие модули, которые трубуют специального режима компиляции. Например, в драйвере должен применяться другой менеджер кучи (память нужно выделять по другому или вообще применять статическое выделение памяти для последующего использования ее менеджером кучи). Отсюда системное ПО оказалось сугубо полем С, который меньше всего годится именно для этих задач. Вот в прикладных задачах, на С++ уже возможно применение безопасных приемов программирования, а в системном все зациклино на внимательность и адекватность программиста.

Re:

СообщениеДобавлено: 17.12.2012 16:49:04
Рождённый_в_СССР
Практика показывает, что С и С++ меньше всего подходят для написания системного ПО, т.к. 99% дыр в безопасности - это следствие слабых строн языка С.

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

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

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

О тех, которые ежемесячно в качестве багов поступают в обновления всех видов ОС (Винда, Линухи, Юниксы и т.п.), всех вариантов браузеров и т.п.
А вот сборщик мусора в системных задачах штука принципиально не применимая.

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

СообщениеДобавлено: 18.12.2012 12:03:36
Kemet
alexey38 писал(а):ора в системных задачах штука принципиально не применимая.

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

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

СообщениеДобавлено: 18.12.2012 13:29:25
sign
Kemet писал(а):список можно продолжать...

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

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

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

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

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

СообщениеДобавлено: 18.12.2012 14:41:46
alexey38
Kemet писал(а):с использованием сборщика мусора

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

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

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

Проект Singularity. А также его потомки Cosmos и Fantom. Написаны не только на типобезопасном языке, но и использует "управляемый" код. По производительности и надежности дадут фору многим современным коммерческим поделкам.

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

СообщениеДобавлено: 04.07.2013 13:33:12
carrots
Я, например, немного чувствую дискомфорт в фрипаскале из-за его строгости. Часто хочется объявлять переменные в любом месте, иногда удобно тело функции написать при объявлении типа. и т.д.. Думал даже препроцессор написать чтоб добавить такие возможности. В fpc естественно есть свои плюсы..

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

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

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

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

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

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

СообщениеДобавлено: 04.11.2016 19:24:30
Sharfik
runewalsh писал(а):Питона

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