Кристаллы времени: кто и где совершил открытие

кто и где совершил открытие

По мнению ученных «кристаллы времени» имеют большой потенциал, ведь их можно использовать, например, для улучшения работы спутниковой навигации. Впервые «кристаллы времени» были экспериментально продемонстрированы в 2017 году, а уже в 2021 году исследователи из «Google» заявили о том, что разместят внутри квантового компьютера «Google Sycamore» темпоральный кристалл. Благодаря которому, он сможет за считанные минуты решать задачи. Так что это всё-таки за «новшество»?

Василий Макаров

В 2012 году лауреат Нобелевской премии по физике Фрэнк Вильчек предположил существование нового типа кристалла. Хотя большинство кристаллов имеют структуру, повторяющуюся в двух или трех измерениях, Вильчек представил концепцию кристалла, структура которого воспроизводится четыре раза: три из них соответствуют измерениям пространства, а четвертое — измерению времени. Он назвал эту гипотетическую структуру «кристаллом времени», и лишь в 2018 году ученым удалось выяснить, как можно синтезировать их в лабораторных условиях.

Кристаллы времени – что, зачем и почему?

Кристаллы времени абсолютно новый вид состояния материи, при котором периодически меняется его структура без выделения или поглощения энергии.  Что удивительно в них, так это то, что, когда они перемещаются взад и вперед между двумя различными конфигурациями, они не теряют и не используют никакой энергии. Это не машина времени и не артефакт, речь идёт о физической теории, которая пока только разрабатывается. Формально при этом нарушается второй закон термодинамики и симметрия обращения времени.

Любой стандартный кристалл, который мы знаем, например такой как алмаз, изумруд или даже обычный кубик льда определяет то, что атомы кристалла каким-то образом расположены в строгой повторяющейся последовательности, на одинаковом расстоянии друг от друга. Теория относительности утверждает, что существует три измерения пространства и четвертое измерение, время. Поэтому некоторые физики задались вопросом, могут ли атомы кристалла быть расположены во времени по повторяющимся закономерностям. Сама по себе идея является довольно новой. Её впервые выдвинул нобелевский лауреат, физик — Франк Вильчек в 2012 году.

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

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

Исследование темпорального кристалла

В 2016 году физикам из Университета Мэриленда удалось собрать «сырой» кристалл времени. Исследователи выяснили, как создать эти кристаллы в лаборатории с помощью довольно сложной методики, включающей в себя точечное воздействие лазеров на набор атомов иттербия.

Новая работа физиков из Йельского университета доказала, что синтезировать кристаллы времени легко. Теоретически, в некоторых структурах «юного химика» могут скрываться кристаллы Вильчека. Шон Баррет, автор исследования, отмечает, что физикам это только на руку, поскольку чем дешевле и проще процесс — тем легче его изучать. Теперь им предстоит во всех деталях разобраться в механизме синтеза» кристаллов времени» и определить, как именно их можно использовать на благо технологического прогресса.

Кристалл времени «Google» 2021

Всё же в 2021 году учёным удалось доказать возможность существования физических структур, ранее предсказанных только теоретически, совершив прорыв в фундаментальной физике. Они смогли получить так называемый «темпоральный кристалл» на базе 20-кубитового квантового компьютера «Sycamore Google», что может послужить более надёжному использованию квантовых компьютеров. Но это предварительное исследование, и ему еще предстоит пройти полную экспертную оценку.

Что же такого хорошего в этом исследовании? Почти все технологии далекого будущего, которые смогут способных существовать без сжигания топлива или использования энергии, потребуют систем квантовых вычислений. Сами по себе они довольно хрупкие, а помочь в этом может как раз «временной кристалл». Потенциально Google доказал, что люди могут производить кристаллы времени. В основном они считают, что доказали эту концепцию, так что теперь пришло время посмотреть, что с ней можно сделать.

Что такое кристаллы времени и почему ученые ими одержимы?

