Вы здесь

Обратная совместимость

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

Это было правильным решением. Через годы мы видим много прогрессивных вещей, которые не были бы реализованы, если бы мы сохраняли обратную совместимость (система документов один из самых ярких примеров). Разработчики имеют свободу в реализации своих идей наилучшим путём. Это то, что делает Друпал предпочтительнее многих других систем управления содержанием. Было интересно наблюдать, как Друпал распространялся и как рос в направлении гибкости, охватывая всё больше ниш, чем другие системы. В любом случае, это связано с тем фактом, что мы не заботились об обратной совместимости и целенаправленно получали преимущества от новых технологий.

Конечно, разрыв совместимости имеет свои недостатки. Дорогой путь обновления и расстройство из-за того, что для многих проектов недоступны новые версии, это первое, что приходит на ум. И у многих людей это вызывает вопросы.

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

Однако большинство людей беспокоятся только о том, как они будут обновлять свои сайты, самое позднее, в следующую пятницу. С ростом Друпала этих людей становится всё больше и их вопросы об обратной совместимости становятся всё заметнее, в результате, становится всё труднее и труднее следовать этому принципу. Для многих из нас (включая меня) это сложно принять. Сложно принять не потому, что мы не думаем о проблемах этих людей, а потому, что мы понимаем, что единственной долгосрочной стратегией является фокусирование только на реализации новых технологий. Единственный путь остаться лидером, это делать лучший продукт. Он не получается более сложным чем этот. Если вы начнёте тащить багаж, ваш продукт будет в итоге заменён на что-то, что предоставляет такие же возможности, но без багажа. То, что быстрее, меньше и чище — находится на острие технологий. К сожалению, об этом заботятся только те, кто видит долгосрочный интерес. Пользователи со своими сайтами и вопросами обновления имеют другой набор проблем, такой, как крайний срок в пятницу ночью. Они очень близоруки и одновременно правы. Помните, что на обоих сторонах этого аргумента есть верные точки.

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

Но что произойдёт, когда многие из наших пользователей медленно заставят нас изменить этому принципу? Это кажется неминуемым, что раньше или позднее, нам придётся всё больше заботиться о ломке кода пользователей. И когда это произойдёт, я думаю это будет концом Друпала, каким мы его знаем. Возможно не сразу, возможно даже за несколько лет, но в конечном счёте он будет превзойдён продуктами, которые смогут быстрее отвечать на изменения. Может быть так должно произойти в любом случае и когда это случится, сделав так много людей счастливыми как это возможно (даже за свой счёт), это единственное, что имело значение?