>[оверквотинг удален]
>public class HW {
> public static void main(final String args[]) {
> System.out.println("Hello, world!");
> }
>}
>
>В gcc, Ява и Си++ компилируются практически одним компилятором, а Си++ и
>Яву можно свободно смешивать в пределах одного класса (один метод на
>Яве, другой на Си++). Если Ява не универсальный язык, то и
>Си++ - тоже. Если Си++ хороший - то и Ява тоже. 1) Много ли вы знаете скомпилированных gcj программ более ста тысяч строк? Я лично их не встречал, из чего делаю вывод, что не всё с gcj гладко, возможно, он поддерживает только старые стандарты Java, может быть, есть и другие проблемы, например со Swing и другими библиотеками.
2) Много ли вы знаете скомпилированных gcc программ для Windows? Я не знаю ни одной крупной системы, скомпилированной под Windows gcc.
_Фактически_ gcc + gcj под Windows не работоспособны. Я не думаю, что сейчас очень умно писать крупную систему, заточенную только под Unix, и тем более опираясь на gcj.
Мое мнение: В общем случае Java вместе с сопуствующими библитеками хорош для некоторых межплатформенных программ и Web-сервера.
>> Sun порезали всё самое полезное в Си/Си++, выкинув
>>шаблоны (и заодно стандартную библиотеку C++, в том числе std::vector и
>>std::map [аналогов которых в Java не было до Java 6]), препроцессор,
>>операции с указателями, множественное наследование и т.д., без которых создание больших
>>систем становится значительно сложнее, а из-за усложнения алгоритма появляются неизбежные тормоза
>>и излишний расход памяти.
>
>Если мне не изменяет память, в Си (который вы почему-то смешиваете с
>Си++) тоже этого нет,
Си является подмножеством Си++.
> но програмы на Си как правило быстрее.
Неверно. Си является подмножеством Си++.
На Си писать крупную систему... лучше сразу умереть. Хотя есть примеры ООП на Си: GTK, но это удовольствие для любителей садо-мазо.
>>> Процесоры уже делают предсказание ветвлений и прочую фигню - нужно облегчить им эту задачу.
>>
>>Используй Си/Си++ (возможно, в горячих участках вместе с Ассемблером) и читай рекомендации
>>по оптимизации.
>
>Ассемблер для нескольких процесоров (x86, x86_64, ARM, MIPS) мне учить не охота
>- мне ещё знание ассемблера для PDP-11 не пригодилось пока. Потратить
>несколько лет чтобы выиграть несколько секунд - спасиба за подсказку. :-/
Под мобильники крупные системы не пишут.
>> Если тебе нужно поднять производительность на порядки, то неизбежен пересмотр алгоритма.
>
>Поднять производительность можно только уменьшая количество выполняемого кода и приоритизируя его.
Для Си это неверно. В Си в половине случаев для ускорения алгоритма приходится увеличивать количество кода. Как минимум читай руководства по оптимизации от Intel и книги Криса Касперского.