LINUX.ORG.RU

Программирование


42

0

Всего сообщений: 688

Серия статей «По языку в день» от Андрея Шитова

Группа Разработка

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

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

В рождественском календаре этого года (с 1 по 24 декабря), я буду ежедневно публиковать статьи повествующие об основах различных языков программирования: один день - один язык. Чтобы сделать обзоры более полезными, я постараюсь придерживаться единого формата и разобрать аспекты языка, необходимые для написания следующих мини-проектов:

  • Hello, World!
  • Функция, вычисляющая факториал рекурсивно или в функциональном стиле
  • Программу, создающую массив объектов и выполняющую полиморфный вызов методов на них
  • Реализацию сонной сортировки (sleep sort). Данный алгоритм не применяется в боевых условиях, но замечательно демонстрирует возможности языка в разрезе конкурентности

Список языков:

  • День 1. TypeScript
  • День 2. Rust
  • День 3. Julia
  • День 4. Kotlin
  • День 5. Современный C++
  • День 6. Crystal
  • День 7. Scala
  • День 8. Dart
  • День 9. Hack
  • День 10. Lua
  • День 11. Raku
  • День 12. Elixir
  • День 13. OCaml
  • День 14. Clojure
  • День 15. Nim
  • День 16. V
  • День 17. Go
  • День 18. Hy
  • День 19. Red
  • День 20. Mercury
  • День 21. Elm

>>> Подробности

 ,

perl5_guy
()

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

Группа Разработка

Julia — высокоуровневый высокопроизводительный свободный язык программирования с динамической типизацией, созданный для математических вычислений. Эффективен также и для написания программ общего назначения. Синтаксис Julia сходен с MATLAB с заимствованием элементов из Ruby и Lisp.

Что нового в версии 1.3:

  • возможность добавления методов в абстрактные типы;
  • поддержка Unicode 12.1.0 и возможность использования специфичных начертаний цифровых символов Unicode в идентификаторах;
  • добавлен макрос Threads.@spawn и ключевое слово Channel(f::Function, spawn=true) для организации запуска задач в любом доступном потоке. Системные операции ввода/вывода с файлами и сокетами и генератор псевдослучайных чисел адаптированы для многопоточных приложений;
  • добавлены новые библиотечные функции.

Код проекта доступен под лицензией MIT.

>>> Подробности

 ,

Satori
()

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

Группа Разработка

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

Что нового в версии 1.39:

  • стабилизирован новый синтаксис асинхронного программирования, основанный на функции «async», блоке async move { … } и операторе «.await»;
  • разрешено указание атрибутов при определении параметров функций, замыканий и указателей на функции. Поддерживаются атрибуты условной компиляции (cfg, cfg_attr), управляющие диагностикой через lint и вспомогательные атрибуты вызова макросов;
  • стабилизирован «#feature(bind_by_move_pattern_guards)», который позволяет использовать переменные с типом привязки «by-move» в шаблонах;
  • предупреждения о проблемах при проверке заимствования переменных c использованием NLL переведены в разряд фатальных ошибок;
  • в пакетный менеджер cargo добавлена возможность использования расширения «.toml» для файлов конфигурации.

С полным списком изменений можно ознакомиться на сайте разработчика.

>>> Источник

 ,

Satori
()

«OPEN SOURCE – новая философия бизнеса» бесплатный семинар про ПО с открытым кодом, 25 октября 2019

Группа Open Source

На семинаре вы узнаете:

  • как создавать корпоративные версии программных систем с открытым кодом
  • как запускать надежные и совместимые решения для создания программно-реализуемой инфраструктуры
  • как изолировать программу от сетевых настроек системы
  • другие вопросы

Помимо докладов пройдет конкурс и розыгрыш призов.

По завершении планируется легкий фуршет.

Когда: 25 октября в 15:00

Продолжительность семинара: 2 часа

Место проведения: Москва, Доброслободская ул., 5

Для кого: IT-руководители и IT-специалисты

Участие бесплатное при условии предварительной регистрации

>>> Подробнее о семинаре

 , , , ,

Venera7
()

dhall-lang v11.0.0

Группа Разработка

Dhall – это программируемый язык конфигурации, который можно описать как JSON + функции + типы + импорт.

Изменения:

  • Упрощена запись выражений, где используется .
  • Упрощена запись выражений с вложениями,
  • Добавлена поддержка ведущих разделителей.
  • Стандартизирована поддержка обозначения завершенности записи.
  • Улучшена поддержка кеширования в Windows.
  • Добавлены типы в файлы package.dhall.
  • Добавлены утилиты: List.{default,empty}, Map.empty, Optional.default.
  • JSON.key {Text, Value} перемещен на Map.

