четверг, 15 февраля 2018 г.

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

Это развитие того текста, который был выложен когда-то, 3.5 года назад: Сравнительное обозрение языков программирования. Тот текст неоднократно обновлялся (обновлялись ссылки) и последнее обновление было 21 октября 2014 года. С тех пор как-то руки не доходили...

Сейчас текст очень сильно дополнен и расширен. Например, в сравнение языков включены дополнительно языки, некоторые из которых вообще уже появились во внятных версиях (стабильных) после даты публикации в 2014 году. Сейчас дополнительно показаны языки: Kotlin, Swift, Tcl, Rust. Вместо прежних 63 страниц теперь их 91.

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

Кому это интересно - читайте:
Номер последней редакции: 3.42
Объём (страниц): 91
Дата редакции: 15 февраля 2018 года

Свободно скачать эту редакцию текст и архив примеров к нему можно здесь:
Yandexтекст и архив
Googleтекст и архив 

Как и всё опубликованное ранее, этот текст и все сопутствующие ему материалы представляется под лицензией, которая явно обозначена и в титуле - это: Creative Commons Attribution ShareAlike.  



вторник, 13 февраля 2018 г.

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

Rust — совершенно новый мультипарадигмальный компилируемый язык программирования общего назначения, спонсируемый Mozilla Research, сочетающий парадигмы функционального и процедурного с объектной системой, основанной на типажах, и с управлением памятью через понятие «владения» (систему аффинных типов, позволяющую обходиться без сборки мусора). После нескольких лет активной разработки (с 2006 года) первая стабильная версия вышла только 15 мая 2015 года, после чего новые версии выходят раз в 6 недельЯзык компилируемый и позиционируется как альтернатива С/С++, что уже само по себе интересно, так как даже претендентов на такую конкуренцию не так уж и много.

Я бы, возможно, и не спешил разбираться с новым (модным?) языком, если бы не ... если бы не два обстоятельства, собственно, и выяснившиеся в таком вот хронологическом порядке:

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

2. Установить и посмотреть Rust оказалось делом простым, 20 минут, а найти, разобраться с основами языка (много общего с C и Go) и написать несколько тестовых программ - ещё на 3-4 часа... И тестирование скорости выполнения приложения на Rust показало, что оно быстрее, чем аналогичные тесты на всех 20-ти языках программирования, с которыми я мог сравнить ... и всего не более 30% уступает по скорости приложению на C, скомпилированному GCC с наивысшим уровнем оптимизации! (и превосходит тот же C код, скомпилированный Clang из LLVM проекта). И это для языка, которому от рождения 1-й стабильной версии меньше чем 3 года!

В связи с этим, начинаю детально разбираться с Rust ... выкладывая черновые результаты этих разборок в темы форума Rust (это относительно инфраструктуры Rust: установка, библиотеки, ...) и код на Rust (это относительно непосредственно написания кода на Rust).

Рекомендую всем, занимающимся областями, покрываемыми Rust, обратить самое пристальное внимание на этот инструментарий!

суббота, 10 февраля 2018 г.

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



 Язык Swift первоначально представлен Apple 2 июня 2014 года на конференции WWDC. В 2015 году Apple анонсировала Swift как открытый язык программирования (с открытым исходным кодом). Swift задуман как более легкий для чтения и устойчивый к ошибкам  язык, нежели предшествовавший ему Objective-C и как замена ему. Swift опирается на несколько других проектов с открытым кодом, особенно на результаты проекта LLVM, в частности, компилятор Clang. 
          Swift создан компанией Apple, в первую очередь, для разработчиков iOS и macOS. Вряд ли  на сегодня он интересен как ещё один инструмент для практической реализации программных проектов в других операционных системах (Windows, Linux). В некоторых описаниях языка Swift даже утверждается (-лось), что отработку кода на Swift можно выполнять только на оборудовании от Apple и в интегрированной среде Xcode. Это ограничивает возможность освоения Swift широким кругом программистов. Хотя желание такого освоения существенно - спрос на рынке труда на разработчиков для iPad и iPhone крайне высок, а уровни оплаты выше, чем в других отраслях программной индустрии.  
     10 апреля 2016 года Google объявила о намерениях сделать Swift так называемым «первым языком» для Android. Язык программирования очень быстрый, поэтому Google планирует им воспользоваться. Возможно, это уменьшит количество приложений, которые сначала выходят на iOS, и только позже на Android.
          Но... C марта 2016 года Apple представили реализацию Swift под операционную систему Linux (версия 2.2 языка Swift). Теперь вы можете в деталях изучить Swift не покидая свою любимую операционную систему 👍 (с некоторыми ограничениями, поскольку предоставляются реализации только под DEB-дистрибутивы Linux и не предоставляются под RPM-дистрибутивы).
        То, где взять, как установить, и как начать использовать Swift под Linux - подробно расписано в теме форума Swift под Linux (3 страницы детальных объяснений в форуме). Рассматриваются также основы написания кода на Swift. Всё рассмотрение и ссылки основываются на последней реализации 4.03 от 5 декабря 2017 года. Это существенно важно, поскольку версия 4 языка Swift объявлена в сентябре 2017 года, а синтаксическая совместимость с предыдущими версиями языка, 3 и особенно 2, весьма проблематична - язык свежий и динамично развивается и изменяется. (А очень многие, большинство обсуждений по Интернет относятся к языковой версии Swift ещё 2). Описания там по ссылке объёмные и, самое главное, почти наверняка, ещё будут значительно расширяться и дополняться - именно поэтому здесь в описаниях не затрагиваются конкретики относительно Swift.



четверг, 8 февраля 2018 г.

Все книги в одном месте

Теперь все книги, написанные мною, как изданные (ранее) в бумажном виде, так и выкладывавшиеся здесь (позже) в электронном виде - доступны в последних редакциях для свободного скачивания на общеизвестном литературном ресурсе: Флибуста: книжное братство (предполагаю, что все его прекрасно знают ... как и вот этот их значок).

Там кто-то из неких ... "неизвестных доброжелателей"  💃  начали выкладывать ещё с 2008 года отдельные книги, но в достаточно старых, естественно, редакциях. Чтобы не поддерживать такую непроизвольную дезинформацию, чтобы представить всё в одном месте и в самых последних вариантах - теперь там выкладывается всё написанное, изданное и не изданное бумажными тиражами, (18 книг на сегодня) в самых последних редакциях (а многие рукописи, из числа показываемых здесь в блоге ранее, очень серьёзно дополнялись и менялись на протяжении 4-5 лет с момента их первичного написания, и будут, с большой вероятностью, дополняться далее). 

P. S. Начиная с последних дней января 2018 г., когда начали выкладываться эти книги (за одну прошедшую неделю или чуть больше), они, по статистике этого ресурса судя, скачаны по 200 и более раз каждая (то есть общий тираж скачиваний-прочтений за это время превысил 3500). Так что, во-первых, это кому-то нужно и интересно, а, во-вторых, ... скачивайте, читайте и пользуйтесь по своему усмотрению на здоровье. 

P. P. S. (дописано январь 2020 г.) Там выложено 20 книг. И скачаны они, по их статистике, все от 500 до 1250 раз. Значит это кому-то нужно! С другой стороны, мне сообщают (несколько раз), что ресурс http://flibusta.is блокируется Роскомнадзором по доступу из РФ. Если это актуально, сообщите мне, в комментариях или почтой, URL того ресурса, где предлагается разместить - я сделаю дубликат.