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

    • Перевод

    КДПВ


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


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


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


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


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

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

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

      Читать дальше →
    • Маслобойка

      • Перевод

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


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

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


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

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


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

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


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

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

      • Перевод

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


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


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


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

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

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

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

        • Перевод
        Релиз 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 — платформа для создания интернет-магазинов

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

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

            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 не всемирно популярна?

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

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

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

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