• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Liutauras Vilda
  • Paul Clapham
  • paul wheaton
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Piet Souris
  • Mike London

Spring versus CUBA Platform

Posts: 15
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Good day,
 With regard to Java Web Frameworks, how do you think Spring 5 compares to/stands up against the CUBA platform?
 I have read that the CUBA platform gets "very high marks" and was wondering what does Spring 5 offer that separates it from the CUBA platform as a better framework?

Tony Esposito (aka Bubba Johnson)
Posts: 422
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I honestly had not heard of CUBA until just now. So I went to check it out watched a video or two...and I still can't say that I know enough about it to authoritatively compare it with Spring/Spring-Boot. But if you're willing to accept an answer based on virtually no knowledge of CUBA, I'll answer anyway.

From what I can see, CUBA offers a modular/component-oriented development model that's heavy on forms (web-based or IDE-based) to produce code. As I watched the getting started video, I couldn't help but think about the "Evil Wizards" described in Dave Thomas and Andy Hunt's "Pragmatic Programmer". But again, having no hands-on experience with CUBA, I'll stop short of saying that what they have is a bad thing. It's just not my cup of tea (or Java, if you will).

Moreover, some of the component-oriented model reminds me a bit of what web frameworks like JSF and Tapestry offer, but with CUBA, it's for the entire stack, not just the web layer. Again, nothing wrong with that. But even though I saw some code along the way, the bulk of the development time was spent in forms and wizards tying things together. I'm a coder and--this is just my opinion--that kind of programming model is painful to me. And, in my experience (including one I'm living through right now) when that kind of model is in play there's not as much room for customization. If you want to do exactly what the components offer, that's great. But it gets increasingly difficult to move beyond the baked in functionality.

But again, I have only watched a video and have read a bit about CUBA. Maybe they've solved that problem and made form-based and component-based development super-flexible. If so, then my concerns would be less.

Spring, on the other hand, doesn't define many pre-baked components...at least not at the same level. Instead, Spring leaves it to you to define the components that your application needs and it wires them together. Yes, there's more coding...but again, that's my jam, so I don't have a problem with that. And Spring Boot makes it even easier by auto-configuring the framework-level bits so that you can focus on the functionality your app needs.

In short, I don't know much about CUBA. It looks interesting, but doesn't appeal to me much on the surface. I won't say it's bad and maybe it's a perfect fit for some projects. But for me, I prefer a framework like Spring (and Boot). And yes, I'm biased. Did you expect otherwise?
Saloon Keeper
Posts: 26541
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
One of the more popular questions we see here on the Ranch is "which IDE to use to learn Java"? And our standard reply is "Windows Notepad".

While I hadn't heard the term "Evil Wizards" before, I can personally vouch for them. I tried going the Wizard-based approach on a technology years ago and quickly discovered that with a wizard. A) you don't actually know what's going on, so it's difficult to debug and, B) Wizards tend to do one thing well and the minute a user says "that's great! But can you make this one small change?" that they drop you down the mineshaft. IDEs are a powerful tool - once you know what you are doing. But an Intelligent Design Environment is no replacement for an Intelligent Programmer.

Wizards are closely akin to "programmerless programming", the Holy Grail of managers everywhere. A Utopian land where you can fire all those expensive cantankerous developers and Silver Bullets will do everything. And why not, after all, we all know that "All You Have To Do Is..."

I've seen countless (generally expensive) products attempt and fail to make programmers redundant. Usually accompanied by overpriced Dogberts. And that's not even counting the small-child-with-hammer approach to design tools that - used properly - can actually do good (UML anyone?). Fill-in-the-form and DDD (Drag, Drop, Drool) solutions have been tried for at least as long as I've been in the business and have never managed to displace trained software developets to any serious degree.

So permit me some doubt that any fill-in-the-blank solution is going to be the superior solution in all cases. Much of Spring's succcess is that it does one thing and one thing well at its core, which is to manage JavaBeans. Then it surrounds itself with layers of task-specific modules designed to ease - but not replace - the job of developing software using that core technology as a jump-off point. And, most importantly, the various modules offer enough isolation that you only need include the ones related to what you're doing. Too many of the solutions of the past were based on monolithic monstrosities.
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
    Bookmark Topic Watch Topic
  • New Topic