"Журнал «Компьютерра» N 43 от 21 ноября 2006 года" - читать интересную книгу автора (Компьютерра Журнал 663)

13-Я КОМНАТА: Открытие века


Автор: Илья Щуров Voyager

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

Последние недели были весьма богаты событиями на стыке открытых и проприетарных информационных технологий. Oracle и Red Hat, Novell и Microsoft, Microsoft и Zend - давние враги вроде бы становятся друзьями, друзья - врагами, ландшафт явно меняется, но к добру это или к худу, сказать пока невозможно. А вот недавнее открытие кода Java, причем под лицензией GPL, пожалуй, даже самый информированный оптимист оценит как событие положительное. По крайней мере, для свободного софта.

Чтобы оценить его значимость, нужно учесть, что несвободная Java долгое время была «яблоком раздора» (впрочем, одним из многих) между сторонниками Free Software и движением Open Source. Разницу между этими двумя течениями в программировании невооруженным глазом обнаружить нелегко - практически весь софт, называемый open source, обычно является свободным, и наоборот - любой свободный софт имеет открытые исходники (чтобы никого не обидеть, для его обозначения часто используется «политкорректная» аббревиатура FOSS - Free Open Source Software). Тем не менее разница есть, и она существенна - но находится не в технологической, а в этической плоскости. Философия Free Software рассматривает свободу как самостоятельную ценность программы (и любого другого знания), сторонники же open source подходят с более утилитарных позиций, считая, что открытость исходного кода позволяет разрабатывать софт более эффективно - и только. Разница в политических взглядах и глобальных целях накладывает ограничения и на средства их достижения: тогда как один из главных идеологов open source Эрик Реймонд предлагает внедрять больше проприетарных технологий в Linux для расширения его рыночной доли, Ричард Столлмен призывает к бойкоту перспективных технологий HD DVD и Blue-ray из-за встроенных в них средств защиты от копирования.

Неудивительно, что, будучи несвободными, Java-технологии от Sun не могли быть подходящим средством разработки свободного софта несмотря ни на какие преимущества. Долгое время Столлмен предостерегал программистов от попадания в «ловушку Java», рассказывая про нарушение этических принципов и пугая зависимостью от Sun. Однако многие программисты open source, прельщенные возможностями языка, продолжали писать программы на нем - и к текущему моменту Java-проектов на SourceForge.net больше, чем написанных на C++.

Сейчас уже трудно оценить, насколько опасения Столлмена были обоснованными. Даже если бы Sun перестала распространять свою Java бесплатно для пользователей, вероятно, это не стало бы катастрофой: скорее всего такое развитие событий вызвало бы резкий всплеск активности в разработке GNU Classpath (свободной реализации основных Java-библиотек) и открытых Java-машин, и они быстро «догнали» бы официальную Java от Sun. Такие случаи уже бывали. Однако это стоило бы серьезных усилий, времени и нервов многих разработчиков.

Впрочем, к чему гадать? Факт остается фактом - мышеловка Java, вместо того чтобы захлопнуться, открылась и перестала быть мышеловкой. Народ ликует, а скептики могут ухмыльнуться и саркастически заметить: «стоило ли пугать, раз так хорошо все обошлось?» Обошлось. И, кстати, уже не в первый раз обходится - подобная история когда-то произошла с библиотекой Qt. Но не стоит забывать, что происходят подобные вещи во многом из-за той же риторики Столлмена, из-за того же настороженного отношения к проприетарным технологиям со стороны значительной части сообщества.

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