Как стать автором
Обновить
106
0
Роман Смирнов @Source

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

Отправить сообщение

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

Время на прочтение8 мин
Количество просмотров71K

КДПВ


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


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


про эшелоны

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

Читать дальше →
Всего голосов 70: ↑64 и ↓6+58
Комментарии154

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

Время на прочтение12 мин
Количество просмотров69K

Languages are not taught, they are learnt!


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


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

Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии65

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

Время на прочтение6 мин
Количество просмотров40K

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


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


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


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

Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии79

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

Время на прочтение12 мин
Количество просмотров154K

КДПВ


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


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


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


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

Читать дальше →
Всего голосов 77: ↑67 и ↓10+57
Комментарии146

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

Время на прочтение6 мин
Количество просмотров22K
В последнее время участились статьи и обсуждения на тему прощания с ООП и поиски смысла, который Алан Кэй изначально вкладывал в это понятие.

Несколько высказываний Кэя для тех, кто пропустил
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 и т.д.), а имена школьников — по алфавиту.

Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Комментарии410

Маслобойка

Время на прочтение4 мин
Количество просмотров48K

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


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

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


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

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


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

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


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

Читать дальше →
Всего голосов 178: ↑136 и ↓42+94
Комментарии326

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

Время на прочтение16 мин
Количество просмотров70K

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


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


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


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

Читать дальше →
Всего голосов 70: ↑64 и ↓6+58
Комментарии404

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

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

Список изменений по сравнению с Synergy 0.50.0:
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии26

Вышел Spree 0.60.0

Время на прочтение1 мин
Количество просмотров1.9K
Релиз 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 — платформа для создания интернет-магазинов»
Всего голосов 10: ↑6 и ↓4+2
Комментарии0

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

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

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

Вышел Spree 0.50.0

Время на прочтение1 мин
Количество просмотров1.5K
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

Но это ещё не всё…
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

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

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

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

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

Время на прочтение2 мин
Количество просмотров4.2K
Подводя итоги прошедшего года, хочется взглянуть на статистику использования браузеров в РФ по данным 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 смог переманить даже большинство пользователей альтернативных браузеров, которые, как правило, весьма привержены своему выбору.

Продолжение и графики под катом.
Читать дальше →
Всего голосов 70: ↑57 и ↓13+44
Комментарии85

Вышел Spree 0.30.0

Время на прочтение1 мин
Количество просмотров1.6K
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-версию или свой собственный форк

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

Официальные примечания к релизу
Всего голосов 33: ↑28 и ↓5+23
Комментарии9

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

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

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

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

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

Время на прочтение1 мин
Количество просмотров729
Согласно новому плану, релиз состоится примерно в середине августа.

Подробнее:
  • 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
Всего голосов 16: ↑11 и ↓5+6
Комментарии5

Spree 0.10.0 release

Время на прочтение1 мин
Количество просмотров1.3K
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»
Всего голосов 12: ↑9 и ↓3+6
Комментарии19

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

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

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

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

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

Время на прочтение5 мин
Количество просмотров6.6K
На протяжении последних нескольких лет я работал над рядом проектов с открытым кодом (из которых наиболее выделяются Merb, Ruby On Rails и jQuery) и сформулировал некоторые мысли по поводу использования проектов с открытым кодом и практических последствий выбора лицензии.
Читать дальше →
Всего голосов 65: ↑55 и ↓10+45
Комментарии87

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

Время на прочтение1 мин
Количество просмотров692
Прелюбопытнейшие моменты показала статистика использования браузеров по данным 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%.

Графики и небольшое пояснение под катом.
Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии31
1

Информация

В рейтинге
3 538-й
Откуда
Россия
Зарегистрирован
Активность