На чем пишется софт для КА?

Автор hudvin, 06.05.2009 15:28:09

« предыдущая - следующая »

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

PyKaB

Цитата
ЦитатаЯ бы сказал так, что хорошо написанная программа на Си всегда будет несколько быстрее программы на Ява, но в случаях не идеальных предложений Ява вообще может вырваться вперед. 10 кратный разрыв будет наверно только в случае PHP(кто-то вспоминал вэб сервер на КА? :-D )
Ваш тезис может быть справедлив только в случае процедурной программы на Ява и объектной на С++. Процедурные же алгоритмы написанные на С всегда значительно быстрее аналогичных программ на Яве. Именно вследствие интерпретируемости последних. И оптимизатор (JIT, Hotspot и т.д.)вам не поможет. Хорошая оптимизированная С - программа мало чем отличается от вручную написанного ассемблерного кода - мало что приходится выбрасывать.
Конечно, давайте писать только процедурные программы и почаще использовать ассемблер... Это конечно придаст удобство, скорость и надежность "нескольким миллионам строк кода" :)
Так что на порядок различий не будет, тем более что использования того же Python, Java, да хоть и PHP не убирает возможности написать критичные вещи на С, что всегда и делается

Not

Цитата
Цитата
ЦитатаЯ бы сказал так, что хорошо написанная программа на Си всегда будет несколько быстрее программы на Ява, но в случаях не идеальных предложений Ява вообще может вырваться вперед. 10 кратный разрыв будет наверно только в случае PHP(кто-то вспоминал вэб сервер на КА? :-D )
Ваш тезис может быть справедлив только в случае процедурной программы на Ява и объектной на С++. Процедурные же алгоритмы написанные на С всегда значительно быстрее аналогичных программ на Яве. Именно вследствие интерпретируемости последних. И оптимизатор (JIT, Hotspot и т.д.)вам не поможет. Хорошая оптимизированная С - программа мало чем отличается от вручную написанного ассемблерного кода - мало что приходится выбрасывать.
Конечно, давайте писать только процедурные программы и почаще использовать ассемблер... Это конечно придаст удобство, скорость и надежность "нескольким миллионам строк кода" :)
Так что на порядок различий не будет, тем более что использования того же Python, Java, да хоть и PHP не убирает возможности написать критичные вещи на С, что всегда и делается
Но ведь речь о бортовых системах, не так ли? Или вы тоже предлагает веб-сервер на борт КА запихнуть?  :D

zyxman

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

Хоотя в целом таки в финансах высоки и требования надежности, и на производительность тоже обращают внимание, и оплата высока, и код переписывать любят.

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

zyxman

ЦитатаНо ведь речь о бортовых системах, не так ли? Или вы тоже предлагает веб-сервер на борт КА запихнуть?  :D
Веб-сервер врядли, а вот виртуальную машину почему нет?
"Демократия, это когда царь умный, а также добрый и честный по отношению к своим холопам".
--
Удача - подготовленный успех!

Not

Цитата
ЦитатаНо ведь речь о бортовых системах, не так ли? Или вы тоже предлагает веб-сервер на борт КА запихнуть?  :D
Веб-сервер врядли, а вот виртуальную машину почему нет?
А чем вас не устраивает реальная машина?  Зачем еще один виртуальный слой?

zyxman

ЦитатаА чем вас не устраивает реальная машина?  Зачем еще один виртуальный слой?
Меня как раз устраивает реальная машина, а особенно меня устраивает что их много разных, тк я естественно заинтересован чтобы мне было больше работы :D

Кроме того мне еще более выгодно не использовать чужой код а каждый раз писать свой новый с ноля, особенно хорошо когда даже ОС нет - тогда особенно хорошо платят :lol:

А вот заказчику в лице тех-же вояк и финансистов (UPD вообще-то любому, даже воякам), интересно повторно использовать код, иметь несколько альтернативных поставщиков (и менять их при необходимости легко), и плюс чтобы даже при разном железе можно было везде запускать один и тот-же код, и этого можно достичь виртуальной машиной - вон у IBM AS/400 принципиально не раскрываются детали внутренней архитектуры, и уже есть несколько линеек с разным железом, а программят их под виртуальную машину.
"Демократия, это когда царь умный, а также добрый и честный по отношению к своим холопам".
--
Удача - подготовленный успех!

sychbird

А давайте попробуем отранжирить значимость сопутствующих проблем.

Скорость создания ПО
Стоимость создания ПО
Стоимость поддержания стабильности ПО.
Универсальность ПО
Переносимость ПО на различные типы архитектур.
Стоимость завоевания рыночный ниши для ПО, способной обеспечить прибыль от создания, поддержания и развития ПО.
Ресурсоемкость ПО со стороны "железа"
Содержание системы подготовки кадров по ПО и системы поддержки пользователей.
Длительность конкурентно-способной жизни ПО

Может кто то добавит что- нибудь в список.
Какие мнения будут? Имеет смысл учреждать опрос?
Ответил со свойственной ему свирепостью (хотя и не преступая ни на дюйм границ учтивости). (C)  :)

LRV_75

ЦитатаА давайте попробуем отранжирить значимость сопутствующих проблем.

