• 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 ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Java seems like a technology no one wants to use

 
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Ulf Dittmer wrote:Am I the only one who interprets what william said to mean that he is wondering the same thing, i.e. who those people are? In other words, the question Jesper and Bear are asking of william should instead be asked of the original poster.


If that's the case, then I think it was established earlier that the OP was listening to a small circle of people who think of the Java ecosystem only in terms of Applets, which yeah, is a technology that "no one" wants to use.

(I quoted "no one" because obviously there are a small number of people still working in Applets, but it is generally considered a dead technology.)
 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well I think "no one wants to use" has a grain of truth to it. Under certain circumstances with certain time constraints no one would want to use Java. For example you could be a JavaScript guru and probably find a job in any major city with a startup community. The same with any of the more trendy languages. Hack schools too seem to be focused on Ruby or other trendy languages. If for example I had no degree (I do) and I wanted quick money (I don't) I would avoid Java like the plague. Java also has a reputation for bloat and boilerplate code (deserved or not). If for example I was starting with absolutely zero (no degree, no money, no time) then Java would be my dead last choice. JavaScript would be my first choice in those circumstances. You can fairly quickly whip together backend webservices with node.js and use Phonegap and frontend UI toolkits like Intel App Framework to put together not just a minimal viable product, but a decent looking selling money making products. With modern (last 2 years or so) SSJS and something like Intel XDK you can be at the cutting edge. And compared to any other stack it takes minimal skill and minimal time.

But those set of circumstances are quite restrictive. Once you're in your late 20's or early 30's and need some ecosystem to be the backbone to your career, you turn to Java. The only other alternative even worth thinking about is .NET. And of course once startups mature, they inevitably move to Java. It has only been in the past two or three years that it's been possible to consider anything else because big names like Intel (Intel XDK) or Adobe (Phonegap) have thrown in their hat. And all these alternatives are untested. Intel could decide to abandon HTML5 tomorrow and you would be left in the lurch. But good old dependable Java would still be there.
 
Brian Lim
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Philip Perry wrote:You want my honest opinion of why so many young guys are complaining about Java and singing the praises of things like Ruby and Python? Here it is:

Java is a really, really BIG language. Oh, the core language is very small, and easy to learn, but knowing the core language is just the beginning. You've seen the want ads for Java programmers... A Java programmer is expected to know a whole lot of stuff. Core Java, NetBeans and/or Eclipse, how to write and use servlets, JSPs, probably taglibs, you're expected to know at least one or two frameworks, and when you get to your technical interview if you don't at least know a few design patterns and how to write a sort routine on demand; the alpha geek running the interview will give you the stink-eye. Also, Java's used in a lot of companies, and they tend to be demanding about experience. They want four years of this, four years of that... It's hard to break into this particular career.

Worse, most companies don't want to train anybody; they expect you to know everything on day 1 these days. How's a college kid going to get his foot in the door? He's got no experience, nothing really to put on his resume to get it past the H.R. drone scanning the resume pile on autopilot... I've been doing Java for seven years, and I feel locked out because I've always written my own JDBC at work and now I find out everyone's using Hibernate and employers want you to have four years' experience in it. D'oh! Why is it always "four years"? Seriously.

Anyway, all these young guys are looking up at this big mountain, this big, freaky mountain with sharp crags sticking out and vultures circling around it, and maybe even a yeti looking down at them and licking its lips. Way up at the top, there's a castle, and it looks great, but dang. All the way up there? Past the yeti?

Then they look over to their left, and there's this grassy little hill with a little cobblestone path on it leading up to a simple little house. They look at the castle; they look at the house. They look at one, then the other, then back again. Finally they say "Nope! Nuh-uh. I'm going to go climb that little hill over there and call it a day." So instead of trying to learn how to do large-scale enterprise development, they settle for the scripting languages and do web pages. It's a living, and they're happy, and there's nothing wrong with that.

But what's *really* going on is they're taking the easy path instead of the hard one, and telling everyone the easy path is soooooo much better. They weren't scared of the yeti, no way, they just like cottages.



Or it could be they don't want to lie. You can hardly blame them for not wanting to play a rigged game. Who would know better if you said you had those four years Hibernate experience? Absolutely nobody would question it if you knew your stuff and had at least five years of Java work. Meanwhile other stacks are proven by github, a pure meritocracy. It's not a castle and a cottage, it's a castle and a city. Who wants to live in an old stinking castle when there's a modern city?

I'm using Java for my own purposes but I'm not going to and likely never will play the game for a Java job. I don't want to play the game but doesn't mean I couldn't play it well and win at it if I tried.
 
Rancher
Posts: 4803
7
Mac OS X VI Editor Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Brian Lim wrote: And of course once startups mature, they inevitably move to Java.



Actually, a fair number of successful start-ups have moved to Scala rather than Java. Thus they get to use the wonderful, fast and proven JVM and avoid a fair number of the problems (boilerplate, multi-thread problems, etc.) that show Java's age.

Many of the folks posting anti-Java positions in this thread seem to focus on what will get you a job, especially when you have little or no experience. That is a valid thing to focus on when you have little to no experience, but its really not consistent with the premise of this thread. That discussion belongs in a thread with a subject more on the lines of "Is Java the best language to learn first?" That is quite a different topic than "millions of Java users don't want to do it anymore"

 
Saloon Keeper
Posts: 27763
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Pat Farrell wrote:

Jay Orsaw wrote:.... and most programs are written in C. People hate on Java because of the JVM



I completely reject your first assertion. Last time I checked, most programs were still written in Fortran, because it has a 30 year head start over even C.

People who "hate on" java because of the JVM are, at best, uninformed. The JVM is the best thing about Java, and will long out live Java the language. The JVM lets folks write clear, simple code that performs as well as the best, hand optimized C -- which can't be read or understood by anyone because its so optimized.



Huh?

I don't know what archives you are checking, but I'm afraid I can't believe that, and FORTRAN was my first programming language. It certainly isn't used in the bulk of my inventory.

There are I think a lot more business computing facilities than scientific ones, and though I have used Fortran more than once in business, the majority of the apps in the shops I've worked in was COBOL or assembler.

But I'd wager that the number of apps written since PCs came out dwarfs even that, and most of them were written in C/C++, BASIC, Java, Pascal, or one of the scripting languages.
 
Bartender
Posts: 543
4
Netbeans IDE Redhat Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
whenever python fanboys start lecturing about how python is better, challenge them to a contest where they are not allowed to use any java APIs and, more quickly than I with Java, create an Enterprise-level N-Tier web application (or thin client app / RIA for that matter) which is transactional, secure, performant, stable, uses several different resource managers and a complicated DB backend schema. I'm not saying it can't be done in python, but... Oh wait, that's exactly what I'm saying. In enterprise projects, there is no valuable alternative.

And talking about value, where do you think the money lies? The nth Paint clone or real enterprise level applications?

Client side apps is pretty much a thing of the past. Even if you code a non-trivial client-side app, unless it has a requirement not to use any network, you're looking at a thin client in any language you would like connecting to a Java Application Server's Web or Business Components.
 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Dieter Quickfend wrote:whenever python fanboys start lecturing about how python is better, challenge them to a contest ...


Well, I'm not especially a "fanboy" of Python or Java although both have their merits, and language flame wars are a waste of time, but I think you're challenging people to compare apples and oranges there, Dieter. You're right, I wouldn't be too keen to build "an Enterprise-level N-Tier web application (or thin client app / RIA for that matter) which is transactional, secure, performant, stable, uses several different resource managers and a complicated DB backend schema" in Python, partly because I don't know enough Python in the first place. Right now, there is a large class of enterprise applications where Java (or at least the JVM) often seems like the most pragmatic choice. But so what? There are lots of other ways to use computers that aren't in that class.

In my workplace, we are strongly "encouraged" to use Java EE for pretty much every application. Whatever the question, Java EE is supposed to be the answer, and we can't even look at other JVM-based alternatives like Grails etc. But many of our users need smaller and more flexible applications that could really help them get their jobs done, without necessarily having to drown in full-scale Java EE "enterprise" bloatware. Unfortunately, the sheer amount of work it takes to achieve anything in Java EE means that there are many applications that don't get built because we simply can't afford to do it, so users have to struggle on with inadequate tools instead. Those are the opportunity costs of the "one size fits all" Java EE mentality around here.

Luckily for me, I'm now working on a kind of "skunkworks" project prototyping various small-scale applications, where the usual restrictions have been lifted temporarily. Last week I built a first pass at one of these apps in 4 days using Python. If I'd used Grails, it might have been a bit longer because I'm using some nice Python libraries that suit this particular task very well, and I might have needed a bit more time to find JVM equivalents. If I'd tried to do it with Java EE, I'd still be fighting POMs and JAR versions and server configurations etc, and would have learned very little about the intrinsic challenges of the task, because I'd have been too mired in the incidental complexities of dear old Java EE.

Sure, these are just prototypes, and it may be that we decide to take some of them further as JVM-based applications instead. But some of them will be fine as Python applications - with appropriate work to turn them into production-ready code of course - because they do the job, are easy to maintain and there is no need to integrate them into a monolithic Java EE environment anyway. And plenty of people seem to use Python very successfully for all kinds of tasks, even if it wouldn't be the first choice for a big n-tier "enterprise" application. In the meantime, we are free to focus on exploring and dealing with the far more interesting challenges of the task itself, which is the entire purpose of our current project.

FWIW I think recommending Java EE as a golden hammer is just as pointless as declaring "nobody wants to use Java". Surely it's far better to just use the right tool for the job?
 
author & internet detective
Posts: 41860
908
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

chris webster wrote:FWIW I think recommending Java EE as a golden hammer is just as pointless as declaring "nobody wants to use Java". Surely it's far better to just use the right tool for the job?


Within reason of course. Having 100 hammers .25 inches different in size is silly .
 
chris webster
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jeanne Boyarsky wrote:

chris webster wrote:FWIW I think recommending Java EE as a golden hammer is just as pointless as declaring "nobody wants to use Java". Surely it's far better to just use the right tool for the job?


Within reason of course. Having 100 hammers .25 inches different in size is silly .


If they're gold at least you can melt them down and make something nicer!

If you want silly, try this! ;-)
 
