Личный кабинет

"Надежность" языка программирования

Хотелось бы определиться с критериями надежности языка программирования!
Евгений Тюленев ( Пользователь )
В параллельной ветке муссируется термин "НАДЕЖНОСТЬ ЯЗЫКА".

Хотелось бы выяснить каковы критерии надежности?

1. Возможность допущения программистом ошибок синтаксиса?:) Думаю это не о языке а о программисте.

2. Ошибки компилятора или интерпретатора? Это опять не к языку, а к авторам компилятора или интерпретатора.

3. или что-то еще?....

ИМХО:
Показатели "надежности" это
1. количество популярных программ разработанных на этом языке.
2. количество библиотек функций для различных целей!
3. поддержка производителями различных продуктов (СУБД, 3D, оконные интерфейсы (Windows API, GTK, QT, ...)
4. наличие последователей по синтаксису и парадигме.

"И все таки она вертится" несмотря на все догмы и фанатизм!!!
Виталий Потопахин ( Пользователь )
Цитата (Евгений Анатольевич, 02.01.2013, 15:03) <{POST_SNAPBACK}>
В параллельной ветке муссируется термин "НАДЕЖНОСТЬ ЯЗЫКА".

Хотелось бы выяснить каковы критерии надежности?

1. Возможность допущения программистом ошибок синтаксиса?:) Думаю это не о языке а о программисте.

2. Ошибки компилятора или интерпретатора? Это опять не к языку, а к авторам компилятора или интерпретатора.

3. или что-то еще?....

ИМХО:
Показатели "надежности" это
1. количество популярных программ разработанных на этом языке.
2. количество библиотек функций для различных целей!
3. поддержка производителями различных продуктов (СУБД, 3D, оконные интерфейсы (Windows API, GTK, QT, ...)
4. наличие последователей по синтаксису и парадигме.

"И все таки она вертится" несмотря на все догмы и фанатизм!!!


Евгений Анатольевич. Термин надежность довольно имеет вполне определенный, общеизвестный смысл. С таким же успехом, вы могли бы , начать определять термины "алгоритм" и "программа".
Евгений Тюленев ( Пользователь )
Цитата (Потопахин Виталий, 03.01.2013, 14:00) <{POST_SNAPBACK}>
Евгений Анатольевич. Термин надежность довольно имеет вполне определенный, общеизвестный смысл. С таким же успехом, вы могли бы , начать определять термины "алгоритм" и "программа".

Если такой же как подчеркнутая фраза, тогда я не понимаю очевидного! :-)
И все таки что там про "НАДЕЖНОСТИ ЯЗЫКА" каковы критерии (не определение, не толкование смысла слова - это для особо одаренных пояснение)

ЗЫ: русский - крайне ненадежный язык, сколько правил оборотов, омонимов. Кстати английский - вообще кошмар: пишем одно - говорим другое... А китайский?...........
Олег Деревенец ( Пользователь )
Цитата (Евгений Анатольевич, 02.01.2013, 15:03) <{POST_SNAPBACK}>
В параллельной ветке муссируется термин "НАДЕЖНОСТЬ ЯЗЫКА".
Хотелось бы выяснить каковы критерии надежности?
1. Возможность допущения программистом ошибок синтаксиса?:) Думаю это не о языке а о программисте.
2. Ошибки компилятора или интерпретатора? Это опять не к языку, а к авторам компилятора или интерпретатора.
3. или что-то еще?....


Напомню, что тема муссировалась в этой ветке, начиная с поста #144 :

http://pedsovet.org/forum/index.php?showto...mp;#entry270762

Если погуглить фразу «Надежность языка программирования», то многие ссылки приведут к языкам Ада (Ada) и Ява (Java), и это не случайно. Проблема надёжности ЯП обострялась с внедрением встроенных управляющих систем в такие сферы, как авиация, космос, вооружения, АЭС, сложное медицинское оборудование. Язык Ада как раз и создавался с целью снизить негативное влияние субъективного человеческого фактора, желающие найдут подробности тут:

http://ru.wikipedia.org/wiki/Ада_(язык_программирования)

Многие из популярных ныне языков не годятся на роль надежных, по крайней мере, по двум причинам:

