TIOBE опубликовал новый рейтинг языков программирования. Вот самые интересные изменения:
1. Rust прыгнул с 17-го на 13-е место. Авторы TIOBE связывают растущую популярность Rust с рекомендациями со стороны правительства США, которое предложило разработчикам переходить с C/C++ на этот язык из соображений безопасности.
2. Golang поднялся с 13-го на 7-е место.
3. Мой любимый PHP упал с 9-го на 16-е место, а Ruby наоборот, поднялся с 16-го на 14-е.
4. Fortran вошел в топ 10, переместившись с 11-го на 9-е место. Интересно, почему?
Обсуждаем, что вы думаете об этих изменениях и какие языки программирования вы предпочитаете! 👇
#TIOBE #рейтингязыков #Rust #Golang #PHP #Ruby #Fortran #программирование #языки #тренды2024
1. Rust прыгнул с 17-го на 13-е место. Авторы TIOBE связывают растущую популярность Rust с рекомендациями со стороны правительства США, которое предложило разработчикам переходить с C/C++ на этот язык из соображений безопасности.
2. Golang поднялся с 13-го на 7-е место.
3. Мой любимый PHP упал с 9-го на 16-е место, а Ruby наоборот, поднялся с 16-го на 14-е.
4. Fortran вошел в топ 10, переместившись с 11-го на 9-е место. Интересно, почему?
Обсуждаем, что вы думаете об этих изменениях и какие языки программирования вы предпочитаете! 👇
#TIOBE #рейтингязыков #Rust #Golang #PHP #Ruby #Fortran #программирование #языки #тренды2024
👍3
Всегда было сложно собраться и сделать нормальный Changelog. На это уходило кучу времени — нужно, чтобы было и красиво, и понятно. Пока не открыл для себя утилиту git-cliff, и жизнь стала проще.
Эта штука написана на Rust и умеет генерировать удобный и понятный Changelog. Но, конечно, сама по себе она не сделает всё за вас — важно, чтобы вы использовали conventional commits при написании коммитов. Это не только помогает генерировать Changelog на автомате, но и дисциплинирует в стандартизации того, что пишете.
Пару примеров — на скринах.
P.S. Если хотите автоматизировать это на GitHub — есть удобный git-cliff-action. Теперь весь процесс можно сделать в пару кликов.
#git #changelog #gitcliff #разработка #conventionalcommits #GitHub #автоматизация #Rust
Эта штука написана на Rust и умеет генерировать удобный и понятный Changelog. Но, конечно, сама по себе она не сделает всё за вас — важно, чтобы вы использовали conventional commits при написании коммитов. Это не только помогает генерировать Changelog на автомате, но и дисциплинирует в стандартизации того, что пишете.
Пару примеров — на скринах.
P.S. Если хотите автоматизировать это на GitHub — есть удобный git-cliff-action. Теперь весь процесс можно сделать в пару кликов.
#git #changelog #gitcliff #разработка #conventionalcommits #GitHub #автоматизация #Rust
👍5
В свободное время начал изучать Rust и сразу делаю параллели с Go.
Простой Hello World telegram-бот на Go:
А вот на Rust:
Пока не могу найти явные приемущества Rust для веб-сервисов. Может кто-то из практикующих поделится, где реально выстреливает?
#Rust #Golang #разработка #изучаюязыки
Простой Hello World telegram-бот на Go:
package main
import (
"log"
"os"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
)
func main() {
bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_APITOKEN"))
if err != nil {
log.Panic(err)
}
u := tgbotapi.NewUpdate(0)
u.Timeout = 60
updates := bot.GetUpdatesChan(u)
for update := range updates {
if update.Message == nil {
continue
}
msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Hello World!")
bot.Send(msg)
}
}
А вот на Rust:
use teloxide::{prelude::*, utils::command::BotCommands};
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
pretty_env_logger::init();
log::info!("Starting bot...");
let bot = Bot::from_env();
teloxide::repl(bot, |bot: Bot, msg: Message| async move {
bot.send_message(msg.chat.id, "Hello World!").await?;
Ok(())
})
.await;
Ok(())
}
Пока не могу найти явные приемущества Rust для веб-сервисов. Может кто-то из практикующих поделится, где реально выстреливает?
#Rust #Golang #разработка #изучаюязыки
👍3
Команда Rust порадовала нас самой крупной редакцией языка за всю историю! Версия 1.85.0 и Edition 2024 уже доступны в стабильном канале.
Главные новинки:
- Асинхронные замыкания (async closures): теперь можно писать
- Новый атрибут
- FromIterator и Extend теперь работают с кортежами от 1 до 12 элементов - можно создавать сразу несколько коллекций одним вызовом collect().
В Edition 2024 внесли множество изменений, улучшающих безопасность и эргономику:
- Блоки extern теперь требуют ключевое слово unsafe
- Изменены правила временной области для if let и последних выражений в блоках
- Улучшена работа с #![deny(unsafe_op_in_unsafe_fn)]
- Зарезервированы ключевые слова gen и синтаксис защищенных строк #"foo"#
Чтобы обновиться, просто выполните
#rust #programming #update #edition2024
Главные новинки:
- Асинхронные замыкания (async closures): теперь можно писать
async || {}, что решает проблемы с захватом значений из контекста. Также добавлены трейты AsyncFn, AsyncFnMut и AsyncFnOnce.- Новый атрибут
#[diagnostic::do_not_recommend] для скрытия нежелательных реализаций трейтов в диагностике компилятора.- FromIterator и Extend теперь работают с кортежами от 1 до 12 элементов - можно создавать сразу несколько коллекций одним вызовом collect().
В Edition 2024 внесли множество изменений, улучшающих безопасность и эргономику:
- Блоки extern теперь требуют ключевое слово unsafe
- Изменены правила временной области для if let и последних выражений в блоках
- Улучшена работа с #![deny(unsafe_op_in_unsafe_fn)]
- Зарезервированы ключевые слова gen и синтаксис защищенных строк #"foo"#
Чтобы обновиться, просто выполните
rustup update stable. Для перехода на Edition 2024 в большинстве случаев поможет cargo fix.#rust #programming #update #edition2024
Решил немного поэкспериментировать с современными технологиями проксирования. Долгое время использовал связку NGINX + Lua для кастомной логики, но настало время двигаться дальше.
Сейчас активно тестирую Envoy в паре с WebAssembly (WASM) и уже вижу несколько серьезных преимуществ:
- Более чистый код — кастомную логику теперь пишу на Go вместо Lua. Типизация, современные инструменты разработки и экосистема делают процесс гораздо приятнее. Писать на Lua в 2025 году — такое себе удовольствие, если честно 😅
- Горячая перезагрузка — это просто космос! Можно обновлять модули без перезапуска всего прокси. С NGINX PRO такое тоже возможно, но с Envoy это работает намного элегантнее.
- Производительность — по тестам выходит примерно на 15-20% лучшие результаты по throughput.
- Тестирование — инфраструктура для тестирования WASM-модулей гораздо более зрелая. Теперь могу нормально покрывать тестами всю проксирующую логику.
Конечно, есть и свои подводные камни. Документация по Envoy далеко не такая дружелюбная как у NGINX, а экосистема WASM-плагинов еще не такая богатая. Приходится немного больше писать с нуля.
В целом, первые впечатления очень позитивные. Думаю со временем полностью мигрировать на эту связку.
А вы пробовали Envoy? Делитесь опытом в комментариях!
#envoy #webassembly #wasm #nginx #rust #golang #проксирование #микросервисы #оптимизация
Сейчас активно тестирую Envoy в паре с WebAssembly (WASM) и уже вижу несколько серьезных преимуществ:
- Более чистый код — кастомную логику теперь пишу на Go вместо Lua. Типизация, современные инструменты разработки и экосистема делают процесс гораздо приятнее. Писать на Lua в 2025 году — такое себе удовольствие, если честно 😅
- Горячая перезагрузка — это просто космос! Можно обновлять модули без перезапуска всего прокси. С NGINX PRO такое тоже возможно, но с Envoy это работает намного элегантнее.
- Производительность — по тестам выходит примерно на 15-20% лучшие результаты по throughput.
- Тестирование — инфраструктура для тестирования WASM-модулей гораздо более зрелая. Теперь могу нормально покрывать тестами всю проксирующую логику.
Конечно, есть и свои подводные камни. Документация по Envoy далеко не такая дружелюбная как у NGINX, а экосистема WASM-плагинов еще не такая богатая. Приходится немного больше писать с нуля.
В целом, первые впечатления очень позитивные. Думаю со временем полностью мигрировать на эту связку.
А вы пробовали Envoy? Делитесь опытом в комментариях!
#envoy #webassembly #wasm #nginx #rust #golang #проксирование #микросервисы #оптимизация
Вчера занятную статейку на хабое прочитал - https://habr.com/ru/articles/905248/, суть ее в том что Golang уже не торт, практически умер и надо писать на Rust.
Примерно тоже самое я уже больше 10-лет слышу про PHP. Единственный довод, с которым я согласен, не нужно привязывать к одному языку, прошли те времена когда один язык мог тебя кормить и поить, в выигрыше будут те, кто научится применять скальпель вместо молотка.
#языки #выбор #войтивайти #go #rust
Примерно тоже самое я уже больше 10-лет слышу про PHP. Единственный довод, с которым я согласен, не нужно привязывать к одному языку, прошли те времена когда один язык мог тебя кормить и поить, в выигрыше будут те, кто научится применять скальпель вместо молотка.
#языки #выбор #войтивайти #go #rust
👍1