Теги → язык
Быстрый переход

Четверть века: языку Java исполнилось 25 лет

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

Свою историю Java ведёт с 1991 года. Именно тогда группа разработчиков компании Sun Microsystems (впоследствии поглощённой корпорацией Oracle) под руководством Джеймса Гослинга (James Gosling) приступила к созданию языка Oak для использования в цифровых бытовых устройствах. Спустя год участники проекта представили первый прототип, демонстрирующий возможности нового платформенно-независимого языка программирования, ключевую роль в последующем развитии которого сыграли интернет-технологии.

В 1995 году язык Oak был переименован в Java и приобрёл широкую известность благодаря включению виртуальной машины Java Virtual Machine (JVM) в браузер Netscape. С этого момента популярность Java, который мог работать совершенно одинаково на разных аппаратных платформах вне зависимости от используемой в них машинной архитектуры, стала расти огромными темпами, а сам язык нашёл применение практически во всех областях IT-индустрии. Java работает и в марсоходах NASA, и в большом адронном коллайдере. А в повседневной жизни нас окружают компьютеры, мобильные устройства, медиаплееры и даже смарт-карты, также работающие на Java.

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

Автор объектно-ориентированного и кроссплатформенного языка программирования Java Джеймс Гослинг (источник фото: liquid-robotics.com)

Автор объектно-ориентированного и кроссплатформенного языка программирования Java Джеймс Гослинг (источник фото: liquid-robotics.com)

«Полезно оценить достигнутое за 25 лет, но мы двигаемся вперёд и нацелены развивать инновации Java и в будущем. А миллионы Java-разработчиков продолжат создавать приложения, формирующие мир вокруг нас, — от развлечений до ядерной физики, социальных сетей и поиска жизни на Марсе,говорится в заявлении компании Oracle.  Спустя четверть века мы видим огромные позитивные изменения в нашей жизни, которые произошли благодаря Java. И ожидаем, что следующие 25 лет — и далее — будут такими же яркими и насыщенными. Наш мир становится лучше благодаря Java».

В честь юбилея компания Oracle разработала специальный сайт oracle.com/java/moved-by-java, повествующий об истории, настоящем и будущем языка Java.

Язык программирования C вновь стал самым популярным среди разработчиков

Компания TIOBE Software опубликовала обновлённый рейтинг популярности языков программирования, формируемый на основе анализа статистики поисковых запросов в Google, Google Blogs, Yahoo!, Wikipedia, MSN, YouTube, Bing, Amazon, Baidu и других интернет-сервисах.

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

Что касается остальных представленных в списке языков программирования, то неплохую динамику роста и всплеск интереса со стороны заинтересованной аудитории в течение года продемонстрировали языки R, Swift, Go, PL/SQL и Scratch. Реже в Интернете стали упоминаться ассемблер, Perl и Objective-C.

С полным отчётом TIOBE Software можно ознакомиться по ссылке tiobe.com/tiobe-index.

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

Slashdata: 60 % разработчиков ПО вносят свой вклад в проекты с открытым исходным кодом

Компания Slashdata провела исследование, в рамках которого были опрошены 17 000 разработчиков из разных стран мира, чтобы понять, что думают программисты об открытом исходном коде, будущем языка Kotlin и тенденциях развития новых технологий.

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

Язык Kotlin доказывает свою состоятельность, когда речь заходит о разработке Android-приложений, а также всё чаще становится заменой Java. В отчёте отмечается, что за последние два года разработчики стали использовать Kotlin в два раза чаще. Согласно имеющимся данным, JavaScript лидирует среди веб-разработчиков, Python активно применяется в широком спектре направлений, в том числе в сфере машинного обучения, а языки Go и Ruby используются при разработке софтверных решений для облачных систем.

Отмечается первостепенная важность программного обеспечения с открытым исходным кодом. Проведённый Slashdata опрос показал, что разработчики положительно относятся к программному обеспечению с открытым исходным кодом и принимают участие в его развитии. В отчёте сказано, что 60 % участников опроса сообщили о том, что участвуют в разработке ПО с открытым исходным кодом. При этом 29 % разработчиков участвуют в таких проектах для улучшения собственных навыков кодирования, 22 % программистов вносят свой вклад, поскольку им просто нравится это, и только в 3 процентах случаев специалисты работают из-за денег.

В Google Translate добавлено пять новых языков

Команда разработчиков онлайн-переводчика Google Translate сообщила о расширении функциональных возможностей сервиса и включении поддержки новых языков, в числе которых — татарский, туркменский, уйгурский, руанда и ория (одия).

Сообщается, что на каждом из пяти добавленных языков с помощью Google Translate можно переводить как тексты, так и сайты. Для татарского, уйгурского и руанда доступна ещё и виртуальная клавиатура. Всего в настоящий момент сервис поддерживает 108 языков.

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

В развитии Google Translate принимают участие как профессиональные лингвисты и эксперты в области языкознания, так и сами пользователи, которые могут предлагать собственные варианты переводов. На данный момент сообщество сервиса насчитывает свыше 3,5 млн активных участников.

Xiaomi Mijia Translator: карманный переводчик в формате смартфона с шестью микрофонами

Стартовали продажи устройства Xiaomi Mijia Translator — карманного переводчика, внешне напоминающего традиционный Android-смартфон моноблочного типа.

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

Обработанные фразы отображаются на 4,1-дюймовом IPS-дисплее с разрешением 1280 × 720 точек (формат HD). В тыльной части корпуса установлена 8-мегапиксельная камера: с её помощью можно делать снимки текста на незнакомом языке и быстро переводить их.

Аппарат оснащён адаптером беспроводной связи Wi-Fi и слотом для SIM-карты, что позволяет подключаться к Интернету через компьютерную или сотовую сеть.

Прочее оснащение включает 1 Гбайт оперативной памяти, флеш-накопитель вместимостью 8 Гбайт и аккумуляторную батарею ёмкостью 3000 мА·ч с подзарядкой через порт USB Type-C.

На устройстве применяется операционная система Android 8.1 Oreo Go Edition. Цена Xiaomi Mijia Translator составляет около 180 долларов США. 

IEEE Spectrum опубликовал рейтинг языков программирования

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

Журнал IEEE Spectrum выпустил собственный рейтинг языков программирования в 2019 году

Журнал IEEE Spectrum выпустил рейтинг языков программирования в 2019 году

Данный подход позволяет обойти два фундаментальных препятствия на пути любых попыток определить популярность языков программирования: во-первых, никто не может на самом деле посмотреть через плечо каждого программиста по всему миру, когда они садятся за работу, и во-вторых, язык, являющийся краеугольным камнем одной области программирования, может быть совершенно неуместен в другой. Spectrum в своём рейтинге использует 11 метрик и данные из 8 источников. Затем издание применяет для обработки полученных результатов ряд весовых коэффициентов, которые оптимизированы, например, и для тех читателей, кто ищет новую работу, или для тех, кто хочет погрузиться в сторонний проект с открытым исходным кодом. Иначе говоря, коэффициенты созданы с учетом типичного читателя журнала Spectrum, и потому данный рейтинг несколько отличается от его аналогов, поэтому давайте посмотрим, что у них получилось.

Хотя изменения в весовых коэффициентах означают, что мы должны быть осторожны при непосредственном сравнении рейтингов этого года с прошлогодними, общая картина не подверглась значительным изменениям: Python уверенно лидирует. Его популярность в немалой степени обусловлена огромным количеством доступных специализированных библиотек, особенно в области искусственного интеллекта и машинного обучения, например, Keras, которая является одним из наиболее мощных решений для глубокого обучения, предоставляя интерфейсы для TensorFlow, CNTK и Theano. Что интересно, глубокое обучение — не единственная область, где Python установил своё превосходство, которого нельзя было предсказать на момент, когда язык был впервые выпущен в 1991 году. Резкое увеличение вычислительной мощности микроконтроллеров привело к тому, что встроенные версии Python, такие как CircuitPython и MicroPython, также становятся всё более популярными среди производителей.

Далее в рейтинге идут Java, C и C++, группа языков, члены которой давно боролись друг с другом и с Python за первое место, хотя с новыми скорректированными коэффициентами расстояние между этими соперниками увеличилось, например, C++ набрал на целых 12,5 балла меньше, чем Python по 100 бальной шкале. Хрустящий цифрами язык R завершает пятерку лучших. Несмотря на то, что он является гораздо более специализированным языком, чем другие, он сохраняет свою популярность в последние годы благодаря тому, что мир испытывает постоянно растущую необходимость в обработке больших наборов данных, а R чувствует себя в таких задачах просто замечательно.

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

Ниже первого десятка в рейтинге расположились Arduino под номером 11 и HTML/CSS под номером 12. В предыдущие годы некоторые читатели Spectrum жаловались, что ни один из них не должен появляться в списке языков программирования. В случае с Arduino аргумент состоит в том, что такого языка просто не существует, что на самом деле это семейство аппаратных платформ, на которых работает специальный язык, который должен называться Wiring (а иногда C или C++). Здесь в Spectrum руководствуются простым прагматизмом: сталкиваясь с вопросом программирования устройств на Arduino, подавляющее большинство разработчиков отправляют в Google такие запросы, как «Arduino Code for…», а не, например, «Wiring Code for…». Выбирая имя де-факто, в издании решили избегать сбрасывания со счёта популярности тех или иных платформ и программ, написанных для Arduino и подобных микроконтроллеров.

Точно такого же подхода Spectrum придерживаются касаемо HTML с возражениями о том, что это не настоящий язык программирования, так как он не имеет ветвлений или циклических конструкций. Но, учитывая огромную популярность HTML и CSS среди разработчиков, и тот факт, что они применяются в миллиардах программных продуктов, издание считает, что любые академические аргументы о полноте по Тьюрингу и т. д. не имеют тут никакого значения. Язык разметки остается языком.

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

«Rust — будущее системного программирования, С — новый Ассемблер» — выступление одного из ведущих инженеров Intel

На недавно прошедшем Саммите по технологиям с открытым исходным кодом (Open Source Technology Summi — OSTS) Джош Триплетт (Josh Triplett), ведущий инженер Intel, рассказал о том, что его компания заинтересована в том, чтобы в ближайшем будущем Rust достиг «паритета» со всё ещё доминирующим в области системной и низкоуровневой разработки языком C. В своём выступлении под заголовком «Intel и Rust: будущее системного программирования» он также рассказал об истории системного программирования, о том, как C стал языком системного программирования «по умолчанию», какие возможности Rust дают ему преимущество над C и как в ближайшем будущем он сможет полностью заменить C в данной области программирования.

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

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

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

В прошлом большинство системных программ, в том числе BIOS, загрузчики и прошивки, писались на языке ассемблера. В 1960-х годах начались эксперименты по обеспечению аппаратной поддержки языков высокого уровня, что привело к созданию таких языков, как PL/S, BLISS, BCPL и ALGOL 68.

Затем, в 1970-х годах, Деннис Ритчи (Dennis Ritchie) создал язык программирования C (Си) для операционной системы Unix. Созданный на языке программирования B, не имевшим даже поддержки типизации, C был наполнен мощными высокоуровневыми функциями, которые лучше всего подходили для написания операционных систем и драйверов. Несколько компонентов UNIX, включая его ядро, были в конечном итоге переписаны на C. В дальнейшем многие другие системные программы, включая базу данных Oracle, большую часть исходного кода Windows и операционную систему Linux, были также написаны на C.

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

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

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

Триплетт на конференции Rustconf 2019, проходившей в Портленде, штат Орегон, США.

Триплетт на конференции Rustconf 2019, проходившей в Портленде

Триплетт считает, что C сейчас становится тем, чем был язык ассемблера много лет назад. «С — это новый Ассемблер», — заявляет он. Теперь разработчики ищут новый язык высокого уровня, который не только решит накопившиеся в C проблемы, исправить которые уже невозможно, но и также предложит новые впечатляющие возможности. Такой язык должен быть достаточно убедительным, чтобы заставить разработчиков перейти на него, должен быть безопасным, обеспечивать автоматическое управление памятью и многое другое.

«Любой язык, который хочет быть лучше, чем C, должен предлагать гораздо больше, чем просто защиту от переполнения буфера, если он действительно хочет стать убедительной альтернативой. Разработчики заинтересованы в удобстве использования и производительности, в написании кода, который не требует пояснений и выполняет больше работы за меньшее количество строк. Также необходимо решить проблемы безопасности. Простота использования и производительность неразрывно с нею связаны. Чем меньше кода вам нужно написать для достижения чего-либо, тем меньше у вас возможностей, чтобы допустить какие-либо ошибки, связанные с безопасностью или нет», — объясняет Триплетт.

Сравнение Rust и C

Ещё в 2006 году Грейдон Хоар (Graydon Hoare), сотрудник Mozilla, начал писать Rust как личный проект. А в 2009 году Mozilla начала спонсировать разработку Rust для собственных нужд, а также расширила команду для дальнейшего развития языка.

Одна из причин, по которой Mozilla заинтересовалась в новом языке, заключается в том, что Firefox был написан на более чем 4 миллионах строк кода C++ и имел довольно много критических уязвимостей. Rust был создан с учетом требований безопасности и параллелизма, что делает его идеальным выбором для переписывания многих компонентов Firefox в рамках проекта Quantum по полной переработке архитектуры браузера. Также Mozilla использует Rust для разработки Servo, движка рендеринга HTML, который в будущем заменит текущий движок рендеринга Firefox. Многие другие компании начали использовать Rust для своих проектов, включая Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu и многие другие.

Rust решает одну из наиболее важных проблем языка C. Он предлагает автоматическое управление памятью, поэтому разработчикам не нужно вручную выделять, а затем освобождать её для каждого объекта в приложении. Что отличает Rust от других современных языков, так это то, что он не имеет сборщика мусора, который автоматически удаляет из памяти неиспользуемые объекты, а также среды выполнения, необходимой для его работы, как, например, Java Runtime Environment для Java. Вместо этого у Rust есть концепции владения, заимствования, ссылок и времени жизни. «В Rust есть система декларирования вызовов объекта, позволяющая указать, использует ли его владелец или это просто заимствование. Если вы просто заимствуете объект, компилятор будет следить за этим и гарантировать, что оригинал останется на месте, пока вы ссылаетесь на него. А также Rust проследит, что объект будет удалён из памяти сразу по завершении его использования, вставляя соответствующий вызов в код во время компиляции без дополнительных затрат времени», — рассказывает Триплетт.

Отсутствие собственной среды выполнения также можно считать положительной чертой Rust. Триплетт считает, что языки, которые выполняются с её помощью, сложно использовать в качестве инструмента для системного программирования. Как он поясняет: «Вы должны инициализировать эту среду выполнения, прежде чем сможете вызвать любой код, вы должны использовать эту среду выполнения для вызова функций, и сама среда выполнения может запускать дополнительный код за вашей спиной в неожиданные моменты времени».

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

Все эти функции делают Rust достаточно убедительным, чтобы разработчики смогли выбрать его как новый инструмент для системного программирования. Однако, с точки зрения параллельных вычислений Rust пока ещё немного отстаёт от C.

Триплетт собирается создать специальную рабочую группу, которая займётся внедрением в Rust необходимых функцией, чтобы он смог полностью сравняться, превзойти и заменить C в области системного программирования. В теме на Reddit, посвящённой его выступлению, он сообщил, что «группа FFI/ C Parity находится в процессе создания и ещё не начала работу», пока что он готов ответить на любые вопросы, а в будущем обязательно опубликует ближайшие планы по развитию Rust в рамках его инициативы для всех заинтересованных лиц.

Можно предположить, что в первую очередь группа FFI/ C Parity займётся улучшением поддержки многопоточности в Rust, внедрением поддержки BFLOAT16, формата представления чисел с плавающей запятой, который появился в новых процессорах Intel Xeon Scalable, а также стабилизацией вставок кода на Ассемблере.

Искусственный язык определяет виды виски с точностью 99 %

Ученые Университета Глазго и Университета Стратклайд создали так называемый «искусственный язык», призванный помочь в борьбе с торговлей контрафактным алкоголем.

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

ANDY BUCHANAN/AFP/Getty Images

ANDY BUCHANAN/AFP/Getty Images

Искусственные вкусовые рецепторы имеют размеры примерно в 500 000 раз меньше вкусовых рецепторов человека. Анализ различия между тем, как металлы рецепторов искусственного языка поглощают свет при погружении в виски, позволяет идентифицировать различные типы спиртного напитка. В ходе экспериментов с помощью искусственного языка провели дегустацию виски Glenfiddich, Glen Marnoch и Laphroaig и тот смог определить разницу между напитками с точностью 99 %.

Искусственный язык также может уловить тонкие различия между одним и тем же виски, выдержанным в разных бочках, и определить разницу между одним и тем тем же видом виски, выдержанным в течение 12, 15 и 18 лет.

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

Опубликованы результаты опроса разработчиков Stack Overflow: Python обогнал Java

Stack Overflow — известный и популярный во всём мире портал вопросов и ответов для разработчиков и IT-специалистов, а его ежегодный опрос является крупнейшим и наиболее полным среди людей, которые пишут код, по всему миру. Каждый год Stack Overflow проводит опрос, охватывающий всё: от любимых технологий разработчиков до их предпочтений в работе. В этом году опрос проводится уже девятый год подряд, и в нём приняли участие более 90 000 человек.

Ключевые результаты:

  • Python — самый быстрорастущий язык программирования. В этом году он снова поднялся в рейтинге, потеснив Java, и стал вторым по популярности языком после Rust.
  • Более половины респондентов написали свою первую строку кода до того, как им исполнилось шестнадцать лет, хотя этот результат варьируется в зависимости от страны и пола.
  • Специалисты DevOps и инженеры по надёжности сервисов (site reliability engineer) являются одними из самых высокооплачиваемых и наиболее опытных разработчиков, которые более всех довольны своей работой и реже всего ищут новые рабочие места.
  • Среди участников опроса разработчики из Китая наиболее оптимистично настроены и считают, что люди, родившиеся сегодня, будут жить лучше, чем их родители. Разработчики из стран Западной Европы, таких как Франция и Германия, смотрят на будущее с долей скептицизма.
  • На вопрос о том, что мешает их продуктивности, мужчины чаще всего указывают на обилие задач, не связанных непосредственно с разработкой, в то время как представители сексуальных меньшинств недовольны «токсичностью» рабочего окружения.

Не обошлось и без доли самопиара. Stack Overflow попросил респондентов вспомнить, когда они в последний раз решали проблемы, связанные с разработкой, при помощи портала и без него. Результаты показали, что Stack Overflow экономит разработчику от 30 до 90 минут времени в неделю.

Немного фактов

Stack Overflow используют разработчики по всему миру

Stack Overflow используют разработчики по всему миру

Каждый месяц около 50 миллионов человек посещают Stack Overflow, чтобы учиться или делиться своим опытом, а также строить свою карьеру. 21 миллион из этих людей являются профессиональными разработчиками или студентами университетов, которые готовятся стать таковыми. Около 4 % респондентов считают программирование своим хобби, а не профессией, и чуть менее 2 % респондентов раньше были профессиональными разработчиками, но сейчас сменили род деятельности.

WEB разработчиков значительно больше, чем прочих IT специалистов

Веб-разработчиков значительно больше, чем прочих IT-специалистов

Около 50 % респондентов назвали себя full-stack разработчиками, т. е. специалистами, которые пишут как клиентский, так и серверный код, как правило связанный с веб-технологиями, и около 17 % считают себя разработчиками мобильных приложений. Чаще всего специалисты по фронтенд-разработке также пишут бэкенд-код, и наоборот. Другие популярные сочетания IT-профессий — администратор баз данных и системный администратор, DevOps-специалист и инженер по надёжности сайтов (Site Reliability Engineer), дизайнер и фронтенд-разработчик, университетский исследователь и научный работник.

Большая часть сообщества Stack Overflow периодически участвует в открытых проектах

Большая часть сообщества Stack Overflow периодически участвует в открытых проектах

Около 65 % профессиональных разработчиков среди пользователей Stack Overflow участвуют в проектах с открытым исходным кодом (например, LibreOffice или Gimp) один раз в год и более. Участие в открытых проектах часто зависит от языка программирования. Так, разработчики, работающие с Rust, WebAssembly и Elixir, делают это чаще всего, в то время как  работающие с VBA, C# и SQL помогают открытым проектам примерно в два раза реже.

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

