#0
by Иде я
Линус Торвальдс достаточно нелестно отозвался о некоторых опциях показа предупреждений (warnings) в GCC, говоря о том, что реализация многих из них просто не учитывает желания программиста и реальные проблемы. Тем неменее, некоторые из предупреждений очень полезны и используются при сборке ядра. Линус также отметил, что язык C не совершенен и для написания абсолютно безопасного кода он бы выбрал Паскаль.
#2
by igork1966
Сделайте систем которой сможет пользоватся и дурак, и только дурак захочет ей пользоваться.
#11
by VasilyKushnir
Что такое "безопасный код"? Я что, что-то не то сегодня курю? Всего два примера: Делфи и С-билдер. Лично мне Паскаль не в нюх, но если надо что-то побыстрячку и красиво, естественно Делфи! Хотя Си уважаю больше. В принципе, если сильно постаратся, то и на Си можна каку накалякать, а Бейсике забацать лялю. В чем проблема?
#13
by ШтушаКутуша
Принято считать,что C++ генерит более эффективный код. В смысле легче его сгенерить.
#18
by romix
Только в C++ синтаксис - черт ногу сломит. Нет ключевых слов var, procedure, function. Не знаю, как компилятор (и человек) находит где объявления, а где код. В Delphi код точно такой же, но его хотя бы читать можно.
#22
by Гений 1С
Если в данном диалекте Пасцаля нет типа Variant, то это отцтой, иногда он нужен. А если такой тип есть, то это уже Бейсик. Навижн со встроенным паскалеподобным языком - это ужас... Программист должен думать о длине строк. Трандец. Не, я выбираю бейсик и джава.
#24
by romix
Кроме того, в C - нагромождение операций. Такого наворотили, что сам чёрт копыта отбросит. Даже Волшебник попался как-то на эту удочку: написал & вместо && в PHP-скрипте, и ничего, PHP это "успешно" схавал.
#26
by MMF
есть опасные бритвы, а есть безопасные. Бреют и те и другие, а порезаться можно только опасными. Будущее за обероноподобными языками
#27
by romix
Этот тип есть, но относительно редко используется (не рекомендуется его юзать без необходимости). Строковый тип Паскаля был повторен в C++; он быстрее (как ни странно) и безопаснее C-шного отстоя.
#29
by romix
При работе с оборудованием на производстве необходимы заграждения и такие вещи, как двуручное включение пресса.
#33
by Кецалькоатль
Тут, имхо, какое-то нелогичное трактование понятия "безопасного кода". Я так и не понял, что имелось ввиду.
#41
by Иде я
За рулем пока...но морально готовлюсь. Думаю - может в харю на дачу рвануть ? Или тупо с пивом рубится в линейку...хз
#44
by VasilyKushnir
>Строковый тип Паскаля был повторен в C++; он быстрее (как ни странно) и безопаснее C-шного отстоя. А при каких хырах миллиция, если свинью молнией убило? Какая связь между строковым типом и безопасностью? И вообще о какой безопасности идет речь? Я же говорю, пользуюсь и тем и другим. И у каждого есть свои полюсы и свои минусы.
#52
by romix
>"Какая связь между строковым типом и безопасностью? И вообще о какой безопасности идет речь?" Речь идет об ошибке переполнения буфера - пожалуй, самой частой причине взлома и краха систем, написанных на C. Если в Дельфи увеличение строки просто приведет к автоматическому выделению новой памяти (по-моему, происходит удвоение размера буфера, когда строка перестает помещаться в старом буфере), то в строках в стиле C неожиданно большая строка может затереть указатели и адрес возврата в стеке, чем пользуются злоумышленники. И случайные ошибки (сбои) часто возникают по этой же причине. Помимо того, что C-строки небезопасные (на них нельзя положиться), так они еще и тормозные. Чтобы определить длину строки, надо просканировать ее от начала до конца, а это отнимает много тактов процессора в обычных строковых операциях (копирование, вставка, выделение подстроки и т.д.). Еще один недостаток C-строк: строка не может содержать символ с кодом 0. Короче, сборник уродств и недостатков - для, пожалуй, самого распространенного на практике типа данных. Помимо строк часто используются указатели, чтобы строить структуры данных. В библиотеке Delphi есть готовые структуры данных (такие, как TStringList), тогда как в C надо строить при помощи указателей - весьма "взрывоопасного" строительного материала. Ошибка может остаться незамеченной, а у заказчика (или при эксплуатации) приведет к краху системы. Если же рассматривать C как более компактное описание ассемблера - обилие трудночитаемых и чреватых ошибками закорючек (некоторые программисты составляют из них затейливые конструкции в стиле "достать левой пяткой правое ухо") и отсутствие необходимых ключевых слов (var, procedure, function) заставляют задуматься, откуда всенародная любовь к языку из закорючек и опасностей. Если бы из C++ выкинули (или поглубже запрятали) C-шное наследие, и добавили (var, procedure, function), то я бы считал его нормальным языком. Только не есть ли это Delphi...
#53
by Валентин
Задрали... Кривизна языка прямо пропорциональна кривым рукам. Если не думаешь когда пишешь - то о чем можно говорить? В качестве аргумента когда-то говорил что и не васике можно срыв стека организовать... Так что думать надо что пишешь. С - достаточно емкий язык. С++ еще более емкий. Искать Буча, Александреску etc. Читать и восхищаться.
#54
by Иде я
Кстати, а третья нормальная форма не факт что будет эффективна... К сожелению реалии таковы, что надо заставить на существующем железе заставить выполнятся эти ипучие бухрасчеты за минимальное время.
#57
by Моха Лёхов
В Паскале труднее сделать ошибку, язык жестче относится к типам данных, ссылкам и пр. В С можно такого наколбасить. Но С погибче будет.
#58
by Neco
Скорее всего Линус говорил не про Паскаль, а про Ада: язык программирования, созданный в 1979—1980 годах в результате грандиозного проекта, предпринятого Министерством обороны США с целью разработать единый язык программирования для так называемых встроенных систем. (...) Язык Ада возник в результате международного конкурса языковых проектов, проходившего в 1978—1979 годах. (...) Интересно, что все языки, дошедшие до последних туров этого конкурса, были основаны на Паскале. В этой связи Аду можно предварительно охарактеризовать как Паскаль, развитый с учётом заданных пяти основных требований. При этом авторы пошли в основном по пути расширения Паскаля новыми элементами. )
#59
by romix
Макроглоссия (macroglossia; мокро- + греч. glossa язык; син. мегалоглоссия) - патологическое увеличение языка; наблюдается как аномалия развития или при наличии в языке хронического патологического процесса.
#60
by orefkov
2romix Так уж люди устроены. Одни понимают концепцию указателей сразу, другие никогда, как бы не старались. В С++ нет никакого встроенного строкового типа. Как был в C char*, так и остался. Другое дело, что C++ позволяет с легкостью определить свой собственный тип, с какими надо свойствами, и использовать его. Боишься указателей - юзай smart-поинтеры, коих несчесть числа. C++ нравится мне своим духом, который выражается в трех принципах: 1. Поддерживать язык простым. 2. Доверять програмисту. 3. Не мешать програмисту делать то, что ему надо.
#61
by Mikeware
Присоединяюсь. Как сказал Димка Голдобин еще году в 1989 - "ненавижу умные компиляторы" :-) Зы: правда, я давно не брал в руки сишек... ;-)
#63
by Ay49Mihas
Всё это понятно, но С давно уже позиционируется как кроссплатформенный ассемблер, а не как язык высокого уровня для решения прикладных задач. То, что студенты, выучившие алгоритмизацию на примере С, пытаются всё остальное реализовать на С, не говорит о том, что С плох. Языки высокого уровня популярны потому, что там можно выразить больше действий языков низкого уровня в одной команде (одной строке). А человек делает почти постоянное количество ошибок на постоянное количество строк кода. И если это будет язык высокого уровня, то ошибок будет меньше на одну задачу, чем в языке низкого уровня. Для меня Паскаль плох своей низкой читаемостью (да, хороший стиль может исправить эту ошибку, но я почему-то встречался только с исходниками где табуляция заменена двумя пробелами, и это всё делает код массивным и нечитаемым). Из хорошо читаемых, высокоуровневых и удобных, опять же, могу предложить PHP и Python. Как ЯП общего назначения.
#64
by Песец
Изучение языка С++ для программиста - как для лингвистов латынь: если знаешь латинский можно считать что знаешь все европейские языки и без особого труда освоишь любой другой язык. Можно изучать английский, затем немецкий, затем последовательно остальные. А можно один раз выучить латынь, а потом достаточно посмотреть что в другом языке убрано/упрощено в сравнении с латынью - и можно сказать ты знаешь этот язык.
#66
by VasilyKushnir
Вопросс romix. Наверное у меня к пасику предубеждение (хотя Делфи курю и даже нравится) вот из-за чего: Объявление переменных - заметил, что для нормальной работы нужно сначала объявлять более крупные (Дабле, Реал) и по нисходящей к более коротким (Байт). Типы привожу условные. Если же все вперемешку были большие проблемы - точно не помню, но вроде надо было, чтобы переменная начиналась с границы слова. В современных версиях Пасика это уже исправлено?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Как запретить очищать элемент управления по SHIFT+F4?
- Получить элементы на форме зная Объект метаданных и имя формы
- Зачем у колонки свойство "ОтображатьВШапке"
- Как узнать на какой странице панели находится элемент формы
- Видимость колонок "Субконто" в УПП
- ЗУП Учет премий при расчете среднего заработка
- Ошибка "Ожидается последовательность операторов"
- Алладиновский HASP на сервере занимает 40% процессорного времени.
- Вопрос по 1С Конвертация данных
- Нумерация документов ПКО и РКО
- TradeWare.epf (xml?) Может кто нибудь кинет его в общий доступ?
- Кнопочка Добавить в Настройках отчетов
- Запрос с общими итогами
- А ты азартен, Парамоша! Ох, азартен! Вот что тебя губит!
- Проверка орфографии в 1С
- Офф. Какие прикладные задачи требуют нечеткой логики программирования ?
- Как программно записать документ без закрытия и без запроса на сохранение?
- Как в тис 9.2 указать что сумма принята у клиента через пластиковую карту?
- Как разделить Имя Фамилию Отчество?
- Комплексная. Как сторнировать счет-фактуру(Поступление)?