-
Re: Про вычислительную технику
Цитата:
Сообщение от
Yurec
Ладно, раз молчите, прокомментирую то что есть.
Раз я «молчу». Ага.
Цитата:
Мощность удваивается, а C# тормозит в 4 раза больше плюсов. Значит, через 4 года при сравнимом быстродействии будет такая же функциональность, как у программы 4х летней давности. Либо ставить еще более мощное железо. Для истребителя это - дополнительный объем и вес.
Откуда взяли разы? Испытывали? Пытаетесь спорить с тем, кто испытывал? Скорость C# иногда выше кодогенератора Visual C++ и никогда не бывала хуже в разы. Байткод меньше. Подозреваю, что и после кодогенерации, если она зачем-то нужна. Особенно быстра плавающая точка, так как, видимо, сопроцессор -- стековое устройство. Впрочем, если волнуют крохи, почитайте исследования. Я испытал, у меня обратные выводы -- C++ не выигрывает и в быстродействии.
Цитата:
Никто такого не предлагает.
Вы предлагаете. C++ безнадёжно устарел, новый код на нём писать -- ошибка управления проектом. Прежний код можно осторожно использовать, до тех пор, пока не заменят и его.
Цитата:
Умно - выбрать максимально эффективный инструмент. Докажите, что C# более эффективен для БРЭО - я умолкну. Вы доказывать не хотите, и упорно игнорируете все мои вопросы.
Могу показать, доказать никто никому ничего не сможет, это вера Ваша. Я легко C# сменю на лучший, если появится что-то. Не раз ведь менял.
Цитата:
Напишите на C# следующие проекты:
1) Конкурентоспособную СУБД;
2) Высокопроизводительный онлайн-сервис
3) Современный, технологичный 3D - движок.
То есть Вы это всё написали? Уважаю. И сколько лет, по-вашему, C#?
Цитата:
Как напишете, приходите и рассказывайте что C# серебряная пуля и рулез неимоверный.
Сами идите и найдите свои «4 раза». Найдёте -- приведите, и можете продолжить писать глупости.
8
Цитата:
Сообщение от
Verof
Как вы думаете почему игры пишут на С++, а не на С#?
Мне вопрос? У них и спросите. Впрочем, пишут и на C#, распространённые 3D engine из него доступны.
Сам использовал для графики (крывых, шкал, схем) _только_ Direct3D, так красивее, а не потому что нужна была трёхмерность, подвижность и освещение.
Использовать довольно просто, но C++ описан лучше, конечно. Однако C++ знаю, заимствовать из примеров и описаний для него довольно просто.
-
Вложений: 1
Re: Про вычислительную технику
Цитата:
Сообщение от
Дм. Журко
Откуда взяли разы? Испытывали?
Да, испытывал. И не только я - ссылку приводил выше. Сомневаетесь в результатах? Опровергните.
Цитата:
Пытаетесь спорить с тем, кто испытывал? Скорость C# иногда выше кодогенератора Visual C++ и никогда не бывала хуже в разы.
Приведите код, посмотрим. Я привел ссылку, там код и числа. Вы не привели ничего.
Впрочем, если рассматривать "сфероконя в вакууме" - голый цикл с суммированием чисел - производительность дествительно сравнимая, у C# чуть-чуть выше, это я тоже проверял. Только как обычно бывает, в реальном приложении картина совсем другая. Чуть ниже тестовый код и результаты.
Я предлагаю писать на том, что более эффективно.
Цитата:
C++ безнадёжно устарел, новый код на нём писать -- ошибка управления проектом.
Дмитрий, а Вы сами-то хоть одним проектом управляли, сложнее драйвера для портов?
Цитата:
То есть Вы это всё написали?
Не все, только номер 2 - движок для онлайн-казино, в составе команды из 3х человек. Название компании-заказчика привести не могу, по вполне понятной причине.
Писали на C++, поскольку заказчик предъявил определенные требования к производительности. На C# выполнить эти требования было бы невозможно.
И мне пофиг, сколько лет C# - если бы задачу можно было выполнить на нем, я бы так и сделал. Но это не всегда возможно.
Цитата:
Сами идите и найдите свои «4 раза». Найдёте -- приведите
Уже нашел. Облегчу Вам задачу и приведу ссылку еще раз: http://www.kbcafe.com/articles/CSharp.Performance.pdf
Впрочем, там не везде в 4 раза, целочисленные вычисления - только в 2.
Приведу еще и свой тест:
Код:
//////////////////////////////////////////////
// C++
//////////////////////////////////////////////
class Storage
{
public:
Storage( void ): _val(0) {}
Storage( const double val ): _val(val) {}
double get_val( void ) const
{
return _val;
}
void set_val( const double val )
{
_val = val;
}
private:
double _val;
};
class Calculator
{
public:
Calculator( void ) {}
void calc( Storage & s, const Storage &a, const Storage &b )
{
s.set_val( a.get_val() + b.get_val() );
}
};
class Runner
{
public:
Runner( void ) {}
Storage run( Storage &a, Storage &b )
{
unsigned int i;
Calculator calc;
for (i = 0; i < 1000000000; i++)
{
calc.calc(a, a, b);
}
return a;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Runner r;
Storage a(0.1);
Storage b(0.2);
unsigned int ticks = GetTickCount();
printf("C++ test...\n");
a = r.run(a, b);
ticks = GetTickCount() - ticks;
printf("%lf, %d\n", a.get_val(), ticks);
return 0;
}
//////////////////////////////////////////////
// C#
//////////////////////////////////////////////
namespace csharp_test
{
class Storage
{
private double _val;
public Storage()
{
_val = 0;
}
public Storage(double val)
{
set_val(val);
}
public void set_val(double val)
{
_val = val;
}
public double get_val()
{
return _val;
}
}
class Calculator
{
public Calculator() {}
public void calc(Storage s, Storage a, Storage b)
{
s.set_val(a.get_val() + b.get_val());
}
}
class Runner
{
public Runner() {}
public Storage Run(Storage a, Storage b)
{
Calculator calc = new Calculator();
for (int i = 0; i < 1000000000; i++)
{
calc.calc(a, a, b);
}
return a;
}
}
class Program
{
static void Main(string[] args)
{
Storage a = new Storage(0.1);
Storage b = new Storage(0.2);
Runner r = new Runner();
long ticks = DateTime.Now.Ticks;
Console.WriteLine("C# test...\n");
a = r.Run(a, b);
ticks = ( DateTime.Now.Ticks - ticks ) / 10000;
Console.WriteLine("{0}, {1}", a.get_val(), ticks);
}
}
}
И результат:
C++ - 2781 тиков
C# - 11906 тиков
Более чем в 4 раза.
Скрин с результатом на всякий случай приаттачил.
Хотя я не спец по шарпу, возможно что-то упустил.
Да, и небольшое замечание по поводу кода. Можно было бы обойтись структурами (для Storage например), но поскольку мы обсуждаем большие и сложные программы, нас интересует работа с классами в первую очередь.
Цитата:
и можете продолжить писать глупости.
Хамство Вам не к лицу.
Цитата:
Мне вопрос? У них и спросите. Впрочем, пишут и на C#, распространённые 3D engine из него доступны.
Найдите хоть один _технологичный_ и _производительный_ 3D движок _полностью_ на C#. Сравнимый с другими хорошими движками, такими как Unreal Engine или движок Crysis.
Цитата:
Сам использовал для графики (крывых, шкал, схем) _только_ Direct3D, так красивее, а не потому что нужна была трёхмерность, подвижность и освещение.
При чем тут шкалы и схемы? Вас про игры спрашивают, причем про _современные_ _технологичные_ игры.
P.S. вот еще ссылки:
http://www.rsdn.ru/forum/message/543729.flat.aspx
http://www.garret.ru/~knizhnik/dybas...tml#comparison
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Yurec
Да, испытывал. И не только я - ссылку приводил выше. Сомневаетесь в результатах? Опровергните.
Чего их опровергать? Ну обнаружили, что три параметра в примере передаются вчетверо медленнее, и что? Так, по-вашему, замеряют быстродействие? Да, C++ неплохо передаёт небольшое число параметров в функцию, может даже в регистры пару засунуть, проверок не делает. И что?
Цитата:
Приведите код, посмотрим. Я привел ссылку, там код и числа. Вы не привели ничего.
Наплевать мне на ссылки, как Вы не можете с одного раза-то понять? Для меня важнее, что мой коллега перевёл свой довольно большой проект с Delphi на C# и получил очевидный даже на глаз выигрыш скорости перерисовок, хотя не скорость его занимала. Главное, что перенос дался легко и выявил ряд недоразумений.
Цитата:
Впрочем, если рассматривать "сфероконя в вакууме" - голый цикл с суммированием чисел - производительность дествительно сравнимая, у C# чуть-чуть выше, это я тоже проверял. Только как обычно бывает, в реальном приложении картина совсем другая. Чуть ниже тестовый код и результаты.
C# обгоняет C++ на сложных вещественных вычислениях. Замерять сложение? А зачем? Обгоняет и при работе с кучей.
Цитата:
Я предлагаю писать на том, что более эффективно.
Именно, что более эффективно для производительности программирования. Заодно, кстати, это даст время и средства на доводку производительности алгоритмов.
Цитата:
Дмитрий, а Вы сами-то хоть одним проектом управляли, сложнее драйвера для портов?
Да управлял. Причём на C++.
Цитата:
Не все, только номер 2 - движок для онлайн-казино, в составе команды из 3х человек. Название компании-заказчика привести не могу, по вполне понятной причине.
Писали на C++, поскольку заказчик предъявил определенные требования к производительности. На C# выполнить эти требования было бы невозможно.
И мне пофиг, сколько лет C# - если бы задачу можно было выполнить на нем, я бы так и сделал. Но это не всегда возможно.
То есть, не испытали C#. А методология сравнения Ваша хромает на все ноги.
Цитата:
Уже нашел. Облегчу Вам задачу и приведу ссылку еще раз:
http://www.kbcafe.com/articles/CSharp.Performance.pdf
Впрочем, там не везде в 4 раза, целочисленные вычисления - только в 2.
Приведу еще и свой тест:
И результат:
C++ - 2781 тиков
C# - 11906 тиков
Более чем в 4 раза.
Скрин с результатом на всякий случай приаттачил.
Хотя я не спец по шарпу, возможно что-то упустил.
Код этот можно сократить раз в 10, если не 100. Но это не программа, а невесть что. Наверняка для C++ использовали оптимизации, а на C# и не думали (что правильно, это последнее дело). Возьмите примеры из Visual Studio на C++ и C# и сравните производительность, я сравнивал.
Цитата:
Да, и небольшое замечание по поводу кода. Можно было бы обойтись структурами (для Storage например), но поскольку мы обсуждаем большие и сложные программы, нас интересует работа с классами в первую очередь.
Нет тут классов, есть какие-то ошмётки. Настоящие объекты намного больше, а значит и регистровая оптимизация не очевидно полезна. Собственно, это одна из методологических посылок приведшая к абстрактному стековому байткоду -- широкое использование сложных объектов приводит к тому, что регистровая оптимизация не необходима. На RISC-процессорах, кстати, сверхоперативный стек чаще всего есть, но не на x86, там только сопроцессор имеет новую архитектуру.
Цитата:
Хамство Вам не к лицу.
Хорошо, что Вы это понимаете. Вот и перестаньте хамить.
Цитата:
Найдите хоть один _технологичный_ и _производительный_ 3D движок _полностью_ на C#. Сравнимый с другими хорошими движками, такими как Unreal Engine или движок Crysis.
Не знаю таких. Мне это было надо? Пользовался Direct 3D 9 и не беспокоился, я трёхмерные стрелялки, к счастью, не пишу.
Цитата:
При чем тут шкалы и схемы? Вас про игры спрашивают, причем про _современные_ _технологичные_ игры.
Притом, что я их использую, это мой опыт.
Наберите в google «Производительность C#» и наслаждайтесь, если вопрос волнует. Только у Вас, замечу, вопросов нет, остальные приходят к сложным выводам. Сразитесь там на форумах с «идиотами», которые своё время оценивают выше компьютерного.
-
Re: Про вычислительную технику
УУУУУ :) У Вас тут пробел в знаниях. Разрешите, заполню :)
Цитата:
Сообщение от
Дм. Журко
BSD это не Open Source, хотя код они предоставляют. Лицензия Open Source это GNU -- почитайте. Или нечто вроде, лень разбираться с маргиналами.
BSD - не OpenSource? Да ладно))))))))))
Вот умора. (см. www.opennet.ru http://www.freebsd.org/copyright/index.html)
Объясняю на пальцах:
Есть несколько лицензий OpenSource. GNU, GNUv2, GNUv3, BSD.
Основное отличие BSD, то что код основанный на коде под лицензией BSD МОЖЕТ использоваться в коммерческих системах. То есть его можно продать. GNU такое не позволяет. Это основная разница.
Цитата:
Сообщение от
Дм. Журко
Да ладно Вам повторять ерунду. Ваш пример опровергает Ваше же утверждение. Продали TCP/IP «коммерсанты»? Может Майкрософт придумал интернет? Нет! Наверное Apple? Тоже нет. Apple заплатил? Уж скорее Майкрософт заплатил и ещё не раз заплатит. У Майкрософт полный порядок с лицензиями, уверяю. Если кто-то полагает, что это не так, он ошибается с невероятной вероятностью.
TCP/IP, кстати, никак и никогда не мог бы принадлежать BSD. Там вообще нет копирайта, заметили? Такие приоритеты всякий раз сильно и сознательно запутаны, так как честь велика, а платить никому не охота. Но как бы не в CERN, в Швейцарии разработан.
Вы не поняли, что я имел в виду. Никто никому ничего не "продавал". Майкрософт воспользовалась лицензией BSD и стянула реализацию TCP/IP стека в свой КОММЕРЧЕСКИЙ продукт (жду когда Вы назовёте Мастдай95 не успешным проектом. хи-хи) при этом ничего не нарушив. Но факт остаётся фактом. OpenSource код есть в винде! :)
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Дм. Журко
Чего их опровергать? Ну обнаружили, что три параметра в примере передаются вчетверо медленнее, и что?
То, что в реальной программе таких функций с такими параметрами будет очень много.
Цитата:
Так, по-вашему, замеряют быстродействие?
Замеряют по-разному. Замеры различных алгоритмов, начиная от работы со строками и заканчивая обработкой XML и выборкой из баз данных, можно найти в гугле, ссылки я привел. Почти все замеры показывают худшую производительность, от 2х до 4х раз. А замеров передачи параметров я не видел, поэтому написал свой тест.
Цитата:
Да, C++ неплохо передаёт небольшое число параметров в функцию, может даже в регистры пару засунуть, проверок не делает. И что?
То, что программы на C# работают медленнее. Сколько раз повторить, что Вам дошло?
Цитата:
Наплевать мне на ссылки, как Вы не можете с одного раза-то понять?
Хорошо, тогда я Вам без ссылок скажу: программа на C# будет работать в среднем в 2-4 раза медленнее программы на C++. Спасибо, свободны.
Цитата:
Для меня важнее, что мой коллега перевёл свой довольно большой проект с Delphi на C# и получил очевидный даже на глаз выигрыш скорости перерисовок, хотя не скорость его занимала. Главное, что перенос дался легко и выявил ряд недоразумений.
И по этому единичному случаю Вы судите о быстродействии языка? Смешно. Тем более Дельфи - далеко не эталон, ага.
Цитата:
C# обгоняет C++ на сложных вещественных вычислениях.
Это не имеет никакого значения, поскольку в общем скорость упадет в 2-4 раза. Я Вам про сфероконя уже раза 4 писал, Вы так и не поняли.
Цитата:
Именно, что более эффективно для производительности программирования. Заодно, кстати, это даст время и средства на доводку производительности алгоритмов.
Вы русский язык понимаете? Если стоят определенные требования по быстродействию, никакая производительность программирования Вам не поможет, проект будет провален.
Цитата:
То есть, не испытали C#.
С чего Вы это взяли? Испытали, разумеется. Решение о выборе языка принимали не от фонаря.
Цитата:
Код этот можно сократить раз в 10, если не 100.
Вы что, правда не понимаете зачем там именно такой код? Поясняю на пальцах: в реальной программе нужна инкапсуляция процесса выполнения, процесса вычислений и данных.
Цитата:
Но это не программа, а невесть что.
Нет. Невесть что - это то что Вы здесь пишете.
Цитата:
Наверняка для C++ использовали оптимизации, а на C# и не думали
Оптимизацию использовал и в C#. Не надо меня обвинять в подтасовках. Неужели получше аргументов не нашлось?
Цитата:
Возьмите примеры из Visual Studio на C++ и C# и сравните производительность, я сравнивал.
Какие именно примеры брали?
Цитата:
Не знаю таких. Мне это было надо? Пользовался Direct 3D 9 и не беспокоился, я трёхмерные стрелялки, к счастью, не пишу.
Не пишете, но заявляете, что на C# можно написать. Так вот, я Вам говорю - нельзя, тормозить будет неимоверно. На этот раз без ссылок, раз на ссылки Вам плевать.
Цитата:
Притом, что я их использую, это мой опыт.
Но вопрос Вам задали не про это.
Цитата:
Наберите в google «Производительность C#» и наслаждайтесь, если вопрос волнует.
А Вы думаете, откуда я взял вышеприведенные ссылки? Именно из гугла, именно по таком запросу, только на английском языке.
=============
EDIT: после прочтения вот этого все вопросы отпали. В игнор.
-
Re: Про вычислительную технику
Вот спасибо Вам, ROSS_Tracer, просветили о маргиналах. Только факт если и есть, то описывается так -- Майкрософт использует код BSD в полной соответствии с лицензией и желанием BSD. Кто бы предположил иначе? От этого Open Source наполнился коммерсантами? Вы чему возражаете?
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Yurec
То, что в реальной программе таких функций с такими параметрами будет очень много.
Что по-вашему «много»?
Цитата:
Замеряют по-разному. Замеры различных алгоритмов, начиная от работы со строками и заканчивая обработкой XML и выборкой из баз данных, можно найти в гугле, ссылки я привел. Почти все замеры показывают худшую производительность, от 2х до 4х раз. А замеров передачи параметров я не видел, поэтому написал свой тест.
Нет там ни 4, ни 2, если речь вести о последней паре лет. Причём часто дело именно в том, что методологию сравнения приблизили к делу.
Цитата:
То, что программы на C# работают медленнее. Сколько раз повторить, что Вам дошло?
Не медленнее на деле, опыт имею.
Цитата:
Хорошо, тогда я Вам без ссылок скажу: программа на C# будет работать в среднем в 2-4 раза медленнее программы на C++. Спасибо, свободны.
Не «будет работать», а работает давно, и не медленнее, по крайней мере.
Цитата:
И по этому единичному случаю Вы судите о быстродействии языка? Смешно.
Есть доводы серьёзнее? И что Вы там раньше о сборке мусора спрашивали? Она-то причём?
Цитата:
Тем более Дельфи - далеко не эталон, ага.
Некоторое время обгонял VC. Потом и MS тоже использовали кодогенератор Intel. Разница на уровне дополнительных квалификаторов. Кстати, вызов процедуры Delphi, вроде, до сих пор быстрее.
Цитата:
Это не имеет никакого значения, поскольку в общем скорость упадет в 2-4 раза. Я Вам про сфероконя уже раза 4 писал, Вы так и не поняли.
Не упадёт.
Цитата:
Вы русский язык понимаете?
Хорошо понимаю, не беспокойтесь.
Цитата:
Если стоят определенные требования по быстродействию, никакая производительность программирования Вам не поможет, проект будет провален.
Есть опыт провалов? Знаю цену скорости кодогенерации -- она ни разу не была важной. Хотя все сравнивают, все беспокоятся. Я, как видите, тоже сравнивал когда-то, тоже переживал и ассемблерные генерации правил. Прошло.
Цитата:
С чего Вы это взяли? Испытали, разумеется. Решение о выборе языка принимали не от фонаря.
А получилось именно так.
Цитата:
Вы что, правда не понимаете зачем там именно такой код? Поясняю на пальцах: в реальной программе нужна инкапсуляция процесса выполнения, процесса вычислений и данных.
Пояснил уже. Напрмер, в C#, даже unmanned, есть проверки времени исполнения, которых нет в C++, значит, если Вы будете испытывать пример, в котором проверки будут обрабатываться основную часть времени, Вы получите произвольно большое соотношение «тиков». Вот только к производительности это не имеет прямого отношения.
Лучшие профессионалы отрасли исследовали относительную цену проверок и выигрыша производительности.
Цитата:
Нет. Невесть что - это то что Вы здесь пишете.
Нет -- Вы.
Цитата:
Оптимизацию использовал и в C#. Не надо меня обвинять в подтасовках. Неужели получше аргументов не нашлось?
Какую? Сейчас не так много средств оптимизации C#. Замечу, что C# вполне можно просто компилировать, как C++, без байткода. Семантика вполне это позволяет, она много проще C++. У Вас просто нет таких средств. Что не значит, что при окончательной сборке ответственного проекта нельзя их использовать.
Цитата:
Какие именно примеры брали?
Из Direct 3D SDK.
Цитата:
Не пишете, но заявляете, что на C# можно написать. Так вот, я Вам говорю - нельзя, тормозить будет неимоверно. На этот раз без ссылок, раз на ссылки Вам плевать.
Не тормозит, это я Вам не ссылку, а опыт сообщаю.
Цитата:
Но вопрос Вам задали не про это.
А ответил я про это, умному достаточно.
Цитата:
А Вы думаете, откуда я взял вышеприведенные ссылки? Именно из гугла, именно по таком запросу, только на английском языке.
И читали ссылки-то? Или ограничились парой статей 1997 и 2002-2003 годов?
Цитата:
EDIT: после прочтения вот
этого все вопросы отпали. В игнор.
Как я без Ваших ценных замечаний буду?
-
Re: Про вычислительную технику
2 Дм. Журко
Мы же вроде обсуждаем ПО для самолёта, а не для рисования графиков и окошек под винду. Я очень рад за вашего друга, который перевел окошки с Delphi на C#. В последнем действительно всё удобно и хорошо, намного лучше MFC (и так подозрительно похоже на Delphi :)). Но неужели окошки C# будут работать быстрее связки C++&WinAPI?
Про игры можете тут хоть лопнуть от своей самоуверенности, но на современном этапе не дано C# стать основой для 3D игр. Возможно в будущем... когда нибудь, но не сейчас!
Вы в своём посте написали, что игры под C# не разрабатывали, но вот в последнем вдруг "Не тормозит, это я Вам не ссылку, а опыт сообщаю.
". Игры есть, которые написаны на C#, но им далеко до упомянутых Unreal Engine и Crysis.
Очень жалко, что вы так и не ответили на вопрос: Зачем в Java/C# имеется виртуальная машина с промежуточным байт-кодом? И зачем она собственно нужна этим языкам.
-
Re: Про вычислительную технику
Цитата:
Сообщение от
ROSS_Tracer
УУУУУ :) У Вас тут пробел в знаниях. Разрешите, заполню :)
BSD - не OpenSource? Да ладно))))))))))
Вот умора. (см.
www.opennet.ru http://www.freebsd.org/copyright/index.html)
Объясняю на пальцах:
Есть несколько лицензий OpenSource. GNU, GNUv2, GNUv3, BSD.
Основное отличие BSD, то что код основанный на коде под лицензией BSD МОЖЕТ использоваться в коммерческих системах. То есть его можно продать. GNU такое не позволяет. Это основная разница.
Вы не поняли, что я имел в виду. Никто никому ничего не "продавал". Майкрософт воспользовалась лицензией BSD и стянула реализацию TCP/IP стека в свой КОММЕРЧЕСКИЙ продукт (жду когда Вы назовёте Мастдай95 не успешным проектом. хи-хи) при этом ничего не нарушив. Но факт остаётся фактом. OpenSource код есть в винде! :)
=================================================
Точно так же фрагменты BSD систем используются и в MAC OS, и в сетевых экранах которые являются коммерческими продуктами:):)
8
Мне одно непонятно - логичнее что бы военный софт писался на проверенном времени и быстродействющем языке имеющим больше количество библиотек.....Тот же самый BSD проект до 1991 года имел военное финасирование DOPRA....Так что кричать можно много о новых средствах разработки - но мне кажется что тут все таки все рюшечки красиве нафиг не нужны - а нужен проверенный временем язык с хорошим быстродействием, стандартом и документированностью а тут что то (я не программер, так что ИМХО) кроме С, С++ не исключено что куски фортрана которые могут крутится либо на своей ОС, либо на чем нибудь Unix подобном которое можно проверить на вложения....
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Ufthang
2 Дм. Журко
Мы же вроде обсуждаем ПО для самолёта, а не для рисования графиков и окошек под винду. Я очень рад за вашего друга, который перевел окошки с Delphi на C#. В последнем действительно всё удобно и хорошо, намного лучше MFC (и так подозрительно похоже на Delphi :)). Но неужели окошки C# будут работать быстрее связки C++&WinAPI?
А причём тут «быстрее»? Именно для истребителей софт создаётся с опозданием, перерасход не только времени, но и денег. Не на старом C++ каком, а на новой крутой Ada со сборкой мусора и виртуальной машиной.
Цитата:
Про игры можете тут хоть лопнуть от своей самоуверенности, но на современном этапе не дано C# стать основой для 3D игр. Возможно в будущем... когда нибудь, но не сейчас! Вы в своём посте написали, что игры под C# не разрабатывали, но вот в последнем вдруг "Не тормозит, это я Вам не ссылку, а опыт сообщаю.
". Игры есть, которые написаны на C#, но им далеко до упомянутых Unreal Engine и Crysis.
Я не могу лопнуть от самоуверенности. Что игры-то? Кому они нужны, и особенно анрил с кризисом? Мне что теперь и с вашими кризисами разбираться?
Цитата:
Очень жалко, что вы так и не ответили на вопрос: Зачем в Java/C# имеется виртуальная машина с промежуточным байт-кодом? И зачем она собственно нужна этим языкам.
«Нужно» подразумевает и «полезно», и «необходимо». Это полезно, но обойтись можно в C#. C# компиляторы есть. Но зачем? Этого вопроса, кстати, не было, Вам приснилось, но я-то на него ответил давно.
Байткод и виртуальная машина -- современные черты среды программирования. Не бесспорные, но это итог опыта поколений программистов. В частности, они помогают переносимости с процессора на процессор, из одной ОС в другую. Для военных это большое преимущество, возможно и решающее, так как позволяет отслеживать головокружительные перемены в развитии того и другого. С другой стороны, перенос из среды в среду, пересмотр ПО, не раз избавлял готовый, как казалось, код от ошибок. (Но не на C++ с его препроцессорными играми и несовместимыми квалификаторами!)
К примеру, оборонительный комплекс РЭБ B-1B -- передовая американская разработка в области БРЭО -- очевидно не смогла поспеть за переменами. Пока доводят систему, европейцы создают лучшую, на новых решениях, которая начата позже, _а потому_ поспела раньше, оказалась лучше и дешевле.
Тут, вероятно, уже сказывается давно предсказанный парадокс, который хорошо показан в фантастическом анекдоте: есть ли смысл лететь к звёздам теперь, ведь через десять лет точно построят корабли вдвое быстрее, обгонят на пути туда. Но если лететь надо?
-
Re: Про вычислительную технику
Цитата:
Сообщение от
NichtLanden
Точно так же фрагменты BSD систем используются и в MAC OS, и в сетевых экранах которые являются коммерческими продуктами
Да скорее всего этот код менять не рекомендует комитет по интернет, не помню как называется, не волнует это. Подобно код регулярных выражений поиска и замены для perl стал стандартом. Если хочешь, чтобы регулярные выражения работали _не лучше_, а _как у всех_, используй этот код. В PHP, как понимаю, стали умничать, вот в их regexp дыры.
Цитата:
Мне одно непонятно - логичнее что бы военный софт писался на проверенном времени и быстродействющем языке имеющим больше количество библиотек...
Военные с Вами не согласны. Они в 1988 для ATF выбрали самую новую, только только созданную систему Ada. Доводка Ada и программ для F-22 велась одновременно!
Цитата:
Тот же самый BSD проект до 1991 года имел военное финасирование DOPRA....
Вероятно, на деньги MS теперь.
Цитата:
Так что кричать можно много о новых средствах разработки - но мне кажется что тут все таки все рюшечки красиве нафиг не нужны - а нужен проверенный временем язык с хорошим быстродействием, стандартом и документированностью а тут что то (я не программер, так что ИМХО) кроме С, С++ не исключено что куски фортрана которые могут крутится либо на своей ОС, либо на чем нибудь Unix подобном которое можно проверить на вложения....
Причём тут «рюшечки»? «Проверен временем» FORTRAN IV и COBOL. Уверяю, до сих пор тьма старпёров, среди которых и сущие юнцы, полагающих, что они-то проверены. Однако я _имею опыт_ разбора текстов на FORTRAN, нахождения там кучи горбылей. На C и C++ тоже, уверяю. В лучшем случае, это макеты правильных программ.
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Дм. Журко
Вот спасибо Вам, ROSS_Tracer, просветили о маргиналах. Только факт если и есть, то описывается так -- Майкрософт использует код BSD в полной соответствии с лицензией и желанием BSD. Кто бы предположил иначе? От этого Open Source наполнился коммерсантами? Вы чему возражаете?
В соотвествии с лицензией BSD - да. Иначе бы вою было :)
Но! Вы утверждали, что OpenSource не может приносить денег. Я же Вам привёл пример сверхуспешного коммерческого проекта, в которым довольно важный кусок взят из OpenSource.
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Дм. Журко
Военные с Вами не согласны. Они в 1988 для ATF выбрали самую новую, только только созданную систему Ada. Доводка Ada и программ для F-22 велась одновременно!
Причём тут «рюшечки»? «Проверен временем» FORTRAN IV и COBOL. Уверяю, до сих пор тьма старпёров, среди которых и сущие юнцы, полагающих, что они-то проверены. Однако я _имею опыт_ разбора текстов на FORTRAN, нахождения там кучи горбылей. На C и C++ тоже, уверяю. В лучшем случае, это макеты правильных программ.
А вот что сообщают с мест
Цитата:
по мнению С. И. Рыбина, старшего научного сотрудника НИВЦ МГУ, консультанта компании AdaCore EU, эксперта по языку Ада рабочей группы ISO по стандарту языка. Он считает[6], что своим неудачам Ада обязана двум основным причинам:
* Во время проектирования Пентагон предполагал, что всё новое ПО будет создаваться только на Аде. Из-за этого Ада получила крайне примитивные средства взаимодействия с программами на других языках. На практике оказалось, что написать на Аде вообще всё — нереально (хотя бы потому, что возникала необходимость взаимодействовать с готовыми разработками на других языках). Поэтому в отраслях, где не было жёсткого требования «писать только на Аде», предпочитали другие языки, более приспособленые к мультиязычной среде. В стандарте 1995 года проблема взаимодействия с другими языками была решена, но время оказалось упущено.
* Парадоксально, но распространению Ады помешала финансовая и организационная поддержка Пентагона. Программы на Аде, написанные для военных, работали на самой мощной вычислительной технике, какая была доступна, поэтому разработчики компиляторов заботились в первую очередь о прохождении компилятором тестов ACVC, и только потом — об эффективности компилятора и создаваемого им кода. В начале 1980-х годов начался бум микрокомпьютеров, и трансляторы для распространённых языков (Паскаля, Си, Бейсика) были оперативно оптимизированы под маломощные системы. Для Ады стимула в такой модернизации не оказалось, в результате ставшие через несколько лет основной массой мирового вычислительного парка персональные компьютеры оказались без качественного транслятора Ады. Естественно, что Ада потеряла этот сегмент рынка. Лишь относительно недавно появился компилятор GNAT, качественный и производительный, «но и здесь время оказалось упущено».
Мне так кажется что наша электроника бортовая реализована сейчас на базе маломощных (PLA — Programmable Logic Arrays) так как поправки Веника и ограничения экспортного контроля никто не отменял а своей пока элементной современной базы нет - и ей эти все навороты типа ADA ни к чему - http://www.compitech.ru/html.cgi/arh...01/stat_23.htm
В связи с этим появляется ряд вопросов, касающихся того, какую элементную базу и как использовать в новых разработках, а также при проведении модернизации существующих систем.
Цитата:
Рассмотрим особенности выбора элементной базы на примере проектирования устройств цифровой обработки сигналов.
Современные алгоритмы обработки сигналов функционально можно разделить на следующие основные классы.
1. Алгоритмы цифровой фильтрации (в том числе алгоритмы нелинейной, оптимальной, адаптивной фильтрации, эвристические алгоритмы, полиномиальные фильтры, алгоритмы фильтрации изображений и др.). Подробная классификация алгоритмов цифровой фильтрации и перспективы путей реализации алгоритмов на ПЛИС приведены в [2].
2. Алгоритмы, основанные на применении ортогональных преобразований (быстрые преобразования Фурье, Хартли, Уолша, Адамара, преобразование Карунена-Лоэва и др.).
3. Алгоритмы, реализующие кодирование и декодирование, модуляторы и демодуляторы, в том числе сложных сигналов (псевдослучайных, хаотических и др.).
4. Алгоритмы интерфейсов и стандартных протоколов обмена и передачи данных.
Далее рассмотрим перспективы тех или иных путей реализации алгоритмов ЦОС на базе ПЛИС.
Реализация алгоритмов ЦОС на базе ПЛИС
Основными достоинствами ПЛИС при использовании их в средствах обработки сигналов являются:
* высокое быстродействие;
* возможность реализации сложных параллельных алгоритмов;
* наличие средств САПР, позволяющих провести полное моделирование системы;
* возможность программирования или изменения конфигурации непосредственно в системе;
* совместимость при переводе алгоритмов на уровне языков описания аппаратуры (VHDL, AHDL, Verilog и др.);
* совместимость по уровням и возможность реализации стандартного интерфейса;
* наличие библиотек мегафункций, описывающих сложные алгоритмы;
* архитектурные особенности ПЛИС как нельзя лучше приспособлены для реализации таких операций, как умножение, свертка и т. п.
Статья за 2001 год в это время PLA шагнули вперед
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Дм. Журко
А причём тут «быстрее»? Именно для истребителей софт создаётся с опозданием, перерасход не только времени, но и денег. Не на старом C++ каком, а на новой крутой Ada со сборкой мусора и виртуальной машиной.
А вы уверены в том, что эта ада будет использоваться в создании ПО для оборонки? Есть доказательства или только ваши философские домыслы и глупая самоуверенность в своей правоте?
Цитата:
Сообщение от
Дм. Журко
Я не могу лопнуть от самоуверенности. Что игры-то? Кому они нужны, и особенно анрил с кризисом? Мне что теперь и с вашими кризисами разбираться?
Кому они нужны?! :umora:
Глупее вопроса не видел. Для расширения вашего кругозора, если вы еще не в курсе, в World Of WarCraft играет более 10 млн. человек. Кстати движок игры, особенно графический, выполнен с такой оптимизацией, что вашему C# и не снилась такая производительность. К примеру, на Duron 850 / 256 ОЗУ / GeForce MX400 играл без проблем, в то время как Zend Studio тормозила :D
Цитата:
Сообщение от
Дм. Журко
К примеру, оборонительный комплекс РЭБ B-1B -- передовая американская разработка в области БРЭО -- очевидно не смогла поспеть за переменами. Пока доводят систему, европейцы создают лучшую, на новых решениях, которая начата позже, _а потому_ поспела раньше, оказалась лучше и дешевле.
Тут, вероятно, уже сказывается давно предсказанный парадокс, который хорошо показан в фантастическом анекдоте: есть ли смысл лететь к звёздам теперь, ведь через десять лет точно построят корабли вдвое быстрее, обгонят на пути туда. Но если лететь надо?
Причем тут РЭБ B-1B? Причем полёты в космос? Вы хоть помните о чём речь идёт? Хотя судя по вопросу "А причём тут «быстрее»?" вы уже сами запутались в своих философских трактатах о программировании.
Цитата:
Сообщение от
Дм. Журко
«Нужно» подразумевает и «полезно», и «необходимо». Это полезно, но обойтись можно в C#. C# компиляторы есть. Но зачем? Этого вопроса, кстати, не было, Вам приснилось, но я-то на него ответил давно.
Байткод и виртуальная машина -- современные черты среды программирования. Не бесспорные, но это итог опыта поколений программистов. В частности, они помогают переносимости с процессора на процессор, из одной ОС в другую. Для военных это большое преимущество, возможно и решающее, так как позволяет отслеживать головокружительные перемены в развитии того и другого. С другой стороны, перенос из среды в среду, пересмотр ПО, не раз избавлял готовый, как казалось, код от ошибок. (Но не на C++ с его препроцессорными играми и несовместимыми квалификаторами!)
Так зачем на боевом истребителе кроссплатформенность софта???? К чему там эта ненужная тормозящая прослойка? Под какие операционки вы писать собрались софт для самолёта?!
Сейчас C#/Java - это среда разработки корпоративных программ и прочей лабуды с окошками и сайтами. Основной их плюс в том, что можно согнать толпу глупых студентов и они начнут через месяц штамповать проекты со скоростью конвеерной сборки, тратя на это минимум времени.
При этом вопрос производительности далеко не на первом месте, если надо будет, заказчик железо докупит.
Для самолёта пишут ПО под определённое железо, под определённую архитектуру. Смысла писать виртуальную машину нет никакого, так как её основная задача это кроссплатформенность под разные ОС, не под железо! Поэтому я и писал, что окошки написанные на чистом WinAPI будут показывать большую производительность, чем окошки, которые работают через виртуальную машину!
P.S. К вашему званию почетного судостроителя и авиастроителя можно смело добавить еще одно - почетный программист. Спорить с вами не имеет никакого смысла, вы считаете, что ваше мнения является единственным правильным. Процитирую товарища Yurec: "В игнор."
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Дм. Журко
Да скорее всего этот код менять не рекомендует комитет по интернет, не помню как называется, не волнует это.
Без комментариев
http://ru.wikipedia.org/wiki/Лицензия_BSD
Разрешается повторное распространение и использование как в виде исходного кода, так и в
* двоичной форме, с изменениями или без, при соблюдении следующих условий:
*
* * При повторном распространении исходного кода должно оставаться указанное выше
* уведомление об авторском праве, этот список условий и последующий отказ от гарантий.
* * При повторном распространении двоичного кода должно сохраняться указанная выше
* информация об авторском праве, этот список условий и последующий отказ от гарантий в
* документации и/или в других материалах, поставляемых при распространении.
* * Ни название <Организации>, ни имена ее сотрудников не могут быть использованы в
* качестве поддержки или продвижения продуктов, основанных на этом ПО без
* предварительного письменного разрешения.
Цитата:
Сообщение от
Дм. Журко
Военные с Вами не согласны. Они в 1988 для ATF выбрали самую новую, только только созданную систему Ada. Доводка Ada и программ для F-22 велась одновременно!
Еще бы вбухали столько денег в аду, протаскивали везде - а на выходе шиш да кумыш - мужики изх конгресса не поймут какого хрена они вложили в Аду кучу бабла а она так и не вышла на просторы
Мне это напоминает экспременты товарища Курчевского - когда пришла война а его поделки на которые выкинули кучу ресурсов оказались не готовым пшиком:D :D
Цитата:
Сообщение от
Дм. Журко
Вероятно, на деньги MS теперь.
Опять мимро кассы - там очень много других брендов типа Sun, IBM и прочих.....
Лицензия BSD допускает проприетарное коммерческое использование ПО. Для ПО, выпущенного под этой лицензией, допускается встраивание в проприетарные коммерческие продукты. Работы, основанные на таком ПО, даже могут распространяться под проприетарными лицензиями (но всё же обязаны соответствовать требованиям лицензии). Наиболее заметные примеры таких программ — использование сетевого кода BSD в продуктах корпорации Microsoft, а также использование многих компонентов FreeBSD в операционной системе Mac OS X.
Можно применять к распространяемому продукту одновременно лицензию BSD и какую-то другую. Так было с самыми ранними версиями самой BSD, которая включала проприетарные материалы из AT&T.
Цитата:
Сообщение от
Дм. Журко
Причём тут «рюшечки»? «Проверен временем» FORTRAN IV и COBOL. Уверяю, до сих пор тьма старпёров, среди которых и сущие юнцы, полагающих, что они-то проверены. Однако я _имею опыт_ разбора текстов на FORTRAN, нахождения там кучи горбылей. На C и C++ тоже, уверяю. В лучшем случае, это макеты правильных программ.
Дмитрий вообще то военная промышленная и медицинская техника она чуть чуть отличается техники для дома и офиса:D :D :D Почему в промышленных ПК и серверх до сих пор стоят интерфейсы COM - почему эти дауны не убежали на USB и почему там процессоры класса Pentium I - III еще использутся ?????
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Ufthang
А вы уверены в том, что эта ада будет использоваться в создании ПО для оборонки?
Кстати, насчет Ада. В соседней ветке ("Маневренность F-22") кто-то писал, что софт Ф-22 переписывают на C++. Ссылок приведено не было, но я порывшись в инете нашел вот что: http://www.airliners.net/aviation-fo...ad.main/64243/
Упоминается журнал 'Air International' - интересно было бы найти эту статейку...
Цитата:
в World Of WarCraft играет более 10 млн. человек.
Причем, это не только 10 млн. проданных копий по $60-$70, а еще ежемесячная абонплата $15 с аккаунта :D
Цитата:
Так зачем на боевом истребителе кроссплатформенность софта????
Причем прикол ведь в том, что на C++ нет ни малейших проблем написать кроссплатформенное приложение :)
Цитата:
P.S. К вашему званию почетного судостроителя и авиастроителя можно смело добавить еще одно - почетный программист.
Хех, почетный программист огнеметных войск ;)
-
Re: Про вычислительную технику
Явно лавры лучшего друга советских пилотов, кавалеристов, пионеров и пограничников не дают покоя главному специалисту в судо- и авиа -строении и программописании.....Осталось озаботиться только проблемой языкознания , генетики и кибернетики:)
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Дм. Журко
К примеру, оборонительный комплекс РЭБ B-1B -- передовая американская разработка в области БРЭО -- очевидно не смогла поспеть за переменами. Пока доводят систему, европейцы создают лучшую, на новых решениях, которая начата позже, _а потому_ поспела раньше, оказалась лучше и дешевле.
Почему Вы решили, что основная проблема- в ПО? Я прошу прощения, Вы когда-нибудь для борта писали? Это когда параллельно разабатывается софт и хард. Комплекс РЭБ, в первую очередь, - это приемники и анализаторы излучения и передатчики помех. Само собой, вычислитель тоже важная часть, но без наличия работающего радиожелеза ни С++, ни Ада, ни С# не спасут.
Опять же "создают", а не создали- а "лучше и дешевле" это пока вилами по воде писано. Все будет решать реальное применение изделия.
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Yurec
Причем, это не только 10 млн. проданных копий по $60-$70, а еще ежемесячная абонплата $15 с аккаунта :D
Так... 50*10... 15*10*12... делим на 138... Итого: тираж + абонплата за год = эскадрилья Ф-22 по их нынешней цене. :)
-
Re: Про вычислительную технику
Цитата:
Сообщение от
NichtLanden
Явно лавры лучшего друга советских пилотов, кавалеристов, пионеров и пограничников не дают покоя главному специалисту в судо- и авиа -строении и программописании.....Осталось озаботиться только проблемой языкознания , генетики и кибернетики:)
Не трогайте дядюшку Джо. Он, по крайней мере, нес персональную ответственность за принятые решения (например, за проигранную Великую Отечественную поплатился бы, скорее всего, головой). По крайней мере, он был прагматиком и выбирал самый простой путь (к сожалению, не всегда самый оптимальный).
-
Re: Про вычислительную технику
Цитата:
Сообщение от
F74
Не трогайте дядюшку Джо. Он, по крайней мере, нес персональную ответственность за принятые решения (например, за проигранную Великую Отечественную поплатился бы, скорее всего, головой). По крайней мере, он был прагматиком и выбирал самый простой путь (к сожалению, не всегда самый оптимальный).
==============================================
Да я так привел в качестве абстрактного примера ибо Дмитрий у нас специалист во всех отраслях:D :D :D
-
Re: Про вычислительную технику
Цитата:
Сообщение от
ROSS_Tracer
В соотвествии с лицензией BSD - да. Иначе бы вою было :)
Но!
Без "но", не надо выть.
Цитата:
Вы утверждали, что OpenSource не может приносить денег.
Я что-то подобное утверждал?
Цитата:
Я же Вам привёл пример сверхуспешного коммерческого проекта, в которым довольно важный кусок взят из OpenSource.
Взят и что?
-
Re: Про вычислительную технику
Врагу не сдается наш гордый Варяг!:)
Пощады никто не желает!:):)
-
Re: Про вычислительную технику
Цитата:
Сообщение от
NichtLanden
Без комментариев
Жаль, без пояснений непонятно, зачем Вы привели этот общедоступный текст?
Цитата:
Еще бы вбухали столько денег в аду, протаскивали везде - а на выходе шиш да кумыш - мужики изх конгресса не поймут какого хрена они вложили в Аду кучу бабла а она так и не вышла на просторы
Какие мужики? Точнее чуть, пожалуйста.
Цитата:
Мне это напоминает экспременты товарища Курчевского - когда пришла война а его поделки на которые выкинули кучу ресурсов оказались не готовым пшиком
У Вас занятные, но очень уж далёкие аналогии. На войне программное обеспечение на Ada уже и вполне используется.
Цитата:
Опять мимро кассы - там очень много других брендов типа Sun, IBM и прочих.....
И MS -- это почти обязательно. Даже часть Linux финансируется MS прямо. Но мне до сих пор непонятно, что именно Вы хотите возразить мне. Впрочем, я не буду об этом спорить, это неважно и не о теме.
Цитата:
...Дмитрий вообще то военная промышленная и медицинская техника она чуть чуть отличается техники для дома и офиса
Да неужели? Чем?
Цитата:
Почему в промышленных ПК и серверх до сих пор стоят интерфейсы COM - почему эти дауны не убежали на USB и почему там процессоры класса Pentium I - III еще использутся ?????
Потому что отстают. Затянутые, но необходимые процедуры испытания и принятия на вооружение очень дОлги. Пройдёт время, будут использовать нынешние процессоры. Не все, конечно, а нынешнего поколения.
-
Re: Про вычислительную технику
Цитата:
Сообщение от
Yurec
Кстати, насчет Ада. В соседней ветке ("Маневренность F-22") кто-то писал, что софт Ф-22 переписывают на C++. Ссылок приведено не было, но я порывшись в инете нашел вот что:
http://www.airliners.net/aviation-fo...ad.main/64243/
Упоминается журнал 'Air International' - интересно было бы найти эту статейку...
Занятная ссылка, действительно было бы интересно почитать статейку.
Цитата:
Причем прикол ведь в том, что на C++ нет ни малейших проблем написать кроссплатформенное приложение :)
Совершенно никакой проблемы. Возможно даже под большее количество платформ, чем это позволит C#.
Где то читал в инете статейку, там про С++ было написано: "Если программисту на С++ что-то понадобится, то он сможет сам это написать".
На самом деле всё просто, если мне надо написать web приложения - я возбму C#/Java, если мне надо будет написать окошки под винду без головной боли - я возьму C#, если мне надо будет написать виртуальную машину для C# - я возьму C++&Assm.