С новым, 2024 годом

Всем привет. По доброй традиции пишу в последний день года пост, в котором рассуждаю про итоги 2023 года и делаю некие прогнозы на 2024 год. Предыдущий пост вы можете найти тут — С новым, 2023 годом.

Про White papers

В этом году я начал активно читать вайт пейперы (статьи, опубликованные в разных технических журналах). По какой-то причине, мне практически перестали попадаться крутые статьи в личных и корпоративных блогах (habr/medium/…). Одновременно с этим, я стал видеть в твиттере ссылки на пейперы от разных людей. Как итог, я начал читать такие статьи. Проблема в том, что каждый год пишется безумное число пейперов, и нет какого-то крутого поиска по ним. Поэтому сложно самому что-то найти, и приходится пользоваться рекомендациями экспертов. В частности, я советую:

Кроме того, если вы хотитите сами искать пейперы, вы можете это делать на следующий сайтах конференций (я пока не нашел легкого способа находить годные статьи среди сотен опубликованных):

Про языки программирования

В 2023 году я не заметил каких-то новых трендов в классических языках программирования. Следующие тренды продолжаются:

  • поддержка WebAssembly, как одного из таргетов (C#, Go, Zig, Rust, Kotlin)
  • AOT компиляция (C#, Java)
  • улучшение асинхронного программирования (C#, Java, Rust)

На работе я успел пописать за этот год на C#, Go и несколько строк кода на Rust.

  • Java. У джавы случился важный 21 релиз. Это LTS релиз, в котором наконец-то зарелизились виртуальные потоки (Loom). Теперь это не preview feature, а обычная функциональность языка. Думаю, в течение пары лет (когда зарелизиться structured concurrency, и scoped value) мы увидим серьезное изменение в том, как люди пишут код на Java. Про все фичи вы можете посмотреть в этой презентации — https://jcp.org/aboutJava/communityprocess/ec-public/materials/2023-12-12/JCP_Presentation_Dec_2023.pdf
  • C#. Дотнет развивается невероятно быстро. Пару месяцев назад случился релиз dotnet 8, это LTS версия. Разработчики dotnet делают огромные усилия, чтобы быть лучшей средой для разработки Cloud Native решений. В частности, они активно работают над улучшением производительности рантайма, а также над возможностью AOT компиляции (как GraalVM native image в Java). Уже сейчас можно компилировать консольные приложения в бираники, и ожидается что в dotnet 9 можно будет компилировать web (aka Rest API) приложения. По сути, оба Java и C# пытаются отобрать часть рынка друг от друга, и на фоне такой конкуренции они становятся еще лучше.
  • Go. Я не заметил каких-то революционных изменений в этом языке в 2023 году. Наверное, главное — это начало процесса исправления проблемы с переменными в циклах. Кроме того, теперь profile-guided optimization (PGO) вышел из превью, и все могут использовать эту оптимизацию. Говорится, что она может улучшить перфоманс на 5-10%. Забавно, что в 2023 году также был включен Dynamic Profile-Guided Optimization по умолчанию в dotnet 8. Как бы там не было, Go остается прекрасным выбором для разработки Cloud Native приложений.
  • Rust. Я не сильно погружен в комьюнити Раста, но, кажется, что тут всегда происходят какие-то драммы, прямо как в Scala несколько лет назад. Кажется, что язык постепенно взрослеет, и все больше компаний начинают писать на нем важные части своих решений. Наверное, главная проблема, про которую я постоянно слышу — это проблема async/await модели. Будем надеяться, что в следующей редакции языка Rust 2024 это как-то починят.
  • Zig. Многие инфлюенсеры продолжают говорить про Zig. Выглядит, как интересный язык, некая альтернатива для Rust или C. Однако я пока не заметил, чтобы компании вокруг меня стали использовать его.

Про Open Source

Мир меняется, и Open Source также вынужден адаптироваться к новым реальностям (финансовый кризис, Do More with Less, Frugal Architecture). Всё больше продуктов на гитхабе меняют свои лицензии с открых Apache License 2.0 и MIT, на лицензии более закрытого типа, запрещающие делать бизнес используя данные программные продукты. Наверное, главный скандал года в этой области — это смена лицензий компании HashiCorp (например, для Terraform и Vault). Как итог, появились форки https://github.com/opentofu/opentofu и https://github.com/openbao/openbao с вкусными названиями Tofu и Bao. Интересно будет увидеть, кто победит в этой гонке (корпорация с деньгами и закрытыми лицензиями, или свободный мир опенсорса с донатными деньгами).

Про Базы Данных

В 2023 году я могу выделить 2 связанных тренда в мире баз данных. Во-первых, компании (стартапы и корпорации) продают всё больше и больше решений в виде Serverless (Pay-as-you-use model). Как следствие, компании вынуждены разрабатывать их базы данных с поддержкой multi-tenant режима работы. Об этом вы будете прочитать замечательную серию статей — https://jack-vanlightly.com/blog/2023/11/14/the-architecture-of-serverless-data-systems.

Во-вторых, (и это следствие первого) компании всё больше и больше смотрят на использование S3, как одного из слоев хранилища (Tiered Storage). Это помогает снизить стоимость решения, так как лишь малая часть данных хранится на дорогих, но быстрых SSD (а-ля кэш), и весь остальной датасет лежит на медленном, но дешевом S3. Примеры таких продуктов — neon (PostgreSQL API), и WarpStream (Kafka API).

Примечательно, несколько месяцев назад AWS выпустили Amazon S3 Express One Zone — это S3 тип хранилища, который хранит данные только в одной зоне, но зато намного быстрее классического S3 и намного дороже. Это решение может потенциально серьезно изменить мир облачных баз данных, так как теперь latency доступа к данным серьезно сократилось. Увидим в 2024 году, повлияет ли S3 1 zone на мир баз данных.

Про large language model (LLM)

2023 год стал годом AI/ML/LLM. Появилось безумное количество стартапов и решений, которые предлагают решения на базе «искуственного интелекта». Я безумно далек от этой области, поэтому не могу давать технические комментарии про это. Понятно одно, что это самое начало пути, и в 2024 году нас ждет масса новых решений из LLM мира.

Заключение

Это был интересный год с массой новых открытий и трендов. Большинство из них связаны с LLM, но и более классические инженерные дисциплины порадовали нас новым и важным. Я надеюсь, что в следующем году мы увидим еще больше нового и интересного. Всех с новым годом.

Категории: О жизни