Кто-либо использует Scala в гневе (и что совет для программиста Java)? [закрытый]

pandas.DataFrame.reset_index подталкивает в столбцы многоуровневый индекс. Он работает и с pandas.Series.

df[['B', 'C']].stack().reset_index()
18
задан oxbow_lakes 16 February 2009 в 22:51
поделиться

6 ответов

Я использовал Scala на нашей существующей инфраструктуре Java, чтобы запросить и управлять большими xml документами. Не было возможное использование стандартного Java xml библиотеками или не как легко.

я испытал желание использовать его для вычислений производительности портфеля, но уже закончил версию Java. Версию Scala было бы легче поддержать, как легче перевести формулы непосредственно в код.

Другая область, где можно красться в Scala, с многопоточностью. Не имейте никакого реального опыта с этим, но это, кажется, легче в Scala.

Точка, не пытайтесь рассматривать его как замену Java на данный момент, но использовать ее, где можно использовать его преимущества рядом с существующим кодом Java.

я использовал Intellij с плагином Scala как IDE, но это еще не там. Это выполнимо в сочетании с плагином знатока и консолью.

я - также программист Smalltalk и любовная способность использовать блоки кода в Scala. По сравнению с Java существует меньше кода, но все еще как readible как код Smalltalk.

BTW, smalltalk сообщество растет снова благодаря Приморской платформе, таким образом, Вы могли бы хотеть возвратиться

вещи, я изучил или получил лучшее понимание:

  • использование конструкторов
  • неизменное понятие
  • , работающее со списками и рекурсией
  • функциональное программирование в общем

Так да, я думаю, что это стоит того.

12
ответ дан 30 November 2019 в 07:56
поделиться
6
ответ дан 30 November 2019 в 07:56
поделиться

Я добавил clojure к программной инфраструктуре, используемой в научный операционный Kepler центр миссии. Прямо сейчас это там для того, чтобы сделать интерактивную отладку; выполните REPL, загрузите некоторые классы и выполните методы специальным способом.

РЕДАКТИРОВАНИЕ: хорошо, таким образом, "загрузка некоторые классы и выполняются, методы" неопределенно. Например, мы можем загрузить наши классы грязи и затем выполнить метод для преобразования одного вида относящегося к космическому кораблю времени в другого.

user=> (import '(gov.nasa.kepler.hibernate.dr LogCrud))
user=> (def crud (new LogCrud))
#'user/crud
user=> (def shortCadences (.longCadenceToShortCadence crud 0 2500))
user=> (prn shortCadences)
#>

существуют другие методы, которые можно назвать для преобразования на этот раз в другие виды форматов времени, которые могли бы быть полезны для отладки. Мы могли сделать инструменты командной строки для инкапсуляции всей этой функциональности, но нет никакой потребности к тому, так как все доступно от clojure.

2
ответ дан 30 November 2019 в 07:56
поделиться
2
ответ дан 30 November 2019 в 07:56
поделиться

Да, люди создают фактические приложения "Предприятия" с Scala (и Clojure). Просто сделайте это.

, Конечно, люди также используют Smalltalk, поэтому если Вам нравится Smalltalk, почему бы не использовать это?

1
ответ дан 30 November 2019 в 07:56
поделиться

I basically hit everyone on the head with Scala code in our last project, as I got sick of debugging the same problems caused by a lack of understanding of Hibernate + JBoss. (It's amazing, really. The developers who wrote the original system are still there and still get lost in Hibernate details.)

What we had -> a wacky system built mostly with a bunch of stateless EJB beans wired together with some hibernate code tossed together with some SQL. (We're an ASP, basically. The production cluster is fairly small -> only around 100 machines.)

What I did -> put together various REST-based services, where we redefined the RPC between some of the servers. This is making everything very easy to code, plus, implementing a public API into what was a system where no attention was paid to dependencies.

So far, we've started to deploy code in and out of JBoss instances with no real problems. The first time you try to use a Scala object in Java, you'll probably wrinkle your nose. But otherwise, nobody really noticed.

So far, it's been about 5 months since we really started. We've done a couple of major revisions, and subsequently are behind, but the system is far, far better tested than in the past. So, while we've had some bad ideas sneak in there while we were really learning the system, we've now been able to remove them all, and, get very close to production deployment. All in all, I'd say the typical dude needs 2-3 months to stop coding like a Java programmer, and get "familiar" with most of the standard libraries.

Writing JDBC code instead of an ORM system basically has thrown out almost all of our performance problems. The speed has been actually significantly better, but that was mostly because I was able to do everything I wanted with less real application code.

Tools I'm using:

  1. Restlet : Very happy with this framework. Our restlet layer is outrageously trivial code.
  2. JDBC -> note: we've tweaked what was basically there in the wiki
  3. XML (and soon, JSON)
  4. buildr, maven on a couple of projects I didn't want to convert (plus Nexus and Hudson). I'm experimenting with sbt, which is already very nice for scala projects.

We've had absolutely no problems with reusing any of the old java libraries, but we do tend to wrap them in scala-fied layers. Mostly just to write less code.

And the pimp my library pattern is by far the most important one to be familiar with. The "cake" pattern is nice, but you have to control instantiation, which sometimes isn't quite useful. I have also used Guice in a mixed environment, not really hard, either. But I find that mixing code is way less useful than I originally thought, though that's probably because I'm replacing a lot of really, really bad Java code.

My editing environment is mostly TextMate on OS X, but we deploy on Linux servers.

P.S. Yes, I know this is about 4 months old, but whatever. It's relevant, especially now that we have some experience.

6
ответ дан 30 November 2019 в 07:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: