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
gavr_sas
Штош подкасты по ниму записал, время возвращаться к ниве(це мой язык), ловите работающий баблсорт #niva
Мя спрашивают, если нет пробелов, то как будут работать экспрешоны внутри массивов?
нормально
x = {(1 - 1 - 2) 2 3 - 2 - 1 2 sas}нормально
- А як вставити значення з унарними минусами?
- А для этого у меня есть необязательные запятые
- А для этого у меня есть необязательные запятые
x = { -5, -5 5 5 5} иначе оно будет считаться как (- 5 - 5), а делать пробелы между операторами в бинарных сообщениях я не хочуПросто хочу сказать что это валидная строчка на Java 17
public abstract sealed class Shape permits Circle, Rectangle, Square {...}👍1
Котлин полностью прошел проверку на наличие нормальных tagged union'ов, можно объявлять их отдельно, when достаточно exhaustive
Но настоящих типов суммы конеш не хватает
Но настоящих типов суммы конеш не хватает