67👍
I’m currently working on a series of projects in lift, so I’ll give my personal experiences.
Its a very capable framework – and I find it makes lighter work of application development than the equivalent in rails or django. However, you will need a reasonable understanding of scala in order to get started on sophisticated app development as documentation is existent but limited, and not centralised.
Lift itself has cherry-picked a lot of features from existent frameworks – rails and django included – to form, imho, a best of breed framework. It also uses some novel techniques of its own that truly mean you can take a frontend and build an application around it relatively quickly.
Following the tutorials, you can create the classic “todo” application demonstrated by many frameworks with little to no experience within 2-3 minutes. But I would say that you need to have a reasonable knowledge of Java, and an understanding of scala in order to get the most out of lift.
Setting up a comfortable development environment isn’t exactly painless, due to spotty scala support in the mainstream IDEs.
If you have a weekend you can dedicate to getting started and reading the book I would highly recommend taking the plunge.
As a more direct answer to your question, in terms of “ease”, I would say that if you are unfamiliar with Java, scala, ruby and python, then of the three, your best bet would be rails – as ruby is a beautiful language, nigh on self-explanatory, well documented, introduces the majority of OO concepts, and is very easy to learn. Additionally, I know of many people that have actually learned ruby solely through developing in rails.
17👍
I have to disagree with the other answers that support Lift over RoR and Django. Lift is incredibly capable, and it is very flexible. But anyone who thinks it is easier to grok and get rolling with than Django and RoR isn’t being pragmatic.
For one there is a lot more documentation on Django and RoR. Their are training classes, way more books, lots of web entries on solving common problems. Django has a huge number of plug-ins,etc. I know it might not seem like these things matter but they do. When it’s hard to hire, hard to train, you have to solve common problems over again, etc it’s a real drain.
I’m a fan of lift, and I think one day my recommendation might not be true. But if your life is dependent on it you might want to take the safe course and go RoR/Django.
- [Django]-How to automatically run tests when there's any change in my project (Django)?
- [Django]-Django, ImportError: cannot import name Celery, possible circular import?
- [Django]-How to get the value of a Django Model Field object
9👍
I’d have to say it’s a bit more difficult to get started with, due to the complexities of the Java/Scala ecosystem (maven? gradle? .war files? Tomcat? Jetty? what??) and the necessity of compilation. The exception is if you have Java development experience, or especially Java web development experience, in which case I’m sure all of this stuff is an old hat to you.
Once you’ve gotten past that and have a workflow, it’s great. Scala is a fantastic language, and lift is an engaging framework.
- [Django]-How can I chain Django's "in" and "iexact" queryset field lookups?
- [Django]-Add request.GET variable using django.shortcuts.redirect
- [Django]-In the Django admin site, how do I change the display format of time fields?
4👍
If ease of start up is your only concern then you may want to go with RoR or Django. But if long term performance, scalability and maintainability are significant, if you are capable of learning scala, which is a bit more complicated but quite elegant and enjoyable in my experience, then Lift or Play will probably yield greater longevity and adaptability long term, which may greatly out weigh the slightly larger startup time on a significant project. Take a look at some of the performance comparisons
- [Django]-How to handle request.GET with multiple variables for the same parameter in Django
- [Django]-Custom error messages in Django Rest Framework serializer
- [Django]-Django: Model Form "object has no attribute 'cleaned_data'"