Недавно написал свой первый процедурный макрос в Rust
Плюсы:
+ Писать макросы на Rust сверх приятно*
Минусы:
- Хочется писать теперь их еще и еще...
Если серьёзно, то возможность работать с набором токенов, которые парсятся в растовую структурку, очень интересно. Условно, я могу в макросе поменять сигнатуру полностью: изменить какой-то аргумент или вообще добавить новый.
В общем, сравнивая это с @декораторами из других ЯП и прочей рефлексией, то часто в таком случае, мы можем именно считать сигнатуру, но не изменить.
Иными словами, больше интересных возможностей по разработке API.
* Вспоминаю восторженные рассказы моего лида Николаса с одной из прошлых работ про Common Lisp и расширение синтаксиса через макросы (вроде ничего не перепутал) -- звучит мощно, не часто можно расширить синтаксис своего ЯП, верно?
В моём случае, это не расширение синтаксиса, но всё же выход на этот, скажем, мета-уровень (работа напрямую с конструкциями языка и (!) возможность изменить поведение), это драйвит
#Rust
Плюсы:
+ Писать макросы на Rust сверх приятно*
Минусы:
- Хочется писать теперь их еще и еще...
Если серьёзно, то возможность работать с набором токенов, которые парсятся в растовую структурку, очень интересно. Условно, я могу в макросе поменять сигнатуру полностью: изменить какой-то аргумент или вообще добавить новый.
В общем, сравнивая это с @декораторами из других ЯП и прочей рефлексией, то часто в таком случае, мы можем именно считать сигнатуру, но не изменить.
Иными словами, больше интересных возможностей по разработке API.
* Вспоминаю восторженные рассказы моего лида Николаса с одной из прошлых работ про Common Lisp и расширение синтаксиса через макросы (вроде ничего не перепутал) -- звучит мощно, не часто можно расширить синтаксис своего ЯП, верно?
В моём случае, это не расширение синтаксиса, но всё же выход на этот, скажем, мета-уровень (работа напрямую с конструкциями языка и (!) возможность изменить поведение), это драйвит
#Rust
🔥5
  
  ASCII-Nova 🇺🇦
Недавно написал свой первый процедурный макрос в Rust  Плюсы: + Писать макросы на Rust сверх приятно*   Минусы: - Хочется писать теперь их еще и еще...  Если серьёзно, то возможность работать с набором токенов, которые парсятся в растовую структурку, очень…
Еще немного внутренностей — в общем, работа чисто в Растовых терминах
🔥5
  
  ASCII-Nova 🇺🇦