В Соединенных Штатах почти 30 % респондентов заявили, что имеют проблемы с психологическим здоровьем, причём этот показатель выше, чем в других крупных странах, таких как Великобритания, Канада, Германия или Индия.

Reddit и Youtube — наиболее популярные социальные сети среди разработчиков

Reddit и YouTube — наиболее популярные социальные сети среди разработчиков

В этом году респондентов спросили, какие социальные сети они используют чаще всего. Reddit и YouTube стали самыми распространёнными ответами. При этом предпочтения IT-специалистов не соответствуют общим данным по популярности социальных сетей, где Facebook занимает первое место, а Reddit даже не входит в Топ-10 (Reddit имеет около 330 миллионов активных пользователей по сравнению с 2,32 млрд ежемесячных пользователей Facebook).

Рейтинг популярности технологий среди пользователей Stack Overflow

Рейтинг популярности языков программирования


Седьмой год подряд JavaScript становится наиболее популярным языком программирования, а Python снова поднялся в рейтинге. В этом году Python обогнал в общем рейтинге Java, так же, как он превзошел C# в прошлом году и PHP ещё годом ранее. Таким образом, сегодня Python является самым быстрорастущим языком программирования.

Самые любимые, «страшные» и «желанные» языки программирования

Четвертый год подряд Rust становится самым любимым в сообществе языком программирования, за ним следует Python. Так как популярность Python стремительно растёт, то нахождение и в этом рейтинге означает, что разработчиков Python не только становится всё больше, но они так же при этом хотят продолжать работать с данным языком.

VBA и Objective-C признаны самыми «страшными» языками в этом году. Это означает, что большой процент разработчиков, которые в настоящее время используют эти языки, не выражают заинтересованности в том, чтобы продолжать это делать.

Python является наиболее «желанным» языком третий год подряд, и это означает, что разработчики, которые ещё не используют его, указывают на то, что хотели бы его изучить. На втором и третьем месте находятся JavaScript и Go соответственно.

Что насчёт блокчейн?

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

На вопрос, что они думают о технологии блокчейн, разработчики в основном с оптимизмом оценивают её полезность. Однако этот оптимизм в основном сосредоточен среди молодых и менее опытных специалистов. Чем опытнее респондент, тем более вероятно, что он скажет, что технология блокчейна — это «безответственное использование ресурсов».

Самые высокооплачиваемые языки программирования

123

Clojure и F# — хороший способ разбогатеть, но мы бы посоветовали вам Ruby или Go

Среди опрошенных разработчиков те из них, кто использует Clojure, F#, Elixir и Rust, получают самые высокие зарплаты среди проживающих в США программистов: в среднем около 70 000 долларов США. При этом есть региональные различия. Разработчики Scala в США являются одними из самых высокооплачиваемых, в то время как разработчики Clojure и Rust зарабатывают больше всего в Индии.

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

Python стал политкорректным и избавился от схемы Master-Slave

В последнее время политкорректность приобретает совсем уж удивительные очертания. Некоторое время назад Виктор Штиннер (Victor Stinner) из Red Hat предложил вычистить код Python от упоминания слов «master» (хозяин) и «slave» (раб). По его словам, эти термины неполиткорректны и ассоциируется с рабством и неравноправием. Это раскололо сообщество разработчиков.

Точку в споре поставил бывший великодушный пожизненный диктатор Гвидо ван Россум (Guido van Rossum). За время дискуссии было подано пять коммитов, из которых примут четыре. Обновления появятся в Python 3.8. Последнее изменение отклонили, поскольку оно затрагивало устоявшуюся терминологию UNIX ptys, а через неё и ряд других проектов.

Изменений предложено довольно много, однако суть их в следующем: в разных случаях слово «master» заменяется на «parent», «main», «server», а «slave» — на «child» или «worker» в зависимости от контекста. В ходе дискуссии сторонники переименования аргументировали свою позицию положениями политкорректности и негативных коннотаций в этих словах. А противники заявляли, что не следует смешивать политику и программирование, поскольку термины уже устоялись в среде разработчиков. При этом они никак не оскорбляют и не оправдывают рабство. А вот проблемы в виде путаницы и невозможности обратной совместимости вполне могут быть. Впрочем, учитывая, что вторая и третья ветви Python не полностью совместимы между собой, последний вопрос явно не считался приоритетным.

При этом отметим, что несколько лет назад в Drupal «master» и «slave» заменили на «primary» и «replica», а в Django и CouchDB — на «leader» и «follower» соответственно. Подобные изменения могут ждать и СУБД Redis.

Отметим также, что маркеры «master» и «slave» до определённого времени применялись и в «железной» среде, когда там использовались жёсткие диски стандарта IDE. Сейчас это уже не настолько актуально.

Голосовой ассистент «Алиса» обучится иностранным языкам

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

Напомним, что интеллектуальный помощник «Алиса» на основе нейронной сети был представлен в октябре прошлого года. В «Яндексе» заявляют, что «Алиса» — первый в мире голосовой помощник, который умеет импровизировать в разговоре, не ограничиваясь набором заранее заданных реплик.

Сейчас «Алиса» разговаривает на русском языке. Однако уже в скором времени могут быть добавлены языки стран СНГ, где велика аудитория «Яндекса». Речь идёт прежде всего об украинском, белорусском и казахском языках.

Отмечается, что выпуск многоязычной версии голосового ассистента «Алиса» запланирован на следующий год.

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

Клавиатура Gboard получила поддержку более 20 новых языков

Google продолжает развивать и улучшать свою основную Android-клавиатуру Gboard. Это означает не только интеграцию функций вроде эмотиконов или GIF-анимации, но и появление поддержки новых языков. Следующим важным шагом на этом пути стало добавление в Gboard китайского (как традиционного, так и упрощённого) и корейского языков, а также ещё двадцати других языков.

Google отмечает, что китайский и корейский были самыми запрашиваемыми языками. Это вполне естественно, учитывая, что в случае Китая речь идёт о наиболее населённой стране, а в случае Кореи — одной из самых развитых в Азии. В целом же Gboard для Android теперь поддерживает более 300 языковых разновидностей (охватывают 74 % населения мира). С полным списком поддерживаемых языков можно ознакомиться на официальном сайте — новые будут развёртываться по всему миру в течение следующих нескольких дней.

При этом Google подчёркивает, что её усилия направлены на только на поддержку самых распространённых в мире языков, но и в равной степени — на менее известные, вроде языка жителей острова Мэн (кельтская группа; практически вымерший) или маорийского (относится к полинезийской ветви австронезийской семьи языков).

Порой интеграция новых языков приводит разработчиков к встрече с людьми, с которыми в противном случае они вряд ли бы пересеклись. Например, недавно создатели Gboard работали с братьями Абдулаем и Ибраимом Барри (Abdoulaye, Ibrahima Barry), чтобы принести в Gboard поддержку алфавита Adlam языка фулани. На фулани в Африке разговаривают уже сотни лет, но до последнего времени он не имел своего алфавита, пока братья не изобрели его 26 лет назад в Гвинее. Поскольку Adlam не было в Gboard, носителям языка было сложно транслитерировать звуки своего языка, когда они набирали тексты.

PROMT запустила бота-переводчика Translate.Ru в Telegram и Skype

Компания PROMT к двадцатилетию онлайн-сервиса Translate.Ru запустила одноимённого бота-переводчика для Telegram и Skype. Бот знает 15 языков, и с его помощью можно не только быстро переводить тексты прямо в мессенджерах, но и изучать иностранные языки.

Бот Translate.Ru позволяет организовать максимально эффективную работу с текстами на разных языках

Бот Translate.Ru позволяет организовать максимально эффективную работу с текстами на разных языках

В основу представленного коллективом разработчиков PROMT бота легли последние наработки в области лингвистических технологий, соответствующие самым высоким стандартам качества систем перевода. Бот для Telegram и Skype качественно переводит тексты и даёт полную словарную справку с вариантами перевода и транскрипцией по отдельным словам. Слово или фразу достаточно ввести в поле для сообщения, а затем — нажать ввод и мгновенно получить текст на нужном языке. За переводом бот обращается на сервис Translate.Ru, при этом скорость обработки текста зависит от скорости интернет-соединения на устройстве.

Интерфейс бота очень прост: чтобы получить перевод, достаточно набрать текст в поле для сообщения и нажать ввод

