Об убыточности качественного программного обеспечения

Список разделов Другое Оффтопик

Описание: Для общения на свободные темы.

Сообщение #1 Странный Ребёнок » 21.12.2012, 00:12

Для начала пример из математики.

Рассмотрим выражение: ab + ac = a(b + c)

Очевидно, что вычисление правой и левой части даст одинаковый результат. Но, первый вариант менее экономичен т.к. требует на одно умножение больше.

Обычно, при решении мат. задач, сначала получается длинное, неэффективное решение и только потом короткое. В программировании имеет место сходная ситуация и весь процесс создания компьютерной программы можно разделить на три этапа:

1. Нет решения.
2. Длинное решение.
3. Короткое решение.

По моему собственному опыту, время между стадиями 2-3 существенно превышает время между стадиями 1-2. Имея это обстоятельство в виду, представим механизм работы воображаемой софтверной компании. Эта компания задумала реализацию большого проекта и через год получила работающую программу в стадии 2. Разве выгодно в коммерческом отношении потратить ещё 3 года на доведения её до стадии 3? Конечно, нет. Вот мы и видим на практике, что очередная версия операционной системы, графического редактора и т.д. требует всё больше места на диске, памяти, частоты процессора.

И это бы ещё ничего, что программы не неэффективны. Зачастую, они ещё содержат ошибки, т.е. производители даже не доводят их до 2-ой стадии. Тратить время на тщательное тестирование программы тоже невыгодно, ошибки лучше исправлять по мере их обнаружения самими пользователями.

-----------------------------
Мысль эта, может и не нова.
Последний раз редактировалось Странный Ребёнок 25.12.2012, 17:38, всего редактировалось 1 раз.
Странный Ребёнок
Автор темы
Репутация: -12
С нами: 11 лет 3 месяца

Сообщение #2 Monstr » 21.12.2012, 20:55

Мысль не нова. Преподнесена в новой форме. А вообще это заговор между программистами и продавцами железа.
Monstr
Репутация: 5
С нами: 14 лет 1 месяц

Сообщение #3 VEG » 22.12.2012, 03:02

Monstr:А вообще это заговор между программистами и продавцами железа.
На самом деле всё просто. Разработка быстрого и качественного кода стоит слишком дорого. Даже хороший специалист может использовать не самую производительную технологию (например, C# вместо C++) для того, чтобы быстрее выпустить готовый продукт. С ростом производительности компьютерных систем в какой-то мере это разумно.
Этот форум крутится на скриптах, написанных на PHP. Если бы эту же логику написать на C++, форум бы потреблял меньше ресурсов. Но написать сравнимый по надёжности и функционалу движок на C++ будет на порядок сложнее и дороже. Наверное, именно поэтому вы не найдёте движков форумов на C++ :)
К слову о производительности. Я для теста писал простейший код подсчёта количества различных символов в длинной строке. Решение на C работало в 660 раз быстрее, чем решение на PHP. На самом деле впечатляющая разбежка получилась :) Это не значит, конечно же, что все скрипты на PHP работают во столько раз медленее. Ведь все встроенные функции в PHP написаны на C и работают быстро. А сама логика кода на PHP обычна достаточно проста. Поэтому в результате получается достаточно быстро. Наверное поэтому PHP так популярен :)
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 273
С нами: 11 лет 10 месяцев

Сообщение #4 Странный Ребёнок » 24.12.2012, 17:55

А кто виноват?

Сами пользователи виноваты. Кто их вынуждал переходить с XP, на Vista, 7, 8? Продолжали бы пользоваться XP.
Странный Ребёнок
Автор темы
Репутация: -12
С нами: 11 лет 3 месяца

Сообщение #5 VEG » 24.12.2012, 18:30

Странный Ребёнок, а кто сказал, что XP лучше Windows 7 или 8? Новые версии ОС предлагают новые возможности для разработчиков, которые упрощают разработку приложений. Доступность более простых технологий позволяет делать больше сложного и достаточно стабильного ПО. С использованием слишком низкоуровневых технологий сложно написать что-то сложное и достаточно стабильное. Ну да, для работы новых ОС требуется немного более мощное железо. Но вы попробуйте купить в 2012 году новый компьютер, который не потянет без проблем Windows 7 :)
При этом не надо думать, что на новом компьютере старая XP будет работать быстрее. Если вам удастся найти все драйвера, она будет работать примерно так же. А если учесть, что сейчас Windows 7 самая популярная, и все производители оптимизируют свой софт именно под неё, то есть шанс, что под Windows XP что-то может оказаться менее производительным. Например, если под 7 программа будет использовать быстрый Direct2D для вывода графики, а под XP — медленный GDI (поскольку под XP нет Direct2D).
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 273
С нами: 11 лет 10 месяцев

Сообщение #6 Странный Ребёнок » 24.12.2012, 19:51

У XP по-любому выше коэффициент (кол-во_полезных_возможностей / системные_требования), поэтому она и лучше.

Более высокая стабильность программ, оптимизированных под 7, мне представляется сомнительной - программы также постоянно требуют обновлений, из-за обнаруженных ошибок. Было бы интересно почитать статистическое исследование по сравнению устойчивости программ в XP и ОС, если таковое имеется. Но, a(b + c) всегда будет стабильней ab + ac.
Странный Ребёнок
Автор темы
Репутация: -12
С нами: 11 лет 3 месяца


Вернуться в Оффтопик