Тысячи анкет с фотографиями

Знакомства

Найди свою любовь

Игры

Игры

Онлайн флеш игры

временная фотография

Из Олайне...

Новости мира открытых систем

Я очень дружу с Linux, чего и вам желаю...Поэтому самые свежие новости открытых систем и публикуются, огромное спасибо автору.


Выпуск web-браузера Chrome 60


Компания Google представила релиз web-браузера Chrome 60. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.

Основные изменения в Chrome 60:

  • Реализована возможность использования формата кодирования видео VP9 в медиаконтейнерах MP4 (ISO BMFF). Поддержка MP4 потребовала реализации нового строкового формата для определения параметров кодека VP9, который теперь доступен и в различных мультимедийных Web API;
  • Добавлен Paint Timing API, позволяющий отследить время различных стадий отрисовки страницы. При помощи данного API можно выявить узкие места загрузки страницы и проблемные моменты, например, ситуации когда посетителю уже видна ссылка или форма ввода, но из-за того, что JavaScript ещё не загрузился, их обработчики недоступны;
  • Добавлено CSS-свойство font-display и правило @font-face, которые дают возможность определить как и когда отображать текстовое содержимое, если шрифт ещё не загрузился. Ранее при использовании внешних шрифтов отрисовка текста не производилась до окончания загрузки шрифта. Теперь текст можно отобразить сразу, временно используя шрифт по умолчанию;
  • В API Credential Management API, предоставляющий сайтам возможность сохранять и запрашивать учётные данные пользователя, добавлена возможность получения пользовательского пароля непосредственно в составе структуры PasswordCredential, без необходимости подключения обработчика при помощи метода fetch(). Для точного следования спецификациям, развиваемым рабочей группой W3C Web Authentication Working Group, свойство requireUserMediation переименовано в preventSilentAccess;
  • В Chrome для настольных систем обеспечена возможность использования API Payment Request, позволяющего организовать быстрое совершение платежей при помощи кредитной карты, без необходимости повторного ручного ввода типовой информации, такой как данные о плательщике, номер карты (для подтверждения вводится CVC-код) и адрес доставки;
  • Сайтам предоставлена возможность собирать платежи через собственные Android-приложения, используя Payment Request API;
  • Добавлена поддержка нового синтаксиса клонирования и объединения объектов. Например, для клонирования вместо "Object.assign({}, data)" теперь можно указать "{ ...data }", а для объединения "{ ...defaultSettings, ...userSettings }";
  • Представлен новый API Web Budget, который позволяет сайтам запросить права на отправку ограниченного числа push-сообщений, приводящих в выполнению фоновых работ, таких как синхронизация данных, без вывода видимого для пользователя уведомеления. API разработано в рамках инициативы по подавлению активности в фоновых вкладках;
  • Добавлена поддержка формата Web Push Encryption (шифрованные push-сообщения), для определения использования которого можно применять свойство PushManager.supportedContentEncodings;
  • Добавлен атрибут PushSubscription.expirationTime, который предоставляет информацию об истечении времени подписки на push-уведомления;
  • Для увеличения производительности и предсказуемости поведения, события pointermove и mousemove, теперь доставляются один раз на каждый AnimationFrame, что соответствует поведению событий scroll и TouchEvents;
  • Добавлен псевдо-класс CSS ":focus-within", влияющий на работу любых элементов, на которые действует псевдо-класс ":focus", а также на все их потомки;
  • Реализована функция frames(), формирующая на основе заданного значения набор из равных интервалов;
  • Для обеспечения перехвата операций редактирования в InputEvent добавлена возможность обработки пользовательского ввода при помощи скрипта;
  • Для увеличения безопасности диалог BeforeUnload, который вызывается когда пользователь покидает сайт, теперь показывается только если на странице с которой осуществлён вызов производились какие-либо действия пользователя (если закрыть страницу сразу диалог не будет показан). На обработчики событий BeforeUnloadEvent данное изменение пока не распространяется;
  • Переведена в разряд устаревших большая порция API, в том числе WebKitAnimationEvent, WebKitTransitionEvent, RTCPeerConnection.getStreamById(), SVGPathElement.getPathSegAtLength(), indexedDB.webkitGetDatabaseNames(), Headers.prototype.getAll().

Кроме нововведений и исправления ошибок в новой версии устранено 40 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity и LibFuzzer. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 21 премию на сумму 26 тысяч долларов США (по одной премии в $10000, $5000, $3000 и $2000, пять премии $1000 и две премии $500). Размер десяти вознаграждений пока не определён.

Источник: http://www.opennet.ru/opennews/art.shtml?num=46918

В Firefox добавлен CSS-движок Stylo, написанный на языке Rust


В ночные сборки Firefox добавлен новый CSS-движок Stylo, развиваемый в рамках проекта Quantum, в котором производится работа по переносу в браузер возможностей, изначально развиваемых для движка Servo. Stylo написан на языке Rust и примечателен распараллеливанием обработки стилей CSS. Для включения нового CSS-движка в about:config следует установить опцию layout.css.servo.enabled=true.

Наиболее заметным эффектом после включения Stylo отмечается увеличение скорости обработки страниц, так как разные CSS-стили обрабатываются параллельно, не блокируя друг друга. В настоящее время работа сосредоточена по оттачиванию кодовой базы и стабилизации Stylo - открытыми остаётся 68 известных проблем, 18 из которых имеют характер блокирующих выпуск. Разработчики намерены оперативно устранить данные проблемы и задействовать Stylo в Firefox 57, запланированном на ноябрь и примечательным модернизацией оформления браузера и полным переходом на WebExtensions.

Тем временем, в ближайшем выпуске Firefox 55, который выйдет 8 августа, будут включены наработки другой инициативы Quantum - Flow, в рамках которой развиваются дополнительные оптимизации для увеличения производительности интерфейса пользователя. Тестирование бета-версии Firefox 55 показало существенное ускорение работы со вкладками и сокращение времени запуска. Тестирование проводилось с профилем, содержащим 1691 (!) вкладку. Если в прошлые выпуски запуск браузера со столь огромным числом вкладок занимал 5-8 минут, то в Firefox 55 ситуация изменилась и на запуск ушло всего 15 cекунд, а потребление памяти снизилось в 4 раза (с 2 до 0.5 Гб, без фактической загрузки содержимого всех страниц).

Из ожидающих внедрения инициатив проекта Quantum также можно отметить Quantum DOM, который обеспечит распараллеливание операций с DOM (Document Object Model). JavaScript-код для разных вкладок и iframe будет выполняться параллельно в отдельных нитях, что позволит увеличить отзывчивость браузера при использовании большого числа открытых вкладок. Для переключения между нитями будет задействован встроенный планировщик совместной многозадачности, переключающий контекст в "безопасные" моменты, например, при вызове функций и в вершине каждой итерации циклов, что позволит минимизировать использование блокировок. Дополнительно планируется реализовать эвристические методы для остановки выполнения кода во второстепенных фоновых вкладках, а также предоставить интерфейс для блокирования бесконечного зацикливания и снижения приоритета ресурсоёмких скриптов.

Текущий браузерный движок Firefox не может в полной мере задействовать потенциал современных многоядерных систем из-за изначального использования однопоточных схем обработки контента. В частности, при обработке одной страницы однопоточным остается связанный с DOM (Document Object Model) внутренний API, функции формирования содержимого окна, парсинга HTML и выполнения JavaScript. Использование Rust позволяет разбить код DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. Кроме эффективного распараллеливания операций, используемые в Rust технологии безопасного программирования позволят кардинально поднять уровень безопасности.

Источник: http://www.opennet.ru/opennews/art.shtml?num=46917

Adobe прекращает поддержку Flash


Компания Adobe объявила о переводе Flash в разряд устаревших технологий, окончательно признав первенство штатных технологий HTML5, WebGL и WebAssembly в области разработки интерактивного и мультимедийного web-контента. Сопровождение Flash будет осуществляться до конца 2020 года, после чего обновление и распространение плагина будет прекращено. Компании Mozilla, Google, Apple и Microsoft также заявили о согласованном с Adobe прекращении поддержки Flash в своих браузерах.

Штатные web-технологии, способные заменить Flash, достигли статуса web-стандарта, поддерживаются во всех современных браузерах, обеспечивают хорошую производительность, низкую нагрузку на CPU и более высокую безопасность. Adobe осознаёт полную победу HTML5 и не видит смысла и дальше искусственно продолжать развитие заведомо неперспективной технологии, отныне делая ставку на открытый Web и решения, не требующие установки специальных плагинов. По данным компании Google, если три года назад около 80% пользователей Chrome ежедневно просматривали сайты с Flash, то в настоящее время данный показатель составляет лишь 17% и продолжает снижаться.

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

До 2020 года выпуск обновлений для Flash-плагина для основных ОС и браузеров будет продолжен. В обновлениях будут исправляться ошибки и устраняться уязвимости, а также будет вестись работа по обеспечению совместимости с браузерами и добавление новых возможностей при возникновении такой необходимости. Adobe продолжит разработку продуктов для создания мультимедийного контента Animate CC и Premiere Pro CC, переориентировав их на использование только web-технологий.

Для организации работы с видео предлагается перейти на API HTML Video и Media Source Extensions, для создания динамической графики и интерактивных систем рекомендуется использовать HTML Canvas и WebGL, для анимации доступны CSS Transitions и CSS Animations, для P2P-коммуникаций имеется WebRTC, а для достижения высокой производительности и интенсивных вычислений можно использовать WebAssembly.

План прекращения поддержки Flash согласован с компаниями Apple, Facebook, Google, Microsoft и Mozilla, которые также сохранят возможность использования Flash в своих продуктах до конца 2020 года. Например, начиная со следующего выпуска Firefox пользователь должен будет явно определить сайты на которых будет активироваться Flash-плагин, а в 2019 году Flash будет полностью отключен по умолчанию в обычных выпусках Firefox, но опционально доступен в ESR-ветке. Не дожидаясь 2020 года Adobe также планирует предпринять более агрессивную политику ухода от Flash в некоторых регионах, в которых наблюдается распространение нелицензионных и устаревших выпусков Flash Player.

Источник: http://www.opennet.ru/opennews/art.shtml?num=46916

Уязвимости в реализации аппаратно изолированных окружений TrustZone


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

В исследовании рассмотрены реализации двух TEE-окружений (Trusted Execution Environment) - Qualcomm QSEE и Trustonic Kinibi, применяемых в Android-смартфонах и базирующихся на расширениях ARM TrustZone. Обе системы предоставляют урезанные проприетарные операционные системы, работающие на отдельном виртуальном процессоре и позволяющие выполнять специализированные защищённые обработчики (TA, Trusted Applications"). Защищённые обработчики не могут напрямую взаимодействовать с основной операционной системой Android, их вызов и передача данных осуществляется косвенно, через интерфейс диспетчеризации, работу которого обеспечивает устанавливаемые в основной системе библиотеки, процессы-демоны и модули ядра.

Исследование показало недостаточный уровень безопасности рассмотренных решений, в которых было выявлено несколько уязвимостей, а также одна кардинальная архитектурная недоработка (возможность отката на старую уязвимую версию обработчиков в защищённом окружении), которую невозможно устранить без изменений на аппаратном уровне или снижения стабильности работы устройства. Выполняемые внутри защищённых окружений операционные системы в полной мере не реализуют современные методы блокирования атак (например, защиту от переполнения стека), что позволяет использовать выявленные уязвимости для совершения реальных атак. Проблемы проявляются во всех устройствах на чипах Qualcomm и устройствах на чипах Trustonic Kinibi версии до 400 (т.е. все устройства на базе Samsung Exynos, кроме Galaxy S8 и S8 Plus).

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

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

Источник: http://www.opennet.ru/opennews/art.shtml?num=46911

Выпуск децентрализованного коммуникационного клиента Ring 1.0


Представлен стабильный выпуск децентрализованной коммуникационной платформы Ring 1.0, развиваемой в рамках проекта GNU. В отличие от традиционных коммуникационных клиентов Ring способен передавать сообщения без обращения к внешним серверам через организацию прямого соединения между пользователями с применением оконечного шифрования (End-to-end, ключи присутствуют только на стороне клиента) и аутентификации на основе сертификатов X.509. Код распространяется под лицензией GPLv3. Бинарные сборки подготовлены для GNU/Linux (Debian, Ubuntu, Fedora), Windows, macOS и Android.

Кроме защищённого обмена сообщениями, программа позволяет совершать голосовые и видео-звонки, создавать телеконференции, обмениваться файлами, организовывать совместный доступ к файлам и содержимому экрана. Программа поддерживает различные кодеки (G711u, G711a, GSM, Speex, Opus, G.722) и протоколы (ICE, SIP, TLS), обеспечивает надёжное шифрование видео, голоса и сообщений. Имеется режим совместимости с программными телефонами на базе SIP, который может использоваться для совершения звонков при помощи SIP-аккаунта. Из сервисных функций можно отметить переадресацию и удержание вызовов, запись звонков, история вызовов с поиском, автоматический контроль громкости, интеграция с адресными книгами GNOME и KDE.

Для идентификации пользователя в Ring применяется децентрализованный глобальный механизм аутентификации учётных записей, основанный на реализации адресной книги в форме блокчейна (применяются наработки проекта Ethereum). Один идентификатор пользовтеля (RingID) может использоваться одновременно на нескольких устройствах и позволяет связываться с пользователем независимо от того, какое из устройств активно, без необходимости поддержания разных идентификаторов на смартфоне и ПК. Адресная книга, отвечающая за трансляцию имён в RingID, хранится на группе узлов, поддерживаемых разными участниками, в том числе можно запустить свой узел для поддержания локальной копии глобальной адресной книги (Ring также реализует отдельную внутреннюю адресную книгу, поддерживаемую клиентом).

Для адресации пользователей в Ring применяется протокол OpenDHT (распределённая хэш таблица), без применения централизованных реестров c информацией о пользователях. Основу Ring составляет фоновый процесс LibRing, который отвечает за обработку соединений, организацию связи, работу с видео и звуком. Взаимодействие с LibRing построено при помощи библиотеки LibRingClient, которая служит основой для построения клиентского ПО и предоставляет всю типовую функциональность, не привязанную к интерфейсу пользователя и платформам. Поверх LibRingClient создаются непосредственно клиентские приложения, что позволяет достаточно просто создавать и поддерживать различные интерфейсы.



Источник: http://www.opennet.ru/opennews/art.shtml?num=46908

Компания Cisco открыла код PyREBox, окружения для изучения вредоносного ПО


Разработчики из компании Cisco представили проект PyREBox, в рамках которого подготовлено окружение для обратного инжиниринга и наблюдения за поведением вредоносного ПО. PyREBox представляет собой надстройку над QEMU, снабжённую дополнительными средствами для инспектирования содержимого памяти, отладки и динамического анализа работы системы и приложений. Код распространяется под лицензией GPLv2.

В отличие от традиционных отладчиков, работающих в одном системном окружении с проверяемым приложением, PyREBox полностью отделён от изучаемого окружения и позволяет наблюдать за ним со стороны, при необходимости вмешиваясь в его работу. PyREBox создаёт эмулируемое окружение для всей системы, предлагая простой интерфейс для наблюдения за этим окружением, не требуя установки особых драйверов или агентов, а работая непосредственно на уровне эмулятора и предоставляемого им API VMI (Virtual Machine Introspection). В настоящее время возможно создание окружений i386 и x86_64, но в планах намечена поддержка ARM, MIPS, PowerPC и других архитектур.

Интерфейс для управления и отладкой построен на базе интерактивной оболочки IPython. Исследователю предоставляется полный набор команд для инспектирования и модификации состояния работающей виртуальной машины. В том числе можно на лету изменять содержимое областей памяти и регистров CPU. Имеются гибкие средства автоматизации, основанные на подключении сценариев на языке Python. При этом компоненты PyREBox выполнены как надстройка над QEMU, но не пересекаются с QEMU, что даёт возможность быстро адаптировать продукт к новым выпускам QEMU, не утруждая себя ведением собственного форка.

Поддерживается интеграция с пакетом криминалистического анализа Volatility и подключения плагинов от него. Также можно подключать собственные плагины с дополнительными обработчиками или привязывать Python-скрипты к определённым событиям, например, скрипт может быть вызван перед выполнением определённой процессорной инструкции, при обращении приложения к заданной области памяти, создании/завершении процессов, переключении контекста, промахах TLB, событиях от сетевого интерфейса и клавиатуры. Для снижения задержек из-за вызова Python-кода предлагается использовать систему триггеров на C/С++, которые решают задачу первичной фильтрации и передают управление Python-скриптам только при необходимости.

Источник: http://www.opennet.ru/opennews/art.shtml?num=46906

Проблемы в systemd и Apache httpd при обработке DNS-имён с символом подчёркивания


Администраторы ресурсов, использующих имена хостов с символом подчёркивания, столкнулись с проблемами, проявляющимися в новых выпусках systemd и Apache httpd, и вызванными неоднозначной трактовкой требований к именам в DNS.

В соответствии с RFC 1123 в DNS запрещено использовать символ подчёркивания в именах хостов, но разрешено в именах меток. Т.е. в записях типа "A" и "MX", а также в содержимом полей "SOA" и "NS", символы подчёркивания не допускаются, но, в соответствии с RFC-2782, они разрешены во вспомогательных полях, подобных "TXT" и "SRV", что активно используется в системе DomainKeys (например, имя "_domainkey.ebay.com" корректно в контексте применения как метки с TXT-записью в DNS, но будет некорректно если для него применить A-запись).

Обычно клиентское и серверное ПО достаточно лояльно относится к символу "_" в именах хостов, не требуя жесткого следования RFC, поэтому в обиходе часто встречается нецелевое применение поддоменов с символом подчёркивания. Например, в популярном на Западе сервисе доставки видео Netflix используются имена подобные "ipv6_1-cxl0-c088.1.lhr004.ix.nflxvideo.net" (применение не корректно, так как имя связано с записью "A" в DNS), а проект Fedora использует "_443._tcp.fedoraproject.org" (применение корректно, так как имя определено записью NSEC).

Проблемы всплыли после формировния новых выпусков systemd и Apache httpd. В systemd 234 была добавлена экспериментальная поддержка использования библиотеки libidn2 вместо libidn для обработки доменных имён с символами национальных алфавитов. При сборке c libidn2 в systemd-resolver применялся предлагаемый в libidn2 фильтр имён хостов, который просто вырезал символ "_", что привело к проблемам с использованием сервиса Netflix на клиентских системах с systemd-resolver. Проблема уже решена в libidn2 путем исключения IDN2_USE_STD3_ASCII_RULES из списка опций, применяемых по умолчанию, и войдёт в состав следующего обновления. Для systemd также выпущен патч, обходящий проблему при использовании старых версий libidn2.

Администраторы серверных систем столкнулись с похожей проблемой при переходе на Apache 2.4.25 или установке в RHEL/CentOS обновления httpd-2.2.15-60. В рамках устранения уязвимости CVE-2016-8743 код разбора HTTP-заголовков был приведён в строгое соответствие с RFC 7230. В случае наличия некорректного заголовка, оформление параметров которого не соответстует требованиям стандарта, теперь выдаётся ошибка 500 "Bad Request". В основном исправление было нацелено на блокирование использования закодированных символов пробелов в именах, но заодно было запрещено и применение других недопустимых символов, в том числе подчёркивания. Таким образом, после установки обновления перестали обрабатываться запросы к хостам, в именах которых присутствует символ "_". Для обхода проблемы в Apache 2.4.25 можно использовать настройку "HttpProtocolOptions Unsafe".

Дополнение: Проект GNU выпустил обновление библиотеки libidn2 2.0.3, поведение фильтров в котором приведено в соответствие с поведением библиотеки libidn. По умолчанию теперь отключен режим фильтрации IDN2_USE_STD3_ASCII_RULES, наличие которого привело к проблемам с неверной обработкой доменных имён с символом подчёркивания в systemd-resolver.

Источник: http://www.opennet.ru/opennews/art.shtml?num=46905

Дебаты вокруг TLS 1.3 и совершенной прямой секретности


В настоящее время завершается процесс стандартизации TLS (Transport Layer Security) версии 1.3. В рамках новой версии, среди прочих изменений, предполагается полный отказ от методов шифрования (cyphersuites), не поддерживающих совершенную прямую секретность (PFS, Perfect Forward Secrecy).

Свойство совершенной прямой секретности гарантирует, что при утечке долговременных ключей не удастся расшифровать ранее зашифрованные сообщения. Очевидно, использование методов шифрования с этим свойством привлекательно для конечных пользователей. Однако это свойство создаёт проблемы при использовании в корпоративной среде: становится невозможным анализ проходящего трафика даже при наличии и потребности в таковом (например, для детектирования проблемных узлов). В связи с этим ряд крупных сетевых операторов всё настойчивее просит соответствующую рабочую группу IETF о том, чтобы не отказываться полностью от методов шифрования без поддержки совершенной прямой секретности.

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

  • Отказ от совершенной прямой секретности недопустим, так как ущемляет интересы пользователей и может использоваться во вред им.
  • В то время как для ряда задач совершенная прямая секретность важна и даже необходима, она не требуется всегда и везде. В то же время чрезмерное усложнение жизни для сетевых операторов может привести к естественному избеганию нового стандарта, от чего как раз пострадают пользователи. Здесь можно вспомнить IPv6, который до сих пор медленно внедряется из-за целого ряда ошибок.
  • Интернет — для пользователей, а не для сетевых операторов, и если интересы первых идут вразрез с интересами вторых, то это не проблема пользователей. Пусть сетевые операторы предлагают решения (в качестве варианта рассматривается, например, использование постоянных параметров для алгоритма Диффи-Хелмана).


Источник: http://www.opennet.ru/opennews/art.shtml?num=46902

Рейтинг языков программирования 2017 года от издания IEEE Spectrum


Журнал IEEE Spectrum, издаваемый Институтом инженеров электротехники и электроники (IEEE), опубликовал новую редакцию рейтинга популярности языков программирования. Лидером рейтинга стал язык Python, который в прошлом году занимал третье место, уступая языкам Си и Java, которые теперь переместились на второе и третье место, соответственно.

Язык C++ сохранил четвёртое место в рейтинге. JavaScript поменялся местами с PHP и занял седьмое место, а C# переместился с 6 на 5 место, вытеснив язык R. Язык Go переместился с 10 на 9 место, а язык Ruby, ранее занимавший 9 место, был сдвинут на 12 место. Язык Perl продолжает терять популярность, сместившись в этом году с 17 на 18 место. Язык Rust переместился с 26 на 22 место, а Lua с 22 на 21.

При расчёте рейтинга IEEE Spectrum использовано сочетание 12 метрик, полученных от 10 различных источников. В основе метода заложена оценка результатов поиска по запросу "{название_языка} programming" на различных сайтах. Учтено число материалов, выдаваемых в поисковой выдаче Google (как при построении рейтинга TIOBE), параметры популярности поисковых запросов через Google Trends (как в рейтинге PYPL), упоминания в Twitter, число новых и активных репозиториев в GitHub, число вопросов в Stack Overflow, число публикаций на сайтах Reddit и Hacker News, вакансии на CareerBuilder и Dice, упоминания в цифровом архиве журнальных статей и докладов с конференций IEEE Xplore Digital Library.

Для сравнения первая десятка июльского рейтинга TIOBE, который рассчитан на основе популярности в поисковой выдаче Google, выглядит следующим образом: Java, C, C++, Python, C#, PHP, Visual Basic .NET, JavaScript, Pascal, Go, Perl. За год Visual Basic .NET обогнал JavaScript и переместился с 8 на 7 место. Язык Perl сместился с 9 на 11 место, а язык Go поднялся с 55 (!) на 10, а Pascal с 12 на 9. С 11 на 13 место переместился язык Ruby.

В рейтинге PYPL, в котором используется Google Trends, по сравнению с июлем 2016 года первая десятка осталась практически неизменной: Java, Python, PHP, C#, JavaScript, C++, C, R, Objective-C, Swift. Единственная перестановка связана с тем, что язык R вытеснил Objective-C с восьмого места на девятое.

В свежем рейтинге языков программирования от компании RedMonk, построенном на основе оценки популярности на GitHub и активности обсуждений на Stack Overflow, десятка лидеров выглядит следующим образом: JavaScript, Java, Python, PHP, C#, C++, CSS, Ruby, C, Objective-C. По сравнению с прошлым годом Python обогнал PHP и занял третье место. Язык Perl переместился с 13 на 15 место.

Источник: http://www.opennet.ru/opennews/art.shtml?num=46901

Релиз языка программирования Rust 1.19


Подготовлен релиз языка программирования Rust 1.19, развиваемого проектом Mozilla, обеспечивающего автоматическое управление памятью и предоставляющего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo, написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model). На Rust также разрабатывается операционная система Redox, использующая концепцию экзоядра и продвигающая принцип "все есть URL".

В подготовке нового выпуска приняли участие 144 разработчика. Основные новшества:

  • Добавлена поддержка структур данных "union", представляющих собой объединения, совместимые с аналогичным типом в языке Си. В отличие от структур enum, в union не производится сохранение тегов, используемых для проверки выбора корректного варианта данных во время выполнения, т.е. запись и чтение полей в "union" может применяться только в блоках unsafe. Основным назначением union является обеспечение переносимости с кодом на языке Си и упрощение создания обвязок вокруг библиотек на Си;
         union MyUnion {         f1: u32,         f2: f32,     }       let u = MyUnion { f1: 1 };     unsafe { u.f1 = 5 };     let value = unsafe { u.f1 };  
  • Реализована возможность прерывания цикла с возвратом определённого значения. Например, теперь можно обойтись без создания промежуточной переменной для передачи результата работы цикла и использовать конструкции вида "let x = loop { break 7; };"
  • Замыкания (closures), которые не захватывают окружение, теперь могут быть приведены к типу "указатель на функцию". Например, "let f: fn(i32) -> i32 = |x| x + 1;";
  • Для сжатия архивов вместо gzip по умолчанию теперь применяется сжатие с использованием xz;
  • Добавлена поддержка сборки компилятора (bootstrap) в окружении платформы Android;
  • В разряд стабильных переведена новая порция функций и методов, в том числе API OsString::shrink_to_fit, cmp::Reverse, Command::envs и thread::ThreadId. Также стабилизированы макросы "eprint!" и "eprintln!", которые работают по аналогии с "print!" "еprintn!", но выводят результат в stderr вместо stdout;
  • В пакетном менеджере Cargo прекращён учёт локального рабочего каталога в индексе crates.io, что позволило добиться сокращения размера файла со сборочным реестром и уменьшить время операций клонирования. В команду "cargo bench" добавлена опция "--all" для вызова тестов сразу для всех пакетов в указанном рабочем окружении (отдельные пакеты можно исключить через опцию "--exclude"). В опции "--features" теперь допускается перечисление нескольких значений, разделённых запятой или пробелом. Реализована возможность подключения своих обработчиков (runner) для заданных целевых платформ.

Напомним, что язык Rust сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. При этом Rust обходится без использования сборщика мусора или runtime, что делает возможным создания на Rust библиотек, которые могут выступать в роли прозрачной замены библиотекам для языка Си. Для распространения библиотек на языке Rust, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик. Для размещения библиотек введён в строй репозиторий crates.io.

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



Источник: http://www.opennet.ru/opennews/art.shtml?num=46900


Новинки


страницы: