Pull to refresh
99.5
Karma
0.2
Rating
Роман Смирнов @Source

Системный архитектор

  • Followers 44
  • Following 8

Пять перспективных языков программирования со светлым будущим (3 года спустя)

Website development *Programming *Rust *Kotlin *Elixir/Phoenix *

КДПВ


В 2016-м году я опубликовал перевод статьи про 5 перспективных языков программирования, в которой прогнозировался их рост в ближайшие 2-3 года.
Зачастую прогнозы так и остаются прогнозами, без последующего анализа. Но я решил, что это непорядок. И посколько 3 года уже пролетели, пора подвести промежуточные итоги и посмотреть, что произошло с этими языками за это время.


Однако, прежде чем мы перейдём к пятёрке наших героев, хочется уделить немного внимания предсказанному в той же статье переходу Swift и Go из второго эшелона в первый.


про эшелоны

В исходной статье языки программирования условно делятся на 3 эшелона по популярности.
Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, C# и т.д.
Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Большинство языков в первом эшелоне прочно укоренились на своих позициях. Поэтому выпадение языка с лидирующих позиций занимает ощутимое время, а для языка второго эшелона очень трудно пробиться в первый.
К третьему эшелону относятся непопулярные языки, а также относительно новые перспективные языки (о которых пойдёт речь), которые только начинают свой путь наверх. Некоторые языки пребывают в третьем эшелоне на протяжении многих лет, не получая популярности, в то время как другие врываются на сцену всего за пару лет.

Читать дальше →
Total votes 70: ↑64 and ↓6 +58
Views 68K
Comments 154

Как освоить иностранный язык без преподавателя. Часть 2. «Пошаговая стратегия»

Learning languages

Languages are not taught, they are learnt!


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


Примечание: Материалы статьи опираются на исследования Е.Д. Авериной, Д.Б. Никуличевой, Э.В. Гуннемарка и П.Нейшна, пропущенные через призму моего восприятия и опыт изучения 3 иностранных языков.

Читать дальше →
Total votes 46: ↑44 and ↓2 +42
Views 61K
Comments 65

Как освоить иностранный язык без преподавателя. Часть 1. «Мой опыт»

Self Promo

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


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


таблица-вертушка неправильных глаголов


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

Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Views 35K
Comments 79

Пять перспективных языков программирования со светлым будущим

Website development *Programming *Functional Programming *Rust *Elixir/Phoenix *
Translation

КДПВ


Если разделять языки программирования по популярности, то они делятся на три эшелона. Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, PHP, C#, C++ и Objective-C. Несмотря на то, что некоторые из ведущих языков возможно увядают, вам лучше знать один или несколько из них, если вы хотите иметь возможность легко найти работу.


Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Scala, Go, Swift, Clojure и Haskell — языки, которые я бы отнёс ко второму эшелону. Некоторые компании используют эти языки для отдельных сервисов, но широкое применение встречается редко (за исключением Swift, который начинает обгонять Objective-C в качестве основного языка для iOS). Go и Swift имеют хорошие шансы на переход из второго эшелона в первый в течение ближайших двух-трёх лет.


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


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


Читать дальше →
Total votes 77: ↑67 and ↓10 +57
Views 147K
Comments 146

Elixir: Как выглядит ООП в функциональном языке?

Programming *Erlang/OTP *ООP *Functional Programming *Elixir/Phoenix *
В последнее время участились статьи и обсуждения на тему прощания с ООП и поиски смысла, который Алан Кэй изначально вкладывал в это понятие.

Несколько высказываний Кэя для тех, кто пропустил
I made up the term “object-oriented”, and I can tell you I didn't have C++ in mind

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.

I’m sorry that I long ago coined the term “objects” for this topic because it gets many people to focus on the lesser idea. The big idea is “messaging”.

The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be.

Late binding allows ideas learned late in project development to be reformulated into the project with exponentially less effort than traditional early binding systems (C, C++, Java, etc.)

I’m not against types, but I don’t know of any type systems that aren’t a complete pain, so I still like dynamic typing.

В связи с этими обсуждениями, часто всплывает мысль о том, что Erlang/Elixir очень хорошо удовлетворяют критериям, которые Кэй предъявлял к понятию «объектно-ориентированный». Но далеко не все знакомы с этими языками, поэтому возникает непонимание как функциональные языки могут быть более объектно-ориентированными, чем популярные C++, Java, C#.

В этой статье я хочу на простом примере с exercism.io показать как выглядит ООП на Elixir.

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

В конце концов, вы должны быть в состоянии:

  • Добавить имя школьника в класс
  • Получить список всех школьников, обучающихся в классе
  • Получить отсортированный список всех учащихся во всех классах. Классы должны быть отсортированы по возрастанию (1, 2, 3 и т.д.), а имена школьников — по алфавиту.