О чем вы думаете когда слышите о кристаллах времени? Мне сразу представляется что-то наподобие тессеракта из мультивселенной Марвел или очередное безумное изобретение гениального Рика из «Рик и Морти». Только представьте – таинственные кристаллы времени, способные перенести их обладателя как в прошлое, так и в будущее. Но, я, конечно, пересмотрела научной фантастики и в реальности кристаллы времени или кристаллы Вильчека не способны перемещать кого-либо или что-либо во времени. И все же, физики ими буквально одержимы. Причина этой одержимости на самом деле проста: по сути, кристалл времени – это особая фаза материи, которая постоянно меняется, но, похоже, не использует энергии. Только представьте, объект, части которого движутся в регулярном, повторяющемся цикле, поддерживает это постоянное изменение без сжигания какой-либо энергии. Вообще. Кристаллы времени также являются первыми объектами, которые спонтанно нарушают «симметрию перемещения во времени» – обычное правило, согласно которому стабильный объект будет оставаться неизменным на протяжении всего времени. Кристаллы времени одновременно стабильны и постоянно меняются через определенные промежутки времени.

Кристалл времени – новая фаза материи, которую физики пытались реализовать в течение многих лет

Содержание

  • 1 Что такое «кристаллы времени»?
  • 2 Немного квантовой механики
  • 3 Кристаллы времени и квантовые компьютеры
  • 4 Как ученые создали кристаллы времени

Что такое «кристаллы времени»?

В 2012 году лауреат Нобелевской премии по физике Фрэнк Вильчек предположил существование нового типа кристалла. Так как большинство кристаллов имеют повторяющуюся в двух или трех измерениях структуру, Вильчек представил иную концепцию кристалла, структура которого воспроизводится четырежды: три из них соответствуют измерениям пространства, а четвертое — измерению времени.

Если вы думаете о кристаллах в пространстве, то вполне естественно также подумать о классификации поведения кристаллов во времени, – говорил он тогда.

Так как новой структуре требовалось название, Вильчек обозначил ее «кристаллом времени». И эта история, вероятно, так бы и осталась гипотетической, если бы в 2018 году ученые не поняли, как эти необычные структуры можно синтезировать в лабораторных условиях. Сегодня физики считают, что кристаллы времени могут формироваться в естественной среде, а сам процесс намного проще, чем предполагали большинство исследователей.

Изображение и перевод – источник

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

Это интересно: Предполагает ли квантовая механика множественность миров или что такое интерпретация Эверетта?

Таким образом, кристалл времени – это новая категория фаз материи, расширяющая определение того, что такое «фаза». Все другие известные фазы, такие как вода или лед, находятся в тепловом равновесии: составляющие их атомы перешли в состояние с наименьшей энергией, допускаемой температурой окружающей среды, и их свойства не меняются со временем.

А вот кристалл времени — это первая фаза «выхода из равновесия»: он обладает порядком и совершенной стабильностью, несмотря на то, что находится в возбужденном и развивающемся состоянии.

Кристаллы Вильчека предлагают совершенно новый взгляд на эти объекты

Интересно и то, что кристаллы времени также являются первыми объектами, которые спонтанно нарушают «симметрию перемещения во времени» – обычное правило, согласно которому стабильный объект будет оставаться неизменным на протяжении всего времени. Временной кристалл одновременно стабилен но при этом постоянно меняется не поглощая никакой энергии.

Чтобы всегда быть в курсе последних новостей из мира науки и высоких технологий, подписывайтесь на наш новостной канал в Telegram. Так вы точно не пропустите ничего интересного!

Немного квантовой механики

Рассмотрим алмаз – кристаллическую фазу скопления атомов углерода. Скопление управляется одними и теми же уравнениями повсюду в пространстве, но оно принимает форму, которая имеет периодические пространственные изменения, с атомами, расположенными в точках решетки. Физики говорят, что таким образом происходит «спонтанное нарушение симметрии переноса пространства» – только состояния равновесия с минимальной энергией спонтанно нарушают пространственную симметрию таким образом.

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

