воскресенье, 13 сентября 2009 г.

[comp.prog.bugs] На днях вышел новый релиз Scala – 2.7.6. Типа с одним баг-фиксом

Релизы новых версий компилятора языка Scala всегда поражали меня одним свойством – спустя несколько дней/недель количество багов, выявленных в новой версии, превышало десяток (а то и не один). Чем это можно объяснить? Для меня это загадка. Вроде бы и задача не архисложная (все-таки в компиляторе Scala не нужно ни машинный код генерировать, ни агрессивные оптимизации проводить) и хорошо покрываемая тестами. И сроков у них жестких не видно. И народу над Scala работает порядочно (а может как раз в этом и дело?)… Но я не припомню релизов, после которых список найденных ошибок содержал бы меньше десяти пунктов.

И вот цитата из анонса Scala 2.7.6 (т.е. шестого(!) обновления версии 2.7):

Мы выпускаем следующую минорную версию Scala 2.7 для исправления одной редкой проблемы, которая может приводить к сообщению “malformed Scala signature”. Никаких других исправлений или изменений не включено; если вы никогда не встречали подобного сообщения, вы не заметите никакой разницы после обновления.

Ну типа – всего один баг-фикс, да еще такой специфический, что если вы с ним никогда не сталкивались, то особой разницы не заметите. Хотя, думаю, правильнее было бы сказать – если вы с ним никогда не сталкивались, то лучше на 2.7.6 и не переходить… Поскольку, буквально вскоре после этого анонса появилось письмо от главного разработчика фреймворка Lift (а Lift, если кто не в теме – это для Scala такой же PR-локомотив, каким для Ruby был Ruby-On-Rails, если не больше): “Unfortunately, Lift doesn't compile under 2.7.6…” А затем и еще одно письмо: “Upgrading from 2.7.5 made Eclipse inoperable. Failed to revert configuration, had to restore from backup.”

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

Эта заметка из разряда “у соседа корова сдохла – пустячок, а приятно”, но лично меня происходящее заставляет задумываться – а можно ли вообще сейчас писать надежные программы? Ведь если у разработчиков Scala (очень не глупых людей, среди которых есть опытные мегамонстры компиляторостроения, использующих безопасные Java и Scala, работающих на безопасной JVM, без давления со стороны заказчиков) не получается, то что уж говорить о всех остальных?…

Отправить комментарий