Скорость создания ПО
Стоимость создания ПО
Стоимость поддержания стабильности ПО.
Универсальность ПО
Переносимость ПО на различные типы архитектур.
Стоимость завоевания рыночный ниши для ПО, способной обеспечить прибыль от создания, поддержания и развития ПО.
Ресурсоемкость ПО со стороны "железа"
Содержание системы подготовки кадров по ПО и системы поддержки пользователей.
Длительность конкурентно-способной жизни ПО

Может кто то добавит что- нибудь в список.
Какие мнения будут? Имеет смысл учреждать опрос?
заказчик хочет надежный автомобиль с кондиционером. Ок! Начинаем разрабатывать все с нуля, начиная с изобретения колеса. В итоге получается запорожец, при работающем кондиционере ехать отказывается, т.к. Уходит в обработчик прерывания от кондиционера, и стоит вся эта хрень 10 млн, заказать автомобиль в салоне БМВ нельзя потому что у них нет лицензии роскосмоса и вооще у них комплектующие без пятой приемки. Вот так!
Главное не наличие проблем, главное способность их решать.
У каждой ошибки есть Имя и Фамилия

MikeP

Цитатазаказать автомобиль в салоне БМВ нельзя потому что у них нет лицензии роскосмоса и вооще у них комплектующие без пятой приемки. Вот так!

+1  :)

Главное в "боевом" ПО - надежность.
Все остальное вторично.

Not

ЦитатаГлавное в "боевом" ПО - надежность.
Все остальное вторично.
Ну тогда никакого ПО. На кулачках!  :D

MikeP

Цитата
ЦитатаГлавное в "боевом" ПО - надежность.
Все остальное вторично.
Ну тогда никакого ПО. На кулачках!  :D

Мой опыт - 20 летней давности. Кросс Ассемблер с последующей прошивкой, позже прожигом БЦВМ.
Все ручками, ручками.. И межмашинный обмен, и запись-чтение на магнитофон и т.д. и т.п.
Прошивка правда делалась после обкатки на Байке с помощью наладочных ОЗУ - огромные ящики в несколько раз больше самих БЦВМ.

О современности в отрасли не знаю, посему молчу.
Хотелось бы услышать современных практиков.

Not

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

TAU

ЦитатаХороший WEB проект сложнее софта для КА по любому
Не "по любому".

Есть разные виды сложности, как тут уже, кажется, отмечалось.

Так вот, сложность управляющей программы для КА состоит в режиме реального времени. Каждая ситуация, отражаемая значениями некоторых переменных, а также состоянием внешней по отношению к БКУ среды, привязывается к моменту времени - т.е. те же самые значения переменных в иной момент могут обрабатываться по-другому. Не уверен, достаточно ли я четко изъяснился, непллохо суть данного вида сложности изложена у Гецци, Джазайери и Мандриоли в "Основах инженерии программного обеспечения".

Кстати, алгоритмическая сложность веб-проектов, как правило, никакая. Тривиальны они, за небольшими исключениями.

TAU

ЦитатаПДП
ПДП - прямой доступ к памяти имеете в виду? Или некий "диспетчер программ"?

TAU

Цитатана самолетах (западных, увы), где реализуется приборная панель-стеклянный кокпит, навигация, доки по оборудованию итп, все в одном флаконе
Не только на западных.

Кстати, там и еще кое-что покруче перечисленного Вами реализуется ;-)

TAU

ЦитатаP.S. Над вэб софтом, кстати, не стоят особо потешаться. Если это не чья-то простая домашняя страничка, то кол-во технологий, языков и т.д. знание которых требуется для проектирования не сравниться с остальными областями
Чтобы так уверенно заявлять, что что-то с чем-то не сравнится, надо разбираться в этом чем-то.

LRV_75

Цитата
ЦитатаПДП
ПДП - прямой доступ к памяти имеете в виду? Или некий "диспетчер программ"?
именно прямой доступ к памяти, с привязкой каждого блока к СЕВу
Главное не наличие проблем, главное способность их решать.
У каждой ошибки есть Имя и Фамилия

zyxman

ЦитатаА давайте попробуем отранжирить значимость сопутствующих проблем.

Скорость создания ПО
Стоимость создания ПО
Стоимость поддержания стабильности ПО.
Универсальность ПО
Переносимость ПО на различные типы архитектур.
Стоимость завоевания рыночный ниши для ПО, способной обеспечить прибыль от создания, поддержания и развития ПО.
Ресурсоемкость ПО со стороны "железа"
Содержание системы подготовки кадров по ПО и системы поддержки пользователей.
Длительность конкурентно-способной жизни ПО

Может кто то добавит что- нибудь в список.
Какие мнения будут? Имеет смысл учреждать опрос?
Многие пункты противоречат друг другу.
Например
Стоимость поддержания стабильности ПО коррелирует Универсальность ПО и вообще со стоимостью ПО.

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

zyxman

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

zyxman

ЦитатаМногоплатформенность на борту никого не интересует.
А в масштабах страны?
- Сколько в США типов военных самолетов представляете?
- А представляете, что на каждом стоит по десятку независимых приборов (я считаю только сложные, вроде радара), каждый из которых управляется собственным отдельным компьютером?
И как думаете, сильно удобно обслуживать такой машинный комплекс?
- У каждого прибора свой отдельный разработчик ПО, и он регулярно присылает ВВС новые прошивки, а техники должны все приборы перешивать, у каждого прибора своя технология тестирования и выявления неисправностей и ремонта, и все это нередко где-нить в Афганистане или в других не шибко комфортных условиях.

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