Как стать автором
Обновить
27
0

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

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

Это не статья, а сообщение в стиле: "смотри, что я запилил". Было бы не плохо описать детали реализации и примеры использования, а не тупо кинуть ссылки на гитхаб

Лучше так: "энтузиаст собрал вычислительный кластер, использовав в качестве корпусов унитазы в общественном туалете"

Это децентрилизованный кэш, если я правильно понял. Сам youtube при этом как был централизованным, так им и останется. Автор же говорит о повсеместном переходе. Создание децентрализованных сервисов в дополнение к централизованным не есть переход на Web3.0.

У меня был стандартный .vim файл для подсветки, но она всё равно исчезала. Надо будет ещё раз попробовать встроенный клиент, видимо баги в нём исправили

У вас при использовании встроенного lsp клиента проблем не возникало? Я помню его пытался для хаскеля использовать, в результате перешёл на coc, потому что при длительном использовании пропадала подсветка и переставал работать переход к определению

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

Верно подметили. Лучше использовать char* fgets(char * restrict str, int size, FILE * restrict stream);

А в чём смысл статьи? В качестве обучающего материала для написания интерпретаторов статья не годится, потому что в основном языки программирования имеют более сложную структуру, и для интерпретации придётся писать лексический анализатор и синтаксический анализатор, что в статье не рассматривается. В качестве хорошего обучающего материала могу предложить книгу "Build your own lisp". Есть так же её вариации на отличных от си языках

Просто по опыту, при программировании на Си ошибки в типах - не самые часто встречающиеся ошибки.

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

Как и при программировании на языке с более сложной системой типов,
основные ошибки алгоритмические. А от этого никакая система типов не
спасёт.

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

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

Я аналогичного мнения насчёт c++ придерживаюсь.

Я такого рода утверждения уже больше 10 лет постоянно слышу. А люди зачем-то всё начинают и начинают.

Я не отрицаю, что есть специфические области, где c и c++ необходимы. Например, в игровой индустрии движки на c++ написаны, поэтому новые игры пишутся на нём.

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

Надо сказать, что пиры запрашиваются у других пиров, так что трекер не всегда нужен для их получения.

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

Теперь я точно не знаю, что такое Web3.0. Для чего там машинное обучение и искусственный интеллект? Сейчас они используются для прогнозов, рекомендательных систем, перевода текста в речь и т. п. Какая принципиально новая роль у ML появляется в Web3.0?

Однако не за горами следующая версия всемирной паутины – децентрализованный web 3.0

Звучит сомнительно. Без перехода на Web3.0 крупных корпораций типа Google, масовым Web3.0 не стать. Я не очень понимаю, какую выгоду получат крупные корпорации от децентрализации?

Интересно. Не знал, что 52% там ветряками добывается. Надо будет подробнее про это почитать

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

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

Насколько я могу судить, перейти полностью на возобновляемые источники энергии типа ветряков и солнечных батарей в обозримом будущем не выйдет. Чтобы питать города/страны их нужно слишком много, плюс нужно вокруг все этого ещё и аккумуляторы ставить, потому что ветер не всегда дует, а солнце не всегда светит. Гидроэлектростации уже давно используются. В результате большая часть энергии вырабатывается именно атомными электростанциями и без них мы обойтись не можем. Я бы ставил больше на переход к термоядерной энергии, а не на переход к возобновляемым её источникам.

Я не особо подробно вдавался в вопрос, но когда последний раз писал на расте приложение под UEFI, у меня возникла проблема с core::fmt. Из-за него бинарник выходил достаточно жирным, поэтому пришлось от него отказаться и использовать для вывода встроенные в UEFI функции. Надо будет попробовать использовать ufmt. Есть ещё целый репозиторий, посвящённый уменьшению бинарников на расте.

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

Информация

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

Специализация

Backend Developer
Middle