LINUX.ORG.RU

Линус Торвальдс о предупреждениях в GCC


0

0

Линус Торвальдс достаточно нелестно отозвался о некоторых опциях показа предупреждений (warnings) в GCC, говоря о том, что реализация многих из них просто не учитывает желания программиста и реальные проблемы. Тем неменее, некоторые из предупреждений очень полезны и используются при сборке ядра. Линус также отметил, что язык C не совершенен и для написания абсолютно безопасного кода он бы выбрал Паскаль.

>>> Подробности

★★★★★

Проверено: Teak ()
Ответ на: комментарий от Deleted

> Хде ты увидел множественное наследование в Си?

Упс, хотел еще ООП сравнить и даже начал ставить плюсы/минусы, но потом вспомнил что сравниваем чистый Си и не ООП возможности FP/Delphi, но тот минус так и не удалил.

anonymous
()

> Линус также отметил, что язык C не совершенен и для написания абсолютно безопасного кода он бы выбрал Паскаль.

Как его торкнуло.

andreyu ★★★★★
()
Ответ на: комментарий от Ex

>покажи на сколь нибудь серьезный проект на паскакале??? (не прикладной)

ЕМНИП, компиляторы (как и СУБД) относятся к системному, а не прикладному ПО. Если это так, то ответом на Ваш вопрос будет fpc

kss ★★★★★
()
Ответ на: комментарий от Ex

Не... Паскаль это для начинающих сопливых в ползунках. Нацтоясчии пацаны пишут на ADA или Modula2. Кстати, про ADA... Посмотрите внимательно на QNX, если память не изменяет там адская реализация некоторых системных вещей есть :)

anonymous
()
Ответ на: комментарий от klalafuda

>unsigned long a;
>unsigned short b;

>b = a;

>..без явного приведения не приведет к предупреждению

Это даже не варнинг, это ошибка!
Ужос! Сишники! Как вы с этим живете? Не страшно?

vada ★★★★★
()
Ответ на: комментарий от anonymous

Как язык - всё отлично. А вот FPC как реализация... хм-м... жутко не хватает возможности линковки с кодом на C++. В итоге получается, что написать нечто GUIшное на FPC можно с Gtk, но нельзя с Qt.

kastaneda
()
Ответ на: комментарий от kss

компилятор паскаля написанный на паскале есть древний [:]|||[:]

я имел в виду нечто более, например ядра операционной системы...

хотя можно вспомнить историю и реализовать например на том же C P-машину предоставляющую hal а "ядро" ваять уже на паскале с трансляцией в P-код

Ex ★★
()
Ответ на: комментарий от anonymous

> Ассеблер рулит

Правильно пишется - Ассёблер

anonymous
()
Ответ на: комментарий от zwon

> Все эти begin/end и := сильно утомляют

Подумаешь! А меня утомляет == и написание кода в комментариях. :-P

atrus ★★★★★
()
Ответ на: комментарий от atrus

>Подумаешь! А меня утомляет == и написание кода в комментариях. :-P

Зачет! :)

vada ★★★★★
()

Не на паскале, а на дельфях! Дельфи - наше фсио! Дельфи недооценены! Долой недоязыки C, Java, C++ и C#! В биореактор лисповодов! Даёшь Emacs на Delphi!

Xellos ★★★★★
()
Ответ на: комментарий от record

>Линусу, конечно, все равно на чем писать ассемблер

а на нем уже ОС. Так будет правильнее

Mike_Deblin
()
Ответ на: комментарий от anonymous

> Не... Паскаль это для начинающих сопливых в ползунках. Нацтоясчии пацаны пишут на ADA или Modula2. Кстати, про ADA... Посмотрите внимательно на QNX, если память не изменяет там адская реализация некоторых системных вещей есть :)

например?

ps: к Ада QNX не имеет никакого отношения. тот-же GNAT (GNU Ada) портируется и поддерживается весьма скромной группой 3d party энтузиастов.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от vada

> Это даже не варнинг, это ошибка!

Это может быть ошибкой, не более. А то, что нет предупреждения от компилера, плохо.

> Ужос! Сишники! Как вы с этим живете? Не страшно?

Так же, как и вы. Аль у вас весь софт и ось на паскале?

andreyu ★★★★★
()
Ответ на: комментарий от Ex

> слыш ты, умник!!! покажи на сколь нибудь серьезный проект на паскакале??? (не прикладной)

Вот неприкладной http://www.petros-project.com/

> Дельфи <> Паскаль

Нет, надо было так:

Дельфи != Паскаль

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

P.S. Мне что нравится: в ЛОРе только скажи ключевое слово (Windows, Microsoft, Pascal, ...) - тут же начнут опускать что-то, в частности рассказывать кто ламер, а кто сепермегакулхацкер. В данном случае это определяется по одному критерию: кто пишет на С или C++ тот, соответственно крутой программер. Ну а кто на Pascal - ламмо.

