- SBT. Simple? Please rename it to ComplicatedBuildTool in 0.14 so at least you know what to expect because its anything but simple :) I've spent probably 2 days just learning this and trying to configure it to work in a multi module way, and just when I was satisfied I had it all good, sbteclipse doesn't play nice with play's eclipsify. Arghhh.
- Binary compatibility. I'm sure some people don't care but right now I have some dependencies that require 2.10 and others that won't work in 2.10. So I have had to dump off casbah (mongo driver), Jackson (the scala module won't work). I'm now using the Java mongo driver and writing my own wrappers. I'm using Jackson without the Scala modules and sticking with Arrays only in my domain objects. Doesn't anyone see binary compatibility as a major issue? I think Java takes it too far but I don't think Scala yet has the size of community to be changing these things between versions because lots of projects are too small right now to be maintaining multiple versions.
- The drift away from "standard" java deployment. Maybe I'm looking in the wrong places, but the frameworks that have grabbed my attention all do configuration and deployment in their own way. Specifically, neither play nor spray deploy in a standard WAR format (or maybe they can and I've missed it? - I know spray can run on top of a servlet container actually). Maybe you'll argue WAR's are crap, or this way allows faster, lower level frameworks, but it's throwing away all the learned knowledge and standard deployment practices.
On the plus side, the scala-ide nightlies are getting better and better and for "day to day" development I am now very contented.Any advice? I worry that Scala (well specifically the frameworks around it) are just too complicated for average developers like me.
Hi All.For the past 2 weeks I have been evaluating scala as a "full stack" solution at work. What I mean by that is that I have used Scala successfully in the past in mixed java/scala projects using maven, where I have written maybe 20% of the code in Scala, purely because I like the language and its conciseness over Java.Recently I convinced the CTO to let us develop our new (greenfield) flagship product purely in Scala.
Hi All.
For the past 2 weeks I have been evaluating scala as a "full stack" solution at work. What I mean by that is that I have used Scala successfully in the past in mixed java/scala projects using maven, where I have written maybe 20% of the code in Scala, purely because I like the language and its conciseness over Java.
Recently I convinced the CTO to let us develop our new (greenfield) flagship product purely in Scala. I've spent 2 weeks now putting the infrastructure in place / bootstrapping the project. And I'm about to give up. As a last ray of hope I need some coxing and back rubbing and the clever minds here to tell me all the following problems are just me being stupid. Otherwise I worry that I cannot justify moving all 10 developers over next week.
- SBT. Simple? Please rename it to ComplicatedBuildTool in 0.14 so at least you know what to expect because its anything but simple :) I've spent probably 2 days just learning this and trying to configure it to work in a multi module way, and just when I was satisfied I had it all good, sbteclipse doesn't play nice with play's eclipsify. Arghhh.
- Binary compatibility. I'm sure some people don't care but right now I have some dependencies that require 2.10 and others that won't work in 2.10. So I have had to dump off casbah (mongo driver), Jackson (the scala module won't work). I'm now using the Java mongo driver and writing my own wrappers. I'm using Jackson without the Scala modules and sticking with Arrays only in my domain objects. Doesn't anyone see binary compatibility as a major issue? I think Java takes it too far but I don't think Scala yet has the size of community to be changing these things between versions because lots of projects are too small right now to be maintaining multiple versions.
- The drift away from "standard" java deployment. Maybe I'm looking in the wrong places, but the frameworks that have grabbed my attention all do configuration and deployment in their own way. Specifically, neither play nor spray deploy in a standard WAR format (or maybe they can and I've missed it? - I know spray can run on top of a servlet container actually). Maybe you'll argue WAR's are crap, or this way allows faster, lower level frameworks, but it's throwing away all the learned knowledge and standard deployment practices.
On the plus side, the scala-ide nightlies are getting better and better and for "day to day" development I am now very contented.
Any advice? I worry that Scala (well specifically the frameworks around it) are just too complicated for average developers like me.
try intellij, use ant :)
- SBT. Simple? Please rename it to ComplicatedBuildTool in 0.14 so at least you know what to expect because its anything but simple :) I've spent probably 2 days just learning this and trying to configure it to work in a multi module way, and just when I was satisfied I had it all good, sbteclipse doesn't play nice with play's eclipsify. Arghhh.
We’ve been using it all successfully for a few months for a few projects, some plain backend (sbt) some play and kind of the same way you got there as well.
There are some things to take into account.
1. Take it easy on the multi-projects. It is not easy to setup and work with multi-projects
2. Have multiple projects each be artifacts, built independently and published on an artifactory and used that way
3. Sbt can be a hair-pulling experience if you don’t do things exactly as described… yes, take it easy and don’t test features you don’t really need
4. Play works fairly well
In Eclipse, modify the generated play projects manually and just include the other projects directly – that way you can avoid multi-projects issues for development. You can also include other projects as manually or ant-built JAR files too, eh? That’s what we ended up doing to use some Java code from a play app…
Yes – use 2.9 for now.
We have deployed play apps as J2EE servlets in Weblogic, in production – there is a project on github you can use and with a bit of hacking, it works just fine.
Cheers,
Razie
For item 3 LIFT works well on standard jee deployments. I don't really know why typeface chose play .. for me Lift would ha e been a far better choice. But hey, you don't have to use all typeface stack .... just because they also put framworks/libraries there it doesn't mean that those are the best choice in any context.
SBT.
The drift away from "standard" java deployment. Maybe I'm looking in the wrong places, but the frameworks that have grabbed my attention all do configuration and deployment in their own way. Specifically, neither play nor spray deploy in a standard WAR format (or maybe they can and I've missed it? - I know spray can run on top of a servlet container actually). Maybe you'll argue WAR's are crap, or this way allows faster, lower level frameworks, but it's throwing away all the learned knowledge and standard deployment practices.
Any advice? I worry that Scala (well specifically the frameworks around it) are just too complicated for average developers like me.
...SBT. Simple? Please rename it to ComplicatedBuildTool in 0.14 so at least ...
Hi All.
- SBT. Simple? Please rename it to ComplicatedBuildTool in 0.14 so at least you know what to expect because its anything but simple :) I've spent probably 2 days just learning this and trying to configure it to work in a multi module way, and just when I was satisfied I had it all good, sbteclipse doesn't play nice with play's eclipsify. Arghhh.
This is a great reply, as everything the OP has asked is summarized here:
"SBT-multi-modules + play + eclipsify"
Play documentation provides details on how to build sub projects, but the easiest way to make them play nice with eclipse is to create a directory structure like so:/project (contains Build.scala, build.properties, and plugins.sbt)/module1/module2/module3where each module is a PlayProject (you could define sbt RootProject and Project modules, but the road is a bit rockier with that approach, imo).Some bleeding edge snippets sans scala 2.10:plugins.sbt >addSbtPlugin("play" % "sbt-plugin" % "2.1-SNAPSHOT")build.properties >sbt.version=0.12.1~/.sbt/plugins/plugins.sbt >addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0")and a multi module Build.scala attachedIm blazing in production with a multi module play 2.1 snapshot app on scala 2.9.2 (grab the 9/14/2012 snapshot version, the last release prior to switch to scala 2.10)Good luck, once you have something to work with, it's not that complex (sbt is of course challenging beyond the simple case, I certainly am only scratching the surface)
- SBT. Simple? Please rename it to ComplicatedBuildTool in 0.14 so at least you know what to expect because its anything but simple :) I've spent probably 2 days just learning this and trying to configure it to work in a multi module way, and just when I was satisfied I had it all good, sbteclipse doesn't play nice with play's eclipsify. Arghhh.
- Binary compatibility. I'm sure some people don't care but right now I have some dependencies that require 2.10 and others that won't work in 2.10. So I have had to dump off casbah (mongo driver), Jackson (the scala module won't work). I'm now using the Java mongo driver and writing my own wrappers. I'm using Jackson without the Scala modules and sticking with Arrays only in my domain objects. Doesn't anyone see binary compatibility as a major issue? I think Java takes it too far but I don't think Scala yet has the size of community to be changing these things between versions because lots of projects are too small right now to be maintaining multiple versions.
- The drift away from "standard" java deployment. Maybe I'm looking in the wrong places, but the frameworks that have grabbed my attention all do configuration and deployment in their own way. Specifically, neither play nor spray deploy in a standard WAR format (or maybe they can and I've missed it? - I know spray can run on top of a servlet container actually). Maybe you'll argue WAR's are crap, or this way allows faster, lower level frameworks, but it's throwing away all the learned knowledge and standard deployment practices.
On the plus side, the scala-ide nightlies are getting better and better and for "day to day" development I am now very contented.
Any advice? I worry that Scala (well specifically the frameworks around it) are just too complicated for average developers like me.
For item 3 LIFT works well on standard jee deployments. I don't really know why typeface chose play .. for me Lift would ha e been a far better choice. But hey, you don't have to use all typeface stack .... just because they also put framworks/libraries there it doesn't mean that those are the best choice in any context.
Well historically we've seen Java developers ramping up with Lift quite fast. In fast I started to use Lift while I was quite a beginner in Scala and it worked great ... learning Lift and Scala in parallel. You can use Java code with Lift as Scala allows you to .... but it's really easy to write web apps in Scala using Lift idioms and leverage a clean template system. Allowing Java code to implement the framework API is not going to help much with the migration towards Scala ... at least I would stay way from such usage patterns.
Recently I convinced the CTO to let us develop our new (greenfield) flagship product purely in Scala. I've spent 2 weeks now putting the infrastructure in place / bootstrapping the project. And I'm about to give up. As a last ray of hope I need some coxing and back rubbing and the clever minds here to tell me all the following problems are just me being stupid. Otherwise I worry that I cannot justify moving all 10 developers over next week.
- SBT. Simple? Please rename it to ComplicatedBuildTool in 0.14 so at least you know what to expect because its anything but simple :) I've spent probably 2 days just learning this and trying to configure it to work in a multi module way, and just when I was satisfied I had it all good, sbteclipse doesn't play nice with play's eclipsify. Arghhh.
- Binary compatibility. I'm sure some people don't care but right now I have some dependencies that require 2.10 and others that won't work in 2.10. So I have had to dump off casbah (mongo driver), Jackson (the scala module won't work). I'm now using the Java mongo driver and writing my own wrappers. I'm using Jackson without the Scala modules and sticking with Arrays only in my domain objects. Doesn't anyone see binary compatibility as a major issue? I think Java takes it too far but I don't think Scala yet has the size of community to be changing these things between versions because lots of projects are too small right now to be maintaining multiple versions.
- The drift away from "standard" java deployment. Maybe I'm looking in the wrong places, but the frameworks that have grabbed my attention all do configuration and deployment in their own way. Specifically, neither play nor spray deploy in a standard WAR format (or maybe they can and I've missed it? - I know spray can run on top of a servlet container actually). Maybe you'll argue WAR's are crap, or this way allows faster, lower level frameworks, but it's throwing away all the learned knowledge and standard deployment practices.
On the plus side, the scala-ide nightlies are getting better and better and for "day to day" development I am now very contented.
On Fri, Nov 16, 2012 at 3:21 AM, yossarian <mark....@yahoo.com> wrote:I suggest "Scalable build tool".
> As an aside, Martin called it "Scala build tool" in one of the coursera
> lectures...
Sam, which direction did you take finally? Did you find the solution for eclipsify?
Hi guys,First of all thanks for all the replies. Every single one was helpful and courteous.As a result what I've ended up doing is this:Recommended a switch to intellij. Eclipse + Maven + Scala IDE Plugin is not ready for prime time imo. I was forever getting errors which forced a full clean (such as unable to find files that existed). A clean usually fixed it. Note: I did not have this problem with SBT and Eclipse which is why I was keen on using sbt, but am much happier going back to Maven and keeping the existing deployment pipeline and inhouse knowledge. Since the switch to intellij everything has worked perfectly.Following on from sticking with maven, I ditched play and went back to Spring MVC. A boring choice perhaps, but it's tried and tested and works perfectly. I didn't want to fight play + maven.Finally, am using Scalatra for REST.
Hi All.For the past 2 weeks I have been evaluating scala as a "full stack" solution at work. What I mean by that is that I have used Scala successfully in the past in mixed java/scala projects using maven, where I have written maybe 20% of the code in Scala, purely because I like the language and its conciseness over Java.
Recently I convinced the CTO to let us develop our new (greenfield) flagship product purely in Scala. I've spent 2 weeks now putting the infrastructure in place / bootstrapping the project. And I'm about to give up. As a last ray of hope I need some coxing and back rubbing and the clever minds here to tell me all the following problems are just me being stupid. Otherwise I worry that I cannot justify moving all 10 developers over next week.
- SBT. Simple? Please rename it to ComplicatedBuildTool in 0.14 so at least you know what to expect because its anything but simple :) I've spent probably 2 days just learning this and trying to configure it to work in a multi module way, and just when I was satisfied I had it all good, sbteclipse doesn't play nice with play's eclipsify. Arghhh.
- Binary compatibility. I'm sure some people don't care but right now I have some dependencies that require 2.10 and others that won't work in 2.10. So I have had to dump off casbah (mongo driver), Jackson (the scala module won't work). I'm now using the Java mongo driver and writing my own wrappers. I'm using Jackson without the Scala modules and sticking with Arrays only in my domain objects. Doesn't anyone see binary compatibility as a major issue? I think Java takes it too far but I don't think Scala yet has the size of community to be changing these things between versions because lots of projects are too small right now to be maintaining multiple versions.
- The drift away from "standard" java deployment. Maybe I'm looking in the wrong places, but the frameworks that have grabbed my attention all do configuration and deployment in their own way. Specifically, neither play nor spray deploy in a standard WAR format (or maybe they can and I've missed it? - I know spray can run on top of a servlet container actually). Maybe you'll argue WAR's are crap, or this way allows faster, lower level frameworks, but it's throwing away all the learned knowledge and standard deployment practices.
On the plus side, the scala-ide nightlies are getting better and better and for "day to day" development I am now very contented.
2. Have multiple projects each be artifacts, built independently and published on an artifactory and used that way
The last time I looked, Lift was all Scala.