Читать дальше →
Total votes 36: ↑32 and ↓4 +28
Views 21K
Comments 410

Маслобойка

Website development *Programming *ООP *Functional Programming *
Translation

Ты слышал про парня, который попрощался с OOП?


О нет. Ещё один? Что же он сказал?

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


Ох. Да, я слышал всё это раньше...

Таким образом, OOП окончательно умерло, и мы можем двигаться дальше.


Двигаться дальше к чему?

Ты чего? К следующему технологическому прорыву, конечно!


А, к этому… И что там у нас на очереди?

Читать дальше →
Total votes 178: ↑136 and ↓42 +94
Views 47K
Comments 326

Пришло время попрощаться с Rails

Website development *Ruby *Ruby on Rails *
Translation

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


Так как я вовлечён во множество Ruby-проектов, люди часто спрашивают меня, почему я не люблю Rails, какие проблемы у меня есть с ним и так далее. Поэтому я решил написать этот длинный пост, чтобы подвести итоги и все объяснить.


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


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

Читать дальше →
Total votes 70: ↑64 and ↓6 +58
Views 69K
Comments 404

Новый релиз платформы для создания интернет-магазинов Synergy 0.60.0

Website development *
Synergy Logo Intro: Synergy является кумулятивным Open Source расширением Spree, ориентированным на создание интернет-магазинов в России.
Миссия проекта состоит в том, чтобы предоставить весь необходимый фунционал, специфичный для российских интернет-магазинов, а также упростить интеграцию рекомендуемых расширений.

Список изменений по сравнению с Synergy 0.50.0:
Читать дальше →
Total votes 29: ↑25 and ↓4 +21
Views 1.9K
Comments 26

Вышел Spree 0.60.0

Ruby *
Translation
Релиз Spree 0.60.0 официально выпущен. Основной целью этого релиза является упразднение использования resource_controller. Это было долгое путешествие с этой библиотекой, но на данный момент она уже устарела. Особая благодарность Neeraj Singh, Roman Smirnov и Brian Quinn за их напряженную работу по этому вопросу.

Мы приложили существенные усилия, чтобы сохранить большую часть функциональности resource_controller, которая использовалась в коде Spree, реализовав её более подходящим для «Rails Way» способом (с использованием наследования и т.д.). Однако в некоторых случаях, мы не смогли сохранить 100% совместимость с предыдущими версиями Spree. Это может повлиять на некоторые существующие расширения, а также на магазины, которые полагаются на эту функциональность. Кроме того новый подход использует respond_with вместо respond_to. Более подробно всё это описано в руководстве по настройке и в примечаниях к релизу 0.60.0.

Также Вы можете посмотреть на Github полный список изменений, вошедших в релиз 0.60.0.

От переводчика:
Также напоминаю о существовании Synergy — сборки Spree, адаптированной специально для России. На данный момент сборка поддерживает Spree 0.50.2 и 0.60.0. Более подробно я рассказал о ней в статье «Synergy — платформа для создания интернет-магазинов»
Total votes 10: ↑6 and ↓4 +2
Views 1.8K
Comments 0

Synergy — платформа для создания интернет-магазинов

Website development *
Synergy Logo По сути Synergy является кумулятивным Open Source расширением Spree, ориентированным на создание интернет-магазинов в России.
Миссия проекта состоит в том, чтобы предоставить весь необходимый фунционал, специфичный для российских интернет-магазинов, а также упростить интеграцию рекомендуемых расширений.

В свою очередь Spree – это полнофункциональная платформа электронной коммерции, работающая на фреймворке Ruby on Rails 3. Она создана с целью упростить разработку интернет-магазинов путем включения в нее всего базового функционала, необходимого разработчикам.
Читать дальше →
Total votes 51: ↑48 and ↓3 +45
Views 14K
Comments 45

Вышел Spree 0.50.0

Ruby *
Intro: Spree — мощный и гибкий движок для создания интернет-магазинов, написанный на Ruby on Rails, распространяющийся под лицензией New BSD.

Рад сообщить хабровчанам о выходе релиза Spree 0.50.0.
В нём нет крупных изменений по сравнению с 0.40.x, вместо этого есть более 50 небольших улучшений и багфиксов.
Рекомендую всем, кто задержался на Spree 0.11.x, переходить именно на Spree 0.50.0

Из значительных изменений можно выделить:
  • Добавление возможности задавать порядок вариантов, опций и изображений в админке
  • Замена SearchLogic на MetaSearch
  • Расширение покрытия интеграционными тестами

Release Notes

Но это ещё не всё…
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Views 1.4K
Comments 2

Почему Opera не всемирно популярна?

Browsers
Translation
Примечание переводчика: Пытаясь найти ответ на вопрос «Почему Opera не популярна в США и Европе?», я наткнулся на весьма интересную статью. На мой взгляд, причины, названные в статье, вполне разумны. Поэтому я решил перевести для Хабра часть этой статьи, посвящённую конкретно этому вопросу.

Конечно, Opera имеет свои недостатки, но в конце концов, это великолепный браузер и это один из самых популярных браузеров в некоторых странах, таких как Россия и Украина. Тем не менее, он имеет мизерную долю на мировом рынке — около 2%, и мы не видим множества веб-разработчиков, готовых оптимизировать свои веб-приложения и веб-сайты с учётом Opera (прим. переводчика: тут можно, например, вспомнить как долго Google не хотела делать этого для Google Apps). Каковы причины этого?
Читать дальше →
Total votes 180: ↑126 and ↓54 +72
Views 4.7K
Comments 501

Статистика использования браузеров за декабрь 2010 по данным StatCounter

Browsers
Подводя итоги прошедшего года, хочется взглянуть на статистику использования браузеров в РФ по данным StatCounter и сравнить её с ситуацией годичной давности.

Первая приятная новость — Firefox и Opera продолжают удерживать лидирующие позиции. Причём доля Firefox выросла примерно на 2% по сравнению с декабрём 2009-го и теперь он занимает первое место (33.22%). Доля Opera практически не изменилась и составила 31.51%.

Вторая ещё более приятная новость — доля IE упала почти на 9%, в основном благодаря набравшему популярность Google Chrome. Теперь суммарная доля всех версий IE составляет всего 21.81%. А доля Chrome увеличилась более чем в 2 раза и составила 11.33%.

С остальными браузерами ситуация также весьма интересная: доля Safari немного увеличилась — с 1.3% до 1.56%, а вот суммарная доля альтернативных браузеров уменьшилась более чем в 2 раза и теперь составляет всего 0.56%. На мой взгляд, это весьма интересный факт, свидетельствующий о том, что Chrome смог переманить даже большинство пользователей альтернативных браузеров, которые, как правило, весьма привержены своему выбору.

Продолжение и графики под катом.
Читать дальше →
Total votes 70: ↑57 and ↓13 +44
Views 2.1K
Comments 85

Вышел Spree 0.30.0

Ruby *
Intro: Spree — мощный и гибкий движок для создания интернет-магазинов, написанный на Ruby on Rails, распространяющийся под лицензией New BSD.

Спустя 5 месяцев напряжённой работы вышел первый релиз Spree, работающий на Ruby on Rails 3.0.

Основные изменения — структурные:
  • расширения стали gem'ами, да и сам движок стал набором из нескольких gem'ов: spree_core, spree_auth, spree_api, spree_dashboard, spree_promotions, spree_sample
  • для настройки конкретного магазина больше не нужен site_extension, теперь все настройки можно сделать прямо в Rails.root
  • из способов развёртывания исключен «Vendor mode», т.к. благодаря Bundler больше нет необходимости клонировать исходники Spree в директорию проекта, даже если Вы используете edge-версию или свой собственный форк

Кроме того улучшена работа с платежами, упрощена работа с надбавками, ну и конечно же сделано множество багфиксов и мелких улучшений.

Официальные примечания к релизу
Total votes 33: ↑28 and ↓5 +23
Views 1.3K
Comments 9

OAuth доступ к IMAP/SMTP в Gmail

IT-companies
Translation
Google давно уже полагает, что пользователи должны иметь возможность экспортировать свои данные и использовать их с любыми другими сервисами на своё усмотрение. На протяжении многих лет службы Gmail поддерживает стандартный API через протоколы POP и IMAP, без каких-либо дополнительных расходов для наших пользователей. Эти усилия согласуются с нашими более широкими намерениями по упрощению доступа к данным из сторонних сервисов.

В дополнение к упрощению экспорта своих данных, мы также позволим пользователям разрешать доступ к данным в Google для third-party (не относящихся к Google) приложений и веб-сайтов. Одним из наиболее распространенных примеров является разрешение доступа к вашей адресной книге для социальной сети, чтобы она отправила приглашения вашим друзьям.

Пользователь, конечно, может сообщить свой пароль от аккаунта Google third-party приложению, чтобы разрешить подобный доступ, однако существует более безопасный способ — использовать стандартный протокол OAuth, который позволит пользователю дать свое согласие на доступ к определенным ресурсам, не сообщая свой пароль. Большинство возможностей Google API поддерживают OAuth, а начиная с 30 марта 2010 года он доступен также и для IMAP/SMTP в Gmail.
Читать дальше →
Total votes 58: ↑47 and ↓11 +36
Views 1.9K
Comments 10

Аннонсирован новый релиз-план для Ruby 1.9.2

Ruby *
Согласно новому плану, релиз состоится примерно в середине августа.

Подробнее:
  • 31 марта будет заморожен список возможностей Ruby 1.9.2
  • 30 апреля будет заморожен код, все возможности не реализованные до этого времени не войдут в релиз
  • 31 мая — выход 1.9.2-preview2: возможности, которые не будут завершены и стабильны к этому моменту, не войдут в релиз
  • 30 июня — выход 1.9.2-rc: все найденные на предыдущих этапах баги должны быть исправлены
  • 31 июля — выход 1.9.2-p0: в течении двух недели будут собирать багрепорты и допиливать релиз, прежде чем выпустить его

Что ж будем надеяться, что на сей раз разработчики справятся с намеченными сроками и мы получим стабильный релиз ветки 1.9.x до осени :-)

P.S. Если кто-то хочет высказать пожелания к релизу 1.9.2, то поторопитесь оставить тикет в Ruby Issue Tracking System
Total votes 16: ↑11 and ↓5 +6
Views 587
Comments 5

Spree 0.10.0 release

Ruby *
Intro: Spree — довольно мощный и гибкий движок для создания интернет-магазинов, написанный на Ruby on Rails, распространяющийся под лицензией New BSD.

Спустя почти полгода после релиза 0.9.0 вышла очередная версия Spree — 0.10.0, эта версия вобрала в себя множество замечательных, новых возможностей:
  • Поддержка тем оформления
  • Расширяемый механизм поиска (с помощью расширений поддерживается поиск через Xapian, Sphinx и Solr)
  • Настраиваемый процесс оформления заказа (можно убирать или добавлять шаги)
  • Группы товаров на основе разнообразных критериев
  • Улучшена поддержка конфигурации платёжных систем
  • Возможность выбора(для пользователя) из нескольких способов оплаты
  • RESTful API
  • Несколько SEO улучшений
  • Поддержка Rails 2.3.5 и Ruby 1.9

Также была существенно улучшена поддержка интернационализации в целом и русского языка в частности.

Полный список примечаний к релизу

UPD: перенесено в блог «Ruby»
Total votes 12: ↑9 and ↓3 +6
Views 1.2K
Comments 19

Plastic Logic представляет новую электронную книгу Que E-Reader

Gadgets
Translation
В четверг Plastic Logic показала окончательный вариант своего Que E-Reader.
Устройство, как и ожидалось, является полноэкранной электронной книгой с тачскрином и интерфейсом, спроектированным для быстрого перемещения по документу или книге.
Новшеством является гладкая поверхность устройства, свободная от кнопок. Вместо этого устройство полностью управляется через сенсорный интерфейс с использованием жестов.

Plastic Logic будет продавать модель c 4Gb памяти, Wi-Fi и 11,6-дюймовым дисплеем за 649$, а вариант с удвоенной памятью и 3G в дополнение к Wi-Fi будет продаваться по цене 799$. Начало продаж запланировано на апрель.

«Всё что мы пытаемся сделать в Plastic Logic так это дать вам все преимущества бумаги без каких-либо недостатков», говорит Richard Archuleta — генеральный директор Plastic Logic.
Читать дальше →
Total votes 3: ↑1 and ↓2 -1
Views 248
Comments 3

Как использовать принципы Open Source по максимуму или MIT vs GPL

Open source *
Translation
На протяжении последних нескольких лет я работал над рядом проектов с открытым кодом (из которых наиболее выделяются Merb, Ruby On Rails и jQuery) и сформулировал некоторые мысли по поводу использования проектов с открытым кодом и практических последствий выбора лицензии.
Читать дальше →
Total votes 65: ↑55 and ↓10 +45
Views 5.8K
Comments 87

Статистика использования браузеров за декабрь 2009 по данным StatCounter

Lumber room
Прелюбопытнейшие моменты показала статистика использования браузеров по данным StatCounter для Российской Федерации.
В декабре 2009 года свершилось чудо — впервые в истории IE занял лишь 3-е место (30.15%) по совокупности всех версий. На первом уверенно разместилась Opera (31.73%), а на втором с небольшим отставанием Firefox (31.02%).
По статистике для отдельных версий первое место занял Firefox 3.5 (22.05%), на втором месте расположилась набравшая обороты Opera 10.0 (20.41%). Третье место, можно сказать, разделили IE7 и IE8, набравшие 11.79% и 11.59% соответственно.
Далее идут Firefox 3.0 и Opera 9.6, набравшие в районе 7.5% процентов каждый.
И в качестве новогоднего подарка — доля IE6 составила всего 6.72%.

Графики и небольшое пояснение под катом.
Читать дальше →
Total votes 24: ↑19 and ↓5 +14
Views 290
Comments 31
1

Information

Rating
1,883-rd
Location
Россия
Registered
Activity