Про будущее

Чёт вот когда разбросом новости, не так ощущаешь дыхание в спину, зато после сбора в голове понимаешь, что вот же, вот на носу уже всё почти и скоро (хорошо, почти скоро) мир программирования разделится на олдовых «а подайте мне консоль, я в ней веб-сервис напишу» и ньюфагов «пацаны, хреновая ДНК, давайте другую ща с орбитального хранения, я на шприц чихнул».
Полюбуйтесь на подборку последних двух-трёх лет. Обратите внимание на расстояние, что осталось до выхода в массу. Штучно и очень дорого оно всё на уровне подземных НИИ давно, но вот так близко к тому, чтобы на столах стоять… не-а.

Во-первых, ДНК превращаются в носители записываемой человеком информации. Над этим, например, бодро работает Microsoft, решивший (-ая?) забавы ради в обозримом будущем на ДНК устроить целый облачный ДЦ. Новости как новости, этим уже никого не удивить. То немножко лошадки записали, то упаковали фильм, OS и ещё стопку барахла.
Во-вторых, из подземелий вырвались квантовые компьютеры. О них и так постоянно жужжат, но я обратил внимание на интересный рывок технологий: Intel выпустил 17-кубитный квантовый чип. Небольшой. Почти массовый. 17-кубитный, Карл. Размером с обычный процессор. Ну ок. Программирование для таких железок категорически отличается от «обычного» и привычного. Задачи решаются тоже весьма специфические. Но чем дальше в лес, тем дешевле и толще будут эти партизаны. Уже при нашей жизни на каком-нибудь HH будут вакансии «опыт квантовой работы от 2-х лет».
В-третьих, давно работают над тем, чтобы объектами программирования стали клетки. И вот уже что-то, похожее на будущий production: программируют бактерию. Собсно, уже в 2012 году был заявлен (а в 2014 выдан) патент на протеиновый транзистор (а где стопка транзисторов, там и процессор, ага).
В-четвёртых, сразу дам зонтичную ссылку на всё, что касается BCI: Brain-computer interface. Тут занятное следующее… мы сейчас пишем код, который обеспечивает взаимодействие либо компьютер-компьютер, либо компьютер-человек, где под «человеком» подразумеваются органы чувств (да и то с нюхом как были проблемы, так и остались). Потому наши библиотеки оперируют «цвет», «размерности», «сила нажатия» и т.п. А тут фигак-с и мозг. Как будут выглядеть библиотеки работы с мозгом?
В-пятых, даже ссылки давать не буду. Достаточно того, что в сервисах AWS вполне штатно теперь включены всякие нейросети и прочее для пользователей. Важно то, как глубоко и широко входят в жизнь нейросети. Они уже везде. Будут ещё больше везде. И дальше можно предположить следующее:

  • AI всё-таки отберёт у программистов рутину и будет овердофига генерировать сам там, где не требуется большая производительность (тем самым может отсечь класс джуниоров и любителей напрочь с рынка).
  • AI сам по себе породит большой рынок труда, который будет выглядеть как «за 1 день и 100$ нужен чувак, который научит сеть Alpha 2050 следить за жопой моего кота». Отдельный класс языков программирования, отдельные специалисты.
  • AI жёстко разделит рынок на тех, кто смог головой осилить работу с AI, и тех, кто не смог. Скорее, социальное следствие, которое может интересно перевернуть программистов. Кто не смог, тот уйдёт разрабатывать калькуляторы, а новая волна не будет напоминать нас ничем.

Как-то так.

В-шестых, тоже без ссылок, просто размышления. Уже давно созданы (как минимум, в США) всякие комитеты по этике роботов и прочему. И уже давно юристы прорабатывают будущее, в котором кто-то, но должен будет ответить за то, что автомобиль без водителя кого-то убил. В целом компьютерные системы окружают и всё более автономны. Как изменится мир программистов, если бага в коде может означать пять лет за решёткой? Экспертная система выписала не то лекарство. Мобиль наехал на остановку. Пожаротушение решило не тушить. Никотиновый имплант впорол тройную дозу в плечо. И т.п. Всегда кто-то должен ответить. Компьютеры ближе к человеческому телу и ближе к ситуациям риска для здоровья. Вы уже не сможете забивать на тесты. Не сможете выпускать JVM с сотнями ошибок. И прототипы мало кого будут интересовать. И захотите ли перепрошить имплант мозга тем, что сделали гаражные чуваки под аджайлом? Вангую ещё более злое разделение разработки на суровый хардкор (с жестокими методологиями, математически проверенными компиляторами, 146% покрытием тестами и прочим) и «пацанчики играют в программистов». Будет весело.

Пока ленитесь узнавать о новых фичах новых языков, мир перешагивает порог потомков ALGOL. И если вам с таким трудом удаётся удержаться сейчас, как в будущее попадёте?

Кратко про интерес

Есть категория разработчиков, которая делает что-либо лишь если тому есть явная причина. Не делают ничего ради «интереса». Есть задача?
Узнаю ровно по задаче. Есть требования? Узнаю ровно по требования. Ни шагу дальше, ни шагу глубже. Вот это плохо.
Хороший специалист — тот, которому интересна его специальность. Понятия не имею, нафига в резюме пишут «увлекаюсь подводными лыжами и выращиваю хамелеона», работодателю на ваши внерабочие интересы обычно как-то с высокой башни (но да, кому-то, быть может, приятно узнать, что существует такая разносторонняя личность в природе). Среди главного именно интерес к программированию. Как это работает? Как это написано? А что будет, если вот так повернуть? А что в мире нового? А почему отказались от старого? А как делались успешные продукты? А почему провалились неуспешные? И ещё миллион вопросов, на которые вы сами захотите искать ответы безо всякого пинка извне.
Ваша любовь к лыжам вас точно не спасёт, если… ну вот если вы джавист и ни разу не посмотрели в исходник JDK. Ну или питонист без любопытства к исходнику Python. Такое игнорирование так ёмко характеризует человека, что не знаешь, как дальше продолжать. Программист, не знающий, как работают базовые классы / функции его основного языка, мало кому интересен из тех, кто интересен ему. Он вообще не программист обычно. Типовой разработчик класса «руки, которым диктуешь задачу от строчки до строчки». Страха и ужаса в этом нет, но автоматически задаёт потолок всего от задач до зарплаты.
Также хочется в таких случаях посмотреть в глаза и спросить: зачем в профессию пошёл? Не любишь ведь. Деньги, наверное, любишь. Непыльную (разве что с учебника, который годами с полки не достаётся) работу. Офис с печеньками. Постоянный кусок масла на буханке хлеба. А программирование не любишь. Зря. Очень чувствительная к такому отношению профессия. И знали бы вы, как здорово выделяются на таком вот фоне бойцы, действительно по сердцу выбравшие. Как вот ромашки на асфальте.
Становитесь ромашками. Программирование бесконечно, каждый разумный найдёт в нём себя.

Лучшие ошибки софта V

В какой-то мере это ошибка и софта, потому включаю: Intel в 90-х умудрилась выпустить в процессорах Pentium ошибку деления над числами с плавающей запятой. В историю вошло как Pentium FDIV bug и обошлось в результате в $475M — процессоры не пропатчить, пришлось отзывать. Как аукнулись репутационные риски — не подсчитать, но наверняка в AMD за происходящим следили с большим интересом. Характерно, что в Intel знали о проблеме, но как-то… не считали её важной для рынка. Подумаешь, ошибочка. Кто будет страдать, тому камушек и заменим. Но малой кровью обойтись не получилось.

27 марта 2008 года в Хитроу открывали терминал №5. Тут же (хорошо, не прям вот тут же, успели отменить 34 рейса, но) закрыли, потеряв £16M, багаж, пассажиров и нервных клеток без счёта. Сложно тут выделить одну ошибку. Официальные лица говорят, что не успели дотестировать, выкатили всё в сжатые сроки, жизнь отличается от тестирования и т.д. Вроде бы и да. Но кейс «вручную убрать зарегистрированный багаж из системы» можно было и до релиза проверить, а не обнаружить, что он завешивает всё. Надо сказать, битый воробей лучше двух небитых ворон — с 2012 года терминал уже пять раз получил Skytrax World Airport Awards как лучший терминал в мире.

Самую забавную ошибку допустил Роберт Моррис в 1988 году. Вы Роберт. Вы написали вирус, который должен атаковать только VAX-компьютеры, а также с разумной периодичностью решать, плодиться ему или нет. Запускаете. Для подсчёта разумной периодичности слишком маленькое число, для VAX слишком портируемый код. Потому под ударом оказались 6K+ узлов тогда ещё ARPANET (энто как сейчас половину интернета заразить), ущерб на $100M, суд, условные 3 года, штраф на $10K, 400 часов общественных работ. А также попадание в историю. Кстати, Роберт не приуныл. Далее это соавтор будущего Yahoo! Store, соучредитель Y Combinator и вообще профессор в MIT.

В начале января 2010 года банковскую систему Австралии поразил неприятный баг (который в СМИ описывался как «вот то, что могло быть в 2000!») — условная «система» решила, что наступил 2016 год и потому миллионы кредитных карточек просрочены. В основном страдал Bank of Queensland, но задело и остальных. Ущерб не подсчитать. И вот тут меня накрыло дежавю. Полистал архивы. Точно. В начале 2010 года с миллионами карточек влетели и немцы. Плохой, плохой год.

Каждый опытный программист знает, что плохо написанные сервера надо часто ребутать. В какой-то момент этот опыт переняли и эксплуататоры Боинга 787. Смешно (немножко страшно тоже, впрочем), но его надо было ребутать раз в 248 дней, т.к. [по догадкам] система контроля содержала integer overflow (248 дней в секундах не помещаются в int). Вы этого не знали, потому не боялись. А теперь можно подумать ещё и о том, как такие баги проходят через жесточайшие этапы тестирования в Боинге.

Внеплановым шестым абзацем списка опишу не багу. Наверняка банальный человеческий фактор, но любопытен тем, как ошибки всё более глобализуются и входят в быт. В 2015 году в IT-департаменте Starbucks кто-то удалил одну таблицу. После чего бариста в кофейнях США и Канады три часа не могли воспользоваться терминалами. Напитки при этом отпускали (ура пятнице!). Сторонняя оценка утверждает, что потери составили несколько миллионов долларов. Можно также ещё подумать об ответственности разработчиков и админов — любой твой шаг аукнется на всю планету, а пользователь тут же ощутит это, находясь на другом континенте.

Книги: Киберпреступник №1

Киберпреступник №1
Ник Билтон.
Киберпреступник №1. История создателя подпольной сетевой империи.
Эксмо, 2017.
Биография создателя и владельца Silk Road — Амазона для наркотиков, оружия и всякого нехорошего.
Не могу понять, понравилась ли книга. Ожидал более технического повествования о том, как функционирует Даркнет, какие были разработческие сложности с такой биржей и т.п. А нет. Есть типично журналистский массовый текст, пусть и основанный на множестве фактов. Массовость повлекла за собою почти художественный результат с историями чувств, лирическими описаниями природы, акцентом на отношениях героев, бла-бла. Ещё бы шаг и книга не попала бы в блог. Однако… чёт вот полезное есть. Можно сказать, история стартапа. Фиговенького этически, но. Как пришёл к идее. Как пытался реализовать. Как реализовал, поддерживал. Сталкивался с трудностями и разруливал их (или не разруливал). Как набрал коллектив. Наконец, как ловят таких вот бойцов (вот это наиболее близкая блогу часть истории), а если не ловят, то почему.
Если вам подобное любопытно, читайте. Из свежего ничего иного нет.