11 прогнозов на будущее программирования

Единственное, что летит быстрее времени, - это прогресс технологий. Однажды после обеда друг, занимающийся разработкой микросхем, быстро извинился, ловко объяснив, что закон Мура означает, что он должен делать свой набор микросхем на 0,67% быстрее каждую неделю, даже во время отпуска. Если бы он этого не сделал, скорость чипов не удваивалась бы каждые два года.

Теперь, когда наступил 2017 год, пришло время подвести итоги предстоящих технологических изменений, хотя бы для того, чтобы помочь вам понять, на что делать ставку в развитии навыков программирования на будущее.

От растущей проблемы безопасности Интернета вещей до машинного обучения повсюду, будущее программирования становится все труднее предсказать.

Облако победит закон Мура

Есть скептики, которые утверждают, что компании-производители микросхем натолкнулись на стену. Они больше не увеличивают вдвое скорость чипа каждые два года, как это было в безмятежные годы 80-х и 90-х годов. Возможно - но это уже не имеет значения, потому что границы между чипами менее четко определены, чем когда-либо.

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

Но теперь процессор на вашем столе почти не отображает информацию на экране. Большая часть работы выполняется в облаке, где неясно, сколько хомяков работает на вашей работе. Когда вы выполняете поиск в Google, их огромное облако может выделить 10, 20 или даже 1000 хомяков, чтобы найти правильный ответ для вас.

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

Безопасность Интернета вещей станет только страшнее

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

Проблема в том, что нынешняя цепочка поставок гаджетов не имеет механизма исправления программного обеспечения. Жизненный цикл гаджета обычно начинается с долгого пути от завода-производителя до склада и, наконец, до пользователя. Обычно между сборкой и первым использованием не бывает до 10 месяцев. За эти долгие месяцы гаджеты отправляются на полмира. Они сидят в ящиках и ждут в транспортных контейнерах. Затем они размещаются на поддонах в больших коробочных магазинах или на складах. К тому времени, когда они распакованы, с ними могло случиться все, что угодно.

Задача состоит в том, чтобы все это отслеживать. Достаточно сложно обновлять батарейки в детекторах дыма каждый раз, когда меняются часы. Но теперь нам придется задуматься о нашей тостерной печи, сушилке для одежды и почти обо всем в доме. Актуально ли программное обеспечение? Были ли применены все исправления безопасности? Из-за количества устройств становится все труднее делать что-либо разумное для мониторинга домашней сети. К моему беспроводному маршрутизатору подключено более 30 устройств с IP-адресами, и я знаю имена только 24 из них. Если бы я хотел поддерживать умный брандмауэр, я бы сошел с ума, открывая правильные порты для правильных умных вещей.

Предоставление этим устройствам возможности запускать произвольный код - это и благословение, и проклятие. Если программисты хотят выполнять умные задачи и предоставить пользователям максимальную гибкость, платформы должны быть открытыми. Вот как процветает революция производителей и творчество с открытым исходным кодом. Но это также дает вирусописателям больше возможностей, чем когда-либо прежде. Все, что им нужно сделать, это найти одну марку виджетов, которая не обновляла конкретный драйвер - вуаля, они нашли миллионы виджетов, подготовленных для размещения ботов.

Видео будет доминировать в Интернете по-новому

Когда комитет по стандартам HTML начал встраивать теги видео в сам HTML, у них, вероятно, не было грандиозных планов переделывать развлечения. Вероятно, они хотели только решить проблемы с плагинами. Но основные теги видео реагируют на команды JavaScript, что делает их по существу программируемыми.

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

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

На многих из самых привлекательных веб-сайтов уже есть видео, размещенное в умных местах. Скоро они все захотят переместить вещи. Недостаточно поставить IMGметку с файлом JPEG. Вам нужно будет захватить видео - и решить проблемы стандартов, которые фрагментировали мир браузеров.

Консоли продолжат заменять ПК

На игровые приставки сложно сердиться. Игры отличные, а графика потрясающая. Они создали отличные видеокарты и относительно стабильные программные платформы, чтобы мы могли расслабиться в гостиной и мечтать о том, чтобы стрелять в плохих парней или бросать футбольный мяч.

Консоли для гостиной - это только начало. По тому же пути идут и создатели предметов для остальной части дома. Они могли бы выбрать экосистему с открытым исходным кодом, но производители создают свои собственные закрытые платформы.

Это фрагментирует рынок, и программистам становится сложнее все исправить. То, что работает на одном выключателе света, не работает на другом. Фен может работать по тому же протоколу, что и тостер, но, вероятно, этого не произойдет. Программистам нужно больше работать, чтобы разобраться, и меньше возможностей повторно использовать нашу работу.

Данные останутся королем

После президентских выборов в США в 2016 году эксперты-аналитики высмеивали ученых мужей, занимавшихся сбором данных, предполагая, что весь их статистический анализ был проявлением глупости. Прогнозы были совершенно неверными, и люди, занимающиеся большими данными, выглядели плохо.

Как они пришли к такому выводу? Сравнивая один набор чисел (прогнозы) с другим набором чисел (результаты выборов). Им по-прежнему нужны данные.

Данные - это то, как мы видим в Интернете. Свет приносит нам информацию о реальном мире, а цифры говорят нам обо всем в Интернете. Некоторые люди могут делать плохие прогнозы, основываясь на несовершенных числах, но это не значит, что мы должны прекратить собирать и интерпретировать числа.