>>> Подробности

 , ,

anonymous
()

Состоялся релиз языка Nim 1.0

Группа Разработка

Nim — статически типизированный язык, который ориентируется на эффективность, читаемость и гибкость.

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

Этот релиз включает в себя множество изменений, включая исправления ошибок и некоторые языковые дополнения. В комплекте также идет обновлённый пакетный менеджер Nimble.

Версия 1.0 теперь имеет статус LTS. Поддержка и исправление ошибок будут продолжаться до тех пор, пока будут востребованы. Новые возможности, которые не будут нарушать обратную совместимость, будут развиваться в ветке 1.х.

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

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

Обновиться можно уже сейчас:

choosenim update stable

>>> Подробности

 , ,

opqx
()

Релиз Sublime Text 3.2

Группа Проприетарное ПО

Сегодня вышла версия 3.2 Sublime Text — изощрённого текстового редактора кода, разметки и всего прочего. Версия основана на множестве изменений, привнесённых из второго продукта Sublime HQ — Sublime Merge — добавлена первоклассная интеграция с Git, встроенная функция сравнения редактируемых файлов и поддержка каркасных блоков.

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

Git Integration

Incremental Diff

Для использования Sublime Text необходимо приобрести лицензию, но скачать и оценить можно бесплатно, без ограничений. Лицензия привязывается к пользователю, поэтому можно устанавливать Sublime Text на любое количество компьютеров и операционных систем.

Скачать

>>> Changelog

 , , ,

vvn_black
()

Ruby 2.6.0

Группа Open Source

Ruby — динамический, опенсорсный язык с прицелом на простоту и продуктивность. Он имеет элегантный синтаксис: интуитивно понятный и простой для написания.

В этом выпуске представлен ряд новых возможностей и улучшений производительности. Самые важные:

  • Новый JIT-компилятор, который вместо работы в памяти сохраняет на диск код на языке C и обрабатывает его внешним компилятором (поддерживаются GCC, Clang и Microsoft VC++). Включается ключом --jit. На активно нагружающих процессор задачах достигнуто ускорение в 1.7 раз по сравнению с Ruby 2.5.
  • Модуль RubyVM::AbstractSyntaxTree (экспериментальный, поддержание будущей совместимости пока не гарантируется). Он предоставляет методы parse и parse_file для превращения соответственно строки или файла с кодом на Ruby в узлы абстрактного синтаксического дерева, представленного объектами класса Node из того же модуля.

Другие важные нововведения:

( читать дальше... )

Улучшения производительности:

( читать дальше... )

Другие важные изменения по сравнению с 2.5:

( читать дальше... )

>>> Скачать (SHA1=c95f4e86e21390270dad3ebb94491fd42ee2ce69)

>>> Подробности

>>> Источник

 , ,

Moondancer
()

Fortran 2018: новый стандарт языка

Группа Разработка

2-го декабря 2018-го года Международная Организация по Стандартизации (ISO) опубликовала ISO/IEC 1539:2018, ранее известный под названием Fortran 2015.

Новый стандарт расширяет возможности взаимодействия с программами на C и параллельного программирования:

  • Введён новый тип CFI_cdesc_t, содержащий информацию о типе элементов, ранге, размере передаваемого массива и способе выделения его памяти. Ранее на сторону программы, написанной на языке C, вместо массивов чисел можно было передать только «голые» указатели, и о соблюдении границ массивов приходилось заботиться вручную.
  • Введено понятие команды (team), позволяющее разделить выполняющуюся на кластере программу на несколько сравнительно независимых подмножеств процессов.
  • Появилась возможность обработки ошибок отдельных процессов кластера (fail image и аргумент stat= вызовов change team, end team, event post, form team, sync all, sync images, sync team).
  • Добавлены атомарные операции над переменными (atomic_add, atomic_and, atomic_or, atomic_xor, atomic_fetch_add, atomic_fetch_and, atomic_fetch_or, atomic_fetch_xor, atomic_cas).
  • Улучшена совместимость со стандартом ISO/IEC/IEEE 60559:2011 для чисел с плавающей запятой.

Следующая версия стандарта временно называется Fortran 202x.

Новые возможности Fortran 2018

Бесплатно доступный черновик стандарта

>>> Подробности

 , ,

AITap
()

Новый стандарт языка C: C18

Группа Разработка

Международная Организация по Стандартизации (ISO) опубликовала новый международный стандарт языка программирования C: ISO/IEC 9899:2018, его также называют C17 и C18.

Новый стандарт не вносит никаких новых возможностей, а лишь исправляет дефекты, сообщенные для C11. Значение макроса __STDC_VERSION__ увеличено до 201710L.

Поддержка C18 у GCC появилась, начиная с 8 версии, а у LLVM Clang — с 6.0. Чтобы указать во время компиляции использование стандарта C18 у GCC и LLVM Clang используются флаги -std=c17 и -std=gnu17. В GCC можно также указать новый стандарт флагами -std=c18 и -std=gnu18.

Последний черновик стандарта

Статья на en.wikipedia.org

>>> Подробности

 , c18, ,

neon1ks
()

Релиз Crystal-0.27.0

Группа Разработка

Crystal — объектно-ориентированный язык программирования общего назначения, созданный с целью:

  • иметь синтаксис, очень похожий на Ruby;
  • обеспечивать статическую проверку типов без явного указания типов переменных или аргументов методов;
  • иметь возможность написания биндингов к языку С на самом Crystal;
  • обеспечивать возможность метапрограммирования, путем выполнения кода в фазе компиляции и генерации кода;
  • компилировать программу в высокоэффективный бинарный (native) код.

Как заявляют авторы проекта: «мы любим ruby за его эффективность написания кода, а С за его эффективность при выполнения кода и мы хотим скрестить все лучшее из этих двух миров...».

Changelog

>>> Подробности

 ,

Bobby_
()

Обновился пакетный менеджер Nimble для языка программирования Nim

Группа Разработка

Первый релиз в 2018 году. Значительным новшеством стало поддержка в одном репозитории нескольких пакетов. Теперь можно указать ?subdir=<dir> в конце вашего репозитория и Nimble будет знать что смотреть в директории для вашего пакета.

( читать дальше... )

>>> Подробности

 , ,

opqx
()

Platform-Independent Primitives (PIP)

Группа Разработка

PIP — кроссплатформенная легковесная библиотека под C++ (99), упрощающая написание консольных программ. Представляет собой связный набор классов, макросов и функций, которые значительно упрощают написание кода во многих прикладных областях. Основной упор в библиотеке сделан на функциональность, конфигурируемость и минимизацию конечного кода.

( читать дальше... )

>>> Скачать

 , , , ,

peri4
()

Релиз Sublime Text 3.0

Группа Проприетарное ПО

Зарелизилась версия 3.0 популярного многофункционального редактора кода.

По сравнению с Sublime Text 2 был улучшен практически каждый аспект редактора. Список основных изменений настолько велик, что разработчики сделали отдельную страницу https://www.sublimetext.com/2to3

Разработчики выделяют следующие улучшения в версии 3.0: Goto Definition, новый механизм подсветки синтаксиса, новый интерфейс и новый API расширений. Отдельно упоминают производительность, по сравнению с Sublime Text 2 старт редактора и открытие файлов происходят быстрее, а прокрутка более плавная.

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

Для Sublime Text 3.0 действительны лицензии приобретенные начиная с 2013 года, для перехода с Sublime Text 1 или 2 необходимо приобрести обновление.

Download

>>> Подробности

 , ,

vvn_black
()

10 лет с Колибри: как это было

Группа Open Source

Обзор от дизайнера и прикладного разработчика KolibriOS в честь 10-летия его участия в проекте.

>>> Читать обзор

 , , ,

Badboy
()

Вышла новая версия языка Nim 0.17.2

Группа Разработка

7 сентября вышла новая версия языка программирования Nim 0.17.2.
Nim - это язык системного программирования, который ориентирован на производительность, мобильность и выразительность.

В этой версии был сделан упор на стабильность компилятора, и были исправлены важные баги. Следовательно, очень рекомендуется обновиться. А новой функцией в этом выпуске является поддержка файлов .nimble-link. Это было сделано для поддержки последней версии Nimble с функцией «develop».

Этот выпуск также включает в себя новую версию пакетного менеджера Nimble 0.8.8 который обновился 3 сентября. Где тоже было исправлено множество багов. Но стоит отметить что это достаточно крупное обновление с большим количеством новых функций. С которыми можно ознакомиться по ссылке
https://github.com/nim-lang/nimble/blob/master/changelog.markdown#088---03092017
Из наиболее важных это:

  • Реализована команда разработки develop
  • Реализована задача по умолчанию test для пакетов которые не определяют ее
  • Снижение потребления памяти если пакет содержит много файлов

А 6 сентября появилась новая документация к Nim на DevDocs
http://devdocs.io/nim/

>>> Version 0.17.2 released

 , ,

opqx
()

Nim 0.17.0

Группа Разработка

Представлен релиз языка программирования Nim 0.17.0.

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

>>> Version 0.17.0 released

 , ,

opqx
()

GCC 7.1

Группа GNU's Not Unix

Состоялся релиз набора компиляторов GCC 7.1.

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

  • Поддерживаются все возможности текущего черновика будущего стандарта C++17.
  • Улучшены сообщения компилятора, в том числе добавлены новые предупреждения -Wduplicated-branches, -Wpointer-compare (включено по умолчанию), -Wswitch-unreachable (включено по умолчанию), Wmemset-elt-size (включено при -Wall), -Wint-in-bool-context (включено при -Wall), -Wregister (включено по умолчанию), -Wduplicate-decl (включено при -Wall).
  • Улучшена оптимизация.
  • Добавлена поддержка архитектуры RISC-V, улучшена поддержка ARM64.
  • Теперь поддерживается ОС Fuchsia OS.
  • Удалена поддержка Java (GCJ).
  • Некоторый код, успешно компилирующийся в прошлых версиях, теперь может потребовать изменений. Читайте руководство для получения подробностей.

>>> Подробности

 , ,

cetjs2
()

Выпуск языка программирования Dart 1.23

Группа Google

Google представила язык программирования Dart версии 1.23. Язык позиционируется как язык структурного программирования Web с синтаксисом, похожим на Java.

Dart включает в себя SDK, в котором есть компилятор в javascript, виртуальная машина Dart VM, пакетный менеджер, анализатор кода, интегрированная среда разработки(IDE), набор стандартных библиотек и плагины для IntelJ IDEA, Emacs и Vim.

Для выполнения отладки есть Dartium, специально собранная версия Chromium с виртуальной машиной Dart из коробки.

Репозиторий pub предоставляет 2567 пакетов(на момент написания новости).

>>> Подробности

 , , , ,

Valman_new
()

Результаты опроса разработчиков ПО на StackOverflow 2017

Группа Разработка

Отдельные интересные факты:

По типам разработчиков:

  1. Web developer — 72.6%
  2. Desktop applications developer — 28.9%
  3. Mobile developer — 23.0%
  4. Database administrator — 14.4%
  5. Developer with a statistics or mathematics background — 11.3%
  6. Systems administrator — 11.3%
  7. DevOps specialist — 11.1%

Разрабочики для Web:

  1. Full stack Web developer — 63.7%
  2. Back-end Web developer — 24.4%
  3. Front-end Web developer — 11.9%

Наиболее популярные технологии

Языки программирования:

  1. JavaScript — 62.5%
  2. SQL — 51.2%
  3. Java — 39.7%
  4. C# — 34.1%
  5. Python — 32.0%
  6. PHP — 28.1%
  7. C++ — 22.3%
  8. C — 19.0%
  9. TypeScript — 9.5%
  10. Ruby — 9.1%
  11. Swift — 6.5%
  12. Objective-C — 6.4%
  13. VB.NET — 6.2%
  14. Assembly — 5.0%
  15. R — 4.5%
  16. Perl — 4.3%
  17. VBA — 4.3%
  18. Matlab — 4.3%
  19. Go — 4.3%
  20. Scala — 3.6%
  21. Groovy — 3.3%
  22. CoffeeScript — 3.3%
  23. Visual Basic 6 — 2.9%
  24. Lua — 2.8%
  25. Haskell — 1.8%

Frameworks, Libraries и другие технологии:

  1. Node.js — 47.1%
  2. AngularJS — 44.3%
  3. .NET Core — 33.4%
  4. React — 19.5%
  5. Cordova — 11.0%
  6. Firebase — 9.8%
  7. Xamarin — 8.3%
  8. Hadoop — 5.7%
  9. Spark — 4.7%

СУБД:

  1. MySQL — 55.6%
  2. SQLServer — 38.6%
  3. SQLite — 26.6%
  4. PostgreSQL — 26.5%
  5. MongoDB — 21.0%
  6. Oracle — 16.5%
  7. Redis — 14.1%
  8. Cassandra — 3.1%

Наиболее любимые и отвратительные ЯП