Кто же красноглазый, как не тот, для кого Delphi и Pascal одно и то же?

temarez
()
Ответ на: комментарий от andreyu

>Так же, как и вы. Аль у вас весь софт и ось на паскале?

У нас с такой конструкций даже не компилица. :Р

vada ★★★★★
()

Такое ощущение, что под ником "Линус" на lkml постит Саныч.

e
()
Ответ на: комментарий от ero-sennin

>Да ётить, дался вам этот Пасцал! :) Линусу не понравилось, что GCC ругается, если локальная переменная затеняет глобальную. Он сказал: не учите меня жить, сынки. Если в языке C есть области видимости, значит, они там не просто так. И я блин знаю, что делаю. А если мне понадобится язык, который не даст мне сделать плохого, я лучше возьму Паскаль. Примерно так. =)

ero-sennin +oo. birdie низачот ;) Не заявлял Линус никогда что ему паскаль больше нравится. Зато дельфисты как понабежали флеймить... ;) Хотя признаюсь, Ада самому очень нравится...

AiLr ★★
()
Ответ на: комментарий от temarez

>> Кто же красноглазый, как не тот, для кого Delphi и Pascal одно и то же?

#define паскаль pascal && object pascal

прояснил ситуацию???

Ex ★★
()
Ответ на: комментарий от dilmah

> If I wanted a language that didn't allow me to do anything wrong, I'd be using Pascal.

Он незнаком с fpc :)

acheron ★★★★
()
Ответ на: комментарий от Ex

> таки что для вас есть ООП???

В контексте сравнения FP и C++ классы и объекты. Только не надо разводить философию, что ООП можно реализовать и в машинных кодах.

anonymous
()
Ответ на: комментарий от AiLr

> Зато дельфисты как понабежали флеймить... ;)

Дельфисты и паскалисты набежали, потому что сишники от такого наглого перевода - волком взвыли. :)

atrus ★★★★★
()
Ответ на: комментарий от anonymous

> В контексте сравнения FP и C++ классы и объекты. Только не надо разводить философию, что ООП можно реализовать и в машинных кодах.

ну вообще-то можно и в том-же Borland Asembler v5.x была поддержка и объектов и ТВМ. другое дело, что мало кто это пользовал а после уже и неактуально как-то стало.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

>> В контексте сравнения FP и C++ классы и объекты. Только не надо разводить философию, что ООП можно реализовать и в машинных кодах.

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

З.Ы. ООП можно реализовать и в машинных кодах :-D

Ex ★★
()

аффтар, учи аглицкий

а тем кому пацкаль не нравица нужно в очередь к биоректору строица...

anonymous
()
Ответ на: комментарий от kastaneda

>А вот FPC как реализация... хм-м... жутко не хватает возможности линковки с кодом на C++

напрямую линковаться с C++ может только C++.

geek ★★★
()

полная чушь по моему... на С можно писать абсолютно безопасный код. То что он предлагает то же самое что предложить не строить небоскребы потому что если прыгнуть то можно убиться :)

Banshee
()
Ответ на: комментарий от kss

>то ответом на Ваш вопрос будет fpc

--А в чём заключаются премущества этого станка?

--А он позволяет производить такие же станки, которые в свою очередь производят такие же станки........

Короче из определения компьютерного вируса следует, что Паскаль -- это ВИРУС!!!!!!!!!!

anonymous
()
Ответ на: комментарий от geek

>> бугагец

аналогично...

сдаеться мне что ООП для паскалиста это Окошко Ориентированное Программирование

Ex ★★
()
Ответ на: комментарий от Ex

KOL - Key Objects Library is a set of objects to develop power (but small) 32 bit Windows GUI applications using Delphi but without VCL (or Free Pascal).

+1

anonymous
()

Хорошая шутка :)

Помнится Apple уже выбрала паскаль для написания MacOS, потом много лет переписывала все на Ц, и в конце концов взяла *nix :)

sergej ★★★★★
()
Ответ на: комментарий от klalafuda

>все-таки комрадо Линус редкостный раздолбай коих еще поискать надо :)

по ссылке сходи сначала, потом комментируй :)

PashaKustov ★★
()

