Линус говорит очевидные вещи(Rust), но читать все равно интересно
https://lkml.org/lkml/2022/9/19/1105#1105.php
https://lkml.org/lkml/2022/9/19/1105#1105.php
👍1
WhyML - язык с пруф чекингом и мутабельными! переменными. Удачи найти такое сочетание
https://kornevgen.github.io/mfsp/slides/smt_why3ml/smt_why3ml.pdf
https://kornevgen.github.io/mfsp/slides/smt_why3ml/smt_why3ml.pdf
Подробнейшее рассмотрение семейства языков Pascal/Modula, изложено не сухими фактами, а в весьма свободной форме. Фанатам нима обязательно к прочтению.
https://wiki.alopex.li/WirthEvolution
Thanks Obama
https://wiki.alopex.li/WirthEvolution
Thanks Obama
Ой че нашеел, это мы сохраняем
https://astexplorer.net/
https://astexplorer.net/
astexplorer.net
AST explorer
An online AST explorer.
Forwarded from Alexander Chichigin
Операционная семантика (большого шага) — это по сути прямой интерпретатор языка (definitional interpreter). При наличии такого интерпретатора есть с чем сравнивать компилятор. Особенно оптимизации. Потому что оптимизации не должны менять семантику программы — но для этого у программы должна быть семантика.
Forwarded from Alexander Chichigin
Денотационная семантика полезна для доказательства корректности. Но при наличии операционной (интерпретатора) — можно тестировать.
gavr_sas
Записали вчера подкаст по ниму, выйдет уже сегодня, оч торопили в конце, думаю нужно было делить на 3 части конечно. Первая часть тут
Список ссылей который будет под выпуском
— — —
Введение в ARC/ORC: https://habr.com/ru/post/523674/
Список компаний использующих ним:
https://github.com/nim-lang/Nim/wiki/Organizations-using-Nim
Отзыв разраба из Beadog об использовании nim в проде Neverwinter Nights: Enhanced Edition: https://news.ycombinator.com/item?id=24802836
Успешный стартап игры про песеля на геймбои(£203,929 of £18,000 goal, в gameboy 256КБ): https://www.kickstarter.com/projects/penguinrik/goodboy-galaxy-exploration-platform-game-gba-pc-and-switch
Анонс нанимания двух разработчиков чтобы исправить LS:
Библиотеки
httpbeast - Реализация http на nim занявшее 6 место в топ бенчмарков(до него 1 Cи и 5 Rust’ов)
Karax - фреймворк для разработки SPA(без html js, все на nim)
Jester - sinatra-like веб-фреймворк
Prologue - мой любимый веб-фреймворк
Arraymancer - tensor library использующий GPU(CUDA, OpenMP, OpenCL)
NimGL - качественный обертки над популярными графическими библиотеками(GLFW, Vulkan, OpenGL, ImGUI)
zero-functional- zero-cost chaining for functional abstractions, map zip split, такое будет очень сложно реализовать на других яп, все благодаря макросам.
weave - state-of-the-art multithreading runtime(автор был нанят в Status и теперь работает над nim-taskpools)
nim-taskpools - еще один мультитред рантайм, но больше направленный на надежность(так как используется в Status), формально верифицированные алгоритмы!
nico - фреймворк для создания пиксельных игр(аналог PICO-8)(пример игры https://impbox.itch.io/vektor2089)
Тулинг(который я не успел упомянуть):
Hot code reloading
Documentation generator
niminst - генератор установщиков для ним программ под все платформы(особенно актуально для Windows)
nimpretty: бьютифаер кода, ставится вместе с компилятором.
Testament - раннер тестов
Choosenim - аналог nvm, позволяет ставить разные версии компилятора одновременно и между ними переключаться(в том числе devel), например на старых дистрах можно получить новые версии, не собирая из исходников
nimsuggest - Nim IDE Integration tool
koch - The koch program is Nim's maintenance noscript. Это замена make и shell скриптов с тем преимуществом, что она намного более переносима
Крутые толки:
Next generation micro-controller programming: https://archive.fosdem.org/2022/schedule/event/nim_ngmicrocontrollers/
Кастомная прошивка для клавиатуры на nim https://youtu.be/dcHEhO4J29U
3d майнкрафт hot code reload с вокселями для обучения программированию с 6 лет: https://youtu.be/3l6tsKM1cY8, https://archive.fosdem.org/2022/schedule/event/nim_potatozombies/
Nim внутри выключателя https://youtu.be/eCCrkZI0rVU
Nim - первый нативный язык с HCR: https://youtu.be/7WgCt0Wooeo
Pixie 2021 аналог skia написанный на nim - https://youtu.be/8acDfUIwLnk
Опыт использования Nim компанией Status https://youtu.be/5wljNaPkU7M
Designing an ultra low-overhead multithreading runtime for Nim Exposing fine-grained parallelism for 32+ cores hardware via message passing by Mamy Ratsimbazafy https://youtu.be/b26d1Qq-ass (потом его наняли Status и сейчас он пишет для них )
Книги:
Nim in Action
Примеры из книги Nim in Action
Mastering Nim
NimProgrammingBook - Dr. Stefan Salewski книга которая рассматривает ним как первый яп.
— — —
Введение в ARC/ORC: https://habr.com/ru/post/523674/
Список компаний использующих ним:
https://github.com/nim-lang/Nim/wiki/Organizations-using-Nim
Отзыв разраба из Beadog об использовании nim в проде Neverwinter Nights: Enhanced Edition: https://news.ycombinator.com/item?id=24802836
Успешный стартап игры про песеля на геймбои(£203,929 of £18,000 goal, в gameboy 256КБ): https://www.kickstarter.com/projects/penguinrik/goodboy-galaxy-exploration-platform-game-gba-pc-and-switch
Анонс нанимания двух разработчиков чтобы исправить LS:
Библиотеки
httpbeast - Реализация http на nim занявшее 6 место в топ бенчмарков(до него 1 Cи и 5 Rust’ов)
Karax - фреймворк для разработки SPA(без html js, все на nim)
Jester - sinatra-like веб-фреймворк
Prologue - мой любимый веб-фреймворк
Arraymancer - tensor library использующий GPU(CUDA, OpenMP, OpenCL)
NimGL - качественный обертки над популярными графическими библиотеками(GLFW, Vulkan, OpenGL, ImGUI)
zero-functional- zero-cost chaining for functional abstractions, map zip split, такое будет очень сложно реализовать на других яп, все благодаря макросам.
weave - state-of-the-art multithreading runtime(автор был нанят в Status и теперь работает над nim-taskpools)
nim-taskpools - еще один мультитред рантайм, но больше направленный на надежность(так как используется в Status), формально верифицированные алгоритмы!
nico - фреймворк для создания пиксельных игр(аналог PICO-8)(пример игры https://impbox.itch.io/vektor2089)
Тулинг(который я не успел упомянуть):
Hot code reloading
Documentation generator
niminst - генератор установщиков для ним программ под все платформы(особенно актуально для Windows)
nimpretty: бьютифаер кода, ставится вместе с компилятором.
Testament - раннер тестов
Choosenim - аналог nvm, позволяет ставить разные версии компилятора одновременно и между ними переключаться(в том числе devel), например на старых дистрах можно получить новые версии, не собирая из исходников
nimsuggest - Nim IDE Integration tool
koch - The koch program is Nim's maintenance noscript. Это замена make и shell скриптов с тем преимуществом, что она намного более переносима
Крутые толки:
Next generation micro-controller programming: https://archive.fosdem.org/2022/schedule/event/nim_ngmicrocontrollers/
Кастомная прошивка для клавиатуры на nim https://youtu.be/dcHEhO4J29U
3d майнкрафт hot code reload с вокселями для обучения программированию с 6 лет: https://youtu.be/3l6tsKM1cY8, https://archive.fosdem.org/2022/schedule/event/nim_potatozombies/
Nim внутри выключателя https://youtu.be/eCCrkZI0rVU
Nim - первый нативный язык с HCR: https://youtu.be/7WgCt0Wooeo
Pixie 2021 аналог skia написанный на nim - https://youtu.be/8acDfUIwLnk
Опыт использования Nim компанией Status https://youtu.be/5wljNaPkU7M
Designing an ultra low-overhead multithreading runtime for Nim Exposing fine-grained parallelism for 32+ cores hardware via message passing by Mamy Ratsimbazafy https://youtu.be/b26d1Qq-ass (потом его наняли Status и сейчас он пишет для них )
Книги:
Nim in Action
Примеры из книги Nim in Action
Mastering Nim
NimProgrammingBook - Dr. Stefan Salewski книга которая рассматривает ним как первый яп.
❤1👍1🔥1
Back to the Future with Smalltalk
https://medium.com/hackernoon/back-to-the-future-with-smalltalk-57c68fab583a
https://medium.com/hackernoon/back-to-the-future-with-smalltalk-57c68fab583a
Forwarded from Podlodka Podcast – анонсы и новости подкаста про IT (Anna Banana)
Podlodka #288 – Nim, часть 2
Efficient as C, Expressive as Python, Elegant as Lisp. В этом выпуске вместе с Гавром продолжаем разбираемся с лучшим языком программирования – Nim. В этой части мы разбираем ключевые фичи языка, его недостатки, обозреваем экосистему и обсуждаем самые громкие кейсы применения в продакшене.
Разверните отказоустойчивую инфраструктуру на 9 дата-центров Selectel в России и за рубежом
Реклама, ООО «Селектел»
🎧Слушать выпуск
Efficient as C, Expressive as Python, Elegant as Lisp. В этом выпуске вместе с Гавром продолжаем разбираемся с лучшим языком программирования – Nim. В этой части мы разбираем ключевые фичи языка, его недостатки, обозреваем экосистему и обсуждаем самые громкие кейсы применения в продакшене.
Разверните отказоустойчивую инфраструктуру на 9 дата-центров Selectel в России и за рубежом
Реклама, ООО «Селектел»
🎧Слушать выпуск
❤1
Мощь тайпскрипта
Вот имеем ситуацию, либа для показа табличек, нужно ей передать массив данных и массив колонок.
Колонкам разумеется нужно чтото знать про данные.
Данные могут иметь вложенность, то бишь name: {first, second: string}
Вопрос, как указать для колонок вложенность данных в объектах, не десериализовать же дтошки каждый раз в плоскую структуру.
Ну допустим через точки
Но это же не типо-безопасно!
TS и литеральные типы, вывело все варианты вместе с вложенностями
Вот имеем ситуацию, либа для показа табличек, нужно ей передать массив данных и массив колонок.
Колонкам разумеется нужно чтото знать про данные.
Данные могут иметь вложенность, то бишь name: {first, second: string}
Вопрос, как указать для колонок вложенность данных в объектах, не десериализовать же дтошки каждый раз в плоскую структуру.
Ну допустим через точки
"name.firstname" Но это же не типо-безопасно!
TS и литеральные типы, вывело все варианты вместе с вложенностями
gavr_sas
Мощь тайпскрипта Вот имеем ситуацию, либа для показа табличек, нужно ей передать массив данных и массив колонок. Колонкам разумеется нужно чтото знать про данные. Данные могут иметь вложенность, то бишь name: {first, second: string} Вопрос, как указать для…
Тип выглядит так
По факту это просто перебор вариантов, тут явно видно что типам не хватает switchа
По факту это просто перебор вариантов, тут явно видно что типам не хватает switchа
never & 'Dynamic length array indexing is not supported' — найс способ сообщить пользователю человекочитаемую ошибку!type DeepKeys<T> = unknown extends T
? keyof T
: object extends T
? string
: T extends readonly any[] & IsTuple<T>
? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>>
: T extends any[]
? never & 'Dynamic length array indexing is not supported'
: T extends Date
? never
: T extends object
? (keyof T & string) | DeepKeysPrefix<T, keyof T>
: never;
😢1