64 бита вмещают 18 446 744 073 709 551 616 адресов. 18,4 квинтиллиона. GEUL оставляет 75% из них пустыми.

bit1 = 1:    50%    далёкое будущее
bit1-2 = 01: 25%    ближайшее будущее
bit1-3 = 001: 12.5% стандарт
bit1-4 = 0001: 6.25% текущее предложение

Используемое сейчас пространство — 6,25%. Из оставшихся 93,75%: 12,5% предназначены для будущих стандартов, а 75% зарезервированы для поколений, которые ещё не родились.

Почему?


Урок IPv4

В 1981 году создатели IPv4 считали, что 32 бит достаточно. 4,3 миллиарда адресов. В то время компьютеров в мире было несколько сотен. Казалось, 4,3 миллиарда хватит навсегда.

В 2011 году адреса IPv4 закончились.

Тридцать лет. Всего тридцать лет.

Что сделало человечество после исчерпания: NAT, CGNAT, рынки торговли адресами, двойной стек IPv6. Триллионы затрат за десятилетия. Всё это расходы, которые «не понадобились бы, оставь они пространство пустым с самого начала».

IPv6 выбрал 128 бит. 3,4 × 10^38 адресов. 6,7 × 10^17 адресов на каждый квадратный метр поверхности Земли. На этот раз хватит? Вероятно. Но и они не были уверены, поэтому выбрали 128 бит.


Урок Unicode

В 1991 году создатели Unicode 1.0 считали, что 16 бит достаточно. 65 536 символов. Казалось, этого хватит для всех письменностей мира.

Не хватило. Расширения иероглифов, эмодзи, древние письменности, нотные знаки. 16-битный предел был превышен.

Результат: суррогатные пары UTF-16. Один из самых уродливых хаков в истории программного обеспечения. Windows, Java и JavaScript до сих пор несут это наследие.

Unicode в итоге расширился до 21 бита (1 114 112 кодовых точек). Текущий уровень использования — около 10%. Остальное оставлено пустым. На этот раз урок был усвоен.


Урок ASCII

В 1963 году ASCII использовал 7 бит. 128 символов. Думали только об английском языке.

Результат: человечество шестьдесят лет жило в аду кодировок. EUC-KR, Shift_JIS, Big5, серия ISO-8859, CP949. Один и тот же байт отображал разные символы в разных системах. Битый корейский текст. Битый японский. Вопросительные знаки в заголовках писем.

Если бы использовали хотя бы на один бит больше. Если бы закрепили полные 8 бит и сказали «остальное — потом». История сложилась бы иначе.


Самонадеянность проектировщиков

Во всех этих случаях есть общее: убеждённость, что «того, что нужно сейчас, достаточно».

Были ли создатели IPv4 глупцами? Нет. Это были лучшие инженеры своего времени. Они просто недооценили будущее. Так поступало каждое поколение.

«640 КБ хватит каждому.» Спорный вопрос, говорил ли это Билл Гейтс на самом деле, но факт остаётся фактом: инженеры каждой эпохи попадали в эту ловушку.

GEUL пытается избежать этой ловушки. Способ прост. Не использовать.


Бог троицу любит

В русском языке есть поговорка: Бог троицу любит. Хорошие вещи приходят тройками.

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

Второй раз: 01 (будущее)
  После S1. Когда появится сверхинтеллект.
  Сущность, которая будет структурировать знания способами,
  непредсказуемыми для людей.
  Она может использовать нашу структуру как есть,
  а может переопределить её способами, которые мы не в силах вообразить.
  Пространство, отведённое для этой сущности.

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

Оставить 50% далёкому будущему — значит уступить половину возможностей «тому, чего мы не знаем».


Цена пустоты

Стоит ли что-нибудь оставлять пустым?

75% зарезервировано из 64 бит = 48 бит не используются.
Оставшиеся 16 бит (6,25%) = 1 152 921 504 606 846 976 адресов.

1,15 квинтиллиона.
В десять миллионов раз больше всей Викиданных (108 млн).
Достаточно, чтобы вместить все существующие данные и ещё останется.

Даже при незаполненном пространстве нехватки нет. Текущих 6,25% достаточно. Цена пустоты — ноль.

А цена заполнения? IPv4 показал. Необратима.


Принцип проектирования

Первый принцип проектирования GEUL Grammar v0.11:

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

Это не техническое решение, а этическое.

Оставить пространство, которое можно использовать сейчас, — значит поставить свободу будущего выше удобства настоящего. Долг, который поколение создателей IPv4 оставило нам, мы не оставим следующему поколению.


Самый скромный дизайн

"Я знаю будущее" → использую все 64 бита.
"Я не знаю будущего" → оставляю 75% пустыми.

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

IPv4 был порождением самоуверенности. 32 бит достаточно. Оказалось — нет.

GEUL — порождение скромности. Мы не знаем, достаточно ли 6,25% от 64 бит. Но если оставить 75% пустыми, даже если мы ошиблись — ничего страшного.


Чтобы объяснить, зачем оставлять пустым, понадобилось столько слов. Само действие умещается в одну строку:

if (bit1 == 1): reserved  // 50%. Далёкое будущее.

Одна строка кода защищает половину мира.


* Orion’s Arm — спиральный рукав Млечного Пути, к которому принадлежит наша Солнечная система. Также Orion’s Arm Universe Project — коллаборативный проект твёрдой научной фантастики, воображающий будущее через десять тысяч лет в этом спиральном рукаве. Он исследует темы сверхинтеллекта, межзвёздных цивилизаций и трансформации сознания с научной строгостью; сотни авторов создают его с 2000 года. Горизонт времени, который GEUL называет «далёким будущим», они уже воображают.