среда, 13 октября 2010 г.

[prog.flame] В LinkedIn Signal используются Scala и JRuby

В конце сентября в статусе бета-версии запустился новый сервис LinkedId – LinkedIn Signal. Насколько я могу судить, это что-то вроде очередной социальной сети, на этот раз вокруг LinkedIn.

11 октября на InfoQ.com опубликовали небольшой рассказ об архитектуре LinkedIn Signal и ответы ключевых разработчиков этого сервиса на вопросы InfoQ. Может быть, кому-то будет это интересно. Мне же понравились примеры кода на Scalatra – вэб-фреймворке для Scala (оказывается, не Lift-ом единым…). Не часто увидишь к месту использованную родную поддержку XML-я в языке Scala:

package org.scalatra

class ScalatraExample extends ScalatraServlet {

  // send a text/html content type back each time
  before {
    contentType = "text/html"
  }

  // parse matching requests, saving things prefixed with ':' as params
  get("/date/:year/:month/:day") {
    <ul>
      <li>Year: {params("year")}</li>
      <li>Month: {params("month")}</li>
      <li>Day: {params("day")}</li>
    </ul>
  }

Но больше всего меня вставила вот эта фраза от одного из разработчиков (это Chris Conrad рассказывал о своих впечатлениях от Scala):

Regarding pitfalls, I think that the most common has to do with the mixed object oriented/functional nature of Scala.  Programmers will need to spend the time and learn when to model the program using objects and when to model their program using functions and how to mix the two together.  Personally, while writing Norbert, I had to go back and revisit some pieces of code multiple times as I became more comfortable with using Scala.

Что в моем вольном переводе (с помощью ув.тов.alexey-rom) звучит как:

Если касаться проблем, то я думаю, чаще всего они связаны со смешанной объектно-ориентированной/функциональной природой Scala. Программистам приходится приходится тратить время на то, чтобы учиться определять, когда программы нужно строить посредством объектов, а когда посредством функций, и как все это смешивать друг с другом. Лично я, когда писал Norbert, был вынужден возвращаться назад и переделывать куски кода по несколько раз по мере того, как я все больше привыкал к Scala.

По началу для меня, как для замшелого C++ника, такое высказывание было диким. С++никам же постоянно приходится выбирать – ООП ли использовать, обычное процедурное программирование, обобщенное программирование или еще что-то. Что в этом сложного? ;)

А потом вспомнилось, что на Scala переходят Java-исты, которые измучены нарзаном были воспитаны дятлами чистым и ущербным Java ООП. У них же кроме классов и интерфейсов ничего не было. И, более того, многим именно это и нравилось. А тут на тебе! И функции, и объекты, и трайты, и паттерн-матчинг… Конечно, так сразу все это счастье не переживешь :)

Отправить комментарий