При этом изначально предложенный Вильчеком временной кристалл сильно отличался, скажем, от настенных часов — объекта, который также подвергается периодическому движению. Стрелки часов сжигают энергию и останавливаются, когда садится батарея. Кристалл времени Вильчека работает бесконечно, поскольку система находится в своем сверхстабильном равновесном состоянии.

Понять что такое кристаллы времени сложно. Но физики любят решать сложные задачи

Итак, давайте представим ряд частиц, каждая из которых имеет магнитную ориентацию (спин), которая указывает вверх, вниз или с некоторой вероятностью в обоих направлениях. Теперь представим, что первые четыре вращения изначально направлены вверх, вниз, вниз и вверх. Спины будут квантово механически колебаться и быстро выравниваться, если смогут.

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

Больше по теме: Может ли квантовая механика объяснить существование пространства-времени?

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

Кристаллы времени и квантовые компьютеры

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

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

Кристаллы времени и квантовые компьютеры могут изменить мир

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

Вам будет интересно: В Китае создан квантовый компьютер, который решил самую сложную задачу за 200 секунд

Электронные компьютеры, подобные тому, на котором вы, возможно, читаете эту статью, используют логические элементы, которые включаются и выключаются, поэтому все в вашем компьютере зависит только от двух состояний: включено и выключено, светло и темно, 1 и 0, словом, вся двоичная система. Введение кубитов (квантовых битов, которые часто представляют собой один атом элемента с тщательно контролируемым электроном) еще сильнее усложняет ситуацию, как за счет добавления большего количества возможных состояний (а не просто вкл-выкл), так и за счет добавления всей основы квантовой неопределенности.

Теперь представьте, что число от 1 до 100 на самом деле является результатом чего-то вроде плана создания вечного двигателя. На самом деле существуют тысячи, миллионы или даже больше возможностей. Вместо того чтобы пытаться «заставить» двоичный компьютер выполнять работу неудобным способом, квантовый компьютер мог бы помочь ученым более естественно представить, что происходит.

Команда Google и еще 100 ученых из разных стран трудятся над созданием квантового компьютера

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

Читайте также: Что квантовая физика может рассказать о природе реальности?

Как ученые создали кристаллы времени

В ходе нового исследования группа из более чем 100 ученых со всего мира работала вместе с командой Google Quantum AI (совместной инициативой Google, НАСА и некоммерческой ассоциации космических исследований университетов, цель которой – ускорить исследования в области квантовых вычислений и компьютерных наук). В статье ученые описывают создание специальной микроскопической установки, в которой временной кристалл окружен сверхпроводящими кубитами.

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

Возможно в самом ближайшем будущем будут созданы невероятно быстрые и мощные квантовые компьютеры

Как пишет Quanta Mafgazine, если выводы исследователей подтвердятся, то это будет первая полностью успешная демонстрация кристалла времени. В целом же, неудивительно, что Google возглавляет движение в направлении мощных квантовых вычислений, ну а мы с вами будем ждать экспертной оценки и дальнейших исследований. Кто знает, может быть кристаллы времени и квантовые компьютеры и правда многое изменят.

Что такое кристалл времени? — IEEE Спектр

Борьба, с которой сталкивается большинство компаний при поддержке кода, вызывает вторую проблему: хрупкость. Каждая новая функция, добавляемая в код, увеличивает его сложность, что увеличивает вероятность того, что что-то сломается. Обычно программное обеспечение становится настолько сложным, что разработчики избегают вносить в него изменения больше, чем это абсолютно необходимо, опасаясь что-то сломать. Во многих компаниях целые команды разработчиков работают не для того, чтобы разрабатывать что-то новое, а просто для того, чтобы поддерживать существующие системы в рабочем состоянии. Можно сказать, что они используют версию программного обеспечения
Гонка Красной Королевы, которая бежит так быстро, как только может, лишь бы остаться на одном месте.

Это печальная ситуация. Тем не менее, текущая траектория индустрии программного обеспечения направлена ​​на увеличение сложности, увеличение времени разработки продукта и повышение хрупкости производственных систем. Для решения таких проблем компании обычно просто привлекают к решению проблемы больше людей: больше разработчиков, больше тестировщиков и больше техников, которые вмешиваются, когда системы выходят из строя.

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

При функциональном программировании меньше значит больше

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

Появились различные языки для поддержки структурированного программирования, а некоторые существующие языки были изменены для лучшей его поддержки. Одной из самых примечательных особенностей этих языков структурного программирования было вовсе не свойство: это было отсутствие чего-то, что существовало долгое время —
оператор GOTO.

Оператор GOTO используется для перенаправления выполнения программы. Вместо выполнения следующего оператора по порядку поток программы перенаправляется на какой-либо другой оператор, указанный в строке GOTO, обычно при выполнении некоторого условия.

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

..»> Шира Инбар

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

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

Хотя индустрия программного обеспечения исключила GOTO из современных языков высокого уровня, программное обеспечение, тем не менее, продолжает становиться все более сложным и хрупким. В поисках того, как еще можно модифицировать такие языки программирования, чтобы избежать некоторых распространенных ошибок, разработчики программного обеспечения могут, как ни странно, черпать вдохновение у своих коллег на аппаратной стороне.

Обнуление проблем с нулевыми ссылками

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

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

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

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

Почти каждый популярный сегодня язык имеет этот недостаток. Первый ученый-компьютерщик
Тони Хоар ввел нулевые ссылки в язык ALGOL еще в 19 году.65, а позже он был включен во многие другие языки. Хор объяснил, что сделал это «просто потому, что это было так легко реализовать», но сегодня он считает это «ошибкой на миллиард долларов». Это потому, что это вызвало бесчисленное количество ошибок, когда ссылка, которую программист считает действительной, на самом деле является нулевой ссылкой.

Разработчики программного обеспечения должны быть предельно дисциплинированы, чтобы избежать таких ловушек, и иногда они не принимают адекватных мер предосторожности. Архитекторы структурного программирования знали, что это справедливо для операторов GOTO, и не оставили разработчикам лазейки. Чтобы гарантировать улучшения ясности, которые обещал код без GOTO, они знали, что им придется полностью исключить его из своих языков структурированного программирования.

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

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

Из дюжины языков функционального программирования Haskell, безусловно, является самым популярным, судя по количеству репозиториев GitHub, использующих эти языки.

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

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

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

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

В функциональном программировании также есть решение «ошибки на миллиард долларов» Хоара — нулевых ссылок. Он решает эту проблему, запрещая нули. Вместо этого существует конструкция, обычно называемая
Может быть (или Опция на некоторых языках). A Может быть может быть Ничего или Просто некоторое значение. Работа с Возможно s заставляет разработчиков всегда учитывать оба случая. У них нет выбора в этом вопросе. Они должны справиться с Ничего случай каждый раз, когда они сталкиваются с Возможно . Это устраняет множество ошибок, которые могут порождать нулевые ссылки.

Функциональное программирование также требует, чтобы данные были неизменяемыми, а это означает, что если вы присвоите переменной какое-то значение, это значение останется навсегда. Переменные больше похожи на переменные в математике. Например, чтобы вычислить формулу,
y = x 2 + 2 x – 11, вы выбираете значение для x и ни разу во время вычисления y означает, что x принимают другое значение. Таким образом, при вычислении x 2 используется то же значение для x , что и при вычислении 2 x . В большинстве языков программирования такого ограничения нет. Вы можете вычислить x 2 с одним значением, затем изменить значение x перед вычислением 2 x . Запрещая разработчикам изменять (мутировать) значения, они могут использовать те же рассуждения, что и на уроках алгебры в средней школе.

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

