Why it is important to choose a #1 language for an enterprise project

  1. The more people are using (and complaining) the more bugs can be fixed
  2. The popularity is related with the amount of available documentation, blogs and tutorials
  3. IDE and tooling support is superb - often there are even several competing IDEs
  4. Usually all your programming questions can be answered by google
  5. The probability to find skilled developers is higher, than in the case of a fancy, esoteric language (like e.g. MOO #49 :-).
  6. You will usually find a variety of popular open source libraries or projects for every possible challenge
  7. Many commercial providers compete in the same space - your solution becomes less vendor dependent
  8. You will find a variety of commercial and even free trainings
  9. The bigger the company, the less developers tend to be interested in bleeding edge fancy stuff

So why not just start with Java - the #1 :-).


Web Apps, SPA, PWA with vanilla Java Script (ES 6+), CSS 3 and WebStandards only. As simple as possible, but not simpler. See you at: (Progressive) Web apps, Single Page Apps and WebStandards airhacks workshops at MUC airport, Winter Edition

airhacks.fm the podcast:

Stay in touch: airhacks.news.

Comments:

Hi Adam,
You will come to devoxx ?

Posted by Cristian on August 27, 2011 at 02:38 PM CEST #

Yes, these are all good reasons. Some problems still remain. In many cases you need to buy a car, while in the java world you have the perception to have to buy the components and build it by yourself. You have to choose an ide, a persistence framework (or not to use persistence at all), a web mvc framework, an xml component, each of them whit its own "must read". Then you quickly discover that many reference implementations aren't sufficient, so you have to select "enhanced" ones. If you have choosen JAXB to stick with the standard, you will put beside MOXy. If you have choosen JSF2.0 you will put beside ICE Faces, Rich faces, Prime faces, * faces. Perhaps you start with plain JPA (eclipse link ref. implementation), then you put beside Hibernate. Perhaps you find the security issues better addressed by a framework like spring that offers "more" out of the box. All these things are a lot of stuff. All these things may kill a project, also if you have choosen #1 language. The fact is that behind entusiastic statements, java world misses the point of "simplifing because it is One language". Because inside this one language it "maps" all the complexity of the outside world. In practise: for a java desktop developer, it is more simple to learn a new web language than learn all the jsp+jsf+ejb stuff. For a web developer is more simple learn .net (the desktop part) than swing. I've expressed a severe criticism, but my idea is that all these "problems" may be turned into "solutions". This would happen if it were created a "comprehensive" documentation that addresses all the technology stack needed to "get the job done". On the contrary, today the books or docs in general face, deal with a single component or at best a single framework. On my desk i have an average of 12 books; i should be able to do things with two or three. You may say that is impossible to create a comprehensive documentation if the technology stack is modular. Ok. The idea is create a documentation for a "technology stack that works", not all the "possible technlogy stacks". And that does have all the things a developer expects it to have. Today happens that you study JSF, and when you put it in practise, you discover that JSF misses a file-upload facility. I don't know who the fault is (the platform? the component? the specific implementation? my as developer?) but i expect that the author (of the documentation/book) comes up with a tested solution and exposes it "as it were part" of the JSF. This way a developer is not stuck with the problem, and still is free to search for a different, "custom" solution. I think that this is a lot of work, but I think also that it also would "sharpen" the effectiveness of the platform that from the developer point of view, seems often a bit "opaque". In my opinion, this is what really lacks in the java world today.

Posted by Agostino on August 27, 2011 at 03:51 PM CEST #

Hello world personal java, java fashioned me in college by now already develop Java applications for desktop automation area comecercial, but so far have not got a job as java desktop, you could suggest me a site or where I can send my resume for me to get a job. Thank you.

Posted by Paulo Camargo on August 28, 2011 at 12:28 AM CEST #

Great thoughts... but until Java came along you could say #1 was C/C++ so where would Java have got if we played by those rules?

Oh and the last one is probably more like "the bigger the company the less the developers are allowed to experiment with bleeding edge tech (NoSQL, Scala, etc)".

Posted by James on August 31, 2011 at 08:53 PM CEST #

@James,

I would refine my statement: choose the most popular and the most appropriate language for your job.

C and C++ are still very popular in embedded space, but Java is easier to use and more productive (waiting now for flames :-)),

thanks!,

adam

Posted by Adam Bien on September 02, 2011 at 12:04 PM CEST #

@Paulo,

start some cool projects at github or java.net. Use them as reference to apply for a job -> it may work :-)

Good luck!,

adam

Posted by Adam Bien on September 02, 2011 at 02:25 PM CEST #

image upload in jsf and richfaces

Posted by hamukh on January 12, 2012 at 12:56 PM CET #

Post a Comment:
  • HTML Syntax: NOT allowed
Online Workshops
realworldpatterns.com
...the last 150 posts
...the last 10 comments
License