Saloon Keeper
Posts: 15510
363
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm disappointed they didn't use ServiceLoaders to load a FizzBuzzSolutionStrategyFactory, so I can inject my own strategies by dropping a jar on the classpath.
 
Sheriff
Posts: 3837
66
Netbeans IDE Oracle Firefox Browser
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well, at least this gives some idea about the ratio of "useful code" to "all code" in enterprise applications.
 
Stephan van Hulst
Saloon Keeper
Posts: 15510
363
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It brings up a personal issue though. Sometimes I find it very hard to strike a balance between my application being extensible, and being specialized. I like to write my programs in such a way that users can easily change some behaviour without having to muck with my code, but I still want them to recognize what the program was there to do in the first place. Sometimes *I* lose track of what it was there to do in the first place.

I'm currently using NetBeans Platform to write a client application. First of all, I really like the way NetBeans looks, and how you can drag all the windows around and stuff, and I wanted that for my own application. After starting writing some Swing stuff (which I really don't mind), it started appearing as an almost insurmountable task. Joy! NetBeans Platform can do all that crap for me! (Apparently OSGi as well, but I don't like Eclipse).

So, after a long frustrating journey trying to learn how the platform works, I'm starting to make progress. And as a beginner in any topic, I'm getting overzealous with the tricks I'm learning. I'm loving how you can plug modules in at runtime, so I want the same for my own application. All of a sudden, my code is full of interfaces and factories and stuff, so people can drop in extensions that they will probably never write.

I had the same problem when I first learned of inheritance. Suddenly everything had to be in some kind of hierarchy, and I saw connections where there were none.
 
Martin Vashko
Sheriff
Posts: 3837
66
Netbeans IDE Oracle Firefox Browser
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stephan van Hulst wrote: All of a sudden, my code is full of interfaces and factories and stuff, so people can drop in extensions that they will probably never write.

I had the same problem when I first learned of inheritance. Suddenly everything had to be in some kind of hierarchy, and I saw connections where there were none.


Yet another outbreak of the computer disease! You aren't the first, and quite certainly neither the last. We've all been there
 
Stephan van Hulst
Saloon Keeper
Posts: 15510
363
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Aye, and once you're "cured" it becomes an exercise in patience and understanding when you read back your old code.
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic