Особенности программирования БВК АМС

Автор Lytnev., 17.11.2011 18:11:06

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

TAU

Цитировать
ЦитироватьПо поводу "социальных лифтов". Как раз в СССР они действительно работали. Сын доярки вполне мог стать и академиком, и членом Политбюро.
При капитализме ("демократии") все как раз иначе. Понятие "застойная бедность" слышали?
Академиком или членом стать мог. Но всё равно остался бы нищим по сравнению с капитализмом
Нищих как раз при развитом социализме не было. А при капитализме - сколько хочешь. Зачем вообще становиться миллионером нормальному человеку? Есть достойное качество жизни, уверенность в будущем своем и своих детей - зачем стремиться к миллиардам?

ЦитироватьИ шансов реализовать своё хобби как Маск - не имел бы
Вообще, зачем "как Маск"? В Советском Союзе существовали свои пути, как раз множество НИИ функционировали. Даже поговорка была об "удовлетворении своего любопытства за государственный счет", помните?

TAU

Цитировать
ЦитироватьМодула-2 используется в настоящее время в ОАО ИСС
Да, тут пробегала ссылка на то, как они изобретали велосипед - кросс-платформу на модуле-2. У меня сразу возник вопрос, зачем? Пишут, что добились типизации, модульности, раздельной компиляции, кросс-платформенности. Внимание вопрос: про GNU С++ там никто не слышал вообще? Ведь это все уже есть и очень давно
Что именно непонятно?

Модула-2 - язык значительно более "строгий" нежели С/С++. Многие ошибки в Модуле-2 просто невозможны.
Модульности в смысле Модулы-2 в С/С++ нет.

bs

ЦитироватьМодула-2 - язык значительно более "строгий" нежели С/С++. Многие ошибки в Модуле-2 просто невозможны.
Я очень часто сталкиваюсь с попытками найти и использовать языковые средства, чтобы защитить себя от собственных глупостей. Не проще ли их просто не делать? Еще раз повторю одну важную мысль, которую я тут озвучивал. Дополнительные средства, по сути, есть "защита от дурака" и они, все равно, не спасают от всех проблем. Для устранения последних приходится использовать другие средства (простейший пример - peer review). Но эти средства в комплексе перекрывают и оплошности, которые можно случайно сделать без "защиты от дурака". Поэтому сама такая защита особой ценности не имеет.

ЦитироватьМодульности в смысле Модулы-2 в С/С++ нет.
Да есть, куда же она делась. В С++ объявления существуют отдельно от определений - аналог definition/implementation module в Модуле-2. Механизм импорта/экспорта с альясингом идентификаторов Модулы-2 реализуется в С++ посредством пространств имен. Я даже думаю, что последние вошли в С++ благодаря Модуле-2, но лень разгребать старые книжные завалы, чтобы подтвердить. Но помимо этого в С++ есть такая штука как абстрактные интерфейсы - они вообще поднимают модульность на качественно новый уровень.

Not

ЦитироватьЯ очень часто сталкиваюсь с попытками найти и использовать языковые средства, чтобы защитить себя от собственных глупостей. Не проще ли их просто не делать?
Не проще. Все глупости делаются в цейтноте, когда все средства хороши, лишь бы успеть к сроку. Но даже если вы персонально аккуратно обходите скользкие места, то как вы убережетесь от глупостей очередного нового гения, пришедшего в команду? Собственно тут зарыта одна из главных проблем С++. Он очень обширен, поддерживает множество подходов и далеко не все из них безопасны. Это жуткий гибрид. Собственно это было одной из главный причин популярности Java как промышленного языка. С намного чище С++ концептуально. В этом смысле оно проще и безопаснее. Хотя приложения реального времени все еще ждут своих Кернигана и Ритчи.  :D

TAU

Цитироватьсама такая защита особой ценности не имеет
А "не особую" имеет?

Цитировать
ЦитироватьМодульности в смысле Модулы-2 в С/С++ нет.
Да есть... думаю, что последние вошли в С++ благодаря Модуле-2
Ладно, уговорили  8) Впрочем, остальные недостатки С++ никуда не делись, о них неплохо написал Not.

avp

ЦитироватьНу, все же. Java провозглашалась как "безопасный" язык.
Ада - вообще серьезно отличается.
Дело не безопасности а в выразительной силе языка.  Код на Ява и Си не особо сильно различаются по выразительности.  Поэтому вероятность логических ошибок примерно одинакова

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

Си также не имеет альтернативы если надо активно управлять и взаимодействовать с железом. А для очень высокоуровневых вещей можно создать спец. DSL с кодогенератором в Си. Классический пример это генератор парсеров YACC.

avp

Цитироватьто как вы убережетесь от глупостей очередного нового гения, пришедшего в команду? Собственно тут зарыта одна из главных проблем С++. Он очень обширен, поддерживает множество подходов и далеко не все из них безопасны. Это жуткий гибрид.
Тем не менее для низкоуровневых вещей  альтернативы С/С++ сейчас нет и не предвидется.  Все конкуренты требуют нетривиального рантайма и виртуальной машины, что автоматически исключает их из рассмотения.

bs

ЦитироватьА "не особую" имеет?
Имеет, но настолько "не особую", что надо внимательно смотреть на сопутствующие ей жертвы.

bs

ЦитироватьАда помоему сейчас не особо актуальна, ибо слишком формализована и не снижает вероятность логических ошибок.
Я думаю Ада была очень популярна в свое время по причине того, что существовали компиляторы с доказанной корректностью. Но ограничения и постоянно возврастающие требования к сложности систем, судя по всему, победили. Да и не исключаю, что "корректные" компиляторы с Си тоже уже имеются. Как минимум помню, что были попытки по их созданию. Вполне возможно, что это еще одна из причин, почему для MSL использовался Си.

bs

ЦитироватьНе проще. Все глупости делаются в цейтноте, когда все средства хороши, лишь бы успеть к сроку.
Ну цейтнот - это вообще отдельная песня. Но интересно, есть ли у кого-то жизненный сравнительный опыт по спасению/утоплению проекта в цейтноте за счет языка реализации?

ЦитироватьНо даже если вы персонально аккуратно обходите скользкие места, то как вы убережетесь от глупостей очередного нового гения, пришедшего в команду?
Я спасаюсь, добиваясь сто процентного покрытия кода при тестировании. Это гарантирует отсутствие фатальных глупостей от таких гениев. Не фатальные глупости в большинстве своем отфильтровывают тим-лиды в процессе контроля ревизий. А то, что все-таки просачивается, вреда не приносит и вычищается со временем.

ЦитироватьСобственно тут зарыта одна из главных проблем С++. Он очень обширен, поддерживает множество подходов и далеко не все из них безопасны.
Ну что ж, может у меня какое-то неполное представление о безопасности.

ЦитироватьСобственно это было одной из главный причин популярности Java как промышленного языка. С намного чище С++ концептуально. В этом смысле оно проще и безопаснее. Хотя приложения реального времени все еще ждут своих Кернигана и Ритчи.  :D
Мне почему-то кажется, что Java купила обещаниями кросс-платформенности. Может купили еще кажущейся легкостью (ООП в крови, обширная стандартная библиотека, сборка мусора). В том виде в котором она была до появления генериков, это вообще была смешная система - все стандартные алгоритмы работали только с одним типом (базовым классом) и требовали небезопасного явного приведения результатов на выходе. Вот уж где был реальный простор для глупостей, тем более, что они провоцировались самой платформой.

Unispace

ЦитироватьНу цейтнот - это вообще отдельная песня. Но интересно, есть ли у кого-то жизненный сравнительный опыт по спасению/утоплению проекта в цейтноте за счет языка реализации?


Есть. Свежий отварной говяжий и свиной язык, реализованный с хреном, горчичкой и прочими радостями, спасал в нашей стране не один проект на госиспытаниях, или этапе сдачи :)


zyxman

ЦитироватьНищих как раз при развитом социализме не было. А при капитализме - сколько хочешь.
В СССР было огромное количество бомжей и нищих тоже хватало. Просто некоторые вроде вас их принципиально старались не замечать, а например милиция очень активно их использовала, и даже буквально тряслась за них, тк бомжи очень удобны чтобы в конце месяца ими закрывать план по поимке пьяных на улице.

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

