company_banner
  • Сила композиции


      Функциональное программирование может отпугивать сложностью и непрактичностью: «Я далек от всех этих монад, пишу на обычном C#, в докладе про функциональщину ничего не пойму. А если даже напрягусь и пойму, где мне потом это применять?»


      Но когда объясняет Скотт Влашин, все совершенно не так: его доклад о композиции с конференции DotNext 2019 Moscow — пример того, как можно доносить функциональные идеи простыми словами. Он за час перешел от бананов к монадам так, что второе кажется немногим сложнее первого. А в конце объяснил, почему осмыслить композицию полезно даже тем, кто не собирается покидать мир ООП. Примеры кода в докладе как на F#, так и на C#.


      Уже завтра начнется новый DotNext, где я помогу Скотту выступить с другим докладом, а пока что публикую перевод его выступления про композицию. Далее повествование будет от лица Скотта.

      Читать дальше →
      • +29
      • 8,1k
      • 4
    • JPoint 2021: тенденции и тренды мира Java

        В третьем онлайн-сезоне конференций, проводимых JUG Ru Group, с 13 по 17 апреля 2021 года успешно прошла Java-конференция JPoint 2021.



        Что было интересного на конференции? Какой тематики были доклады? Кто из спикеров и про что рассказывал? Что изменилось в организации конференции и долго ли ждать возвращение офлайн-формата? Можно ли что-то ещё придумать оригинальное при написании обзора о конференции?
        Читать дальше →
      • Эволюция декларативных UI-фреймворков: от динозавров к Jetpack Compose


          Проект Jetpack Compose привлёк много внимания в Android-мире, ещё когда был в альфа-версии. А недавно добрался до беты — так что теперь всем Android-разработчикам пора понимать, что он собой представляет.


          Поэтому мы сделали для Хабра текстовую версию доклада Матвея Малькова с нашей конференции Mobius. Матвей работает в Google UK и лично причастен к Compose, так что из доклада можно узнать кое-что о «внутренностях» проекта. Но рассказ не ограничивается этим: внимание уделено не только Jetpack Compose, а всему декларативному подходу в целом.


          Кстати, недавно появился ещё и проект Compose for Desktop от JetBrains. И скоро на Mobius о нём тоже будет рассказ из первых рук: 14 апреля об этом расскажет руководитель проекта Николай Иготти.


          Далее повествование будет от лица спикера.

          Читать дальше →
          • +12
          • 2,5k
          • 2
        • О чём расскажут на DotNext: от нативных API до фронтенда на F#


            Уже совсем скоро пройдёт .NET-конференция DotNext — а о чём там будут доклады-то? Программа готова, и делимся её описанием.


            Главные тематические блоки прежние: best practices, архитектура, «внутренности» .NET, тренды. И снова будут воркшопы, уже зарекомендовавшие себя в онлайн-формате (удобно демонстрировать, как сделать что-то, когда зрители смотрят это за компьютерами и могут тут же попробовать сами).


            А о том, из каких именно докладов в этот раз состоят блоки, рассказали сразу в двух форматах. Если предпочитаете читать — добро пожаловать под кат, а если любите слушать — для вас записали подкаст участники программного комитета Анатолий Кулаков, Андрей Акиньшин и Игорь Лабутин. В подкасте даже разыгрывают билет на DotNext и подписанные книги Джеффри Рихтера!

            Читать дальше →
          • Распределённая конференция о распределённых системах: анонс Hydra 2021


              Мы уже третий год проводим конференцию о параллельных и распределённых вычислениях. Hydra 2021 пройдёт в онлайне, и вот что интересно: онлайн-конференция ведь и сама является распределённой системой. У неё есть множество компонентов (это и люди, и оборудование), разбросанных по планете и действующих параллельно (у конференции сразу несколько треков).


              А значит, неизбежны соответствующие проблемы вроде «связь отвалилась». Как с ними бороться? Тут нам помогает как раз инженерия распределённых систем.


              Например, «избыточность» — это не только когда реплики данных пишутся в три дата-центра. Это ещё и когда у конференции есть одновременно спикеры, эксперты и ведущие. Такая схема с тремя ролями означает, что если связь с кем-то временно пропадёт, двое других заполнят паузу в эфире, не оставляя зрителей наедине с пустотой.


              В общем, от «Гидры» можно ожидать неплохой отказоустойчивости (подробнее можно почитать здесь). А чего ещё ждать? Расписали под катом — и заодно приложили ссылку на доклады предыдущей Hydra.

              Читать дальше →
            • «Microsoft Coffee»: первоапрельский ответ на Java

                На днях в интернете появился любопытный пост. Там утверждается, что в 1996 году несколько сотрудников Microsoft втайне от руководства устроили первоапрельский розыгрыш. Они распространили по магазинам Сиэтла коробки с несуществующим продуктом «Microsoft Coffee», намекающим на Java. Возник резонанс, на местном телеканале вышли новости, но PR-отдел и Билл Гейтс шутку не оценили. Поэтому компания пыталась вычислить организаторов, а публично всё отрицала и замяла историю, так что все эти 25 лет о ней никто не вспоминал.

                История забавная, но есть нюанс. Опубликована она 1 апреля 2021 года. И возникает вопрос, как же всё на самом деле: действительно ли в 1996 году происходили описанные события, или подобного не было, а сам этот новый пост и есть первоапрельская шутка?

                Если и шутка, то удивительно проработанная. Я собрал тут все подробности: и что сказано в посте, и какие есть аргументы за/против его подлинности.

                Читать далее
              • Программа HolyJS: нюансы DevTools, минусы GraphQL, инструменты a11y


                  Осталось меньше месяца до конференции HolyJS (20-23 апреля, онлайн) — пора рассказать, что именно там будет. Под катом описания докладов с разбивкой по тематическим блокам. А для начала — несколько вопросов для затравки:


                  • В чём недостатки GraphQL?
                  • Зачем OCaml на фронтенде?
                  • Чего вы не знаете о DevTools?
                  • Как писать надёжные тесты для Vue?
                  • Как сделать свой DSL-язык легко и непринуждённо?
                  • Как добиться на дешёвом устройстве плавности дорогого?
                  • Как отобразить 100500 метрик и не сойти с ума?
                  • Как принести в JS типы ещё радикальнее, чем в TypeScript?

                  Ответы на всё это и многое другое — в докладах.

                  Читать дальше →
                  • +14
                  • 1,5k
                  • 4
                • Интервью с Мигелем де Икасой: Microsoft, Mono, смартфоны и многое другое

                    В эфире конференции DotNext 2020 Moscow выступил Мигель де Икаса, один из известнейших разработчиков, положивший начало множеству проектов, которыми многие пользуются по сей день. Мы расспросили его о некоторых вещах, включая взаимоотношения с Microsoft, зарождение Mono, мобильные устройства и многое другое. Рассказывая обо всем этом, Мигель припомнил множество интересных событий и фактов, о которых вам наверняка будет интересно прочитать.

                    Интервью брали Игорь Лабутин, разработчик на C# и архитектор, и Андрей Акиньшин, перформанс-лид Rider, мейнтейнер проекта BenchmarkDotNet.

                    Текст интервью и видео — под катом.

                    Читать далее
                    • +36
                    • 3,6k
                    • 5
                  • Программа Mobius: Android, iOS и всё, что между ними


                      Совсем скоро пройдёт очередной Mobius (13-16 апреля, онлайн). И теперь, когда известна его программа, пришло время рассказать Хабру, что за доклады там представят.


                      У конференции будет четыре параллельных трека:


                      • iOS
                      • Android
                      • «кроссплатформенный» (Flutter, Kotlin Multiplatform)
                      • «универсальный» (мобильные темы, не зависящие от платформы)

                      Порой сложно нащупать грань между разными категориями: в iOS-треке есть пара докладов, которые тоже рассматривают Kotlin Multiplatform, но конкретно с iOS-стороны. Поэтому учтите, что где-то деление оказывается условным. А теперь, с этим осознанием, можно погружаться.

                      Читать дальше →
                    • Обзор программы JPoint 2021: воркшопы, Spring, «игра вдолгую»


                        Близится новый JPoint, и мы готовы подробно рассказать о его программе. В этом посте мы разделили доклады по тематическим блокам: можно и быстро понять «что вообще будет», и узнать конкретику. А во вступлении упомянем отдельные моменты:


                        • Пришла весна, то есть самое время поговорить о Spring. О нём будет четыре доклада, в том числе большое двухчастное выступление Евгения Борисова. Для него мы даже продлили JPoint на пятый день — получился специальный «день Борисова» :)
                        • Онлайн-формату подходят воркшопы. Поэтому в отдельных случаях можно будет не просто любоваться слайдами: спикер будет выполнять конкретные задачи на практике, объясняя всё происходящее и отвечая на вопросы зрителей.
                        • Есть доклады не строго про Java, а про то, как успешно разрабатывать «на длинной дистанции» (чтобы всё радовало не только на стадии прототипа, а годы спустя): как делать проекты поддерживаемыми, не плодить «велосипеды», работать с легаси.
                        • Ну и никуда не девается привычное. Знакомые темы: «что у Java внутри», тулинг/фреймворки, языковые фичи, JVM-языки. Спикеры, посвятившие теме годы жизни: от технического лида Project Loom Рона Пресслера до главного Spring-адвоката Джоша Лонга. Возможность как следует расспросить спикера после доклада. И уточки для «отладки методом утёнка»!
                        Читать дальше →
                      • «Отдых — это непросто»: Андрей Бреслав о жизни после Kotlin

                          Для многих в IT-сообществе имя Андрея Бреслава было почти синонимичным с названием языка программирования: «мы говорим Бреслав, подразумеваем — Kotlin». Неудивительно, поскольку Андрей возглавлял этот проект десять лет подряд, с самого его создания. Но теперь ситуация изменилась, потому что в ноябре он объявил об уходе из проекта.

                          Беспокоиться за будущее языка не приходится: там всё в надёжных руках Романа Елизарова, и недавно мы опубликовали наш диалог с ним. Но захотелось расспросить и Андрея:

                          Какими он видит итоги своей работы над Kotlin?

                          Как выглядит его жизнь сейчас? Как отдыхать, когда привык много работать?

                          Что он сейчас делает в стартапе Alter? Каково после громадного проекта заниматься менее масштабным? И почему Alter написан не на Kotlin?

                          Читать далее
                          • +49
                          • 9,9k
                          • 1
                        • ML в тестировании, TestOps, воркшопы: программа конференции Heisenbug



                            Область тестирования продолжает активно развиваться — с появлением новых инструментов, обновлением старых, а также появлением в IDE поддержки для начала автоматизации тестирования. «Теоретические аспекты-то остаются теми же», — скажете вы. И будете правы. Но, к сожалению, сделать тестирование так же идеально, как описано в блоге Мартина Фаулера, получается не у всех и по сей день. А более современный инструментарий для написания селекторов, кода, интеграции с CI/CD, удобные плагины позволяют приблизиться к «совершенному» и делать все удобнее и быстрее.

                            «Какие еще новые инструменты, плагины? О чем он говорит?», — возможно, спросите вы. Давайте поясню. А точнее, пояснят программный комитет и спикеры Heisenbug: в программе конференции, которая пройдёт 6-9 апреля в онлайне, есть ответы и на этот вопрос, и на многие другие.
                            Что там у вас?
                          • От внедрения зависимостей к отказу от зависимостей

                              У функционального программирования есть одна большая проблема — о нем очень непросто рассказывать. Попытки донести людям что-то с использованием терминов типа «зигохистоморфный препроморфизм» легко сводят неподготовленного слушателя с ума.



                              Марк Симан — автор популярной книги Dependency Injection in .NET, автор бесчисленных блог-постов. На DotNext 2017 Moscow Марк рассмотрел применение dependency injection в классическом объектно-ориентированном дизайне и объяснил, почему его необязательно (даже нежелательно) использовать в функциональном программировании. Следом за этим он наглядно показал, как использование приемов функционального программирования устраняет необходимость в использовании моков и стабов в модульном тестировании и позволяет полностью выбросить мусор из прямого перечисления зависимостей.


                              Под катом — перевод доклада и видео. Далее повествование будет от лица Марка.

                              Читать дальше →
                            • Этот поезд в окне: анонс TechTrain 2021 Spring


                                IT-мероприятия сейчас проходят в окне браузера. Вот и бесплатный фестиваль TechTrain пройдёт 27 марта в онлайне. Как и на двух предыдущих TechTrain, там будет несколько докладов для IT-специалистов самого разного профиля. Описание программы — под катом, а если вы уже готовы оформлять бесплатный билет, можете переходить на сайт.


                                А ещё делимся плейлистом с записями предыдущего TechTrain — можете по ним лучше понять, чего ждать от следующего.

                                Читать дальше →
                              • Большой разговор с новым Kotlin Project Lead Романом Елизаровым

                                  В ноябре стало известно, что работу над Kotlin возглавит Роман Елизаров (elizarov). Поскольку теперь за дизайн языка отвечает он, интересно лучше понять его видение. Поэтому на онлайн-конференции Joker мы задали Роману много вопросов. А теперь для Хабра сделали текстовую версию (видеозапись тоже прикрепляем).



                                  Для начала поговорили о его новой роли и команде Kotlin, а затем перешли к дизайну языка. Из текста можно узнать, например, такие вещи:


                                  • Как принимаются решения, ломающие обратную совместимость?
                                  • Чем философия Kotlin отличается от C# и почему?
                                  • Насколько приоритетна производительность?
                                  • Чем корутины в Kotlin отличаются от Project Loom в Java?
                                  • Какой тренд влияет на языки прямо сейчас?

                                  Расспрашивали Антон Архипов (Developer Advocate в JetBrains) и Алексей Стукалов (руководитель направления DevRel в компании Haulmont, создавшей CUBA Platform). Но не все вопросы они придумали сами: поскольку дело происходило на конференции, часть была написана зрителями.

                                  Читать дальше →
                                  • +29
                                  • 6,4k
                                  • 8
                                • Как ощутить «интернет 2000 года»

                                    Думаю, на Хабре есть уже много людей, никогда не слышавших звук модемного подключения по телефонной линии. А люди, заставшие те времена, наверняка успели многое подзабыть.

                                    Все знают, что раньше интернет был попроще. Но часто ли вы вспоминаете, что во время его использования вся семья оставалась без телефонной связи? Помните ли встроенный в Opera баннер? Программы FlashGet и eMule? Вёрстку сайтов таблицами и фреймами? Штурмовые корабли в огне на подступах к Ориону? (Извините, увлёкся.)

                                    По-моему, около 2000-го произошёл прорыв: в 90-х интернет был ещё гиковской историей, а в нулевых стал мейнстримом. Как можно сегодня ощутить времена этого прорыва? Увидеть старые сайты помогает Wayback Machine, но если делаешь это в свежем браузере через современное подключение, видишь только часть картины. Поэтому сделал подборку из информации, ссылок и советов, которые дополнят опыт. Те, кто постарше, ощутят ностальгию, а те, кто помладше, узнают что-то новое.

                                    Читать далее
                                  • Интервью с Дэном Абрамовым: React 17, Suspense, Redux, холивары


                                      Главный миф о Дэне Абрамове — что он «создал React». Но хотя это и не так, сейчас он имеет самое прямое отношение к фреймворку, так что поговорить с ним про React очень интересно. Обычно Дэна не увидеть на российских конференциях, но нам помог онлайн-формат, и на HolyJS его подробно расспросили Наталия Теплухина (член core team Vue.js) и Наталия Короткова (занимается веб-проектами с 2010 года).


                                      Тут получился не поверхностный разговор о погоде, а обсуждение технической конкретики для тех, кто вдается в детали. Но под конец были и более общие вопросы: когда появится новая документация React, переписанная с нуля? Что не так с Redux? Как Дэн воспринимает холивары о фреймворках? Что он может рассказать о релокации?


                                      Так что, если не осилите все технические детали в первой половине интервью, переходите ко второй, там попроще. Под катом — и видеозапись разговора, и текстовая расшифровка.

                                      Читать дальше →
                                      • +24
                                      • 14,5k
                                      • 9
                                    • Кроссплатформенная мобильная разработка: история вопроса

                                        Когда речь заходит о разработке «сразу для Android и iOS», начинаются холивары и гадания на кофейной гуще. Что перспективнее, Flutter или Kotlin Multiplatform? Будущее за ними, или завтра их оба забудут?

                                        Уверенно делать прогнозы — занятие весёлое, но не очень конструктивное. Я захотел подойти иначе. Поскольку мы проводим конференцию Mobius, я общался со многими мобильными разработчиками, в том числе об их опыте использования старых кроссплатформых решений. И теперь решил вспомнить, какими были эти решения, и понять их судьбу.

                                        Как известно, «кто забывает об истории, обречён на её повторение». Если мы разберёмся с прошлым — возможно, тогда и будущее станет нам понятнее. А если вы сами работали с описанными технологиями — можете дополнять в комментариях своим опытом.

                                        Читать далее
                                      • Многопоточность на низком уровне

                                          Очень часто при обсуждении многопоточности на платформе .NET говорят о таких вещах, как детали реализации механизма async/await, Task Asynchronous Pattern, deadlock, а также разбирают System.Threading. Все эти вещи можно назвать высокоуровневыми (относительно темы хабрапоста). Но что же происходит на уровне железа и ядра системы (в нашем случае — Windows Kernel)?


                                          На конференции DotNext 2016 Moscow Гаэл Фретёр, основатель и главный инженер компании PostSharp, рассказал о том, как в .NET реализована многопоточность на уровне железа и взаимодействия с ядром операционной системы. Несмотря на то, что прошло уже пять лет, мы считаем, что никогда не поздно поделиться хардкорным докладом. Гаэл представил нам хорошую базу по работе процессора и атомным примитивам.



                                          Вот репозиторий с примерами из доклада. А под катом — перевод доклада и видео. Далее повествование будет от лица спикера.

                                          Читать дальше →
                                        • Project Loom: Современная маcштабируемая многопоточность для платформы Java


                                            Эффективное использование многочисленных ядер современных процессоров — сложная, но всё более важная задача. Java была одним из первых языков программирования со встроенной поддержкой concurrency. Ее concurrency-модель, основанная на нативных тредах, хорошо масштабируется для тысяч параллельно выполняющихся стримов, но оказывается слишком тяжеловесной для современного реактивного программирования с сотнями тысяч параллельных потоков.


                                            Ответ на эту проблему — Project Loom. Он определяет и реализует в Java новые легковесные параллельные примитивы.


                                            Алан Бейтман, руководитель проекта OpenJDK Core Libraries Project, потратил большую часть последних лет на проектирование Loom таким образом, чтобы он естественно и органично вписывался в богатый набор существующих библиотек Java и парадигм программирования. Об этом он и рассказал на Joker 2020. Под катом — запись с английскими и русскими субтитрами и перевод его доклада.

                                            Читать дальше →

                                          Самое читаемое