Liferay hate, love, learn
March 9, 2011 19 Comments
Today I saw a intereting page. It’s all about why Liferay sucks. I know that LR is no shiny diamond (I hate Liferay blogs portlets) and I know it has many very interesting features (I love Liferay web content structures) but lets see what other people say:
Built on top of obsolete and over-engineered fundamentals (Java Portlet API) that are pain to work with. Community edition lacks proper Javadoc. No real support for easy portlet development, portlets are NOT simple portal extensions as proclaimed by Liferay. Liferay code looks like a bunch of util method calls, some methods have 100+ lines of code. In the end, people end up hacking their way through Liferay / Portlet API to satisfy various business requirements, instead of building something that would suit their needs. Liferay is an illusion of something that can do everything (“Hey, it has CMS, it has forums, it has galleries!”) and this is something sales people like to listen to – User-440ujs
I don’t agree on Javadocs – you can see that they are updated (see here). As for all other things I agree in 50%. Source code is messy and scriptles are overused but beatifull code wont help you sell portal to your customer.
Next one.
The CMS is a joke. Making a Liferay site look like anything other than Liferay is an act of self-torment. Whoever is in charge of Liferay UX needs to be replaced. Avoid this turd like the plague! – User-107fzu
Yep, styling is hard but thats beacuse pages consits of many portlets. It’s like saying that space shuttle is more complicated than a car – yes it is. But as for Liferay UX – I agree in 100%. Liferay UX (even in the newest LR 6.1) is horrible. Tons of Javascript, unconsistent configuration pages (I’m talking about web content structure). As I said beafore many thing in Liferay and in UX also are just proof-of-concept. Sometimes I’m wondering is there anyone responsible for LR UX as whole one product. In terms of UX Liferay is light years behind WordPress and miles behind Alfresco and Joomla.
Developing a new portlet is both, extremely painful (i mean, physically painful) and limited (Liferay is a lot of things, but open to new technologies is not one of them). Hot deploy is a very attractive feature, sadly it basically doesn’t work, you can have a well nice 70% of struggling with the tool, 20% testing, leftovers for coding. If you need something that hasn’t been developed for it before, well prepare to be another lost soul – User-987i9x-250c0e
I don’t agree on the first sentence. Developing portlets is harder if you don’t know how to do it. It’s not simple (and sometimes unsecure) PHP where you can write echo “Hello world”. Hot deploy – I’ve heard that someone is working on fixing that (I think it was Tomas Polesovsky).
Other comments were about lack of LDAP integration (we tested that last month and it worked fine ootb), no way to delete old instance (well in such complex system turning off is a safer option than delete).
On the opposite we have many Love comments (most came from Jorge Ferrer) but one of them is worth pasteing here:
Liferay rocks! Not simple tool for dummies (hey guys – it’s Java not PHP), but you can extend everything! Try to learn commercial portals – Tomas Polesovsky
The part you should remember is “you can extend everything! Try to learn commercial portals”. If you will work on large projects you will see that difference between PHP and JAVA is not so big – you will ran to same problems in both.
I think “proper javadoc” is about having proper documentation in interfaces, classes and methods so you don’t have to look at the code trying to understand how to use them, only read the related javadoc.
I’ve worked with Liferay in two three projects so far and I have to say, I will never work with it again. I am currently finishing a project with it and never again will I use it for anything (except for supporting this project unfortunately).
Drupal is miles ahead in terms of documentation, community support, available extensions. It’s like some people have said in other blogs; it’s great on paper and when you first com into contact with it but a nightmare once you get down to the nitty-gritty.
– It’s 2011 Liferay…. you cant translate a Web Content’s title, intead you have to resort to ugly hacks in templates to use a “title” value defined in the structure. Obviously many other areas such as search are also affected and you also have to hack it to get it to show your structure based title.
– It’s 2011 Liferay… you can’t translate friendly urls of pages into other languages. You have your /news url and that’s it
– Search is awful. Liferay touts lucene and solr and pluggable enterprisey bullshit. Try creating a few Web Content and listing them with the Asset Publisher. Oooops, they don’t show up in a search with a link to the page where you are listing them. You only get a link to the maximized version of it. Why would I want that?
– AlloyUI. What the fuck is this for. Why would I want to learn yet another javascript framework. Just use jQuery or Mootools or some other well supported with tons of modules and support for it. Not YUI.
– Bugs, Bugs and more bugs. Asset publisher pagination does not work, ordering for publish date does not work. Sure, you can browse through the Issue Tracker and find patches for most stuff but why don’t they release updated packages more regularly. To make sure there are no bugs? Last community release was in August 2010.
– It takes too long to develop for it and customize. Stuff that I could do in minutes in PHP or ASP I have to jump through hoops to get to a solution. Interfaces of Factories of more Interfaces, Service Builder Impl, Wrapper…. fuuuuuuuuuuuuuuuuuuuuuuuuck
Hot Deploy alleviates this but only for Portlets. I couldn’t even get it to work consistently with 6.0.5.
– It’s Java. I love Java but not for Web. Let’s keep it simple mmmkay
– Poor documentation. Support in forums is also very bad. You’d be lucky to get a reply
– You cannot set default languages for each of the communities. Why not?
– It’s ginormous. Hey you don’t need this big… even for your “enterprise”. Ket It Simple Stupid!
I could go on.
On the positive side. Hooks are awesome. It has integrated Web Content, Document Library and Image Library. The Web Content portlet has amazing CCK (Content Construction Kit) which allows you to do great stuff with regular webcontent (but they you get to velocity or freemarker or xslt ughhh).
I could do any website or any module/portlet/extension in half the time (hell, a third) with Drupal, Joomla or WordPress and I don’t have to pay for specialized Java Hosting.
I used to love Liferay but I’ve had enough with it. It appeals to the enterprise crowd with all the JSR, Lucene, API, Pluggable, Social, Cloud bullshit (Just check http://www.liferay.com/products/liferay-portal/tech-specs)
I’ve spent days finding workarounds for some of the issues I mentioned above and lots more time fixing and patching Liferay and waiting for the Hook/Portlet to deploy.
Bye bye Liferay.
(Disclaimer: I work for Liferay)
Hey Jane, thanks for your feedback. Sorry you’ve experienced pain, we are always using feedback like this to improve.. I hope you take another look at Liferay later this year in our 6.1 release — many issues you mentioned have been fixed and new features are always being added.
Fixed as of 6.1 (coming out later this year).
Through customization of the FriendlyURLMapper this could be achieved. But it is not an out of the box feature. I’ll add this to the queue of features.
Fixed as of 6.1.
You are free to use any UI framework or library (such as jQuery) with Liferay! AlloyUI is our contribution to YUI and brings in a bunch of components we need that weren’t available, or would require you to import and depend on several small upstream projects. With AlloyUI, you have one component library for many of the popular UIs needed for portal projects. You also get the benefit of free use of Yahoo’s CDN to deliver these components. But you are free to use whichever you want, and ignore AlloyUI entirely.
Pagination fixed as of 6.1. Ordering by publish date fixed in 6.1. We had a recent community release a week or so ago (6.0.6) which fixes many other issues deemed higher in priority than those you’ve mentioned, which is why the community really works – through voting and our forums.
There is definitely a steeper learning curve with enterprise Java, one that has been the bane of the platform for a long time. But combining that with the services you get out of Liferay, makes it a better choice in the long run, and like any new platform, once you learn its basics, projects become easier and easier. There are pros and cons of whatever solution you go with, but Liferay has taken a lot of steps in the last couple of years to improve the development experience, either using our simplified ServiceBuilder framework, or the Eclipse-based Liferay IDE. At the end of the day, you choose what you’re most comfortable with (or can afford). Liferay is also one of the cheapest solutions for building enterprise web sites, which is why many people have chosen (and continue to choose) the platform.
Hot Deploy works for all of Liferay’s plugin types (portlets, hooks, themes, web plugins, etc).
@James: about those articles from search – are you talking about this functionality
Hello James, could you please tell us how URLs can be translated, as suggested by this quote:
—
– It’s 2011 Liferay… you can’t translate friendly urls of pages into other languages. You have your /news url and that’s it
Through customization of the FriendlyURLMapper this could be achieved. But it is not an out of the box feature. I’ll add this to the queue of features.
—
Thanks!
Well it is 2014 and liferay 6.2 is still a shit. Documentation is a joke. Testing is a joke. Whole platform looks like a bunch of static utill methods here and there. UX is just atrocity, default portlets are just horrible. Please let it die.
By the way. I’ve contributed patches to Liferay for issues I found. I just can’t contribute the big mess of hacks I’ve made to have different default languages for each community, i18n friendly urls, useful search (and other stuff)
Some of those you mentioned like translation od title and description or full text page for article will be fixed ib upcoming LR 6.1 but I agree on one thing – why do they waited with doing it till 2011 🙂
Hi James. I wan’t planning on coming back here but I was curious if there were any replies. I’d like to thank you anyway for coming here and replying.
Just on friday I ran into a bug where I couldn’t select global tags in the asset publisher. Searched around in the bug tracker and hey there it is; fixed or to be fixed in a version that’s to be released in a too far future.
I just feel that before trying to implement something or use a feature in Liferay, I should just check the bug tracker beforehand to check if it works.
The truth is I honestly don’t care anymore about Liferay. I know some of the issues I mentioned are fixed for 6.1; I have been following the bug tracker but I feeld I can be more productive and develop better websites with 1/3 of the hassle using some of the alternatives in PHP land.
Just have a look at this post http://sadsoftware.blogspot.com/2008/08/rm-rf-optliferay.html from August 2008. Three years after and I feel that his points still apply.
That’s enough for me. Enterprise Java just isn’t for me.
P.S. I meant fast deploy not hot deploy
P.S. When I meant big I meant source code complexity big. I wouldn’t care if Liferay was 1GB
P.S I know about the Eclipse IDE. It’s awesome and indeed makes that initial phase easier but I can still be a lot more productive with something other than Java.
Well liferay may not be simple but it really does suck. I’ve been trying for 2 days to use service builder with the spring beans it generates and it simply does not work full stop. The class loading just does not work. And worst still the blogs and official documentation are wholly contradictory. I tried deploying to tomcat 6, tomcat 5.5 , JBoss 5.01, JBoss 4.2.2 , changing the classloading so only one classloader was used…and it still does not work.
> I think “proper javadoc” is about having proper documentation in interfaces, classes and methods so you don’t have to look at the code trying to understand how to use them, only read the related javadoc.
Yes, rather than just something which gives you method call with absolutely no information about how the method and parameters are used.
The Wiki is just as bad. Lots of half baked articles which don’t really tell you very much or, even worse, code that doesn’t even compile (like cut’n’paste) guys.
LifeRay looks excellent from the start – and is extremely stable – but the degree to which the standard functionality doesn’t work or even function on common browsers has forced us to move on. In 2011 we shouldn’t be getting support calls that certain portlets (such web content) wont work in some browsers. Even uploading images and files – the interface reminds us of something out of web in 1997. The labour hours that we need to even write portlets or design themes are comparable to other larger scale development projects we do to run entire departments (even if you assume half the labour hours is learning how to do things). Service builder is over-engineered and unnecessarily complex. We recently wrote a server in Ruby (with no prior ruby knowledge I might add) that completely inspects the structure of a database and generates fully cross-browser HTML to manipulate the database (think phpMyAdmin) in less than 1400 lines of code – the same number of lines to write a simple LifeRay portlet to collect data on an intranet with a ‘fixed’ schema defined in xml files.
LifeRay has behind it a general commercial acceptance of Enterprise Java that leads many businesses down the Java based CMS path, but the math simply is, that its less expensive, more fun and a smoother fit to business processes to write something from scratch using new technologies than build on-top of an existing system made from a language that is quickly becoming the FORTRAN of our time.
I totally agree.
Love an hate, at this moment in time more hate than love. Version 6.1 CMS does not have any really useful documentation, just a few pages in liferay.com but not enough to work with real projects. If you want to make even a small company it’s really hard to customize your web. Even more, if want to make changes (normal changes in wordpress or joomla o any other “small” CMS) there is a bunch o JSP to dig before find the place to modify the code.
Liferay promises a real world solution but sadly thats not true.
They are trying to provide “42” – but Its only bloatware : )
Now its 2013….. and let me tell you: You don’t want to even think about upgrading a “running” liferay system to a newer… dear mother of god, please!
Liferay sales in the U.S. have tanked in 2013. I guess the community is voicing their feelings about the product. I question sustainability.
Liferay??????????? mmmmmmmmmmmmmmmmm
>> “I don’t agree on Javadocs – you can see that they are updated (see here).”
See here…. what exactly? Somebody at Liferay typed a command to have maven generate javadocs against the classes…. that contain ZERO commentary on how the code is actually designed, how the classes inter-related etc. Wow thats really helpful.
From first hand experience, trying to figure out how subsystems work internally Liferay is a nightmare. Zero documentation. Zero comments in the code. Zero class/design diagrams or documentation for how various packages/interfaces interact.
“Open-source”? Technically yes, but in reality no.. due to lack of documentation in the code or design documents. Hence why people fork over big $$ for professional support/services.