Анна Буянова (Anna Codes)
Слоёная модель конкурентности в Ruby, прекрасное описание и визуализация ✨ Отсюда #ruby@anna_codes
Появился доклад от автора цикла статей о конкурентности в Ruby
Более быстрое погружение - для тех, кто как и я всё ещё читает (🌚), или просто предпочитает формат доклада.
#ruby@anna_codes
Более быстрое погружение - для тех, кто как и я всё ещё читает (🌚), или просто предпочитает формат доклада.
#ruby@anna_codes
YouTube
RubyConf 2024 In-Depth Ruby Concurrency: Navigating the Ruby concurrency landscape by JP Camara
When do I use a Process, or a Thread, or a Fiber? And Why? Can I use Ractors yet? What is the FiberScheduler? The M:N Thread scheduler? What's a Reactor? Do I fork, prefork, or refork? Should I care?
Do I scale up my Threads? My Fibers? My Processes? Do…
Do I scale up my Threads? My Fibers? My Processes? Do…
❤5
✨ Ruby Newbie ✨
В ноябре я закончила работу над курсом по Ruby (он же мой дипломный проект для магистратуры).
Хочу закрыть этот этап, поэтому расскажу чуть больше о курсе и его результатах.
Уже рассказывала на онлайн-митапе, но хочется зафиксировать и в текстовом виде.
Первая часть про идею и что курс из себя представляет.
Идея появилась, как продолжение RailsGirls (двухдневный воркшоп для начинающих)
Мотивация - попробовать себя в проектировании курса и его запуске, дать возможность участницам попробовать себя в программировании без больших вложений (время, деньги) на первом этапе. Также был мощный пинок в виде мотивации написать диплом по реальному проекту, без этого вряд ли бы получилось реализовать.
Хотелось сфокусироваться не на разработке материалов, а на взаимодействии, мотивации и поддержке в процессе обучения. Также включить в программу не только базовый синтаксис и основные концепции языка программирования, но и инструменты разработчика, чтобы лучше понять процесс работы. + писать приложения, приближенные к реальным.
Отчасти по этим причинам (и отчасти из-за того, что нужна практическая/научная новизна) взяла модель перевёрнутого класса. На онлайн-курсе это значит, что до занятия обучающимся нужно изучить теорию, а на синхронном занятии - практические задания, обсуждения, совместные активности.
Каждая неделя была посвящена определённой теме и для каждой темы были:
- материалы для самостоятельного изучения
- опорные вопросы, можно было самим искать информацию по ним, не читая предложенные статьи, или ответить после чтения материалов
- синхронное занятие в субботу (тут происходила основная активность, сначала проходились по вопросам, потом практика)
- инструкции, по которым занимались на занятии (но можно использовать и самостоятельно, например, при пропуске)
Чему можно было научиться?
- использовать инструменты разработчика (консоль, гит, редактор и тд)
- писать простые программы на руби
- создавать, проектировать базы данных (sqlite), писать запросы (на минималках)
- писать простые веб-приложения (пробовали rack, синатру, rails)
В качестве теории в основном давала статьи из октрытых источников.
Для практики - местами так же подбирала упражнения из открытых источников, часть делала сама (тоже вдохновляясь источниками :)
Например, по бд брала за основу своё прошлое занятие по реляционным субд; по ruby on rails просто прошли туториал из гайдов; написали игру на ruby2d (похожую на ту, что в книжке про геймдев на Ruby, но без gosu); по raсk и синатре - написала небольшие туториалы.
Конечно, за 12 недель все эти темы глубоко не изучить, особенно занимаясь всего по 3-4 часа в неделю. Основаная активность была на синхронном занятии, на самостоятельную работа большинство тратило от нуля до пары часов в неделю (кто тратил - молодцы, эффект был лучше 💪)
Но, я надеюсь, что цель курса (погрузиться в программирование и лучше понять "как всё работает") была достигнута. Про результаты напишу отдельный пост , но уже сейчас можно посмотреть запись доклада с митапа, где я всё рассказываю => ютуб, вк, рутуб .
Инструкции к курсу открыты, на гитхабе (предлагайте свои изменения в пулл-реквестах).
#магистратура@anna_codes #ruby_newbie@anna_codes #моё@anna_codes
В ноябре я закончила работу над курсом по Ruby (он же мой дипломный проект для магистратуры).
Хочу закрыть этот этап, поэтому расскажу чуть больше о курсе и его результатах.
Уже рассказывала на онлайн-митапе, но хочется зафиксировать и в текстовом виде.
Первая часть про идею и что курс из себя представляет.
Идея появилась, как продолжение RailsGirls (двухдневный воркшоп для начинающих)
Мотивация - попробовать себя в проектировании курса и его запуске, дать возможность участницам попробовать себя в программировании без больших вложений (время, деньги) на первом этапе. Также был мощный пинок в виде мотивации написать диплом по реальному проекту, без этого вряд ли бы получилось реализовать.
Хотелось сфокусироваться не на разработке материалов, а на взаимодействии, мотивации и поддержке в процессе обучения. Также включить в программу не только базовый синтаксис и основные концепции языка программирования, но и инструменты разработчика, чтобы лучше понять процесс работы. + писать приложения, приближенные к реальным.
Отчасти по этим причинам (и отчасти из-за того, что нужна практическая/научная новизна) взяла модель перевёрнутого класса. На онлайн-курсе это значит, что до занятия обучающимся нужно изучить теорию, а на синхронном занятии - практические задания, обсуждения, совместные активности.
Каждая неделя была посвящена определённой теме и для каждой темы были:
- материалы для самостоятельного изучения
- опорные вопросы, можно было самим искать информацию по ним, не читая предложенные статьи, или ответить после чтения материалов
- синхронное занятие в субботу (тут происходила основная активность, сначала проходились по вопросам, потом практика)
- инструкции, по которым занимались на занятии (но можно использовать и самостоятельно, например, при пропуске)
Чему можно было научиться?
- использовать инструменты разработчика (консоль, гит, редактор и тд)
- писать простые программы на руби
- создавать, проектировать базы данных (sqlite), писать запросы (на минималках)
- писать простые веб-приложения (пробовали rack, синатру, rails)
В качестве теории в основном давала статьи из октрытых источников.
Для практики - местами так же подбирала упражнения из открытых источников, часть делала сама (тоже вдохновляясь источниками :)
Например, по бд брала за основу своё прошлое занятие по реляционным субд; по ruby on rails просто прошли туториал из гайдов; написали игру на ruby2d (похожую на ту, что в книжке про геймдев на Ruby, но без gosu); по raсk и синатре - написала небольшие туториалы.
Конечно, за 12 недель все эти темы глубоко не изучить, особенно занимаясь всего по 3-4 часа в неделю. Основаная активность была на синхронном занятии, на самостоятельную работа большинство тратило от нуля до пары часов в неделю (кто тратил - молодцы, эффект был лучше 💪)
Но, я надеюсь, что цель курса (погрузиться в программирование и лучше понять "как всё работает") была достигнута. Про результаты напишу отдельный пост , но уже сейчас можно посмотреть запись доклада с митапа, где я всё рассказываю => ютуб, вк, рутуб .
Инструкции к курсу открыты, на гитхабе (предлагайте свои изменения в пулл-реквестах).
#магистратура@anna_codes #ruby_newbie@anna_codes #моё@anna_codes
❤🔥12🔥10👍3🎉3❤1
👩🎓 Ruby Newbie. Результаты курса 👩🎓
Первая часть, о самом курсе, тут
К сожалению, далеко не все приступили к обучению. Примерно 40% не дошли до начала курса. В принципе это не редкость, даже на платном обучении такое бывает. Сначала нам интересно и мы рвёмся учиться, а потом оказывается, что обучение не вписывается в жизнь или возникают форс-мажоры.
Я предполагала, что дальше я проведу несколько уроков, все отвалятся и я спокойно займусь другими делами )) Но не тут то было, все остальные продолжали заниматься (хоть и пропускали иногда), так что пришлось вести до конца, параллельно доделывая курс.
Кроме сложного старта и пропусков были и другие сложности. Например, далеко не все изучали теорию до занятия. Тоже, в принципе, стандартная ситуация.
Я старалась это компенсировать обсуждениями в начале, потом стала добавлять мини-лекции перед практикой. Но тут есть другая сложность - тратим время и силы, потом не так эффективно занимаемся. В общем, если и добавлять теорию, то кратко.
Обратная связь в основном положительная, но, я думаю, сложно давать отрицательную, т.к. делаю я, провожу я и собираю обратную связь тоже я.
Но спасибо тем, кто отметили то, что им не зашло (хотя это и не всегда совпадало с моим видением).
Многие отметили, что понравилось делать игру, хотя я сомневалась в этой идее: ну что там, лупим по фигурке и считаем кол-во попаданий ))
Делали с использованием ruby2d: это хороший гем, чтобы "поиграть" и для обучения "от успеха", быстро видно результат. К сожалению, совсем заброшена: pr не ревьюят, нет активности в issues (хотя последние изменения были не очень давно). Но для обучения использовать это не помешает, краткая и понятная документация.
Ещё из полезного - универсальные навыки (кроме Ruby), но именно на этом курсе хотелось бы, чтобы в Ruby было больше заинтересованности.
Не всем понравилась подача материала, нужно было много самим ресёрчить. Причём сначала инструкции были ещё менее подробными, но в процессе проведения уроков я их дополнила, т.к. местами было совсем непонятно.
Также не везде удалось добавить персонализации - приходилось проходить туториалы, чтобы зацепить основное. Наверное, это можно решить только удлиннением курса, выполнением доп. заданий или наоборот сокращением количества тем.
Личные впечатления: отнимает много сил, результат сомнительный. Без сильной внешней мотивации в виде маги не потянула бы (хотя и там всегда можно сделать на минималках, но мне же надо нормально). Профессиональная сфера просела, был перерыв в работе - но она в целом просела из-за магистратуры (и не только), фокус сместился.
Но, надеюсь, что в итоге всё это даст хороший рост, в личном плане точно.
Что бы я точно поменяла, если бы проводила ещё один запуск: добавила бы этап отбора, возможно, в формате прохождения 1-2 уроков самостоятельно. Либо просто увеличить группу и рассчитывать на то, что они отвалятся.
В ближайшее время вряд ли буду делать ещё запуски, но всегда готова пообщаться о курсе и об образовании в it в целом. В будущем можно на основе материалов курса сделать отдельные воркшопы и всё такое (или не на основе материалов курса..., ну вы поняли)
Возможно, интереснее будет сделать другие проекты (например, мастермайнд или книжный клуб) - когда я это осилю :D
Репозиторий с материалами , можно делать свои предложения в виде pr.
#магистратура@anna_codes #ruby_newbie@anna_codes #моё@anna_codes
Первая часть, о самом курсе, тут
К сожалению, далеко не все приступили к обучению. Примерно 40% не дошли до начала курса. В принципе это не редкость, даже на платном обучении такое бывает. Сначала нам интересно и мы рвёмся учиться, а потом оказывается, что обучение не вписывается в жизнь или возникают форс-мажоры.
Я предполагала, что дальше я проведу несколько уроков, все отвалятся и я спокойно займусь другими делами )) Но не тут то было, все остальные продолжали заниматься (хоть и пропускали иногда), так что пришлось вести до конца, параллельно доделывая курс.
Кроме сложного старта и пропусков были и другие сложности. Например, далеко не все изучали теорию до занятия. Тоже, в принципе, стандартная ситуация.
Я старалась это компенсировать обсуждениями в начале, потом стала добавлять мини-лекции перед практикой. Но тут есть другая сложность - тратим время и силы, потом не так эффективно занимаемся. В общем, если и добавлять теорию, то кратко.
Обратная связь в основном положительная, но, я думаю, сложно давать отрицательную, т.к. делаю я, провожу я и собираю обратную связь тоже я.
Но спасибо тем, кто отметили то, что им не зашло (хотя это и не всегда совпадало с моим видением).
Многие отметили, что понравилось делать игру, хотя я сомневалась в этой идее: ну что там, лупим по фигурке и считаем кол-во попаданий ))
Делали с использованием ruby2d: это хороший гем, чтобы "поиграть" и для обучения "от успеха", быстро видно результат. К сожалению, совсем заброшена: pr не ревьюят, нет активности в issues (хотя последние изменения были не очень давно). Но для обучения использовать это не помешает, краткая и понятная документация.
Ещё из полезного - универсальные навыки (кроме Ruby), но именно на этом курсе хотелось бы, чтобы в Ruby было больше заинтересованности.
Не всем понравилась подача материала, нужно было много самим ресёрчить. Причём сначала инструкции были ещё менее подробными, но в процессе проведения уроков я их дополнила, т.к. местами было совсем непонятно.
Также не везде удалось добавить персонализации - приходилось проходить туториалы, чтобы зацепить основное. Наверное, это можно решить только удлиннением курса, выполнением доп. заданий или наоборот сокращением количества тем.
Личные впечатления: отнимает много сил, результат сомнительный. Без сильной внешней мотивации в виде маги не потянула бы (хотя и там всегда можно сделать на минималках, но мне же надо нормально). Профессиональная сфера просела, был перерыв в работе - но она в целом просела из-за магистратуры (и не только), фокус сместился.
Но, надеюсь, что в итоге всё это даст хороший рост, в личном плане точно.
Что бы я точно поменяла, если бы проводила ещё один запуск: добавила бы этап отбора, возможно, в формате прохождения 1-2 уроков самостоятельно. Либо просто увеличить группу и рассчитывать на то, что они отвалятся.
В ближайшее время вряд ли буду делать ещё запуски, но всегда готова пообщаться о курсе и об образовании в it в целом. В будущем можно на основе материалов курса сделать отдельные воркшопы и всё такое (или не на основе материалов курса..., ну вы поняли)
Возможно, интереснее будет сделать другие проекты (например, мастермайнд или книжный клуб) - когда я это осилю :D
Репозиторий с материалами , можно делать свои предложения в виде pr.
#магистратура@anna_codes #ruby_newbie@anna_codes #моё@anna_codes
👍23❤12❤🔥11
Посмотрела keynote Матца на Rubyconf 2024, он впервые с 2019 года выступил офлайн.
Просмотров примерно, как у меня на "Как я делала курс по Ruby" (это потому что руби умер? но у меня тоже по руби...)
Рассказал о важных изменения в Ruby на протяжении всей истории:
От:
- YARV (Yet Another Ruby VM) (2007, ruby 1.9), который в своё время в 4-5 раз ускорил выполнение кода
Через:
- поддержку юникода (2013)
- изменения работы Garbage Collector'а
- и другие важные (ракторы, yjit) и не очень важные (single-line def :) штуки
До:
- Ruby.wasm (руби в браузере) и prism (новый парсер Ruby)
А что в следующих версиях Ruby?
Обещает изолированные пространства имён (refinements+packages). Хотели в Ruby 3.4.0 , но Сатоши был занят, поэтому в 4.0
Посмотрим, как будет реализовано
Долго рассуждает про Automated Typing . Предполагает, что скоро это будет прошлый век - писать типы руками, сравнивает статическую типизацию с МКПП, типа сейчас уже редко встретишь.
Тем временем, я вожу только механику и даже не пробовала автомат. Никогда не приходила в голову эта аналогия, поэтому особенно понравилось.
Статическую типизацию тоже мало пробовала, и не в коммерческом коде, вот такое противоречие.
А как у вас насчёт акпп/мкпп и динамической/статической типизации? 😏
Следующий доклад хочу про ракторы посмотреть.
А вот ещё про GVL хороший.
Весь плейлист
#ruby@anna_codes
Просмотров примерно, как у меня на "Как я делала курс по Ruby" (это потому что руби умер? но у меня тоже по руби...)
Рассказал о важных изменения в Ruby на протяжении всей истории:
От:
- YARV (Yet Another Ruby VM) (2007, ruby 1.9), который в своё время в 4-5 раз ускорил выполнение кода
Через:
- поддержку юникода (2013)
- изменения работы Garbage Collector'а
- и другие важные (ракторы, yjit) и не очень важные (single-line def :) штуки
До:
- Ruby.wasm (руби в браузере) и prism (новый парсер Ruby)
А что в следующих версиях Ruby?
Обещает изолированные пространства имён (refinements+packages). Хотели в Ruby 3.4.0 , но Сатоши был занят, поэтому в 4.0
Посмотрим, как будет реализовано
Долго рассуждает про Automated Typing . Предполагает, что скоро это будет прошлый век - писать типы руками, сравнивает статическую типизацию с МКПП, типа сейчас уже редко встретишь.
Тем временем, я вожу только механику и даже не пробовала автомат. Никогда не приходила в голову эта аналогия, поэтому особенно понравилось.
Статическую типизацию тоже мало пробовала, и не в коммерческом коде, вот такое противоречие.
А как у вас насчёт акпп/мкпп и динамической/статической типизации? 😏
Следующий доклад хочу про ракторы посмотреть.
А вот ещё про GVL хороший.
Весь плейлист
#ruby@anna_codes
👍12👾3🔥1
Посмотрела доклад Коичи Сасада про ракторы.
Не так много нового про сами ракторы, зато дал хороший "рефрешер" о проблемах параллелизма :
Чем отличается параллельное выполнение от конкурентного?
- одновременное выполнение vs переключение между несколькими задачами
GVL/GIL в Ruby:
- ограничивает одновременное выполнение потоков, за счёт этого избавляет от многих проблем параллелизма
- иногда параллельное выполнение возможно, если один из потоков выполняет I/O операцию
Что за ракторы и зачем они?
- Руби-акторы
- появились в Ruby 3.0 (2020)
- для параллельного выполнения кода
- у каждого рактора есть свой GVL: потоки внутри одного рактора будут работать в основном конкурентно, а не параллельно.
А вот потоки внутри разных ракторов могут выполняться параллельно.
Почему нельзя просто взять и выполнять Руби-потоки параллельно?
(с точки зрения разработчиков языка)
- у потоков, запущенных в рамках одного процесса, общее пространство памяти, нужно следить за shared mutable objects, а это сложно
- в руби много shared mutable стейта + основные структуры типа строк и массивов не потокобезопасные
Есть мнение из 1995 года, что нужно вообще запретить параллельное выполнение потоков, т.к слишком сложно следить "вручную" (смотрите картинку :)
Какие есть варианты избавиться от сложности?
- запретить мутабельные объекты (elixir/erlang)
- отслеживать с помощью типов (Rust)
- ограничить mutations (clojure)
- отслеживать мутации и лочить внешними средствами (clang, helgrid/valgrind)
- запретить шарить объекты, форкать процессы (shell, druby)
- отделить shareable и не shareable объекты - Ракторы!
Что относительно нового:
- M:N планировщик тредов, появился в Ruby 3.3.0
M руби-тредов теперь "мапятся" на N тредов ОС, (N = количество ядер, M > N)
Описание в трекере
По умолчанию M:N планировщик в главном ракторе выключен, тогда всё работает, как обычно: 1 рубишный поток соответствует одному потоку ОС.
В ракторах всё так же много проблем:
- мало поддерживающих их библиотек
- вообще мало что можно запустить, но вот на простых расчётах типа фибоначчи можно проверить
- есть особенности с производительностью, иногда код работает ещё медленнее, чем без ракторов
Интересно, дойдёт ли когда-нибудь до production-ready 🤔
Но надо понимать, что мы всегда в ракторе - посмотрите
Можно глянуть планы и обширный список проблем с ракторами в трекере
#ruby@anna_codes
Не так много нового про сами ракторы, зато дал хороший "рефрешер" о проблемах параллелизма :
Чем отличается параллельное выполнение от конкурентного?
- одновременное выполнение vs переключение между несколькими задачами
GVL/GIL в Ruby:
- ограничивает одновременное выполнение потоков, за счёт этого избавляет от многих проблем параллелизма
- иногда параллельное выполнение возможно, если один из потоков выполняет I/O операцию
Что за ракторы и зачем они?
- Руби-акторы
- появились в Ruby 3.0 (2020)
- для параллельного выполнения кода
- у каждого рактора есть свой GVL: потоки внутри одного рактора будут работать в основном конкурентно, а не параллельно.
А вот потоки внутри разных ракторов могут выполняться параллельно.
Почему нельзя просто взять и выполнять Руби-потоки параллельно?
(с точки зрения разработчиков языка)
- у потоков, запущенных в рамках одного процесса, общее пространство памяти, нужно следить за shared mutable objects, а это сложно
- в руби много shared mutable стейта + основные структуры типа строк и массивов не потокобезопасные
Есть мнение из 1995 года, что нужно вообще запретить параллельное выполнение потоков, т.к слишком сложно следить "вручную" (смотрите картинку :)
Какие есть варианты избавиться от сложности?
- запретить мутабельные объекты (elixir/erlang)
- отслеживать с помощью типов (Rust)
- ограничить mutations (clojure)
- отслеживать мутации и лочить внешними средствами (clang, helgrid/valgrind)
- запретить шарить объекты, форкать процессы (shell, druby)
- отделить shareable и не shareable объекты - Ракторы!
Что относительно нового:
- M:N планировщик тредов, появился в Ruby 3.3.0
M руби-тредов теперь "мапятся" на N тредов ОС, (N = количество ядер, M > N)
Описание в трекере
По умолчанию M:N планировщик в главном ракторе выключен, тогда всё работает, как обычно: 1 рубишный поток соответствует одному потоку ОС.
В ракторах всё так же много проблем:
- мало поддерживающих их библиотек
- вообще мало что можно запустить, но вот на простых расчётах типа фибоначчи можно проверить
- есть особенности с производительностью, иногда код работает ещё медленнее, чем без ракторов
Интересно, дойдёт ли когда-нибудь до production-ready 🤔
Но надо понимать, что мы всегда в ракторе - посмотрите
Ractor.current.Можно глянуть планы и обширный список проблем с ракторами в трекере
#ruby@anna_codes
👍6❤🔥4🔥4❤3👏1
Привет!
Давно не стримили. Теперь давайте про Ruby.
Обсудим, куда идёт Ruby, а куда рельсы:
- что нового обещают в руби
- идеи dhh, one-person framework
- рельсовый фронтенд
- ИИ + руби
- is ruby dead
- куда перекатываться, если что 😁
Буду с подругами: мы с Катей рубистки, Олеся разрабатывает платформу для интерактивных курсов по музыке с бэкендом на Ruby on Rails.
В воскресенье 27 апреля, в 16:00
Заходите послушать и поговорить. После - афтепати на свободную тему ✨
#стрим@anna_codes #ruby@anna_codes
Давно не стримили. Теперь давайте про Ruby.
Обсудим, куда идёт Ruby, а куда рельсы:
- что нового обещают в руби
- идеи dhh, one-person framework
- рельсовый фронтенд
- ИИ + руби
- is ruby dead
- куда перекатываться, если что 😁
Буду с подругами: мы с Катей рубистки, Олеся разрабатывает платформу для интерактивных курсов по музыке с бэкендом на Ruby on Rails.
В воскресенье 27 апреля, в 16:00
Заходите послушать и поговорить. После - афтепати на свободную тему ✨
#стрим@anna_codes #ruby@anna_codes
🔥14❤🔥8❤3👍3
Статья для подготовки к стриму "Rails: when "nothing changed" is the best feature"😏
Порадовала цитата про падающий нокогири:
И коммент от Матца. Завтра обсудим )
#ruby #rails
Порадовала цитата про падающий нокогири:
Recently I had to implement a tiny backend app. I dusted off Rails and everything was the same. Same commands, same gems, even nokogiri crashed the same way during bundle install, just like 10 years ago…
И коммент от Матца. Завтра обсудим )
#ruby #rails
❤8❤🔥1👍1
Привет!
Пока готовилась к стриму, узнала, что в апреле была RubyKaigi и там было много интересного.
Например, Matz всё-таки анонсировал Ruby 4.0 в этом году.
На всякий случай сделал это 1 апреля, чтобы если что, сказать, что шутка ))
Ещё рассказывал про Ruby и AI
Из того, что обещал в прошлом году:
Изолированные пространства имён , презентация
Бинарники из руби - на уровне игрушки, но и Матц упоминал в виде "мечты"
Мне показалось, много низкоуровневого, но может на РубиКайги всегда так. Кто был? )
Пока записей докладов нет, но можно посмотреть тенденции и некоторые презентации:
Типизация
rbs via tests
steep
sorbet
JIT
YJIT , презентация
ZJIT
IoT/микроконтроллеры
mruby/c and data-flow programming for small devices
MicroRuby
PicoRuby
Ракторы/GC
Toward Ractor local GC
Оптимизация Ruby
JRuby
Low-level Ruby Observability APIs
Ускорение Class#new
Расписание
Есть что-нибудь интересное? Keynote от Матца точно надо будет глянуть ✨
#ruby@anna_codes
Пока готовилась к стриму, узнала, что в апреле была RubyKaigi и там было много интересного.
Например, Matz всё-таки анонсировал Ruby 4.0 в этом году.
На всякий случай сделал это 1 апреля, чтобы если что, сказать, что шутка ))
Ещё рассказывал про Ruby и AI
Из того, что обещал в прошлом году:
Изолированные пространства имён , презентация
Бинарники из руби - на уровне игрушки, но и Матц упоминал в виде "мечты"
Мне показалось, много низкоуровневого, но может на РубиКайги всегда так. Кто был? )
Пока записей докладов нет, но можно посмотреть тенденции и некоторые презентации:
Типизация
rbs via tests
steep
sorbet
JIT
YJIT , презентация
ZJIT
IoT/микроконтроллеры
mruby/c and data-flow programming for small devices
MicroRuby
PicoRuby
Ракторы/GC
Toward Ractor local GC
Оптимизация Ruby
JRuby
Low-level Ruby Observability APIs
Ускорение Class#new
Расписание
Есть что-нибудь интересное? Keynote от Матца точно надо будет глянуть ✨
#ruby@anna_codes
❤11👍5🔥5⚡1
Интересный доклад от Ирины Назаровой, СЕО Evil Martians.
Она считает, что рельсы находятся на пути к "плато продуктивности" после относительного упадка (см. график)
Рассказывает, почему новые стартапы выбирают руби и рельсы. Точнее сами основатели рассказывают.
Всё как мы любим - продуктивность, developer experience, близость к бизнесу.
Также уделила время ai-инструметам для руби и рельсовому фронтенду (hotwire, rubyui, инерции)
Ещё понравился интерактив с poll everywhere, тоже рубишным. Надо попробовать )
Выбрали бы рельсы для своего нового стартапа? 😏
#ruby@anna_codes
Она считает, что рельсы находятся на пути к "плато продуктивности" после относительного упадка (см. график)
Рассказывает, почему новые стартапы выбирают руби и рельсы. Точнее сами основатели рассказывают.
Всё как мы любим - продуктивность, developer experience, близость к бизнесу.
Также уделила время ai-инструметам для руби и рельсовому фронтенду (hotwire, rubyui, инерции)
Ещё понравился интерактив с poll everywhere, тоже рубишным. Надо попробовать )
Выбрали бы рельсы для своего нового стартапа? 😏
#ruby@anna_codes
👍10💯2❤🔥1
На самом деле основная мысль другая )
Я посмотрела половинку, не очень удобно на японском. Можно послушать, если вы учите японский или фанатеете от Матца.
А вот краткое содержание keynote от Perplexity:
1. Reverse Alpha Syndrome (Обратный альфа-синдром)
- Альфа-синдром — термин из поведения собак: если хозяин слишком балует питомца, тот начинает считать себя главным.
- Обратный альфа-синдром — аналогия с ИИ: если мы, люди, начинаем делать за ИИ то, что он не может, мы сами становимся "слугами" ИИ, а не наоборот.
- Опасность: если мы будем делать только то, что не может ИИ, а всё остальное отдавать ему, то станем обслуживающим персоналом для машин.
2. Роль ИИ в программировании
- Сейчас ИИ хорошо справляется с повторяющимися задачами, шаблонным кодом (например, генерация кода для Rails-приложений).
- Но ИИ часто ошибается в сложных, нетиповых задачах, не всегда понимает специфику требований.
- Программисты опасаются, что ИИ "отнимет" у них работу, но важно помнить: ИИ — инструмент, а не хозяин.
3. Каким должен быть язык программирования для эпохи ИИ?
- Python — очевидный ответ, но речь не об этом.
- В будущем программирование всё больше будет напоминать общение на естественном языке: мы будем формулировать задачи "по-человечески", а не только писать код.
- Однако, как и в математике, иногда нужен формальный, точный язык для сложных идей — поэтому программные языки не исчезнут.
4. Статическая типизация и ошибки
- Сейчас статическая типизация (как в C, Java) помогает быстрее находить ошибки.
- Но если ИИ станет достаточно умным, возможно, такие ошибки будут автоматически исправляться или предотвращаться.
- Главная ценность языков — не только в типах, но и в удобстве, выразительности, удовольствии от программирования.
5. Критерии идеального языка для ИИ-эры
- Простота — лаконичность, минимум лишнего.
- Выразительность — возможность ясно и коротко выражать сложные идеи.
- Масштабируемость — язык должен подходить и для маленьких скриптов, и для больших промышленных проектов.
- Поддержка DSL (Domain Specific Languages) — возможность создавать "языки внутри языка" для разных задач.
---
Заключение
- Не стоит бояться ИИ, но важно помнить о балансе: не становиться "слугой" машины.
- Выбирайте инструменты, которые делают вашу работу интересной и приятной.
- Ruby создавался ради удовольствия от программирования — и это должно оставаться главным критерием!
#ruby@anna_codes
Я посмотрела половинку, не очень удобно на японском. Можно послушать, если вы учите японский или фанатеете от Матца.
А вот краткое содержание keynote от Perplexity:
1. Reverse Alpha Syndrome (Обратный альфа-синдром)
- Альфа-синдром — термин из поведения собак: если хозяин слишком балует питомца, тот начинает считать себя главным.
- Обратный альфа-синдром — аналогия с ИИ: если мы, люди, начинаем делать за ИИ то, что он не может, мы сами становимся "слугами" ИИ, а не наоборот.
- Опасность: если мы будем делать только то, что не может ИИ, а всё остальное отдавать ему, то станем обслуживающим персоналом для машин.
2. Роль ИИ в программировании
- Сейчас ИИ хорошо справляется с повторяющимися задачами, шаблонным кодом (например, генерация кода для Rails-приложений).
- Но ИИ часто ошибается в сложных, нетиповых задачах, не всегда понимает специфику требований.
- Программисты опасаются, что ИИ "отнимет" у них работу, но важно помнить: ИИ — инструмент, а не хозяин.
3. Каким должен быть язык программирования для эпохи ИИ?
- Python — очевидный ответ, но речь не об этом.
- В будущем программирование всё больше будет напоминать общение на естественном языке: мы будем формулировать задачи "по-человечески", а не только писать код.
- Однако, как и в математике, иногда нужен формальный, точный язык для сложных идей — поэтому программные языки не исчезнут.
4. Статическая типизация и ошибки
- Сейчас статическая типизация (как в C, Java) помогает быстрее находить ошибки.
- Но если ИИ станет достаточно умным, возможно, такие ошибки будут автоматически исправляться или предотвращаться.
- Главная ценность языков — не только в типах, но и в удобстве, выразительности, удовольствии от программирования.
5. Критерии идеального языка для ИИ-эры
- Простота — лаконичность, минимум лишнего.
- Выразительность — возможность ясно и коротко выражать сложные идеи.
- Масштабируемость — язык должен подходить и для маленьких скриптов, и для больших промышленных проектов.
- Поддержка DSL (Domain Specific Languages) — возможность создавать "языки внутри языка" для разных задач.
---
Заключение
- Не стоит бояться ИИ, но важно помнить о балансе: не становиться "слугой" машины.
- Выбирайте инструменты, которые делают вашу работу интересной и приятной.
- Ruby создавался ради удовольствия от программирования — и это должно оставаться главным критерием!
#ruby@anna_codes
👍12❤7