![]() |
|
Модераторы: LSD |
![]()
|
|
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
kemiisto, ага почитайте для краткости скажу, что GoldFinch, описывал C++ одним словом - "бред".. благо остались доказательства, ибо после постов этой темы в такое поверить трудновато Добавлено через 1 минуту и 41 секунду
тут полностью соглашусь, C++ для программистов, ибо спички детям не игрушка |
||||
|
|||||
| Фантом |
|
||||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
Тест действительно синтетический, но посмотрим. Я чуть переделал простейший вариант на C, благо C с C++ уже сравнивали. Вот так:
Аналог на Фортране выглядит так (почти аналог - я честно ликвидировал массив в конце работы
Оба варианта компилировались GNU-тыми компиляторами с ключом -O3, никаких других изысков не использовалось. Подсчет времени тупейший - банальный time. Результат - 1.7 секунды у C, 1.6 у Фортрана. При увеличении размера массива и количества тестов получалось либо примерное равенство, либо Фортран был чуть быстрее. |
||||
|
|||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
и тормозиииииииииииииииииииииииииииииииим пожалуй, достаточно упомянуть void*
Fatkh, поверь мне, С++ ты не знаешь согласен, для вычислений фортран хорош, насколько я знаю, оно к тому-же умеет векторизовать код (правда я понятия не имею, как там с многопоточностью...) Вообще, я считаю, что С++ - устарел, есть круг задач, для которых он подходит очень хорошо, это те задачи, в которых важна производительность, но используемые алгоритмы не слишком сложны. Но, в его нише, альтернатив просто нет. D - сырой, D 1.0 не представляет из себя ничего интересного, а D 2.0 - еще не готов, к тому-же на нем почти никто не пишет. С - сам язык очень прост, но писать на нем код(если конечно речь не о коде на 1000 строк) сложно. Попробуйте реализовать на Си, коллекцию объектов, которые подгружаются, по мере необходимости, из файла и, по мере ненужности, удаляются. Есть языки, в которых это можно сделать в несколько строк кода Мой выбор - не пытаться найти универсальный инструмент, вместо этого, нужно писать большую часть кода на чем-нибудь, работающем на виртуальной машине(я имею ввиду не виртуализацию, а т.н. platform virtualization, например JVM или CLR), при этом можно использовать разные языки, в зависимости от задачи, а требовательные к ресурсам элементы системы - писать на С++. Или, если есть возможность, вообще исключить неуправляемый код из проекта. И тут дело не в религии и не в том, что С++, это |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Хороший аргумент, только когда применяешь его к чему-то менее популярному, чем C++, почему-то обижаются. Блаб! Это сообщение отредактировал(а) Void - 20.9.2009, 21:37 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Не понял. Во-первых, аргумент - полное г...., так как С++ - единственный (императивный, а другие и не языки совсем Во-вторых, автору Blub Paradox для начала необходимо дать трактовку мощности языка. А так... Ниачём! -------------------- |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
Фантом, при измерение времени используя time - это огромная погрешность за загрузку программы
но вообще, мораль такова: если язык статический, то код компилируется в статический бинарник который после компиляции не меняется. тот же код можно написать вручную на асме, и получить идеальный бинарник. сравнивая бинарники полученные при компиляции кода на любом языке с хорошим компилятором, мы видим что они похожи, и весьма близки к идеалу. тогда разница - только в сложности написания исходного кода. код на С++ писать быстрее чем на С, меньше букв код на фортране, arr=(/(0.1*N,N=0,MemSize-1)/) тоже выглядит неплохо |
|||
|
||||
| Fatkh |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.9.2009 Репутация: нет Всего: 1 |
||||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
Fatkh, кроме особенностей конкретных языков программирования, есть понятия общие для всех языков, например безопасность (устойчивость к ошибкам).
есть теории почему статическая типизация хороша, и теории почему хороша динамическая типизация, и конечно есть теории о типизации вообще. видимо всего этого ты тоже не знаешь. |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
Мне было лень возиться. Именно - в сложности написания, читаемости, удобстве для поддержки и т.п. Фортран в этом отношении для таких задач намного удобнее. Пример выше не слишком показателен - куда интереснее будет, если какую-то программу надо будет параллелить. C++ в этом отношении неплох, но только если кто-то уже сделал за тебя "грязную работу". А если ее надо делать самому, то удобства C++ по сравнению с C в значительной степени нивелируются. |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
Фантом, если ее надо делать самому, и ты знаешь как ее делать - никаких проблем нет - берешь, и делаешь.
написать аналоги библиотек буста - вопрос времени, ничего особенного в них нет. однако практика показывает, что написать библиотеку и потом много раз ее повторно использовать, это быстрее чем каждый раз писать писать код без этой библиотеки |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
Время - это самый ценный из имеющихся ресурсов.
Конечно. Но в обсуждаемом случае эта ситуация малореальна. Либо человек пишет такого рода программы постоянно - и тогда он почти наверняка будет руководствоваться "промышленными стандартами". В вычислительном программировании это Фортран, в чем-то другом - что-то другое, но совсем не всегда это C++. Либо для него это более-менее разовая работа, а тогда трудозатраты на создание библиотеки слишком велики по сравнению с общим объемом работы. |
|||
|
||||
| Fatkh |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.9.2009 Репутация: нет Всего: 1 |
И? А есть теория русского языка, согласно которой ты сейчас не сказал ни одной значимой фразы. Да, есть теории. И что? Абстрактно говорить все мастера. |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 2 Всего: 121 |
Привычка -- вторая натура?
Какие здесь преимущества у фортрана? -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
И это тоже. Но и реализация многих нужных вещей на уровне языка (соответственно, с хорошим контролем ошибок компилятором), и отсутствие ненужных вещей (что тоже совсем не вредно) тоже облегчают жизнь. Встроенные средства языка. Они, правда, позволяют сделать не все, но в большинстве случаев их оказывается достаточно, по крайней мере для реализации чего-то уровня OpenMP. |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 2 Всего: 121 |
Без конкретики конечно сложно, но я пока ничего уникального в фортране не увидел. Опять же, без какой-либо конкретики я не понял о каких преимуществах речь. OpenMP поддерживается всеми современными компиляторами С++, auto-vectorization есть в ICC и в MSVC++ (хотя она там не такая навороченная). А вообще, я сам недавно убедился, что в плане параллельных вычислений F# рулит. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
![]()
|
| Правила ведения Религиозных войн | |
|
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Религиозные войны | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |