LINUX.ORG.RU

Говорят *int64_t не нужен. float64_t хватит всем

 , , , ,


1

4

Непопулярное мнение: JavaScript единственный язык, который сделал правильные числа. 64 бита, которые одновременно и целое до 53-х бит, и с плавающей точкой если больше.

Ну просто подумайте: в какой жизненной ситуации вам нужны целые больше 53-х бит? Это 9*10^15, девять ебучих квадриллионов, девять тыщ триллионов то есть. Чтобы представлять что? Вокруг нас просто нет предметов в таком количестве (кроме размера node_modules). Девять тыщ терабайт, если в байтах.

То есть 53 бита достаточно каждому. Даже в указателях только 48 используется (хаха, а вы что, думали 64? Щас).

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

Почему же тогда подход JS не нравится «настоящим программистам»? Да потому что все остальные наловчились в 64 бита рассовывать разное, нужно им это или не нужно.

То есть по сути единственная причина, почему это неудобно, это другие языки, которые пришли раньше и у которых конвенция другая. Они может все 64 бита и не используют, но _потенциально_ могут, и в итоге приходится под них подстраиваться.

А нужно наоборот, чтобы все подстраивались под JavaScript (который на самом деле IEEE 754 double-precision float, если вам так больше нравится).

Но как же битовые операции, скажете вы? Как мне всякие там сдвиги считать? Ну чувак, битовые операции на числах это страшный хак, раз уж мы о типах заговорили. Они должны на байтах делаться, а не на числах.

А всякие int64/uint64 это от лукавого. Должен быть только number64.

★★★★

Согласен с автором. Раздельные типы для float и integer не нужны. Decimal кстати тоже не нужен. Пусть ТСу зп в банке во float считают. Следом ними надо отказаться от отдельных типов для символов. Вся эта путанница с char, uchar, u8, rune не нужна. Пусть символ будет числом с плавающей точкой. Особенности округления будут только придавать уникальности текстам при рендере.

Aswed ★★★★★
()