Еще немного внутренностей — в общем, работа чисто в Растовых терминах
А, кстати, говоря про синтаксис -- для процедурных макросов, можно реализовать какой угодно парсер аргументов, вплоть до... например парсинга Python кода (https://crates.io/crates/inline-python)
Я реализовал простой опциональный аргумент вида:
В общем, реально классная штука и зрелость экосистемы для написания макросов меня прямо впечатляет (макросы я активно старался НЕ писать как бывший плюсовик, т.к. макросы это pure C way, а я топил за плюсы и шаблоны)
Может не самое честное сравнение с препроцессором C/C++, т.к. это просто замена/вставка текста (буквально), но иметь макросы, которые прямо компилируемые внутри, это супер круто!
#Rust
Я реализовал простой опциональный аргумент вида:
[, return_value = "unwrap"|"unwrapAndColon"|"asIs"] (параметр, с ожиданием одного из трёх значений).В общем, реально классная штука и зрелость экосистемы для написания макросов меня прямо впечатляет (макросы я активно старался НЕ писать как бывший плюсовик, т.к. макросы это pure C way, а я топил за плюсы и шаблоны)
Может не самое честное сравнение с препроцессором C/C++, т.к. это просто замена/вставка текста (буквально), но иметь макросы, которые прямо компилируемые внутри, это супер круто!
#Rust
🥰6
  
  ASCII-Nova 🇺🇦
А, кстати, говоря про синтаксис -- для процедурных макросов, можно реализовать какой угодно парсер аргументов, вплоть до... например парсинга Python кода (https://crates.io/crates/inline-python)  Я реализовал простой опциональный аргумент вида: [, return_value…
Обновление: немного подумал и понял, что привёл не удачный пример с парсингом питоновского синтаксиса.
В упомянутом крейте, парсинга не происходит, он передаётся дальше в pyo3 (ржавые байдинги к Python).
Но в целом, функционал Rust позволяет написать свой лексер, внутри процедурного макроса.
В упомянутом крейте, парсинга не происходит, он передаётся дальше в pyo3 (ржавые байдинги к Python).
Но в целом, функционал Rust позволяет написать свой лексер, внутри процедурного макроса.
👍3
  Forwarded from petafloppa_blog (Захар)
Lesson for you kids: никогда не разрешайте аутентификацию по паролю в SSH на вашем сервере
👍4
  Поймал себя на мысли, что был как-то на импровизированной выставке фотографий работы Охматдет в период блекаута (еще первого, в 22-м году): в частности, там делали очередную операцию на сердце ребёнку в темноте, видимо, запитывая хирургические приборы чем-то резервным, поскольку после обстрелов не было кругом света.
Вчера же, уже целенаправленно прилетела очередная российская ракета Х-101 в Охматдет, с осколочной боевой частью (т.е. высокое поражение живой "силы"), с радиусом отклонения до 20 метров (т.е. больница была явной целью).
Напомню, что Охматдет, это сокращение от "Охрана материнства и детства".
В 21 веке, охранять матерей и детей нужно от рф.
Вчера же, уже целенаправленно прилетела очередная российская ракета Х-101 в Охматдет, с осколочной боевой частью (т.е. высокое поражение живой "силы"), с радиусом отклонения до 20 метров (т.е. больница была явной целью).
Напомню, что Охматдет, это сокращение от "Охрана материнства и детства".
В 21 веке, охранять матерей и детей нужно от рф.
💔8💯2
  # Обожаю Таксер
Раньше, я думал что без бухгалтера не справиться с налогами и вообще не разобраться самому.
Потом, я начал работать в небольшой продуктовой компании, где нет отдельной роли бухгалтера.
В целом, мне конечно помогли разобраться, но через базу знаний Таксера и (!) возможные консультации бухгалтера, можно всё делать самостоятельно.
Всем ФОПам советую, Таксер это база
Раньше, я думал что без бухгалтера не справиться с налогами и вообще не разобраться самому.
Потом, я начал работать в небольшой продуктовой компании, где нет отдельной роли бухгалтера.
В целом, мне конечно помогли разобраться, но через базу знаний Таксера и (!) возможные консультации бухгалтера, можно всё делать самостоятельно.
Всем ФОПам советую, Таксер это база
❤2🤣1👀1
  
  ASCII-Nova 🇺🇦
# Обожаю Таксер  Раньше, я думал что без бухгалтера не справиться с налогами и вообще не разобраться самому.  Потом, я начал работать в небольшой продуктовой компании, где нет отдельной роли бухгалтера.   В целом, мне конечно помогли разобраться, но через…
Вообще в целом, шикарный пример удачного украинского социального сервиса
и UX, и интеграции топ
  и UX, и интеграции топ
  ASCII-Nova 🇺🇦
# Обожаю Таксер  Раньше, я думал что без бухгалтера не справиться с налогами и вообще не разобраться самому.  Потом, я начал работать в небольшой продуктовой компании, где нет отдельной роли бухгалтера.   В целом, мне конечно помогли разобраться, но через…
  
у них, кстати, есть открытые позиции
🤯1
  аналитическая работа в жару без кондиционера, мне даётся очень тяжко. накидайте смешных стикеров на этот счёт, в тред. я начну:
👍1
  Вчера у меня перестал работать NewPipe и я не могу выкачивать себе контент для времени, когда нет света (а это много времени)
В целом, я больше читаю от этого (как и хотел ранее), но иногда, когда супер жарко, читать не особо получается, поэтому вопрос:
- как вы качаете с YouTube сейчас, пока NewPipe сломан?
  В целом, я больше читаю от этого (как и хотел ранее), но иногда, когда супер жарко, читать не особо получается, поэтому вопрос:
- как вы качаете с YouTube сейчас, пока NewPipe сломан?
Memory Safety in C++ vs Rust vs Zig | by B Shyam Sundar | Jul, 2024 | Medium
https://medium.com/@shyamsundarb/memory-safety-in-c-vs-rust-vs-zig-f78fa903f41e
Добротная статья. В целом, хорошая иллюстрация, зачем вообще #Rust
В мире C++ нужно писать новые компиляторы (или обёртки), чтобы работать с владением
  
  https://medium.com/@shyamsundarb/memory-safety-in-c-vs-rust-vs-zig-f78fa903f41e
Добротная статья. В целом, хорошая иллюстрация, зачем вообще #Rust
В мире C++ нужно писать новые компиляторы (или обёртки), чтобы работать с владением
Medium
  
  Memory Safety in C++ vs Rust vs Zig
  A look at C++, Zig and Rust in terms of memory safety
❤1👀1
  Forwarded from Stepan Chaplia
  
Привіт! Наша наступна зустріч Monthly Rust 🎙 пройде у форматі Live кодингу на тему "Rust + Computer Graphics", яку проведуть активні учасники нашої спільноти Іван та Женя. 
📆 12 липня (вже завтра!)
🕖 18:15
📍 Google Meet - додати подію
🔗 Посилання на зустріч
Долучайтеся 😉
Якщо у вас є цікава тема для зустрічі, пишіть нам і вже наступну зустріч проведете ви!
📆 12 липня (вже завтра!)
🕖 18:15
📍 Google Meet - додати подію
🔗 Посилання на зустріч
Долучайтеся 😉
Якщо у вас є цікава тема для зустрічі, пишіть нам і вже наступну зустріч проведете ви!
🔥2