В свое время мне попалась книга "Сравнение языков программирования Ada, C, Pascal...". Это сборник статей. В частности Керниган в статье "Почему Паскаль не является моим самым любимым языком" показывал, какие варианты кода на С невозможно таким же образом написать на Паскале. Его общий вывод такой: С позволяет программисту с нестандартным мышлением писать код так, как он себе это представляет. Паскаль загоняет программиста в определенные рамки. И это правда. С более гибкий язык. Ну так не стоит и забывать, для чего создавался С. Там же было несколько статей Н.Вирта. Мне понравилось, что дедушка Вирт не хаил никакой другой язык. Он просто показывал, что такие важнейшие свойства программ, как надежность и ясность, на Паскале достигаются более просто и естественно. В частности, он приводил пример создания ими в цюрихском университете операционной системы, практически полностью написанной на Паскале (только пару модулей было написано на ассемблере). Очень много программистов просили в свое время Вирта расширить Паскаль для целей прикладного профессионального программирования. Однако Вирт отвечал: "Я создал Паскаль для обучения студентов программированию и менять в нем ничего не нужно. Иначе это будет другой язык". И он потом появился (Модула). Йенсен, который сначала работал вместе с Виртом, а потом в Борланде, написал позже компилятор Модулы, который до сих пор считается самым надежным компилятором из всех существующих. Кстати мой опыт тоже показывает, что если человека начинали обучать программированию на Паскале, то и позже (на С или любом другом языке) он сохраняет стиль корректного написания программ. Так что Линус знает, что говорит. А все эмоции на тему крутости или наоборот того или иного языка - детский лепет. Это инструмент. И каждый выбирает его индивидуально. Чтобы высказывать свои компетентные мнения, следует иметь глубокие познания в обсуждаемом предмете. Иначе следует просто смотреть и слушать...

MR
()
Ответ на: комментарий от anonymous

>+ Нормальные строки, а не уродские как в Си. Половина проблем с безопасностью и разных тупых багов из-за только из-за строк.

Длиной в 255 символов максимум? Ню-ню. (И не надо сравнивать это с PString или как оно там называется - не помню уже - давно дело было - в С++ тоже всякие хитрые классы имеются)

>+ Настоящая модульность, а не ее имитация с помощью #include Чем uses crt; существенно отличается от #include <crt.h> && gcc -lcrt moo.c ?

PashaKustov ★★
()

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

los_nikos ★★★★★
()
Ответ на: комментарий от PashaKustov

>Длиной в 255 символов максимум? Ню-ню.

>не помню уже - давно дело было

Pasha сам с собой разговаривает и сам отвечает на собственный бред?:)

Led ★★★☆☆
()
Ответ на: комментарий от Ex

>ни что не ограничивает фантазию программиста так как это делает компилятор

Ну-ка, примеры в студию: как именно КОМПИЛЯТОР ограничивает фантазию программиста!:)

Led ★★★☆☆
()

О неужели возрождение Паскаля.И только щас 99% поняли что строгость языка самое главное

pinachet ★★★★★
()
Ответ на: комментарий от Ex

>ни что не ограничивает фантазию программиста так как это делает компилятор

Компилятор - это программа, которая, используя спецификацию языка, транслирует текстовый код в машинный. Так что выражать фантазию может ограничить только язык, но никак не компилятор.

MR
()
Ответ на: комментарий от MR

> В частности Керниган в статье "Почему Паскаль не является моим самым любимым языком" показывал, какие варианты кода на С невозможно таким же образом написать на Паскале.

Дада, он жаловался, что там логических операций нет. Вы знаете, сколько лет этой статье, и чем описанный там язык отличается от реализации хотя бы Turbo Pascal 7? :)

wRAR
()
Ответ на: комментарий от MR

>Так что выражать фантазию может ограничить только язык, но никак не компилятор.

Если компилятор написан криво (не полностью соответствует спецификации языка) - то вполне может ограничивать фантазию программиста.

anonymous
()
Ответ на: комментарий от anonymous

>Если компилятор написан криво (не полностью соответствует спецификации языка) - то вполне может ограничивать фантазию программиста.

Именно фантазию? уверен?:)

Led ★★★☆☆
()
Ответ на: комментарий от wRAR

>Дада, он жаловался, что там логических операций нет. Вы знаете, сколько лет этой статье, и чем описанный там язык отличается от реализации хотя бы Turbo Pascal 7?

Знаю. Я же написал: "Язык для обучения студентов программированию". Турбо Паскаль - это скорее Модула, а не стандартный (по Вирту) Паскаль. Но дело не в этом. Проблема возникает в следующем. Следует ли сознательно ограничивать себя в выборе средств написания программ в угоду надежности? Однозначно каждый сможет ответить только за себя. И вообще, здесь обсуждается предмет, на который даже специалисты не могут дать однозначного ответа, а уж тем более "специалисты" ЛОРа. Хотя, к примеру, появление более жесткой типизации в С++, Java и т.п. уже наталкивает на определенные мысли.

MR
()
Ответ на: комментарий от MR

> Следует ли сознательно ограничивать себя в выборе средств написания программ в угоду надежности?

Ну лозунг "Инструмент под задачу" тут, кажется, не очень популярен...

wRAR
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.