Вот тут бы поспорил. При достачном опыте на JS все понятно, поскольку такая конструкция идиоматична для JS (приведение длины массива к типу boolean, что по сути можно прочитать как "есть ли в массиве элементы?"; должен заметить, что тут операция приведения типа использована по прямому назначению).
Контрпример - использование побитовой инверсии для сравнения результата выражения с нулем, с последующим неявным приведением к boolean, то есть:
if (~"some string".indexOf("ome")) { //... string contains substring вместо if ("some string".indexOf("ome") !== -1) { //... string contains substring
Пробовал читать "Чистый код" - какое-то сплошное капитанство и водичка. Книга Кернигана и Роба Пайка "Практика программирования" показалась просто на порядок лучше, намного насыщеннее, да еще и в два раза тоньше.
"Чистую архитектуру" тоже не смог осилить, написано как-то витиевато. А вот "Искусство программирования для Unix" от Эрика Реймонда оказалось самое оно.
Теория типов - относительно новое напрвление в CS. С весьма интересными штуками, как-то алгебраические типы данных, зависимые типы или полнота системы типов по Тьюрингу. Теория типов стоит внимания; мощная система типов позволяет устранить ряд ошибок на корню (к примеру, null pointer exception), частично заменяет тесты и документацию. Есть отдельная книжка по данной теме - Бенджамин Пирс, "Типы в языках программирования".
Что касается PHP, Python или JavaScript (то есть динамических языков, без тайп-хинтинга), то в них с точки зрения системы типов всего один тип, который есть объединение (множество) всех возможных значений, которые можно поместить в переменную языка. Так что проблем с типизацией там изначально нет.
Возможно, вы имели в виду другое - что, к примеру, температура по Цельсию и Файренгейту - это тот же набор значений и те же операции, но сами типы разные. Тут да, согласен, но тогда и определение типа должно звучать как-то так:
Тип — подразумеваемая суть того, что описывается типом, множество допустимых значений и набор операций, которые можно применять на данных значениях.
Но тут уже какая-то рекуррентность и звучит все слишком абстрактно...
Предполагаю что часть типов (к примеру, i32 в Rust) отображена на способ хранения значений намеренно, чтоб наиболее эффективно работать с аппаратурой, на которой будет выполняться финальный код. В то же время, более сложные типы - всякие перечисления, пересечения и объединения - прямой связи с представлением в памяти вроде как не имеют. (Возможно, что такая связь была в языке Си, из-за недостаточно сильной системы типов, но я не знаю Си, могу ошибаться.)
Мнение одного "вояки" как причина к военной спецоперации в отношении целой страны? Скорее ободряющий лозунг.
Я бы с вами согласился, если бы не одна деталь. Нарративы Гиркина, как и других "деятелей", очень точно повторяют ту риторику, что использовал путин в своих обращениях при старте "спецоперации" и при последующих "отчетах об успехах". Кроме того, все они очень близки к тем требованиям, что выдвинуты Россией как обязательные на переговорах с Украиной.
Так что тут уже как в физике - есть явление, но непоняты первопричины. Есть ряд гипотез, и за неимением лучшего используем ту, что максимально близко описывает наблюдаемое явление.
В дополнение к тем видео, что я давал на канал Гиркина в другой ветке, есть еще одна интересная статья на ресурсе Украинская правда. В ней проводится попытка анализа действий путина на основе документов "Ивана Тимофеева, программного директора широко известного Валдайского клуба".
Судя по статье, суть санкций - последовательно обескровить и нейтрализовать военную машину путина, не допустив при этом прямого военного конфликта НАТО - Россия.
Увы, этот путь лежит через гибель и кровь граждан нашей страны... ?
"Чего только не придумают люди, чтобы не сажать картошку..." (с)
Но если серьезно, то полностью уйти в виртуальную реальность не получится, так как уже сейчас ее стараются монетизировать, и брать за "виртуальное" существование вполне реальные день - которые как-то надо зарабатывать.
В целом же, похоже что метавселенная и другие виртуальные реальности - просто эксплуатация страхов и опасений обычного человека, когда в метавселенной он легко может сделать то, на что не хватает сил в реальной жизни.
Тут не стану спорить - повальное использование и капитализация под триллион долларов. Прямо какой-то "феномен Цукерберга". Правда надо отметить, что вспомогательные продукты, то есть технологии - компилируемый PHP, React, FlowType, ReasonML - у компании всегда хороши.
Что же касается основного продукта - Фейсбука - то похоже, что подвинуть его сможет лишь сервис, который позволит пользователям потреблять [как правило бесполезную] информацию вообще без всяких теложвижений. А-ля Тик-Ток...
На мой взгляд, основной продукт компании - соцсеть Facebook - не имеет никакой [общественной] ценности. Далеко не в последнюю очередь из-за убогого UI/UX. Кстати, Instagram, после приобретения, тоже очень быстро деградирует.
Facebook мог бы иметь общественный вес как площадка по обмену новостями [в Группах], если бы не:
Цензура со стороны Фейсбука;
Очень низкий общий уровень самих новостей (в виду низкого "среднего суммарного" уровня пользователей, то есть тех, кто генерирует контент).
Метавселенная выглядит как попытка Цукерберга вложить куда-то силы и деньги. Но так как стоящих идей нет, то получается Фейсбук 3D.
Как результат - ценность метавселенной примерно такая же, как и Фейсбука. То есть никакая.
С помощью генераторов удобно писать [бесконечные] итераторы всяких последовательностей - к примеру, четных чисел, когда каждое последующее обращение к генератору будет возвращать следующий элемент из последовательности. Такое себе вычисление по-требованию, то есть "ленивое".
Но этим спектр применения не исчерпывается. К примеру, у Дэвида Бизли есть пример реализации на сопрограммах (на Питоне) ядра операционной системы с кооперативной многозадачностью.
Ага, до лета 1974 года у сельских жителей паспортов тоже не было. Жизнь у них была просто малина... :/
Если принять, что на картинке запечатлен момент, когда камень катится с горы, и как раз начинает опрокидывать робота - тогда все ОК! :)
Вот прямо внутрь компилятора встроена проверка, что в пути к импортируемому пакету не встречается папка internal?
Хабр же "вне политики", не? Меня как-то забанили на месяц за комментарий по схожей теме. Почему же размещают такие материалы? /sarcasm
Вот тут бы поспорил. При достачном опыте на JS все понятно, поскольку такая конструкция идиоматична для JS (приведение длины массива к типу boolean, что по сути можно прочитать как "есть ли в массиве элементы?"; должен заметить, что тут операция приведения типа использована по прямому назначению).
Контрпример - использование побитовой инверсии для сравнения результата выражения с нулем, с последующим неявным приведением к boolean, то есть:
if (~"some string".indexOf("ome")) { //... string contains substring
вместо
if ("some string".indexOf("ome") !== -1) { //... string contains substring
Вот здесь - да, согласен, ничего не понятно.
А мне что-то совсем не заходит...
Пробовал читать "Чистый код" - какое-то сплошное капитанство и водичка. Книга Кернигана и Роба Пайка "Практика программирования" показалась просто на порядок лучше, намного насыщеннее, да еще и в два раза тоньше.
"Чистую архитектуру" тоже не смог осилить, написано как-то витиевато. А вот "Искусство программирования для Unix" от Эрика Реймонда оказалось самое оно.
"Clean Craftsmanship: Disciplines, Standards, and Ethics"
Линк на Амазон.
На Рефал, Эль и Рапиру. Хотя, постойте, есть же 1С...
Теория типов - относительно новое напрвление в CS. С весьма интересными штуками, как-то алгебраические типы данных, зависимые типы или полнота системы типов по Тьюрингу. Теория типов стоит внимания; мощная система типов позволяет устранить ряд ошибок на корню (к примеру, null pointer exception), частично заменяет тесты и документацию. Есть отдельная книжка по данной теме - Бенджамин Пирс, "Типы в языках программирования".
Что касается PHP, Python или JavaScript (то есть динамических языков, без тайп-хинтинга), то в них с точки зрения системы типов всего один тип, который есть объединение (множество) всех возможных значений, которые можно поместить в переменную языка. Так что проблем с типизацией там изначально нет.
Возможно, вы имели в виду другое - что, к примеру, температура по Цельсию и Файренгейту - это тот же набор значений и те же операции, но сами типы разные. Тут да, согласен, но тогда и определение типа должно звучать как-то так:
Тип — подразумеваемая суть того, что описывается типом, множество допустимых значений и набор операций, которые можно применять на данных значениях.
Но тут уже какая-то рекуррентность и звучит все слишком абстрактно...
Предполагаю что часть типов (к примеру,
i32
в Rust) отображена на способ хранения значений намеренно, чтоб наиболее эффективно работать с аппаратурой, на которой будет выполняться финальный код. В то же время, более сложные типы - всякие перечисления, пересечения и объединения - прямой связи с представлением в памяти вроде как не имеют. (Возможно, что такая связь была в языке Си, из-за недостаточно сильной системы типов, но я не знаю Си, могу ошибаться.)Я бы с вами согласился, если бы не одна деталь. Нарративы Гиркина, как и других "деятелей", очень точно повторяют ту риторику, что использовал путин в своих обращениях при старте "спецоперации" и при последующих "отчетах об успехах". Кроме того, все они очень близки к тем требованиям, что выдвинуты Россией как обязательные на переговорах с Украиной.
Так что тут уже как в физике - есть явление, но непоняты первопричины. Есть ряд гипотез, и за неимением лучшего используем ту, что максимально близко описывает наблюдаемое явление.
В дополнение к тем видео, что я давал на канал Гиркина в другой ветке, есть еще одна интересная статья на ресурсе Украинская правда. В ней проводится попытка анализа действий путина на основе документов "Ивана Тимофеева, программного директора широко известного Валдайского клуба".
Судя по статье, суть санкций - последовательно обескровить и нейтрализовать военную машину путина, не допустив при этом прямого военного конфликта НАТО - Россия.
Увы, этот путь лежит через гибель и кровь граждан нашей страны... ?
"Чего только не придумают люди, чтобы не сажать картошку..." (с)
Но если серьезно, то полностью уйти в виртуальную реальность не получится, так как уже сейчас ее стараются монетизировать, и брать за "виртуальное" существование вполне реальные день - которые как-то надо зарабатывать.
В целом же, похоже что метавселенная и другие виртуальные реальности - просто эксплуатация страхов и опасений обычного человека, когда в метавселенной он легко может сделать то, на что не хватает сил в реальной жизни.
Тут не стану спорить - повальное использование и капитализация под триллион долларов. Прямо какой-то "феномен Цукерберга". Правда надо отметить, что вспомогательные продукты, то есть технологии - компилируемый PHP, React, FlowType, ReasonML - у компании всегда хороши.
Что же касается основного продукта - Фейсбука - то похоже, что подвинуть его сможет лишь сервис, который позволит пользователям потреблять [как правило бесполезную] информацию вообще без всяких теложвижений. А-ля Тик-Ток...
На мой взгляд, основной продукт компании - соцсеть Facebook - не имеет никакой [общественной] ценности. Далеко не в последнюю очередь из-за убогого UI/UX. Кстати, Instagram, после приобретения, тоже очень быстро деградирует.
Facebook мог бы иметь общественный вес как площадка по обмену новостями [в Группах], если бы не:
Цензура со стороны Фейсбука;
Очень низкий общий уровень самих новостей (в виду низкого "среднего суммарного" уровня пользователей, то есть тех, кто генерирует контент).
Метавселенная выглядит как попытка Цукерберга вложить куда-то силы и деньги. Но так как стоящих идей нет, то получается Фейсбук 3D.
Как результат - ценность метавселенной примерно такая же, как и Фейсбука. То есть никакая.
С помощью генераторов удобно писать [бесконечные] итераторы всяких последовательностей - к примеру, четных чисел, когда каждое последующее обращение к генератору будет возвращать следующий элемент из последовательности. Такое себе вычисление по-требованию, то есть "ленивое".
Но этим спектр применения не исчерпывается. К примеру, у Дэвида Бизли есть пример реализации на сопрограммах (на Питоне) ядра операционной системы с кооперативной многозадачностью.