1. Из-за наличия врождённых синтаксических слабостей (проще говоря -- кривостей) – это славные C/C++.
2. Из-за динамической типизации.

Вторая причина не даёт компилятору находить многие ошибки. В этой связи приведу задачку для 3-го класса: N землекопов за время T вынули K кубометров грунта. Какова средняя производительность землекопов? Решение = K/N/T. Некоторые школяры, как вы знаете, умудряются, к примеру, складывать землекопов с кубометрами и вычитать часы: K+N-T. Подобную формулу можно свободно откомпилировать на любом ЯП. На любом, кроме Ада. Этот язык не позволит вам складывать и вычитать физические величины в разных единицах измерения, например, метры с миллиметрами.

Многие посчитали Аду слишком тяжёлым, перегруженным языком, и Вирт пошёл в противоположном направлении: создал очень простой и ясный язык Oberon. Мне трудно судить, которая из этих крайностей ближе к цели – предельно надёжному ЯП. Одно знаю точно: исходной точкой обоих проектов был Паскаль, и все его, Паскаля, потомки обладают повышенной надёжностью.

И тут, вместе с Паскалем, мы возвращаемся в нашу школу. Что будет, если красивый и надёжный язык мы заменим кривыми «Сями» или пусть и мощными, но неполноценными интерпретируемыми языками с динамической типизацией? Смогут ли наши будущие специалисты отличать песок от золота?

Цитата (Евгений Анатольевич, 02.01.2013, 15:03) <{POST_SNAPBACK}>
ИМХО:
Показатели "надежности" это
1. количество популярных программ разработанных на этом языке.
2. количество библиотек функций для различных целей!
3. поддержка производителями различных продуктов (СУБД, 3D, оконные интерфейсы (Windows API, GTK, QT, ...)
4. наличие последователей по синтаксису и парадигме.


А мужики то не знали... И мучились над Адой и Явой :-(
Впрочем, если "надёжность" в кавычках, то можно и согласиться.
Евгений Тюленев ( Пользователь )
Олег Виленович,

Я Вам крайне признателен, что хоть Java (Кстати правильно -джава, Ява - это остров) попал в список надежных.

PS: Давайте, еще несколько шажков, и Вы поймете, что основа для школы все таки C. Ну не пугать же учеников сразу Java( там слов английских много).
Олег Деревенец ( Пользователь )
Цитата (Евгений Анатольевич, 03.01.2013, 19:30) <{POST_SNAPBACK}>
Олег Виленович,
Я Вам крайне признателен, что хоть Java (Кстати правильно -джава, Ява - это остров) попал в список надежных.
PS: Давайте, еще несколько шажков, и Вы поймете, что основа для школы все таки C. Ну не пугать же учеников сразу Java( там слов английских много).


Евгений Анатольевич, я не предлагаю пугать детишек Явой (мне так произносить удобней, я ж не англичанин), а за Си не просите -- ничем не смогу помочь, он сам себе приговор подмахнул. С наступившим Вас!
Евгений Тюленев ( Пользователь )
С Новым годом! Олег Виленович.
Да что Вам так С не угодил, базовый синтаксис прост до самозабвения (этот самый синтаксис и перешел в Java PHP Perl без существенных изменений), а то что своеобразные функции в различных библиотеках - ну, и что?

Не нравится printf сделайте свою функцию вывода, а вот на writeln уже ни чем не заменить не прибегая к танцам с бубном вокруг assembler

PS: по поводу произношения - это не я, это Sun Microsystems настаивает.
И как преподаватель информатики я обязан с этим считаться, и требовать соответствующего произношения от учеников.

Для этого мне, в свое время, пришлось самостоятельно изучить базовый английский. Часто со смехом вспоминаю как я говорил "врителн" или "тхен" вот, думаю, знающие люди потешались!
Олег Деревенец ( Пользователь )
Цитата (Евгений Анатольевич, 04.01.2013, 07:36) <{POST_SNAPBACK}>
PS: по поводу произношения - это не я, это Sun Microsystems настаивает.


А что, в Sun знают русский язык? В каждом языке есть свои законы и традиции, англичане говорят «Москау», а не «Москва», мы произносим «Париж», а не «Пари», как французы.

Цитата (Евгений Анатольевич, 04.01.2013, 07:36) <{POST_SNAPBACK}>
Не нравится printf сделайте свою функцию вывода


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

Цитата (Евгений Анатольевич, 04.01.2013, 07:36) <{POST_SNAPBACK}>
а вот на writeln уже ни чем не заменить не прибегая к танцам с бубном вокруг assembler


А нужно ли? Впрочем, бывает необходимость и в нестандартном вводе-выводе, например, через com-порты. Но даже там я спокойно обхожусь Паскалем.

Цитата (Евгений Анатольевич, 04.01.2013, 07:36) <{POST_SNAPBACK}>
Да что Вам так С не угодил, базовый синтаксис прост до самозабвения (этот самый синтаксис и перешел в Java PHP Perl без существенных изменений).


Да главное то не в синтаксисе. Хотя в «сях» он и кривоват, но в последующих языках кое-что подправлено. Главное в том, что Java, PHP, Perl – это уже совершенно другие языки, там другие идеи и принципы. Или Вы думаете, что фигурные скобки {} – это шедевр человеческой мысли и ради них надо учить Си? Ну тогда и я Вас насмешу, вот анекдот в тему.

В русскоговорящее село одной из бывших республик, а ныне независимого государства, приехал чиновник и объявил, что скоро все будут изучать государственный язык. Есть вопросы? – спрашивает. Встаёт механизатор:
-- А как по вашему будет «трактор»?
-- Трактор.
-- А «комбайн»?
-- Комбайн.
-- Ммм… А «магазин»?
-- Магазин.
-- Так-так… Ну а *** ? (тут он произносит крепкое русское слово).
Чиновник помялся и прокурлыкал что-то по-своему. Механизатор удивлённо развёл руками: «Так что, нам из-за одного слова весь язык учить?».
Евгений Тюленев ( Пользователь )
Цитата (Олег Деревенец, 04.01.2013, 12:45) <{POST_SNAPBACK}>
А что, в Sun знают русский язык? В каждом языке есть свои законы и традиции, англичане говорят «Москау», а не «Москва», мы произносим «Париж», а не «Пари», как французы.

Может кто и знает (наши люди всюду), вместе с тем это касается не только русского, они настаивают, чтобы название звучало одинаково на всех языках Мира.

Цитата
Если Вы намекаете на макроподстановку, то эта штука настолько же заманчивая, насколько и вредная – это лучший способ запутать программу.

Еще раз повторяю: учите С!
Макроподстановки и там не жалуют, все делаеся в рамках языка определением своей функции. Я как-то это делал, когда нужно было выводить кириллицу в консоле windows. просто написал функции rprintf и rscanf и сказал ученикам вызывать их.
Цитата
Да главное то не в синтаксисе. Хотя в «сях» он и кривоват, но в последующих языках кое-что подправлено.

под базовым синтаксисом понимается:
  1. различные операции(арифметические, логические и т.д.)
  2. реализация алгоритмических конструкций (циклы, ветвление, выбор)
  3. определение функций.
  4. определение переменных

И что, конкретно, подправлено в Java, PHP, и т.д.

А вот Вам быль:
перестройка, демонстрация.
корреспондент спрашивает девушку:
- Как Вы относитесь к Ленину и его работам.
- Ленина ненавижу, а работы полный отстой!
- А какие работы Вы читали?
- Да ни каких, и не собираюсь!!!
Олег Деревенец ( Пользователь )
Цитата (Евгений Анатольевич, 04.01.2013, 14:37) <{POST_SNAPBACK}>
Может кто и знает (наши люди всюду), вместе с тем это касается не только русского, они настаивают, чтобы название звучало одинаково на всех языках Мира.

Ах, злодеи! А тех, кто будет нарушать, в список Магницкого?

Цитата (Евгений Анатольевич, 04.01.2013, 14:37) <{POST_SNAPBACK}>
Еще раз повторяю: учите С!

А в ученики возьмёте? :-)
Но что-то клоним мы ветку в сторону, причём тут надёжность ЯП?
Кстати, C/C++ никогда не рассматривались в качестве кандидатов в надёжные.

footer logo © Образ–Центр, 2018. 12+