IT-тренды 2024 года, ИИ — воришка паролей и секреты JavaScript: самое интересное в декабре
Последний взгляд в уходящий год, прежде чем оседлать зелёного дракона.
Иллюстрация: Оля Ежак для Skillbox Media
Если не брать бум на подведение итогов, в декабре в айтишной медиасфере всё было по-старому: СМИ писали о новых угрозах старого доброго Скайнета, программисты в своих блогах делились лайфхаками, а простые пользователи Reddit задавали непростые вопросы. Давайте посмотрим на самые интересные публикации месяца, чтобы отправиться в новый год с чистой совестью.
ИИ определяет пароль по звуку
Мы привыкли относиться к открытиям британских учёных скептически. Но последнее их достижение уже не вызывает ехидной ухмылки: они научили ИИ по звуку определять, какая кнопка клавиатуры была нажата. Достаточно положить рядом с компьютером смартфон, и можно попрощаться с приватностью.
В процессе обучения разработчики исследовали звук каждой клавиши с соответствующей буквой. Затем они набирали пароль и просили ИИ вычислить, какое слово было набрано. ИИ дал верный ответ в 95% случаев. После этого они повторили эксперимент во время видеозвонков в Zoom и Skype. В первом случае ИИ ответил с точностью 93%, во втором — 92%.
Любопытно, что при наборе текста десятью пальцами ИИ ошибался гораздо чаще. Также проблемы у ИИ возникали при использовании букв в верхнем и нижнем регистрах и специальных символов. Но наилучшую защиту обеспечивают менеджеры паролей, которые вставляют их автоматически.
Открыть публикациюКак ИИ-помощники меняют разработку
Программирование становится всё ближе к промптингу. Исследование опыта почти миллиона пользователей Copilot показало, что разработчики приняли в среднем около 30% его подсказок. Вместо написания кода с нуля программисты используют готовые шаблоны от ИИ, слегка адаптируя их под свои задачи.
«За последний год Copilot предложил более миллиарда строк кода, которые были затем использованы разработчиками. Внутри компьютеров работает код, сгенерированный стохастическим попугаем».
Томас Домке,
CEO GitHub. How AI assistants are already changing the way code gets made
В 2023 году команда экспертов GitHub и Microsoft провела небольшое исследование. Они попросили 95 человек создать веб-сервер и предоставили половине доступ к Copilot. Те, кто использовал Copilot, справились с задачей в среднем на 55% быстрее.
Мощный ИИ, который избавляет от необходимости гуглить, полезен, но изменит ли он игру? Мнения разделились. Марко Иансити, соучредитель Keystone Strategy и профессор Гарвардской школы бизнеса, сравнивает ИИ-ассистента с сеньор-разработчиком, который сидит рядом с вами и даёт ценные подсказки. Правда, каким бы мощным ни был ИИ, пока что он неспособен предлагать по-настоящему оригинальные решения, считает Джастин Готтшлих, CEO компании Merly, много лет работающий над автоматической генерацией кода:
«Нейросети в основном ограничены тем, что способен сделать человек-программист. Скорее всего, на данном этапе они никогда не смогут выдать что-то удивительное, выходящее за рамки того, на что способен человек».
Джастин Готтшлих,
CEO Merly
Пять главных трендов 2024 года
Своими прогнозами на грядущий год делились не только учёные, журналисты и айтишники, но и компании. Так, по мнению экспертов из Capgemini, в 2024 году пристальнее всего стоит следить за этими технологиями:
Генеративный ИИ. И нет, речь далеко не только о набившем оскомину ChatGPT. Помимо больших языковых моделей, будет расти число более компактных и экономичных. Благодаря им ИИ станет доступнее: теперь его смогут развивать компании без выдающегося железа и глубоких знаний в области ИИ.
Квантовые технологии и кибербезопасность. Развитие квантовых вычислений может стать головной болью для безопасников. Эксперты опасаются, что по мере развития квантовые компьютеры смогут подбирать ключи к любым, даже самым совершенным алгоритмам шифрования. Поэтому в будущем нам потребуется особая, квантовая криптография — именно над её стандартами сейчас работают американские учёные и законодатели.
Читайте также:
Полупроводники. Индустрия классических микропроцессоров тоже стоит на пороге больших перемен: ждём прорыва в 3D-стекинге чипов, инноваций в материаловедении и появления новых форм литографии для дальнейшего увеличения вычислительной мощности.
Аккумуляторы. Как сделать батареи более безопасными, ёмкими и дешёвыми в производстве? Это большой вопрос. Но есть и ответ: натрий-ионные и твердотельные технологии, которые, вероятно, станут активнее применяться в 2024 году. В случае успеха могут появиться более дешёвые, надёжные и безопасные батареи с большим сроком службы.
Космические технологии. В 2024 году человечество будет готовиться к возвращению на Луну. Рост интереса к покорению космоса может стимулировать научные открытия и помочь в решении важнейших проблем Земли, включая мониторинг климатических рисков и катастроф и улучшение доступа к телекоммуникациям.
Открыть публикациюПять HTML-атрибутов для улучшения доступности
«Скошенные бордюры», ARIA, и адаптивные ИИ-алгоритмы — это, конечно, круто, но никогда не поздно вернуться к истокам. Оказывается, простые советские HTML-атрибуты могут серьёзно улучшить пользовательский опыт и повысить доступность веб-интерфейса. А вы про них и думать забыли.
Открыть публикациюПишем свой JavaScript-фреймворк
Лучший способ понять, как устроены современные JS-фреймворки, — написать свой. Веб-разработчик из Salesforce Нолан Лоусон даёт пошаговое руководство, как это сделать. В процессе он объясняет, что такое реактивность, как и зачем клонировать DOM-дерево и что собой представляют современные JavaScript API.
Открыть публикацию21 секрет JavaScript
21 приём, который сделает из JS-мальчика настоящего JS-мужчину, а из JS-девочки — королеву фронтенда. Возьмём, например, вот этот код для обработки исключений:
И запишем его более лаконично с помощью оператора присваивания:
Большинство приёмов из статьи, конечно, немного «кэпские», но новичкам будет полезно.
Открыть публикациюА нужен ли вообще JavaScript?
Следующая статья получилась настолько спорной, что автор снабдил её предусмотрительным дисклеймером о том, что он не имеет ничего против JS, пишет на нём каждый день и вообще нежно обожает всеми фибрами души.
Оказывается, интересная особенность JavaScript в том, что без него иногда можно и обойтись. Ведь одна из основных заповедей программирования — выбирать наименее мощный язык, подходящий для конкретной цели. Если мы говорим про веб, то декларативные HTML и CSS предпочтительнее JavaScript, так как из коробки поддерживаются большинством браузеров.
Тем более что разработчики этих языков не сидят сложа руки и в них постепенно появляются такие фишки, которые раньше можно было реализовать только с помощью JavaScript. Например, опцию выбора цвета можно реализовать одной строкой:
Открыть публикациюФронтенд в 2023 году: главные тренды
Портал The New Stack выделил главные тенденции года в мире клиентской веб-разработки.
Next.js — впереди всех, но Astro «дышит в спину». Согласно отчёту Netlify, Next.js остаётся самым популярным фреймворком в сфере рендеринга сайтов: его использует почти половина (46%) респондентов. На втором месте в рейтинге оказался Gatsby — 25%, но он явно теряет позиции — только 44% его пользователей заявили, что продолжат применять его в 2024 году. Nuxt занял третье место с 20%.
Интеграция искусственного интеллекта от Vercel. Компания Vercel известна как один из главных трендсеттеров в мире веба. Вот и в прошлом году они не уронили планку и выкатили SDK для работы с ИИ, дав в руки разработчиков всю мощь генеративных нейросетей. Вскоре после его запуска в менеджере пакетов NPM было зафиксировано 40 000 еженедельных загрузок.
Облачные IDE набирают популярность. Согласно последнему опросу JetBrains, около половины респондентов занимались удалённой разработкой и из них 30% используют так называемые CDE — то есть облачные IDE. Наиболее распространённым CDE является GitHub Codespaces (42% респондентов).
Открыть публикациюМир зависит от древнего кода
Язык программирования 64-летней давности COBOL до сих пор активно используется в таких отраслях, как финансы, автомобилестроение, страхование, государственное управление, здравоохранение и финансы, сообщает PCMag. 43% всех банковских систем до сих пор используют COBOL, который ежедневно обрабатывает транзакции на сумму 3 трлн долларов, включая 95% всех операций с банкоматами в США и 80% всех операций с кредитными картами.
Читайте также:
Проблема в том, что COBOL давно уже нигде не преподают, и мало кто заинтересован в его самостоятельном изучении. «COBOL-ковбоев», старых программистов, владеющих языком, становится с каждым днём всё меньше. Фактически некому модернизировать существующие системы и переписать их на более современные языки.
Чтобы решить эту проблему, компания IBM даже выпустила ИИ-помощника watsonx, который помогает программистам преобразовать пыльные залежи COBOL-кода в чуть менее пыльный Java-код. Вот как это работает:
Открыть публикациюА что там на Reddit?
Книги по информатике, достойные внимания
В сабе r/compsci собрали список малоизвестных книг по информатике, которые действительно стоят внимания:
- Probabilistic Machine Learning
- The Art of the Metaobject Protocol
- Programming Pearls
- Computer Systems: A Programmer’s Perspective
- To Mock a Mockingbird and Other Logic Puzzles Including an Amazing Adventure in Combinatory Logic
Язык для повышения ЧСВ
По-настоящему важные вопросы задавали и в программистском сабе r/AskProgramming.
Так, пользователь с ником u/Turings-tacos попросил порекомендовать ему непонятный язык программирования, который не принесёт никаких денег в профессиональном плане, но, зная его, он сможет насмехаться над другими программистами и читать им лекции о его сложности, демонстрируя своё превосходство. Вот краткий список кандидатов:
Открыть обсуждениеЗачем нужно столько разработчиков?
Реддитор u/Defiant-Place-3092 поинтересовался, почему команде из 10 человек требуется пара месяцев, чтобы создать или клонировать приложение вроде Uber, но поддержкой занимаются сотни или тысячи разработчиков.
Больше всего пользователям понравилось такое объяснение:
«Допустим, я владелец сети ресторанов. Для того чтобы открыть сотни точек по всему миру, которые успешно интегрируются в местные условия, будут учитывать культурные особенности, привлекать местные ресурсы, управлять финансами и безопасностью и при этом соблюдать протоколы компании и логистику в масштабируемом режиме, требуется гораздо больше, чем умение приготовить сэндвич с курицей».
Совет для «тупых»
u/ubettersleep озвучил боль многих начинающих разработчиков: «Я слишком туп для программирования. Всякий раз, пытаясь выучить Python, я просто не могу ничего запомнить, сразу же всё забываю. Я слишком глуп».
Ему дали такой совет:
«Обращайся к источникам, гугли. Ты станешь гораздо лучшим программистом, если будешь знать, где искать, а не пытаться каждый раз вспоминать».
Почему сложно избавиться от JavaScript
u/codeaddict495 поинтересовался: «Если JavaScript настолько ужасен, почему его до сих пор не заменили другим языком?»
Причина, как считают пользователи «первой страницы интернета», в том, что это требует согласованных действий производителей всех основных браузеров. Кроме того, TypeScript отлично справляется с его заменой и не так ужасен.
Открыть обсуждениеКак появился первый компилятор
В сабе r/learnprogramming реддитор u/Healthy_Entry_1072 спросил: «Если код нужно компилировать, чтобы он работал, то как был запрограммирован первый компилятор?» И получил такое объяснение:
«Изначально вычислительные машины программировались путём перепрограммирования, в частности, с помощью переключателей и штепсельных плат. Позже, примерно в конце 1940-х годов, появились компьютеры, способные использовать хранимый код. Первоначально эти программы были в виде необработанного машинного кода, напечатанного на карточках или ленте. Потом появился ассемблер, на котором писались компиляторы для языков более высокого уровня».
Главное, чтобы человек хороший был
Реддитор u/datbeowulfisreal из немецкой компании рассказал новичкам, по каким критериям они набирают программистов.
«Мы создали базовый профиль, он описывает наши требования к тем, кого мы нанимаем. Возможно, вы удивитесь, но основные навыки программирования даже не входят в этот профиль. Речь идёт скорее о способности учиться, вникать в сложные проблемы и самостоятельно решать их. Также важно, какой вы человек. Вы должны вписаться в коллектив и обладать хорошими софт-скиллами. Я пишу это, чтобы вы понимали: в реальном мире написание кода — это лишь часть работы. Гораздо важнее умение самостоятельно разобраться в материале и быть порядочным человеком, чем способность легко решать сложные задачи по программированию».
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!