Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

My Drunk on Software Interview

Back in February, I met up with James Ward and Jon Rose for a Drunk on Software interview. We enjoyed some good beer and had a great conversation about SOFEA, open source and RIA. See larger video here.

Posted in Java at Apr 05 2009, 10:23:57 PM MDT 8 Comments

A bit long but great interview as you guys touched on alot of interesting topics.

Posted by Wayland Chan on April 06, 2009 at 10:01 PM MDT #

Component development is dead? Interesting... I remember when 2 years ago it was the future. I am taking note -- I am just not crystal clear about the alternative. Sounds like I need to dig out the InfoQ article.

I enjoyed the banter around PHP. If it ain't broke, don't fix it. I used ColdFusion for years and abandoned it for more Java oriented pastures largely because I didn't feel the technology had the sophistication to handle complex problems. Then recently, I saw some nice ui done with CF and some RIAforge packages and had renewed interest. Maybe CF+REST is the next SOFEA implementation?

I am glad you mentioned the "pop" comment. Having worked on Seam+JSF recently, I was disappointed at the lack of pop. It was fairly straight forward to customize and has lots of widgets with nice features like drag and drop, and even looks nice, but it seems slow to me. Click, wait a second, then transition... Uhm... On a LAN, this pales in comparison to an old fashioned CF front end... Go figure. I am hoping that JSF2 makes some giant improvement, but am also considering experimenting with Seam+GWT (or Seam+Flex).

My latest interest is Scala... I have heard that Java is dead for years and didn't quite get it. Sure, Groovy looks very interesting, and I have used it, but I still didn't think it replaced Java -- more of a complement. And then I discovered Scala. Unfortunately, it is still young, and the tooling shows it, but I earnestly believe that Functional + OO is the next big thing, and Scala is a natural evolution for us Java programmers (much like how many of us evolved from C++). The reduction in line count, overall simplicity and power of the language -- it is hard to explain, but definitely is the one to watch for me.

Big fan of your blog. Cheers!

Posted by Logan Hutchinson on April 06, 2009 at 11:34 PM MDT #

It's good to see such a conversation take place. It's really refreshing since it's hard to find a few 'Geek's that are willing to sit down and talk about these idea's and not go into a Flame war.

I also 100% agree with your point about component based web applications are pointless. i.e., JSF or Wicket. I still believe that web based frameworks have a long way to go.

Matt, you look like you're a hardcore drinker. :D

Richard L. Burton III

Posted by Richard L. Burton III on April 06, 2009 at 11:41 PM MDT #

"Which one do you want to write it in?" ... Java of course. I've played a little with Yahoo's UI but when my partner asked about licensing and I found Apache 2.0 on the GWT site. I was smiling. It shouldn't be about hiding what we do. It should be about writing slick software and then when the complexity is all built in, we can share it .. but everyone will KNOW that we wrote it and I can retire to the cabin in NY, drink beer, and smoke my pipe. I'm really liking GWT more and more.

Posted by David L. Whitehurst on April 09, 2009 at 08:48 AM MDT #

One more thing. You're getting a little grey around the edges I see.

Posted by David L. Whitehurst on April 09, 2009 at 10:03 AM MDT #

Hello Matt. I have just finished watching the video. What I found interesting is that I can see that ideas I previously had, are mentioned in the video (like the SOFEA way of developing webapps). They are "confirmed" by other people.

I think it is clear that SOFEA is not quite appropriate for some sort of web "pages". For example for Wikipedia or a newspaper, or a site providing content in general. Those are, well, pages!

As a software engineer my main concern, or what occupies my mind the most, is how to build "enterprise" applications which mimic or provide desktop-like responsiveness and functionality. Very importantly - these applications have to eliminate page refreshes as much as possible. I just want to state that of course NOT every application needs to behave like this. But rather, which is a good way to go WHEN you need to build a webapp with these requirements?

So, for some time now, I have decided not to use component oriented frameworks (like Tapestry, Wicket, JSF) because of the complexity they entail. It's not that I like simple things. The matter is that they put the complexity where it doesn't have to be.

I believe now that the best approach is to make things happen "where they need to happen". The code that needs to run in the browser does not have to be "pushed"/"controlled" by the server side. No, it has to be developed specially for that platform by UI experts (having knowledge of XHTML, CSS, Js and associated frameworks). And the UI collaborates with the server-side (which provides services). For this, obviously, request oriented frameworks are ideal (like SpringMVC or Struts2).

Regarding what a Java dev is now: well I quite agree that probably there won't be a "pure" Java guy in many shops going forward. This would make sense for people working in banks or in industries where there are a lot of business processes but not many UIs. For people building webapps, it will be necessary to understand XHTML, CSS, Js and other front-end tools.

Well to wrap up, the technology stack I chose for the last webapp I worked on was: XHTML, CSS, Yahoo UI (for page layout and widgets) and jQuery for DOM manipulation. This combined with Struts2, Spring and mySQL. Worked like a charm! The team composition in our case was 2 front end devs, 1 serverside dev.

Cheers, keep up producing this kind of material, it's very interesting.


Posted by Fabricio Breciano on April 17, 2009 at 01:24 PM MDT #

Fabricio: I look at the situation with even greater scrutiny. I was going to build a team to do what you've done and I dislike JSF or component MVC coding as well due to the complexity, but ... I asked myself do I really need all this nonsense to build a great web application? My answer was no. Now, do I end up requiring something similar to what you're doing in the end? That's yet to be determined. But for now, I can get through a very nice application using GWT backed with PHP and MySQL using JSON for now. I've amazed myself what can be done working by myself. And, the fully documented requirement set isn't needed either because I'm the only one that needs to know what the app does. My decision is little sketchy if this were to be a production application when it's finished. But, I've written production applications for Volkswagen and Audi corporate that just used PERL and million+ row tables in Oracle. I'm comfortable that I can scale if necessary. And, that's going to be the million-dollar question, "will I need to scale?". I dislike the term technology stack because it sounds like we need to see just how many new acronyms we can acquire to stay on the bleeding edge. I'm not sure anymore. I tried GWT and I can write a nice UI using Java and the persistence modules are just PHP scripts for me now. I can replace that with web services if needed or I can just continue to use the PHP scripts.

Posted by David Whitehurst on April 17, 2009 at 02:18 PM MDT #

Hi David, thanks for your answer, it's definitely valuable!

Perhaps what can be extracted the most from previous post is: I don't know, or it's blurry right now, which is the best "frontend/backend" combination. But, what I do know for sure, is that I don't think component based (therefore server-side based) applications are the way to go for more responsive "web20/RIA" applications. That's a big call I had to make a couple of months ago, and I am happy with my decision: it was hard for me to come to that conclusion at the time (I had to read and study a lot on the approaches and frameworks available).

Regarding "what can be done" of course probably we Java guys can do a lot in other areas other than Java, but what I found is that when you have time constraints and a real project with deliveries and challenging requirements it is better to utilize experts rather than try to do all (in this case I refer to UI devs).

I understand this matter is not "simple" to analyze but at least exchanging ideas is helpful!



Posted by Fabricio Breciano on April 17, 2009 at 02:35 PM MDT #

Post a Comment:
  • HTML Syntax: Allowed