Программное обеспечение, а не оборудование, повлияет на производительность в эпоху искусственного интеллекта, поэтому Rust, Go, Swift и Dart могут стать лучшим вариантом для будущей карьеры разработчика.

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

  • Тенденция Мура (она же, пожалуйста, не называйте это законом) закончилась. Процессоры снова начнут расти физически: часть секретного соуса Apple A11 по сравнению с Qualcomm Snapdragon 835 может быть обнаружена на большей поверхности
  • Оптимизация - это источник повышения производительности, и она станет еще более важной задачей, чем раньше, поскольку оборудования больше не будет, чтобы покрывать недостатки программного обеспечения (о, кстати, мы могли бы есть новые системы с более низкими характеристиками из-за Meltdown and Spectre)
  • Возможна усталость оборудования. Поскольку постепенные улучшения в смартфонах и ноутбуках в основном связаны с обновленным дизайном и функциями камеры, оригинальным производителям необходимо будет улучшить свою игру, чтобы оправдать покупку новой версии гаджета, а именно:
  • Программные функции на основе искусственного интеллекта (для которых может просто потребоваться конкретный чип) - вот где производители гаджетов будут искать возможности для роста. Pixel 2 поддерживает эту тенденцию: более высокая оценка камеры в DxOMark больше не снижает ее.
  • Помощники на основе искусственного интеллекта и связанные с ними функции станут центральными: на данный момент кажется, что Google - лучший игрок на мобильных устройствах, а Alexa - в SmartHome. Siri от Apple на годы отстает от традиционных операторов, что поднимает вопрос, не вышла ли Apple на рынок слишком рано со своим AI-помощником - очень не связанный с работой шаг для компании, известной тем, что поздно пришла в игру с намерением получить ее идеально. Правильно. Что касается Samsung, кажется, что самая необходимая функция Bixby - это возможность переназначить кнопку, которая запускает его, на Google Assistant.
  • Если указанная выше тенденция сохранится, ожидайте появления помощника с открытым исходным кодом. Но ... как насчет исходных данных для обучения алгоритма машинного обучения? Хм, а что насчет такой распределенной системы, как эта?
  • Будет установлена ​​ОС на базе искусственного интеллекта. Введите Google Fuchsia, операционную систему, которая стремится стать новым Android, как для мобильных, так и для настольных компьютеров и мобильных устройств (это год конвергенции превратилось в новое это год настольного Linux »).

Фуксия выглядит очень интересно по нескольким причинам:

  • У него новая парадигма пользовательского интерфейса, основанная на ленте, подобной GoogleNow, организованной вокруг Историй и модулей: нужно увидеть, закончится ли это как знаменитый трагический переход Windows 10, когда они пытались удалить рабочий стол только для того, чтобы верните его вскоре после
  • Fuchsia - это чистый лист: это не Linux и не Unix. Он использует новое ядро ​​под названием Zircon, и поэтому он не должен иметь никаких устаревших «функций».
  • Fuchsia создается с использованием языков программирования, ориентированных на производительность, и будет поддерживать их (продвигая передовые методы кодирования). В частности, старые чудовища все еще существуют (C и C ++), но и новые классные дети тоже (Rust, Go и Swift). Кроме того, у него есть пользовательский интерфейс, построенный на Flutter, который использует статически типизированный язык программирования Dart.

Независимо от успеха Fuchsia (который, вероятно, будет выпущен в 2019 или 2020 году), я лично считаю, что это будет очень мудро для любого разработчика, который задается вопросом, что добавить в свой набор инструментов для разработчиков, чтобы в основном наблюдать, какой язык программирования поддерживает Fuchsia, и изучать его:

  • Вышесказанное не из-за слепой веры в ОС Google, а потому, что оно следует четкой схеме: интерпретируемые PL не выдержат испытания эпохой искусственного интеллекта, когда для обучения модели или выполнения основных вычислений и для самого переводчика места не останется. Конечно, мы не увидим конца подобным Java, Python и JavaScript, но для будущей карьеры я бы предпочел статически типизированных, скомпилированных парней.
  • Если вы работаете во FrontEnd, вам следует изучить TypeScript (используемый как в React, так и в Angular) и очень непредвзято относиться к Dart и Flutter для унификации мобильной кодовой базы (Ionic, Cordova и любые фреймворки на основе веб-просмотра не выдержат теста производительности. )
  • Кроме того, с предстоящим выпуском WebAssembly (новая цель компиляции для браузера) преобладание JavaScript, вероятно, уменьшится в течение следующих лет. Это не произойдет в одночасье: но если вы производитель смартфонов, пытающийся оптимизировать использование батареи, не заставите ли вы своих разработчиков внедрять более производительные технологии? (Кто-нибудь помнит что случилось с Flash?)
  • Если вы занимаетесь BackEnd Microservices, Go определенно должен быть частью вашего набора инструментов. Лично я считаю, что некоторые концепции Rust слишком сложны для серверной области, но, эй, безопасность прежде всего, верно?
  • Если вы занимаетесь IoT или встроенными системами, помимо обычных C и C ++, Rust должен быть на вашем горизонте.