Почему это? Это потому, что люди работали над математикой в ​​течение тысяч лет. Это довольно солидно. Большинство парадигм программирования, таких как объектно-ориентированное программирование, имеют за плечами не более полдюжины десятков лет работы. По сравнению с ними они грубы и незрелы.

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

Позвольте мне привести пример того, насколько программирование небрежно по сравнению с математикой. Обычно мы учим новых программистов забывать то, что они узнали на уроках математики, когда они впервые сталкиваются с оператором
х = х + 1 . В математике это уравнение не имеет решений. Но в большинстве современных языков программирования х = х + 1 не является уравнением. Это оператор , который дает компьютеру команду взять значение x , добавить к нему единицу и поместить обратно в переменную с именем x .

В функциональном программировании нет операторов, только
выражений . Математическое мышление, которому мы научились в средней школе, теперь можно использовать при написании кода на функциональном языке.

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

Функциональное программирование имеет крутую кривую обучения

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

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

Чтобы воспользоваться всеми преимуществами чисто функциональных языков программирования, вы не можете идти на компромисс. Вам нужно использовать языки, которые были разработаны с учетом этих принципов с самого начала. Только приняв их, вы получите множество преимуществ, которые я описал здесь.

Но функциональное программирование — это не ложе из роз. Это дорого обходится. Научиться программировать в соответствии с этой функциональной парадигмой — это почти то же самое, что заново научиться программировать с самого начала. Во многих случаях разработчики должны ознакомиться с математикой, которую они не изучали в школе. Требуемая математика не сложна — она просто нова и для тех, кто боится математики, страшна.

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

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

Я решил выучить Haskell — и мне нужно было сделать это в рамках бизнес-плана. Это был самый трудный опыт обучения за всю мою 40-летнюю карьеру, в значительной степени потому, что не было окончательного источника помощи разработчикам в переходе к функциональному программированию. Действительно, за предыдущие три десятилетия никто не написал ничего всеобъемлющего о функциональном программировании.

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

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

Когда я решил, что наша компания должна перейти на использование функциональных языков, я не хотел подвергать своих разработчиков такому же кошмару. Итак, я начал создавать для них учебную программу, которая стала основой для книги, призванной помочь разработчикам стать функциональными программистами. В
В своей книге я даю руководство по овладению функциональным языком под названием PureScript, который украл все замечательные аспекты Haskell и улучшил многие из его недостатков. Кроме того, он может работать как в браузере, так и на внутреннем сервере, что делает его отличным решением для многих современных требований к программному обеспечению.

Хотя такие учебные ресурсы могут только помочь, для того, чтобы этот переход произошел в широких масштабах, компании, работающие с программным обеспечением, должны больше инвестировать в свой самый большой актив: в своих разработчиков. В моей компании,
Panoramic Software, где я являюсь техническим директором, мы сделали эти инвестиции, и вся новая работа выполняется либо на PureScript, либо на Haskell.

Мы начали переходить на функциональные языки три года назад, начав с еще одного чисто функционального языка под названием
Elm, потому что это более простой язык. (Мы и не подозревали, что в конце концов перерастем его.) Нам потребовалось около года, чтобы начать пожинать плоды. Но с тех пор, как мы преодолели горб, это было замечательно. У нас не было ошибок рабочего времени выполнения, которые были так распространены в том, что мы раньше использовали, JavaScript на передней части и Java на задней. Это улучшение позволило команде потратить гораздо больше времени на добавление новых функций в систему. Теперь мы почти не тратим время на отладку производственных проблем.

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

Будущее функционального программирования

Моя компания небольшая. Он поставляет программное обеспечение правительственным учреждениям, чтобы они могли помочь ветеранам получать льготы от
Департамент по делам ветеранов США. Это чрезвычайно полезная работа, но это не прибыльная сфера. При минимальной марже мы должны использовать все доступные нам инструменты, чтобы делать больше с меньшим количеством разработчиков. И для этого функциональное программирование — как раз то, что нужно.

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

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

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

