Обновить
3
0
Григорий Беднов @gregorybednov

Пользователь

Отправить сообщение

Рекомендую ознакомиться всем сторонникам внедрить 10ричную систему куда угодно с историей измерения углов. Радианы, градусы, грады.

Чем грады принципиально лучше градусов? Тем, что единовременно весь мир будет достаточно стоять на ушах, произойдет с десяток катастроф (типа тех, которые происходят, когда кубический фут путают с литром топлива?)

Современная система времени хоть и сложна, но ассоциируется с базовыми временными циклами, от которых она произошла. Год - это период цикла обращения Земли вокруг Солнца (примерно), месяц - это период цикла обращения Луны вокруг Земли (совсем примерно), сутки - это период цикла вращения Земли вокруг собственной оси (тоже, строго говоря, примерно).

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

В своё время в СССР хотели перевести русский язык на латиницу, но потом сообразили, что в этом случае по сути вся прошедшая компания по ликвидации безграмотности будет коту под хвост, безграмотными в одночасье станут практически все, опять, выгоды при этом вообще никакой.

Что касается именно 60ричной системы счисления в минутах и часах, то она тоже не случайна: человек может легко делить 60 и на 2, и на 3, и на 4, и на 5, и на 6, то есть на практически любое "небольшое" число целых частей час можно точно разделить. Тем временем, 100 точно делится на 2, 4, 5 - просто "идеальная" система, подойдет разве что для "умников", которые не могут умножать на что-либо кроме степеней 10.

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

Кстати, что это за половинчатая логика - мол, "давайте вместо общепринятой системы времени введём новую систему времени, только потому что она основана на общепринятой 10тичной системе счисления?". Пользы ведь никакой, один сплошной вред.

... Кстати, а откуда вообще такая уверенность, что 10тичная система хороша сама по себе? Если продолжить эту мысль и искать "идеальную" систему счисления, то симметричные системы счисления (троичная симметричная, девятеричная симметричная) хотя бы проще в устном счёте (ну, если вырасти в условиях, где она основная - меньше единиц перехода при арифметических действиях, в четыре раза меньше таблица умножения при той же (или почти той же, иногда на 1 знак больше) длине записи что и у соответствующей несимметричной системы, интеграция с троичной логикой да/нет/не знаю, естественное отображение отрицательных чисел, ..). Так почему нет? Уж не потому ли, что для такого действия придётся переписать все школьные учебники (не только по математике), все ценники в магазинах, всю документацию (что, между прочим, является неплохим источником ошибок в документации), весь код, вплоть до прошивок BIOS? Ну так а предложенная в посте затея по урону и требуемым трудозатратам по возвращению всего на свои места будет прям ничем не лучше, а по профиту в плане удобства, скорее всего, будет даже пожиже, чем у девятеричной симметричной системы вместо десятеричной.

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

Затем уже общество подстроилось под это привычку. И да я согласен, раньше когда в целом мир был менее глобализован, это было удобнее. Например ты приезжаешь в любой город и знаешь что примерно в 8 вечера закроются все магазины и везде время одинаково. Но сейчас мне кажется это доставляет гораздо больше неудобств

Глобализация прошлась таким катком по миру, что люди перестали выходить в магазины: они всё заказывают в интернете или едут в mall или хотя бы затариваются в районном supermarket, который работает строго 24/7, иначе просто и не бывает. Небольшие города, где не рентабельно или тупо опасно оставлять ларьки открытыми после 22:00 по местному времени, вышли из чата.

И из той же оперы:

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

То есть с этими "замечательным" форматом времени это будет не нужно? В смысле, вы правда уверены, что проблема в часовых поясах, а не объективной потребности людей ночью спать, а днём бодрствовать? Автор вообще в курсе, что он либо только что просто соврал (что эта система решит проблему со звонками в другие часовые пояса), либо решил проблему "теперь можно будет звонить кому угодно, времени же NNNNN симплосекунд всего", попутно приговорив (в проекте) целые народы жить по ночам, которые из-за этого будут страдать из-за нарушений обмена веществ?

Формат даты-времени 2020-2-58 32688.682

Честно говоря, мне поначалу показалось, что это какой-то номер стандарта IEC или ISO, у них похожий формат записи... правда, для нумерации стандартов... Так что я там говорил насчёт "людям лень даже четырехзначные числа говорить?" Автор пытался произнести данное число, особенно в ответ на вопрос "сколько времени"? И это точно проще, чем x часов, y минут, z секунд (лень переводить, сколько тут приведено)?

и когда мы введём счет по порядку мы не пропускаем нули

