I really approve of this topic because unlike a lot of other fields of study, Computer Science still leaves plenty to explore and discover without having to dig too deep into the surface.
I know from my experience, building your own engine is never a bad thing. It is just something that is discouraged because you are essentially wasting time when these tools have been written better, faster, and a lot more efficient than your tools. I completely understand why people tell you to write games, because you'd get a lot of projects done that you wouldn't if you started writing an engine.
It is a great opinion. However, it is also the weakness of our current generation. We are very much absorbed in the concept of "instant gratification."
The sad realization is that games are extremely easy to find. There are a lot of web pages where you can just go and pull up simple flash games. When it comes to technology, there are a lot of programs that quickly allow you to bypass the boilerplate and just create games. But, as I have come to realize with a lot of the games out there, out of every good game I find, there are about 1000 average to horrible ones.
Building a game takes a lot more than just raw programming skill. You can be one of the best programmers in the world, and can't write a top-selling game to save your life. Most of the projects that are popular now were created by accident, made by a successful company, or were emulated off existing success.
I think as Java programmers, we can revel a bit to look beneath the surface. Instead of just seeing the tip of the icebergs, we can take the plunge to look deeper into what programmers are actually getting from writing an engine. Games, sadly, are just the tip of the ice berg. The reason we build games is to solve the problems that lay deep within the framework of Java, and to challenge the fact of "there is only one tried and true way."
In terms of quality of the Java gaming projects, I am actually proud to say that we do not have as much gaming fodder as other frameworks have. Of course, the base reasoning is that Java isn't as popular as the other frameworks. But, I think that Java is also attracting some of the most talented programmers out there. But, we have to also realize that programming talent =/= great games. Many of the great things programmers do is completely ignored by the users who play the game. All users usually care about is if a game is running fast or slow. They don't involve themselves in the ideology of what is better, Java2D or LWJGL. Users care about if a GUI can get them into the game. They can care less if you have 1500 different skins, if they can't navigate the interface.
It is apples to oranges.
As programmers, we have a natural instinct to improve the structure of our framework. We are like architects. Users will always think that 2 bridges crossing a lake is the same thing. We are the fanatics that can tell you exactly what makes one bridge better than the other. However, do the users care... the bridges both perform the intended function of moving a car from one side of the river to the other.
We, as Java programmers, have to stop blindsiding ourselves. In other words, we have to stop preventing Java from improving. Each programmer has the given instinct to build a structure better, faster, and stronger. It is what makes us programmers... it is why we want to run our own tools. We love creating tech demos of what we can do in the technology, and creating the small parts that may be used for a larger whole...
The funny part is, that users just want something that works. Period. They don't care about our wars, they don't care about the technologies used, and they don't care about how quickly we can deploy a project. (Well, they do if we leave deadlines...) All users want is reasonably fast performance, a good GUI interface design, and a game they can absorb themselves in without major bugs.
Programmers must see this in order to start producing games. It is a process that we have to learn... so, why take it away from us just to add some more fodder games to the list. Our game interior will always be superior to every other project when they are created. If we are really serious about turning this into a gaming community, we really have to start attracting the other facets of a good game. Specifically, graphic artists, writers, and musicians.
To close, great programmers are only a small piece of what makes a good game. So, let programmers be programmers and tinker away.