Мой поинт состоит в том, что компилятор не обязательно полностью предсказуем. Значения, которые мы получим на выходе будут разумееется те же самые. А вот алгоритмически могут быть и разные (например разные оптимизации или кодогенерация). Совершенно запросто для разных компиляторов, вполне может быть для разных версий одного и того же компилятора, и редко но возможно для разных запусков того же компилятора. На каком-то уровне от этого конечно можно абстрагироваться. А где-то, если отключится оптимизация в tight loop, то это очень плохо.
Таким образом, абсолютной предсказуемости, я считаю, вы не правы. Да и документировать такие подробности мало кто будет.
В принципе не сложно представить себе компилятор, который например использует HashMap, при этом ключи - объекты в куче, с в общем-то случайными адресами (GC и что-то ещё повлияет). И будет итерировать по этим ключам. Код получится правильный (иначе это баг), но другой чем прошлый раз.
В Dart пишем поддержку макросов. Это радикально улучшит ситуацию с генерацией кода. Вот пример для JSON, вместе с интеграцией в IntelliJ. Сгенерированный код сейчас страшненький, пришлось оторвать пока оптимизацию import prefixes из статического анализатора, пока не догоним эту фичу в CFE (компиляторе).
А почему? По запросы и join-ы - основная функциональность базы данных, и оно должно быть там реализовано оптимально. То же слияние, если возможно, будет делаться так же в памяти. Проиграть при этом в 100 раз, это как-то не логично.
На мой взгляд, если нет прямого доступа к данным, то это не threads. Во всяком случае не в том смысле, который вкладывается в это понятие в Java или Rust. Между isolates можно посылать сообщения, копии данных, и всё.
А в Dart нет threads, вот их и не создают :-). Есть isolates, которые не имеют прямого доступа к данным друг друга. А асинхронное выполнение - это вообще другое, всё исполнение происходит в одном isolate, по очереди.
Правда? Я спросил Google "How many truck driving jobs are there in the US?", мне сказали "3.5 million". Спросил "how many software engineers in the us", мне сказали "4.4 million".
А так можно — вообще ни о чём не думать? Можно конечно не думать о ходьбе, но всегда будут хоть какие-то мысли, о работе, о жизни, или, если уж ничего нет — про внешние раздражители вот прямо сейчас — дорожка, машины, ветер.
Не факт. https://en.wikipedia.org/wiki/Cryptophasia говорит, что большая часть — слова из взрослого языка. Немного неологизмов. И мне кажется, что без основы в виде слов взрослых, неологизмов тоже не будет. Не из чего.
Нет, не будут. Если тест не зависит от бинарника, а только от библиотеки, то для запуска тестов будет собираться только библиотека, и сами тесты, но не бинарник. По крайней мере Bazel / Blaze так делают.
Для сравнения. Когда я иду к моему терапевту, приём длится 45 минут. Однако мне кажется, что 3 пациента в день — маловато. Что с ними делать долго? Выслушали, осмотрели, назначили анализы, по результатам выписали лекарства. 40 пациентов может и много, но три — точно мало.
Я когда приехал в Атланту (2011 год) пошёл к врачу почти сразу. Во-первых здесь так принято — иметь своего терапевта и ходить к нему раз в год, страховка оплачивает. Во-вторых нужно было ещё и к эндокринологу, ещё в России ходил. На сайт страховой есть списки врачей in network, отзывы гуглятся.
Как что работает рассказал один опытный русский товарищ, которого заранее попросил мой манагер американец. Наверное пришлось бы (о ужас!) самому гуглить, если бы не он. Но так лучше, да, по крайней мере я знал, что это говорит человек, который этим пользовался.
С медициной тут лучше, чем в России. В гробу я видал занимать очередь в регистратуру в 4 часа утра, зимой, на улице, пока не откроют двери в 7.
Как за 2 часа? Мне Delta постоянно шлёт письма за 24 часа до вылета, что всё, можешь check-in делать.
Мой поинт состоит в том, что компилятор не обязательно полностью предсказуем. Значения, которые мы получим на выходе будут разумееется те же самые. А вот алгоритмически могут быть и разные (например разные оптимизации или кодогенерация). Совершенно запросто для разных компиляторов, вполне может быть для разных версий одного и того же компилятора, и редко но возможно для разных запусков того же компилятора. На каком-то уровне от этого конечно можно абстрагироваться. А где-то, если отключится оптимизация в tight loop, то это очень плохо.
Таким образом, абсолютной предсказуемости, я считаю, вы не правы. Да и документировать такие подробности мало кто будет.
В принципе не сложно представить себе компилятор, который например использует HashMap, при этом ключи - объекты в куче, с в общем-то случайными адресами (GC и что-то ещё повлияет). И будет итерировать по этим ключам. Код получится правильный (иначе это баг), но другой чем прошлый раз.
Что значит "отправлен"? Все сотрудники и так обязаны его проходить каждый год. И другие, столь же весёлые тренинги.
Кефир разный бывает, вот цены из Whole Foods в 2022.
Я беру где-то по $3.50 за литр, он же в Walmart на той неделе был по $3.24
Скрытый текст
В Dart пишем поддержку макросов. Это радикально улучшит ситуацию с генерацией кода. Вот пример для JSON, вместе с интеграцией в IntelliJ. Сгенерированный код сейчас страшненький, пришлось оторвать пока оптимизацию import prefixes из статического анализатора, пока не догоним эту фичу в CFE (компиляторе).
А как вы обычно узнаёте, что должен делать старый код, если на него нет тестов?
А почему? По запросы и join-ы - основная функциональность базы данных, и оно должно быть там реализовано оптимально. То же слияние, если возможно, будет делаться так же в памяти. Проиграть при этом в 100 раз, это как-то не логично.
На мой взгляд, если нет прямого доступа к данным, то это не threads. Во всяком случае не в том смысле, который вкладывается в это понятие в Java или Rust. Между isolates можно посылать сообщения, копии данных, и всё.
А в Dart нет threads, вот их и не создают :-). Есть isolates, которые не имеют прямого доступа к данным друг друга. А асинхронное выполнение - это вообще другое, всё исполнение происходит в одном isolate, по очереди.
В Dart 3.0 добавили patterns, вместе с switch expression, который как и switch statement проверяет exhaustiveness.
Правда? Я спросил Google "How many truck driving jobs are there in the US?", мне сказали "3.5 million". Спросил "how many software engineers in the us", мне сказали "4.4 million".
А так можно — вообще ни о чём не думать? Можно конечно не думать о ходьбе, но всегда будут хоть какие-то мысли, о работе, о жизни, или, если уж ничего нет — про внешние раздражители вот прямо сейчас — дорожка, машины, ветер.
Не факт. https://en.wikipedia.org/wiki/Cryptophasia говорит, что большая часть — слова из взрослого языка. Немного неологизмов. И мне кажется, что без основы в виде слов взрослых, неологизмов тоже не будет. Не из чего.
Нет, не будут. Если тест не зависит от бинарника, а только от библиотеки, то для запуска тестов будет собираться только библиотека, и сами тесты, но не бинарник. По крайней мере Bazel / Blaze так делают.
Не уверен как, но far2l на маке может заходить и распаковывать архивы 7z. Видимо multiarc их поддерживает.
shorturl.at/dWY34
Вокруг озера дорога, остановился, прошёл через полосу деревьев и кустов — закидывай удочку. Официально разрешено.
Как что работает рассказал один опытный русский товарищ, которого заранее попросил мой манагер американец. Наверное пришлось бы (о ужас!) самому гуглить, если бы не он. Но так лучше, да, по крайней мере я знал, что это говорит человек, который этим пользовался.
С медициной тут лучше, чем в России. В гробу я видал занимать очередь в регистратуру в 4 часа утра, зимой, на улице, пока не откроют двери в 7.