Physicists Link Two Time Crystals in Seemingly Impossible Experiment

  • Share on Facebook

  • Share on Twitter

  • Share on Reddit

  • Share on LinkedIn

  • Share via Email

  • Распечатать

Кредит: Sakkmesterke/Science Photo Library/Getty Images

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

«Исследовать совершенно новую фазу материи — это редкая привилегия», — сообщил Live Science в электронном письме Самули Аутти, ведущий ученый проекта из Ланкастерского университета в Соединенном Королевстве.

От кристалла к кристаллу времени

Мы постоянно сталкиваемся с обычными кристаллами в повседневной жизни, от льда в коктейле до бриллиантов в украшениях. Хотя кристаллы красивы, для физика они представляют собой нарушение нормальной симметрии природы.

Законы физики симметричны в пространстве. Это означает, что фундаментальные уравнения гравитации, электромагнетизма или квантовой механики одинаково применимы ко всему объему Вселенной. Они также работают в любом направлении. Итак, лабораторный эксперимент, повернутый на 90 градусов должны давать те же результаты (конечно, при прочих равных условиях).

Но в кристалле эта великолепная симметрия нарушается. Молекулы кристалла располагаются в предпочтительном направлении, создавая повторяющуюся пространственную структуру. На жаргоне физиков кристалл является прекрасным примером «самопроизвольного нарушения симметрии» — фундаментальные законы физики остаются симметричными, а расположение молекул — нет.

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

Квантовые секреты

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

— Значит, это вечные двигатели, а значит, невозможные, — заметил Аутти.

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

«В квантовой физике вечный двигатель хорош, пока мы держим глаза закрытыми, и он должен начать замедляться, только если мы наблюдаем за движением», — сказал Аутти, имея в виду тот факт, что экзотические квантово-механические состояния требуют поскольку кристаллы времени не могут продолжать работать после того, как они взаимодействуют с окружающей средой (например, если мы наблюдаем за ними).

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

Здесь на помощь пришла команда Аутти, пытавшаяся найти способ взаимодействия с квантовым кристаллом времени с помощью классических наблюдений. В мельчайших масштабах правит квантовая физика. Но жуки, кошки, планеты и черные дыры лучше описываются детерминистскими правилами классической механики.

«Континуум от квантовой физики к классической физике остается плохо изученным. Как одно становится другим — одна из выдающихся загадок современной физики. Кристаллы времени охватывают часть интерфейса между двумя мирами. Возможно, мы сможем узнать, как удалить интерфейс, детально изучив кристаллы времени, — сказал Аутти.

Волшебные магноны

В новом исследовании Аутти и его команда использовали «магноны» для создания своего кристалла времени. Магноны — это «квазичастицы», возникающие в коллективном состоянии группы атомов. В данном случае группа физиков взяла гелий-3 — атом гелия с двумя протонами, но только с одним нейтроном — и охладила его с точностью до десятитысячной градуса выше абсолютного нуля. При этой температуре гелий-3 превратился в конденсат Бозе-Эйнштейна, где все атомы имеют общее квантовое состояние и работают согласованно друг с другом.

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

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

Команда Аутти надеется, что их эксперименты смогут прояснить взаимосвязь между квантовой и классической физикой. Их цель — построить кристаллы времени, которые взаимодействуют с окружающей средой без распада квантовых состояний, позволяя кристаллу времени продолжать работать, пока он используется для чего-то другого. Это не означало бы свободную энергию — движение, связанное с кристаллом времени, не имеет кинетической энергии в обычном смысле, но ее можно использовать для квантовых вычислений.

Важно иметь два состояния, потому что это основа для вычислений. В классических компьютерных системах основной единицей информации является бит, который может принимать состояние 0 или 1, в то время как в квантовых вычислениях каждый «кубит» может находиться более чем в одном месте одновременно, что позволяет выполнять гораздо больше вычислений. сила.

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