Именно что при счёте мы пропускаем 0. Когда я говорю "одна палочка", это значит, что у меня "одна палочка", когда я говорю "две палочки", это значит, что я пока посчитал две палочки, и так далее. Если я скажу перед тем как считать палочки "ноль палочек", это означает, что палочек у меня нет, а не что она одна под номером №0. При счёте, внезапно, нумеруют не смещение (в элементах массивов, если речь о программировании), не какой-то "номер", который можно начать хоть с 1, хоть с 0, хоть с -353, а количество уже подсчитанных элементов.

за основу предлагается взять часовой пояс UTC-2. Чтобы никто не обиделся, решено взять пояс где вообще почти никто не живёт, на этом поясе только Атлантический океан и остров Гренландия (на рисунке выделено черным цветом).

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

Позволю себе немножко углубить пересказ Аристотеля, так как приведённый в посте пересказ является всего лишь интерпретацией средневековых философов-богословов (что уж точно известно, так это что Аристотель не был христианином, поэтому его идеи требовалось как-то "приводить к этому знаменателю"). Физики+богословие против логики, поехали что ли...

То, что мы знаем про Аристотеля на данный момент, предполагает скорее, что Аристотель противопоставлял свой Демиург (Перводвигатель) "классическим" богам-"творцам".

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

Допустим, что каждое событие имеет причину. В этом случае получится, что есть по крайней мере одно событие, которое будет "корнем" этого дерева причин и следствий. В принципе, их может быть несколько.

Либо же это "дерево" будет замыкаться в причинно-следственный цикл(ы), но это на самом деле это какой-то бред: если причину и следствие можно поменять местами и при этом всё равно отношение следования останется в силе, значит причина и следствие - это одно и то же, а такое логическое отношение называется уже следованием в обе стороны, или по-простому эквивалентность, а если совсем просто - равносильность). Типичным примером эквивалентности служат утверждения вида "томат - это помидор, помидор это томат", "Если x+1=y+1, то x=y", а если x=y, то x+1=y+1 и тому подобные. Если что-то образует причинно-следственный цикл, то все его элементы станут эквиваленты, что означает, что во вселенной эквивалентно либо всё со всем, либо существует какой-то набор этих циклов эквивалентности. Учитывая, что предметы и события мы как-то различаем... вряд ли от всех "корней" можно циклами следования, это получается что-то очень абсурдное.

Теперь вернёмся к исходному допущению. Мы "доказали", что Бог (или же равносильность всего со всем, что как-то уж совсем расходится с нашим опытом) существует в том случае, если каждое событие имеет причину.

... Заслуга Аристотеля в том, что он призывал искать отношение следования. А "заслуга" схоластов-богословов в том, что они убедили всех, якобы отношение следования есть всегда, а значит что есть и причинно-следственное дерево, которое обязательно выйдет хотя бы одним своим "корнем" за рамки нашего мира.

Что же предполагал Аристотель? По-видимому, выражаясь современными понятиями, он считал, что не все события имеют причину, есть и события спонтанные, хаотические, не необходимые, которые тем не менее в долгосрочной перспективе могут вызвать необходимые следствия. (Если до бесконечности перетягивать канат, скорее всего рано или поздно канат будет перетянут одной из сторон; если очень долго кидать игральный кубик, на практике рано или поздно выпадет "6", хотя математически это гарантировано лишь с определенной вероятностью; если очень долго лететь на самолете, рано или поздно придётся садиться на землю (кончится топливо, что-то сломается и так далее) ).
Данный метод рассмотрения, когда существуют не только следования, но спонтанные/случайные события, настолько естественнее рассуждений о "внемировых незримых первопричинах", что до сих пор может успешно применяться на практике по отношению к любой, сколь угодно узкой или широкой предметной области.

Знаем ли мы источники "истинной" случайности, обеспечивающей как раз это свободное диалектическое развитие Вселенной? Сейчас мы можем предположить, что таковыми являются некоторые квантовые процессы.

Именно это свойство хаоса упорядочиваться (хотя бы при определенных условиях) для Аристотеля и было Перводвигателем, оно же Демиургом. "Причины причин", Творца у Аристотеля не было - он, как бы его не искажали в Средние века, был материалистом.

Бог у Аристотеля был, но несколько в другом качестве, практически противоположном. Бог был не "причиной причин", а "следствием следствий", неким предположительным итогом самостоятельного развития Вселенной, обретшей наконец разум, а потому крайне сложно организованной, материальной по содержанию, но уже идеальной по форме. Таким образом, если уж исповедовать взгляды Аристотеля в XXI веке серьёзно, то получится, что Аристотелю в современной философии наследуют не сторонники религиозных культов со слепыми попытками "договориться" с неким заведомо непознаваемым божеством; этим взглядам наследует приверженность прогрессу научно-техническому и общественному, желание понять устройство нашего мира с применением логики, любовь к человеческой деятельности и сотканному из этой деятельности обществу.

Наличие контейнеров из коробки в плюсах не заставляет вас ими пользоваться. Это ж не Go без дженериков, можно написать свои.

Лично меня не заставляет, а вот про условных коллег из другого отдела я так сказать точно не могу.

Более того, в С из коробки есть, например, сортировки, зачатки парсинга, зачатки работы со строками, и так далее. Довольно странно апеллировать именно к контейнерам.

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

А, к слову о низкоуровневой конкретности, наличие темплейтов позволяет писать код так, что компилятору куда проще его оптимизировать. Массив из 5-10 элементов на плюсах сортируется раз в 40 быстрее, чем на С, просто за счёт отсутствия оверхеда из-за непрозрачного void*.

Тем не менее посмею заметить, что погоня за производительностью за счёт усложнения системы - не лучший путь. Как правило, системные программы должны работать не как можно быстрее, а в срок выполнять каждую задачу (ведь это требование к системе реального времени, а связка ОС+драйвера является как минимум системой мягкого реалтайма).
А усложнение системы во имя ускорения... похожим путём уже ходили CISC-процессоры, и в итоге пришли к системе микрокоманд (практически RISC-внутри-CISC).
Предположу (возможно, ошибусь), что идеальным для компиляторов было бы не "уход вверх", в "высокий уровень", а наоборот, написание программ командами сразу под какую-нибудь виртуальную машину, такую как JVM, LLVM или например Форт-машина. При этом почему-то так мало кто делал (возможно конечно, что по исключительно историческим причинам), и в том числе поэтому сейчас мы получаем LLVM-компиляторы классических языков программирования, где изначально ничего такого не задумывалось ни сном ни духом.

Отлично, но абстракция «всё есть файл» в UNIX пришла из Multics, где применялась ещё шире — блоки памяти тоже были файлами

Основным отличием Unix от Multics был, насколько я помню, Kernel Panic вместо обработки исключительных ситуаций. Дело в том, что больше половины кода Multics составляли именно алгоритмы обработки ошибок. Поэтому создатели Unix не мудрствуя лукаво решили примерно в таком ключе: "все равно много проблем можно решить простой перезагрузкой, поэтому не будем усложнять"

И в этом смысле иронично, что

но DOS и Windows были бы?

точно не являются правдой на 100%, ведь Windows знаменит прежде всего своим аналогом Kernel Panic (я сейчас, конечно же, про BSOD), который был основным отличием самых первых юниксов от мультиксов.
Примечательно, что именно по причине ненадобности в C не внесли никакой обработки исключительных ситуаций, кроме кода возврата ошибок errno. И в этом плане Unix оказал значительное, историческое влияние на вычислительные системы в целом.

Согласен с небезопасностью данного языка в общем смысле, но давайте посмотрим на контекст - есть несколько важных обстоятельств, которые делают его безопаснее ассемблера с одной стороны и условного C++ с другой.

1 (оно же главное преимущество перед ассемблером). Возможность структурированного программирования. Конечно, спагетти-код, состоящий из условных и безусловных переходов, в Си допустим, но в конечном счёте стал моветоном (и это прекрасно).
И в этом плане Си однозначно намного безопаснее ассемблера.

2. (оно же главное преимущество перед C++ в применении к низкоуровневому программированию) - это низкоуровневая конкретность. Например, не предоставляется никаких контейнеров "из коробки", а почти всё "сложное" поведение (например, управление памятью) вполне гармонирует с поведением Unix или вовсе явно вынесено в библиотеки операционных систем (напр., библиотеки POSIX). А поскольку наследие Unix сейчас в том или ином виде проникло буквально во все распространенные операционные системы (включая не Unix-подобные, вроде той же MS Windows), то и Си на них гармоничен.

Как писал разработчик тех же языков Паскаль, Модула и Оберон, т.е. эксперт в безопасных языках (и кстати видный критик классических C-подобных языков) Никлаус Вирт: "язык программирования, операционная система и аппаратное обеспечение образуют единую платформу, а потому проектироваться в идеале также должны как единое целое".

"Преимущество" №2 совершенно непригодно при высокоуровневом программировании, но а) позволяет намного быстрее портировать язык Си на любые платформы, б) позволяет "локализовать" "проблемное" поведение в "типичных проблемных местах" - в то время как C++ проблема может возникнуть "откуда не ждали", спонтанно появляться и пропадать, вызывать совершенно неожиданные последствия, и т.д. (как говорится, "выстрелить в ногу на Си проще, чем на C++, но если вам удастся это сделать на C++, вы отстрелите себе намного больше").

К сожалению, мы не знаем, как выглядел бы мир, где Unix (а за ним и C, а за ним и все имеющиеся промышленные языки программирования) не поднялся; а было бы интересно посмотреть, как выглядит мир IT, где язык ассемблера был "побежден" не C, а, скажем, конкатенативным языком Forth. Но связка Unix/C крепко дала корни, а следовательно в любых производных вычислительных системах найдётся ниша, в которой C окажется уместен.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность