Историческая причина использования периодов в номерах версий? - PullRequest
15 голосов
/ 26 августа 2009

Существует ли историческая причина, по которой точки используются вместо каких-либо других разделителей для версий программного обеспечения?

Один из наших продуктов был ранее версии 3.5, а теперь - 3.08 - я уверен, что это было руководством, которое говорило, что установка нуля в начале сделало бы его менее запутанным для наших клиентов, как только мы достигнем 3.10. Но как разработчик программного обеспечения, версия 3.08 выглядит странно для меня.

Если бы мы не использовали точки, разница между версией 3: 9 и 3:10 или с 3-9 по 3-10 была бы более очевидной, поскольку она не будет читаться как десятичное число. Более того, для того, кто обычно не знаком с версиями программного обеспечения , десятичное число, по-видимому, означает, что версия 3.5 находится на полпути к следующему основному выпуску, когда в действительности мы не можем делать какие-либо предположения о количестве второстепенных релизы до следующего основного релиза.

Я понимаю, что сейчас мы обычно используем периоды как соглашение, потому что это то, что делают все остальные - но была ли причина использовать периоды в первую очередь?

Ответы [ 8 ]

11 голосов
/ 02 сентября 2009

Как предположил DVK, это почти наверняка происходит от SCCS , оригинальной системы контроля исходного кода. Числа, которые он использовал, были 1.1, 1.2, ... 3.14, 3.15, ... и т. Д.

Если вам нужна более глубокая причина, чем эта, вы можете спросить Марк Рочкинд (создан SCCS).

Редактировать: хорошо, я сам написал Марку Рочкинду, и он сказал:

Я думаю, что это началось по аналогии с десятичными числами. Версия 1, версия 2, версия 2.1 и т. Д., И т. Д. Затем добавляется больше десятичных дробей, что не имеет никакого математического смысла, но в любом случае это всего лишь строка.

Я не думаю, что это произошло с SCCS. Я думаю, что эта схема уже использовалась в 1972 году, когда я впервые начал работать над SCCS, поэтому для нас в Bell Labs это было бы нормально. Так что это «более раннее соглашение, которое SCCS использовало как свое собственное вдохновение».

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

6 голосов
/ 02 сентября 2009

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

Глядя на Википедию, "/", "\", ":" и даже "%" и "#" влияют на местоположение файла и поэтому могут быть проблематичными в качестве имен файлов, особенно в довольно примитивном операционная система.

"-", "_" и "." все они регулярно используются в именах файлов, поэтому они будут доступны для именования версий.

Но "-" долгое время использовался в форматах даты.

Я бы на самом деле утверждал, что десятичная модель не такая уж плохая. Хотя он и предполагает, что 1.5 находится на полпути между 1 и 2, он также предполагает, что версия 1.1 не так велика, как изменение версии 1.0, как версия 2.0. И это позволяет указать на заметные сдвиги в базовой линии.

6 голосов
/ 26 августа 2009

Я не уверен в точной причине, но одним возможным влиянием могло быть управление версиями, налагаемое системами репозитория кода (такими как RCS / CVS), которые, конечно, находят числа, которыми намного легче манипулировать, чем строки. *

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

5 голосов
/ 26 августа 2009

Единственная интересная вещь, которую я нахожу, это эта часть записи в Википедии о версии программного обеспечения , в которой говорится (цитирование) :

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

  • Схема может использовать один и тот же символ между всеми последовательностями: 2.4.13, 2/4/13, 2-4-13
  • Схема выбора последовательностей для разделения может быть несовместимой, отделяя некоторые последовательности, но не другие: 2,413
  • Выбор символов схемы может быть противоречивым в пределах одного и того же идентификатор: 2.4_13

Когда период используется для разделения последовательности, это не представляет десятичная точка , и последовательности делают не имеют позиционного значения. Например, идентификатор 2.5 не "два с половиной" или "половина пути к версия три ", это пятая пересмотр второго уровня второго ревизия первого уровня, и не будет соответствующий [цитата нужна], если там были 2.1, 2.2, 2.3 и 2.4.

2 голосов
/ 26 августа 2009

Вы также можете задаться вопросом, почему десятичная точка - это знак, используемый для завершения предложений.08 Как странно!

1 голос
/ 26 августа 2009

Это не десятичная точка. Это просто разделитель версий. Люди в континентальной Европе все еще используют период для разделения версий.

0 голосов
/ 05 сентября 2009

Я думаю, что проще просто придумать новый номер, чем новое имя. Даже Microsoft снова вернулась к своей обычной схеме нумерации, перейдя с Windows 2, 3, 3.1, 3.11 на 95, 98, ME, 2000, XP, Vista и теперь вернувшись к 7. Кроме того, использование буквенных кодов может привести к нежелательным ассоциациям. Например. у нас есть Windows CE, ME и NT, которые представляют собой три разные системы Windows, которые работали примерно в один и тот же момент. (Просто сложите буквы вместе.) По крайней мере, с цифрами у вас нет риска случайно произнести какие-то странные слова. (Опять же, Borland / Codegear / Embarcadero пропустили версию 13 студии Delphi RAD.) Люди также склонны избегать номеров версий, таких как 6.66 или 6.6.6 по некоторым дьявольским причинам ...

0 голосов
/ 26 августа 2009

Это не десятичная точка, просто разделитель. Почему они использовали этот символ, неизвестно и мало интересен как вопрос программирования ...

Но слишком много людей думают, что это десятичная точка, приводящая к путанице. Но как насчет Firefox 3.0.13 или любого другого 1.9.0.5213? Основной номер, младший номер, номер редакции и номер сборки не редкость (по крайней мере, в мире Microsoft ...).

...