Сбор, сопоставление, обработка и анализ данных по-прежнему будут одной из наиболее важных задач для предприятия. Лица, принимающие решения, нуждаются в цифрах, а перед программистами по-прежнему будет стоять задача доставлять данные в более понятном виде. Это не значит, что ответы будут идеальными. Контекст и интуиция по-прежнему будут иметь значение, но необходимость разбирать данные не исчезнет просто потому, что некоторые люди предсказывали, что Дональд Трамп не будет избран. Это означает, что программистам потребуется больше работы, поскольку нам не предвидится конца нашей потребности создавать более крупное, быстрое и более емкое программное обеспечение.

Машинное обучение станет новой стандартной функцией

Когда дети в колледже проходят курс под названием «Структуры данных», они узнают, на что была похожа жизнь, когда их дедушка и бабушка писали код и не могли полагаться на существование слоя под названием «база данных». Настоящие программисты должны были хранить, сортировать и объединять таблицы, заполненные данными, без помощи Oracle, MySQL или MongoDB.

Алгоритмам машинного обучения осталось несколько лет до такого скачка. Прямо сейчас программистам и специалистам по обработке данных необходимо писать большую часть собственного кода для выполнения сложного анализа. Вскоре такие языки, как R, и некоторые из самых умных инструментов бизнес-аналитики перестанут быть особенными и станут обычным явлением в большинстве программных стеков. Они превратятся из четырех или пяти специальных слайдов в презентацию PowerPoint в небольшой прямоугольник на архитектурном чертеже, который считается само собой разумеющимся.

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

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

С каждым днем ​​кажется, что у вас на одну причину все меньше и меньше. После появления смартфонов, консолей для гостиной и планшетов единственные люди, которые все еще цепляются за ПК, - это офисные работники и студенты, которым нужно сдать задание.

Это может быть проблемой для программистов. Раньше было легко предположить, что пользователи программного обеспечения или веб-сайтов будут иметь клавиатуру и мышь. Сейчас у многих пользователей этого нет. Пользователи смартфонов сжимают пальцы в стеклянном экране, на котором едва помещаются все 26 букв. Пользователи консоли нажимают клавиши со стрелками на пульте дистанционного управления.

Создание веб-сайтов становится все сложнее, потому что событие касания немного отличается от события щелчка. Пользователи имеют разную степень точности, а экраны сильно различаются по размеру. Нелегко все исправить, и в ближайшие годы ситуация будет только ухудшаться.

Конец открытости

Уход ПК - это не только медленная смерть определенного форм-фактора. Это смерть особенно открытого и гостеприимного рынка. Смерть ПК будет закрытием возможностей.

Когда ПК впервые были отгружены, программист мог компилировать код, копировать его на диски, складывать эти диски в пакеты с застежкой-молнией, и мир мог их купить. Не было ни посредника, ни привратника, ни суровой центральной силы, которая просила бы нас сказать: «Мама, можно?»

Консоли плотно заблокированы. Никто не попадает на этот рынок без вложения капитала. Магазины приложений немного более открыты, но они по-прежнему обнесены стенами, ограничивающими наши возможности. Конечно, они по-прежнему открыты для программистов, которые прыгают через правильные пути, но любого, кто сделает неверный ход, можно бросить. (Почему-то они всегда откладывают наши приложения, пока вредоносное ПО проскальзывает. Поймите.)

Это различие важно для открытого исходного кода. Дело не только в продаже дискет в мешках. Мы теряем возможность совместно использовать код, потому что теряем возможность компилировать и запускать код. Конец ПК - это большая часть конца открытости. На данный момент у большинства людей, читающих это, вероятно, есть приличный рабочий стол, который может компилировать и запускать код, но это медленно меняется.

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

Автономный транспорт здесь, чтобы остаться

Это не только автомобили. Некоторые хотят создавать автономные самолеты, которые не обременены дорогами. Другие хотят создавать автономные скейтборды для очень легких путешествий. Если он двигается, какой-то хакер мечтает сказать ему, куда идти.

Программисты не будут контролировать то, что люди видят на экране. Они будут контролировать, куда люди идут и как они взаимодействуют с миром. А люди - только часть игры. Все наши вещи также будут двигаться автономно.

Если вы хотите пообедать от известного шеф-повара в центре города, автономный скейтборд с отапливаемой камерой может принести его к вам домой. Если вы хотите, чтобы газон был подстрижен, автономная газонокосилка заменит соседского ребенка.

И программисты могут использовать все крутые идеи, которые у них возникли во время первой интернет-революции. Если вы думали, что всплывающая реклама - это плохо в Интернете, подождите, пока программистам заплатят, чтобы они отвлекли ваши автономные роликовые коньки от кухонного отверстия нового ресторана. Еще не голодны?

Закон найдет новые пределы

Едва высохли чернила на Билле о правах, когда начались дебаты о том, что значит разумный поиск наших бумаг. Сейчас, более 200 лет спустя, мы все еще обсуждаем детали.

Изменения в технологиях открывают новые возможности для закона. Несколько лет назад Верховный суд постановил, что технология отслеживания транспортных средств требует ордера. Но это только тогда, когда полиция устанавливает трекер в машину. Никто точно не знает, какие правила применяются, когда кто-то запрашивает данные отслеживания из Waze, Google Maps или любого из сотен других приложений, которые кэшируют наши местоположения.

А как насчет того, чтобы повлиять на работу машин? Одно дело загружать данные, но ужасно соблазнительно и их изменить. Справедливо ли для полиции (или частных лиц) подделывать документы, заголовки или биты? Имеет ли значение, являются ли цели настоящими террористами или просто людьми, которые слишком долго припарковались в месте, запрещенном для парковки, и не включили счетчик?