4 ms·
I tried using liftweb for a project once, but was discouraged by the heavy dependency on maven. Also, liftweb is undergoing huge churn, especially in the databa
by marketer 19y ago
I tried using liftweb for a project once, but was discouraged by the heavy dependency on maven. Also, liftweb is undergoing huge churn, especially in the database modeling.
- mullr 19y agoI concur, having faced similary problems. Scala's association with java has, so far, been more of a curse than a blessing. But it is an interesting language. To me, scala feels like a language with headroom, to use audio parlance. It's easy to get started, since you can code in pretty conventional ways. It has sophisticated things to learn about that you can use to write more expressive code, but the key differentiator from Haskell, say, is that you don't need to know all these to get things done. With scala you can hit the ground running.
- jorgeortiz85 19y agoScala's association with Java is a mixed blessing, but I think the net effect is positive. Haskell, Python, Ruby, and OCaml were created in 1990, 1991, 1995, and 1996, respectively. Literally decades of work have gone into building libraries for these languages, in everything from web protocols to cryptography to machine learning. Scala was released in 2003 (and Scala 2.0, released in 2006, was a complete rewrite). Yet despite being so young, having access to any Java library makes Scala instantly useful. The language team can focus on the core language, and any library you can imagine is just a Google search away. To give two examples: Adding support for AMQP and XMPP to lift meant writing two thin wrappers over the equivalent Java libraries. You could use the Java libraries directly, but the wrappers take advantage of Scala's Actors, which are the best thing since sliced bread when it comes to concurrency. The JVM is also the most ubiquitous deployment platform ever. Yes, maven is mysterious and I mostly don't understand how it works. But it works, and it gives me a WAR file, and deploying a WAR is as easy as dropping it into any webapp container. Could Scala-the-language be prettier if it wasn't tied to the Java platform? Probably. Would Scala-the-platform be viable today if it didn't have full access to Java-the-platform? Unlikely. It's hard to overstate the importance of the JVM platform to growing a new language. For Scala, it's the difference between a language that is an academic curiosity and a language I can use to solve real problems now.
- marketer 19y agoI use F# at work. Guess what? My code is basically C#, with a thin F# layer. Ocaml doesn't give you the luxury of the .NET framework, which can be seen as a blessing in disguise, because your code tends to be much more functional. The libraries make a huge part of the flow in a 'real' program. To some extent, it's good that scala tries to wrap the conventional standard libraries, to make the flow seem more scala-like.
- deleted 19y ago[deleted]
- jorgeortiz85 19y ago(Disclaimer: I'm a liftweb committer.) I'm sorry you were discouraged by maven. I've found maven to be a huge productivity boost, especially when compared to the alternatives. Though I'll admit it's mostly "black magic" to me. Half the time I don't know what exactly it's doing. But since it "just works", I find it really doesn't matter that much that I don't understand it. Also, most of the "churn" is in new features. There are 6-12 production apps running off of lift's trunk, so check-in's very, very rarely break backwards compatibility. There is an effort to re-work the ORM layer and make it much, much more powerful (it'll be much more than just ORM). This work is proceeding cautiously though. There will be ample warning before the old ORM is deprecated and thrown out. If you want to give lift a second chance, I'd encourage you to use the mailing list as a resource (liftweb@googlegroups.com). People are very friendly and generally very willing to answer questions.
- marketer 19y agoThat's cool that you're a committer, I think scala/lift are very promising, and look forward to using them in the future. If everything is working well, maven can be a huge productivity boost. I'm sure the decision to use maven was to make the learning curve smaller. But I get an uneasy feeling when maven is being used for every aspect of the project, including creating it, compiling it, running it, updating the libraries, deploying it, importing to eclipse, etc... The best way to use maven is to set up a stable local repository, and be _careful_ when you update them. Archtypes can be upgraded server-side on the fly, and this can cause problems if you're not careful about versioning. By default, however, people won't set up local copies of maven repositories. And despite the best intentions of liftweb.org, and ibiblio.org, neither organization has a vested interest in your project, and they suffer from downtime frequently. liftweb was down for over a day at one point. You couldn't create a blank project template, or update the dependencies. It's a risky dependency.