«Как-то мы неправильно программируем компьютеры» Python

kak to my nepravilno programmiruem kompjutery python Заключение: Python и цикл разработки

Это одна из наиболее затасканных фраз в нашей отрасли. Все же, если на некоторое время задуматься о картине в целом, большинство из нас, видимо, согласится, что что-то мы «недоделали». За несколько последних десятилетий индустрия программного обеспечения достигла значительного прогресса в упрощении процесса разработки (кто-нибудь помнит еще ввод данных с перфокарт?). В то же время стоимость разработки определенных потенциально полезных компьютерных программ часто остается настолько высокой, что они становятся невыгодными.

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

«Фактор Гиллигана»

Было предположено, в шутку, что если бы у разработчиков программного обеспечения был святой покровитель, этой чести не удостоился бы никто, кроме Гиллигана, персонажа весьма популярного американского телешоу 1960-х «Остров Гиллигана». Гиллиган — загадочный, обутый в тапочки первый помощник капитана, виноватый, по общему мнению людей, оказавшихся на острове, в происшедшем кораблекрушении.

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

Но ясно, что виноват в этом не несчастный Гиллиган. Можно ли рассчитывать, что с помощью элементарных технологий, доступных в таких условиях, будут реализованы проекты таких сложных устройств, как бытовая техника и устройства связи? У него просто не было необходимых средств. Не исключено, что инженерные способности Гиллигана были на высочайшем уровне, но что можно собрать из бананов и кокосов?

И неизменно, раз за разом, кончается тем, что Гиллиган неумышленно срывает лучшие планы Профессора, неправильно используя и в конечном счете уничтожая его изобретения. Если бы он крутил педали своего самодельного неподвижного велосипеда быстрее (как его убеждали), все было бы хорошо. Но в конце неизбежно кокосы летят в воздух, а обломки пальмовых ветвей падают ему на голову, и бедного Гиллигана в очередной раз ругают за провал технологии.

Как ни драматичен этот образ, некоторые наблюдатели считают его поразительной метафорой программной индустрии. Как и Гиллигана, нас, разработчиков программ, часто вынуждают решать задачи с помощью явно негодных средств. Как и у Гиллигана, наши намерения правильны, но сдерживает технология. И, как несчастный Гиллиган, мы неизбежно навлекаем на себя гнев руководства, когда наши проекты завершаются с опозданием. С бананами и кокосами задачу не решить…

Делать правильно

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

Рассмотрим ситуацию внимательней. В общем и целом причина сложности разработки программного обеспечения не связана с той ролью, которую оно должно выполнять, — обычно это четко очерченный процесс реального мира. Скорее она связана с отображением задач реального мира на модели, которые могут исполняться компьютерами. А это отображение осуществляется в контексте языков и средств программирования.

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

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий