>> binary encoding, использующийся в BitTorrent, ещё куда ни шло как хранилище,
>> но возможностей ещё меньше, чем у JSON.
> 1) В принципе, торрентовый кодинг может кодировать что угодно. Как и json.
> Ему пофиг.
> 2) Но он еще более извратен - он полутекст и полубинарь. Тип
> данных и длина указаны как текст (не компактно) а сами данные
> могут быть свалены как попало, от текста до массива бинарных хешей.
> В результате это и не читаемо для человека и не очень
> удобно для парсинга машине. Еще один подвид кодирования данных в стиле
> "ни два, ни полтора".Он хотя бы длину каждого кодируемого объекта заранее указывает, и его можно эффектино проходить по нескольку раз вместо полного парсинга или построения дополнительного дерева, как в случае с XML и JSON.
Насчёт длины данных: для наиболее актуальной ситуации вроде обсуждаемой в теме, BE даёт более компактное представление длины: большинство строк не превышают 9999 байт. ;) Числа менее 10^7 также представляются эффективно с точки зрения хранения, хотя тут возможны оговорки.
Насчёт типа - опять же, для самого распространённого типа объектов ("строка"), если вспомните, он там специально не указывается вообще. ;)
Насчёт же "как попало" - не совсем понятна претензия: а "не как попало" - это как? Данные идут последовательно, объекты не перекрываются. Нет индексации - это да. Но ведь мы и говорим о метаданных, которые сравнительно невелики по количеству полей. Потери CPU на перебор в памяти вполне окупается более компактной, эффективно проходимой повторно записью.