Nikita: Все сообщения за 17 Июля 2008 года

 
ПнВтСрЧтПтСбВс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

Nikita

аксакал

Сергей-4030> PS Еще одна иллюстрация получается. То есть наверняка можно на C++ сделать быстрее код. Но делать это придется долго. И малопереносимо.

Не соглашусь с Вами, уважаемый Сергей-4030.

1. Однопоточное приложение

Ваш Java-код портированный на С++ выглядит практически идентично оригиналу, и вовсе не требует какого-то особого поворота мозга для понимания и написания :)

2. Многопоточное приложение

В зависимости от используемой библиотеки поддержки многопоточности, "распиливание" исполнения Solution.arrange() может выглядеть, с точки зрения Java, несколько экзотично (я вот лично OpenMP воспользовался), а может и ровно так же (ежели взять что-то чуть более традиционное).

3. Переносимость

Сие первородный грех С++, увы... Однако с поддержкой обычных массовых платформ никаких особых заморочек нет.

Итого:

Проблемы плохого дизайна многих С++ приложений/библиотек кроются в необразованности и безграмотности их разработчиков, а не в языке. Никаких преград для того чтобы писать на С++ в стиле той же Java и со всеми соответствующими бенефитами не существует.
Учитесь читать.  

Nikita

аксакал

AGRESSOR> 1. Тут прилично обманывают. Вернее так. В некоторых магазинах, особенно где работают бедные эмигранты, часто могут недодать денег. В России я с таким почти не встречался почему-то. А здесь часто сдают мелочью, могут обсчитать. Вернее, здесь это с мелочью пытаются сделать с завидной регулярностью.

Ну Вы и садист, однако, уважаемый AGRESSOR. Они там уже лет двадцать как забыли что такое мелочь, все расчёты по карточкам делаются :D Прекращайте мучить аборигенов наличкой :D
Учитесь читать.  

Nikita

аксакал

Сергей-4030> Теоретически - да.

И практически - да.

Сергей-4030> Но теоретически с теми же бенефитами можно писать и на ассемблере.

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

Сергей-4030> На практике же много более удобная работа с нитями,

Это Вам кажется, от того что Вы очень мало с ними работали :cool:

Все мэйнстримовые реализации поддержки параллелизма убоги и, соответственно, неудобны. Только C# и выделяется, за счёт yield return. Но эта фича закрывает лишь раздел связанный с асинхронным I/O, базовые проблемы - так же как и у остальных.

Сергей-4030> более строгий язык, переносимость,

Есть преимущества, я их не отрицаю. Но разница не так велика как Вам кажется. А уж в случае темы топика, так и вообще практически отсутствует :D

Сергей-4030> отсутствие средств затуманивания мозгов ака переопределение операторов

Наличие героина ещё не повод им колоться :D

Сергей-4030> и наконец - механизм сборки мусора делают платформу Java более пригодной для больших и сложных проектов.

GC очень хорошая и полезная вещь. Однако и на C++ можно писать с минимальными проблемами в области управления памятью. Для того его и разрабатывали собственно. Объекты на стеке + smart-pointer'ы и всё нормально.

Сергей-4030> На мой взгляд, даже этот топик есть иллюстрация, ибо вариант на C++ появился через полгода после варианта на Java.

Дело не в варианте. Дело в том, что порт Вашего Java-кода на C++ практически идентичен оригиналу. Вы не использовали Power Of Java :D
Учитесь читать.  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru