Pull to refresh
105
0.1
Роман Смирнов @Source

Head of Elixir at Ecom.tech

Send message

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

Reading time8 min
Views71K

КДПВ


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


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


про эшелоны

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

Читать дальше →

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

Reading time12 min
Views70K

Languages are not taught, they are learnt!


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


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

Читать дальше →

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

Reading time6 min
Views40K

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


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


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


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

Читать дальше →

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

Reading time12 min
Views154K

КДПВ


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


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


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


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

Читать дальше →

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

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

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

Читать дальше →

Маслобойка

Reading time4 min
Views48K

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


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

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


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

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


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

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


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

Читать дальше →

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

Reading time16 min
Views71K

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


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


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


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

Читать дальше →

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

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

Список изменений по сравнению с Synergy 0.50.0:
Читать дальше →

Вышел Spree 0.60.0

Reading time1 min
Views1.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 — платформа для создания интернет-магазинов»

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

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

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

Вышел Spree 0.50.0

Reading time1 min
Views1.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

Но это ещё не всё…
Читать дальше →

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

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

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

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

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

Продолжение и графики под катом.
Читать дальше →

Вышел Spree 0.30.0

Reading time1 min
Views1.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-версию или свой собственный форк

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

Официальные примечания к релизу

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

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

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

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

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

Reading time1 min
Views755
Согласно новому плану, релиз состоится примерно в середине августа.

Подробнее:
  • 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

Spree 0.10.0 release

Reading time1 min
Views1.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»

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

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

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

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

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

Reading time5 min
Views6.8K
На протяжении последних нескольких лет я работал над рядом проектов с открытым кодом (из которых наиболее выделяются Merb, Ruby On Rails и jQuery) и сформулировал некоторые мысли по поводу использования проектов с открытым кодом и практических последствий выбора лицензии.
Читать дальше →

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

Reading time1 min
Views726
Прелюбопытнейшие моменты показала статистика использования браузеров по данным 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%.

Графики и небольшое пояснение под катом.
Читать дальше →
1

Information

Rating
3,981-st
Location
Россия
Registered
Activity