Интерфейс бота очень прост: чтобы получить перевод, достаточно набрать текст в поле для сообщения и нажать ввод

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

И в Telegram, и в Skype бот работает по одному и тому же принципу со схожим интерфейсом и опциями меню

И в Telegram, и в Skype бот работает по одному и тому же принципу со схожим интерфейсом и опциями меню

Кто подписан на зарубежные каналы в Telegram, тот всегда с помощью кнопки «Поделиться» может отправлять посты целиком в бот Translate.Ru и получать их мгновенный перевод. При этом для удобства пользователей в окне мессенджера демонстрируется и оригинальный текст, и перевод, что крайне удобно для изучения языков и сверки правильности перевода.

Управлять функциями в боте можно через меню: «Переводчик и словарь» для автоматического перевода, «Поиск по примерам» для примеров перевода, «Исходный язык» и «Язык перевода» для выбора нужных языковых пар

Управлять функциями в боте можно через меню: «Переводчик и словарь» для автоматического перевода, «Поиск по примерам» для примеров перевода, «Исходный язык» и «Язык перевода» для выбора нужных языковых пар

«Мы считаем, что боты — одни из самых удобных инструментов получения информации. Бот Translate.Ru — это помощник, позволяющий очень быстро узнать перевод слова или небольшой фразы. Такой перевод на лету пригодится и для переписки и, особенно, для изучения языков», — говорит Никита Шаблыков, директор по продажам PROMT.

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

Мессенджеры Skype и Telegram обладают обширной аудиторией в России и по всему миру. На данный момент число пользователей Skype в мире составляет более 500 миллионов человек, а Telegram — более 180 миллионов. Такая популярность объясняется доступностью мессенджеров благодаря распространению мобильного Интернета и их удобством для коммуникации.

Google Assistant выучит 30 языков и сможет переключаться между ними

К концу 2018 года Google Assistant научится понимать и разговаривать на 30 языках, благодаря чему с ним смогут свободно взаимодействовать 95 % пользователей Android. Более того, интеллектуальный помощник сможет одновременно говорить сразу на нескольких языках — он будет автоматически переключаться между ними по мере надобности.

Google Assistant был запущен примерно год назад, но лишь на английском языке. Теперь система поддерживает ещё семь языков — французский, немецкий, итальянский, японский, корейский, испанский и бразильский вариант португальского языка. Следовательно, Google за 10 месяцев предстоит научить помощника ещё 22 языкам.

Впрочем, руководитель по продукту Ник Фокс (Nick Fox) говорит, что на 30 языках компания останавливаться не собирается. В «следующие несколько месяцев» Google Assistant сможет говорить на датском, голландском, хинди, индонезийском, норвежском, шведском и тайском.

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

Расширение языковой базы поможет Google Assistant догнать Siri, который работает с 20 языками и различными диалектами. Помощник Apple, к тому же, поддерживает кантонский и мандаринский диалекты китайского, чем система Google пока похвастаться не может.

Java и C продолжают удерживать лидерство в рейтинге языков программирования

Компания TIOBE Software опубликовала очередной рейтинг популярности языков программирования, формируемый путём подсчёта количества их упоминаний при поиске в Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube, Baidu и других интернет-сервисах.

По оценкам аналитиков TIOBE Software, самыми востребованными в профессиональной среде инструментами для создания приложений в настоящий момент являются Java и C, за которыми со значительным отрывом следует C++. Четвёртым по популярности среди разработчиков является язык Python, замыкает пятёрку лидеров C#.

Рейтинг популярности языков программирования (источник: TIOBE Software)

Рейтинг популярности языков программирования (источник: TIOBE Software)

Проведённые специалистами TIOBE Software исследования зафиксировали рост интереса со стороны разработчиков к языкам программирования MATLAB и R. Реже в Интернете стали упоминаться Perl, Visual Basic и язык ассемблера. Что касается почётного титула «язык года», то главными кандидатами на эту награду являются Kotlin и C. Победитель в этой номинации станет известен в январе. Для справки: в 2016 году столь высокого звания был удостоен разработанный компанией Google язык Go, а годом ранее — Java.

С полным отчётом TIOBE Software можно ознакомиться здесь.

window-new
Soft
Hard
Тренды 🔥