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.

10+ YEARS


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.

How do you sell good technology to average developers?

I received some interesting questions from someone who attended my talks at the Spring Forward conference last week. Below are the questions and my responses:

One of the things I'm working through in our hidebound stick-in-the-mud biggish company is: if you concoct a brilliant framework around the really right technology, how do you make it usable by mere mortals, that is average to below average developers?

Document, document, document. Assume nothing when you write the documentation (on a wiki or whatnot). Newbies love step-by-step tutorials. If your kick-ass framework is any good, you should be able to automate and hide complex pieces so they never need to know about them until they're interested.

I think AppFuse really helps in this regard, but I'm dealing with people who most naturally will use ColdFusion or ASP with no separation of concerns whatsover. They are are pretty blown away by lightweight J2EE and thus tend to reject it out of hand as being hippies' wet dreams.

I had a class a couple weeks back that was 1/2 PHP developers. They didn't like the idea of Java either - mainly because they're used to doing UI development and such. PHP, CF and ASP developers are UI developers that would prefer not to compile/deploy code. So you need to do things that make their job easier and allow them to be UI developers. Create a Generic DAO and Manager using Generics that allows them to CRUD any object - so they won't need to write backend code. Heck, you might even separate responsibilities so they're doing mostly web development. Of course, with web development, you'll still need to write Controllers and such. If you can use something like Maven 2 + the Jetty Plugin, there's no deploy cycle. Save, refresh your browser and voila - change is there. That's what these folks are used to and that's what they want to see when developing Java. Getting rid of the deploy cycle is an excellent idea IMO.

What do you think? How do you make Java development easier for developers of a company "switching to Java"? I've had a fair amount of clients in recent months switching from .NET or PHP to Java. It's a rare case that developers are actually happy about the move. Of course, when I'm done telling them about all the great frameworks and tools they can use, they're even more petrified. There's just too many for them to keep track of, especially if they're new to the stuff. AppFuse definitely simplifies things, but I doubt it makes development as simple as plain 'ol PHP or .NET. Then again, after you learn how to use the frameworks in AppFuse, it can be extremely productive to develop with (and scalable to boot!).

Posted in Java at Oct 06 2006, 07:31:27 AM MDT 3 Comments
Comments:

Java is a challenge no question... it is hard for mere mortals to become productive. PHP/ASP/CF have a use in simple web apps although Java apps are far easier to maintain and support. J2EE is still overly complex. Spring MVC/SWF is a great framework, but good luck trying to explain it to novice developers.

Posted by Greg Ritchie on October 06, 2006 at 08:29 AM MDT #

Your question about ease of development for non-Java developers is very timely for me, as I was just discussing this topic with my manager this afternoon. Over the last year, our company has been gradually migrating portions of the application to Java from its Perl roots. There are still many developers who prefer the Perl way, creating a bit of a "us" vs "them" schism. The Java team brought back stuffed Dukes from JavaOne, and to counter, the Perl developers have put "Powered by Perl" at the bottom of the pages that have escaped conversion.

As I was once a strictly PHP developer (I even wrote a Struts port in PHP I was so fixated on the language), I do understand how convenient it can be to type one line and have a web page rendering at the other end. But I have since learned that Java has an incredible amount to offer, both in functionality and in scalability (both the performance and complexity varieties). That being said, developing in Java can still be a real pain in the arse. If I had to isolate the single most annoying issue, it is redeployment. It might sound stupid, but in the course of the day, restarts of the app server add up. It is great to see Jetty addressing this issue.

There are many other pains as well, and over the next couple of weeks/months I will be working closely with my team to iron them out, as I discover them. Tools like Appfuse are exactly what teams need to get started...because frankly, just pulling togther all the tools is the most time consuming part. I strongly believe in sandboxing code outside of the main source before integrating. With Appfuse, and other such tools, it is very easy to setup deployable prototype and get on with the research, rather than spending half the day on sourceforge.net.

Posted by Dan Allen on October 06, 2006 at 10:47 PM MDT #

"if you concoct a brilliant framework around the really right technology, how do you make it usable by mere mortals, that is average to below average developers?" How brilliant is your framework if you have to be brilliant to use it? I would argue not very.

Posted by thirdshift on October 12, 2006 at 06:33 AM MDT #

Post a Comment:
Comments are closed for this entry.