Собственно в Японии к бомжам относятся не как к падшим и нездоровым, а считают их чем-то вроде юродивых - особенных людей с очень отличным от обычного взглядом на жизнь.
ЦитироватьЗачем вообще становиться миллионером нормальному человеку? Есть достойное качество жизни, уверенность в будущем своем и своих детей - зачем стремиться к миллиардам?
А зачем жить? Зачем работать? - Можно ведь бомжевать :?
Вы пытаетесь всех людей равнять по своему пониманию, а люди все разные.
Во вторых, если вы не понимаете смысла миллионов, это не ввиду того что миллионы плохие или бессмысленные, а ввиду ВАШЕЙ ограниченности.
Например, имей вы миллион, вам ведь не обязательно на него молиться - вы можете взять этот миллион и вложить его в ваши любимые графические средства разработки ПО.
Мне просто стыдно, что я вынужден вам тут рассказывать азы Карла Маркса.
Цитировать
ЦитироватьИ шансов реализовать своё хобби как Маск - не имел бы
Вообще, зачем "как Маск"? В Советском Союзе существовали свои пути, как раз множество НИИ функционировали. Даже поговорка была об "удовлетворении своего любопытства за государственный счет", помните?
Эти советские пути мерзкий и противный для нормального человека вариант исполнения мечты.
И да, часть людей идут на такое. Но нормальный и естественный путь как раз каким-то образом накопить излишки (то-ли самому заработать, то-ли в наследство получить, то-ли кредит взять) и затем эти излишки вложить в исполнение своей мечты.
И вот мерзостность социализма как раз в том что он запрещает естественный путь а предлагает неестественный - встраиваться в государство и использовать ресурсы государства.

Кроме того государственный путь плох еще тем что все ресурсы запускаются через один узел и если этот узел плохо работает, то вот это самое "удовлетворение любопытства за гос счет" становится неэффективным.
В капитализме КАЖДЫЙ может инвестировать свои излишки в чужую идею, а все неэффективными быть не могут, поэтому обязательно что-то получится.
"Демократия, это когда царь умный, а также добрый и честный по отношению к своим холопам".
--
Удача - подготовленный успех!

zyxman

Цитировать
ЦитироватьНе проще. Все глупости делаются в цейтноте, когда все средства хороши, лишь бы успеть к сроку.
Ну цейтнот - это вообще отдельная песня. Но интересно, есть ли у кого-то жизненный сравнительный опыт по спасению/утоплению проекта в цейтноте за счет языка реализации?
Функциональные лучше работают в цейтноте. Как раз ввиду отсутствия хранения состояния.

Цитировать
ЦитироватьСобственно это было одной из главный причин популярности Java как промышленного языка. С намного чище С++ концептуально. В этом смысле оно проще и безопаснее. Хотя приложения реального времени все еще ждут своих Кернигана и Ритчи.  :D
Мне почему-то кажется, что Java купила обещаниями кросс-платформенности.
Я тоже раньше думал что сила Java в кроссплатформенности, а сейчас убедился что Java выиграла за счет получения заметных плюсов (сборщик мусора и ООП) при минимальном отличии синтаксиса от Си. Фактически у программистов владевших Си появился выбор - либо довольно сложный и громоздкий С++ либо Java, и для большинства Java оказалась проще в использовании.
Реально кроме сборщика мусора больше никаких преимуществ для надежных систем Java не дает, ну правда есть еще Enterprise Java Beans, но то совсем отдельная история - именно как тут говорили надежность за счет специфики библиотек и рантайма.
"Демократия, это когда царь умный, а также добрый и честный по отношению к своим холопам".
--
Удача - подготовленный успех!

LRV_75

ЦитироватьВ СССР было огромное количество бомжей и нищих тоже хватало.
zyxman, Вы несете полную чушь
Главное не наличие проблем, главное способность их решать.
У каждой ошибки есть Имя и Фамилия

LRV_75

ЦитироватьМне мой родственник рассказывал историю которую он видел сам - еще в 1980-х  в СССР один вполне адекватный мужик, имевший семью, квартиру, работу и детей вдруг захотел жить в канализации и его оттуда так никакими методами вытащить и не смогли.
Мне знакомый рассказывал, что в США таких случаев множество
Главное не наличие проблем, главное способность их решать.
У каждой ошибки есть Имя и Фамилия

zyxman

Цитировать
ЦитироватьМодула-2 - язык значительно более "строгий" нежели С/С++. Многие ошибки в Модуле-2 просто невозможны.
Я очень часто сталкиваюсь с попытками найти и использовать языковые средства, чтобы защитить себя от собственных глупостей. Не проще ли их просто не делать? Еще раз повторю одну важную мысль, которую я тут озвучивал. Дополнительные средства, по сути, есть "защита от дурака" и они, все равно, не спасают от всех проблем. Для устранения последних приходится использовать другие средства (простейший пример - peer review). Но эти средства в комплексе перекрывают и оплошности, которые можно случайно сделать без "защиты от дурака". Поэтому сама такая защита особой ценности не имеет.
Ценность защиты зависит от способа реализации.
Когда защита реализуется через запреты и усложнения как это сделано в Модуле и в Аде, это одно, а когда защита реализуется через альтернативный, более удобно читаемый и более элегантный способ решения сложных задач (подход Эрланга) это СОВСЕМ другое.

Тут действительно стоит посмотреть примеры кода и сразу многие вопросы отпадут.
"Демократия, это когда царь умный, а также добрый и честный по отношению к своим холопам".
--
Удача - подготовленный успех!

LRV_75

ЦитироватьЭти советские пути мерзкий и противный для нормального человека вариант исполнения мечты.
Мерзкий дебил это вы. Посмотрите на youtube популярный сейчас клип "Наш дурдом голосует за Путина". Ничего близкого во времена СССР не было. Это я про видеоряд, даже не про подтекст
Главное не наличие проблем, главное способность их решать.
У каждой ошибки есть Имя и Фамилия

Not

Цитировать
ЦитироватьНе проще. Все глупости делаются в цейтноте, когда все средства хороши, лишь бы успеть к сроку.
Ну цейтнот - это вообще отдельная песня. Но интересно, есть ли у кого-то жизненный сравнительный опыт по спасению/утоплению проекта в цейтноте за счет языка реализации?
С++ очень приятен как для спасения, так и для утопления "горящего" проекта. Один хитрый хак и вуаля! Проблема однако в том, что никто не гарантирует что будет после этого самого "вуаля" Обычно в таким местах приличные люди пишут пространный комментарий: дескать это хак, он временный, и т.д., и живет этот хак долго и счастливо, пока какой нибудь неучтенный в спешке момент не обрушивает все с треском и пламенем. Языки более строгие предоставляют меньше возможностей, и тут больший акцент лежит на архитектуре. Если она предполагает предлагаемое решение, то путем аврала, штурма, решение находится. Если нет - то или проект усекается, или откладывается, что лучше запуска непроверенного и сколькзкого хака.


ЦитироватьРеально кроме сборщика мусора больше никаких преимуществ для надежных систем Java не дает, ну правда есть еще Enterprise Java Beans, но то совсем отдельная история - именно как тут говорили надежность за счет специфики библиотек и рантайма.
Java мало что дает для надежных систем, вследствие недетерминизма виртуальной машины и того же сборщика мусора. Java позволяет строить системы высокой доступности, но к надежности это имеет опосредованное отношение.

Not

Цитировать
Цитироватьу НАСА... у нас...
Простите за личный вопрос, Вы работаете в НАСА?

ЦитироватьПО Mars Science Laboratory написано на С, содержит 2.5 миллиона строк кода и исполняет порядка 130 конкурентных процессов
Это который запускают сейчас? А откуда дровишки? не поделитесь?

По поводу Си же можно лишь пожалеть.
Там команда порядка 30 разработчиков и 10 тестеров, плюс на них работает лаборатория надежности ПО (NASA) Почитать можно например в докладе сделанном по системе LogScope, в Гренобле, на конфе по методам runtime верификации, в 2009 году:

http://books.google.com/books?id=A_IBWF69WjMC&pg=PA16&lpg=PA16#v=onepage&q&f=false