Любимые:

  1. Rust — 73.1%
  2. Smalltalk — 67.0%
  3. TypeScript — 64.1%
  4. Swift — 63.9%
  5. Go — 63.3%
  6. Python — 62.7%
  7. Elixir — 62.4%
  8. C# — 61.7%
  9. Scala — 59.9%
  10. Clojure — 59.8%
  11. JavaScript — 59.8%
  12. F# — 56.2%
  13. Haskell — 54.5%
  14. SQL — 53.4%
  15. C++ — 52.0%
  16. Julia — 50.7%
  17. Java — 50.5%
  18. R — 49.9%
  19. Ruby — 48.5%
  20. C — 41.7%
  21. PHP — 41.4%
  22. Erlang — 39.9%
  23. Dart — 38.6%
  24. Common Lisp — 37.4%
  25. Groovy — 37.1%

Отвратительные:

  1. Visual Basic 6 — 88.3%
  2. VBA — 80.4%
  3. CoffeeScript — 79.2%
  4. VB.NET — 77.2%
  5. Matlab — 72.3%
  6. Objective-C — 68.1%
  7. Assembly — 67.6%
  8. Perl — 65.9%
  9. Lua — 65.8%
  10. Hack — 64.5%
  11. Groovy — 62.9%
  12. Common Lisp — 62.6%
  13. Dart — 61.4%
  14. Erlang — 60.1%
  15. PHP — 58.6%
  16. C — 58.3%
  17. Ruby — 51.5%
  18. R — 50.1%
  19. Java — 49.5%
  20. Julia — 49.3%
  21. C++ — 48.0%
  22. SQL — 46.6%
  23. Haskell — 45.5%
  24. F# — 43.8%
  25. JavaScript — 40.2%

Наиболее любимые и отвратительные Frameworks, Libraries и прочее

Любимые:

  1. React — 66.9%
  2. Node.js — 62.1%
  3. .NET Core — 60.9%
  4. Spark — 60.1%
  5. Firebase — 52.9%
  6. AngularJS — 51.7%
  7. Hadoop — 48.8%
  8. Xamarin — 48.7%
  9. Cordova — 38.8%

Отвратительные:

  1. Cordova — 61.2%
  2. Xamarin — 51.3%
  3. Hadoop — 51.2%
  4. AngularJS — 48.3%
  5. Firebase — 47.1%
  6. Spark — 39.9%
  7. .NET Core — 39.1%
  8. Node.js — 37.9%
  9. React — 33.1%

Наиболее популярные ЯП

Web программист:

  1. JavaScript — 81.7%
  2. SQL — 60.4%
  3. C# — 38.1%
  4. Java — 37.9%
  5. PHP — 33.8%
  6. Python — 25.3%
  7. TypeScript — 14.4%
  8. C++ — 12.6%
  9. Ruby — 11.1%
  10. C — 10.3%
  11. VB.NET — 6.5%
  12. Objective-C — 5.5%
  13. Swift — 5.5%
  14. Go — 4.9%
  15. CoffeeScript — 4.7%
  16. Groovy — 4.0%
  17. Scala — 4.0%
  18. Perl — 3.8%
  19. VBA — 3.2%
  20. R — 2.5%
  21. Visual Basic 6 — 2.4%
  22. Assembly — 2.4%
  23. Lua — 2.0%
  24. Matlab — 1.9%
  25. Elixir — 1.4%

Трудоустройство:

  1. Полная занятость — 70.3%
  2. Независимые подрядчики, фрилансеры и работающие на себя — 10.2%
  3. Частичная занятость — 6.2%
  4. Не имеют постоянного места работы и не ищут работу — 5.4%
  5. Не имеют постоянного места работы, но находятся в поиске — 5.4%
  6. Предпочли не сообщать — 2.1%
  7. На пенсии — 0.3%

Где разраработчики работают удаленно все время:

  1. Российская Федерация — 22.8%
  2. Бразилия — 15.1%
  3. Италия — 13.6%
  4. Соединенные Штаты Америки — 12.8%
  5. Австралия — 12.0%
  6. Испания — 11.2%
  7. Польша — 10.7%
  8. Канада — 10.2%
  9. Индия — 9.7%
  10. Франция — 9.0%
  11. Соединенное Королевство — 8.8%
  12. Израиль — 8.8%
  13. Нидерланды — 6.3%
  14. Германия — 6.2%
  15. Швейцария — 4.9%
  16. Швеция — 4.5%

>>> Developer Survey Results 2017

 stackoveflow, survey,

grim
()