Win a copy of Programming with Types this week in the Angular and TypeScript forum
or The Design of Web APIs in the Web Services forum!
  • 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 all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Bear Bibeault
  • Paul Clapham
  • Jeanne Boyarsky
Sheriffs:
  • Junilu Lacar
  • Knute Snortum
  • Henry Wong
Saloon Keepers:
  • Ron McLeod
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Frits Walraven
  • Joe Ess
  • salvin francis

How many new Java programmers are trained every year ?

 
Ranch Hand
Posts: 115
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Is there any statistics on how many Java programmers are trained each year in every country ?

As I see it , every year new programmers get out of college and are searching for a job , while almost no Java programmers retire as none are yet so old.
Especially with the general stereotype that IT jobs are paid well , a lot of children will chose an IT school without considering that when they will finish it the marked will have been flooded.

Could a estimation be made from this data , about how will the average pay check in IT (manly Java) will drop in the future ?
 
Bartender
Posts: 11445
18
Android Google Web Toolkit Mac Eclipse IDE Ubuntu Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would answer Very few
The rest just haunt online forums asking for codez
 
Rancher
Posts: 4686
7
Mac OS X VI Editor Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Myke Enriq wrote: how will the average pay check in IT (manly Java) will drop in the future ?



Your question proves how you don't want to be a Java programmer. Don't go to the university to become a Java programmer. Do not consider it a trade school.

You want to be a professional programmer, or a programmer/analyst. You want to have Java be one of the tools you use in your career. You do not want it to be the only tool you use. There are only two languages that I am aware of that are still used today that were popular 40 years ago when I started my career. They are COBOL and Fortran. Java, Pascal, perl, smalltalk, and many others have come and gone, to various degrees, over time.

I have been writing here in JavaRanch and in other forums that I expect today's Java to die fairly soon, because its simply too hard to write proper multi-threaded software in Java. Java was designed with computers had one CPU. Today's smartphones have quad core processors, and some of the Galaxy S4 have octo-processors. Parallel programing is no long fancy and specialized, everyone carries a parallel computer in their pocket.
 
Marshal
Posts: 67336
171
Mac Mac OS X IntelliJ IDE jQuery Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I agree with Pat on the tool aspect: your question is like asking "How many hammer carpenters are trained every year?". A carpenter needs to know how to use more tools than just a hammer.

As to Java's longevity, I agree with Pat that it's not perfectly suited to parallel processing, but I also don't think it's going anywhere soon. It may not enjoy the prominence that it does today, but it's not going to dry up and go away.

That said, it's important to emphasize again that anyone who thinks that they're going to make a career out of one language or one technology is sooner, rather than later, going to hit a brick wall. Hard.
 
Rancher
Posts: 43011
76
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Maneesh Godbole wrote:I would answer Very few. The rest just haunt online forums asking for codez


Maneesh put a smiley next to this, but unfortunately I think he is correct is stating that very few get trained to be Java developers. There are a lot of folks who get trained (in something) and know (parts of) Java, but who -IMO- do not have the technical breadth to call themselves Java developers. Proper knowledge of concurrency, as Pat mentions, is one of the areas where apparently very few people entering the job market have any kind of expertise. MVC is concept that seems foreign to many folks starting out. What to do, and what not do, with respect to databases - even more so. Etc. etc. I think everyone who regularly reads these forums (and most other popular Java forums) will find these to be true.

So my perspective is: anyone who has broad and deep technical knowledge -and a proper work attitude- will have a secure and sizable paycheck for a long time to come. But just having a degree or certificate of any kind is no indication of any of these whatsoever.
 
Pat Farrell
Rancher
Posts: 4686
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Bear Bibeault wrote: It may not enjoy the prominence that it does today, but it's not going to dry up and go away.



I can see two possible futures for Java, and I have no idea which will happen.

1) it doesn't change, and stays looking a lot like Java looks today, which is a lot like Java looked in 1995. If so, it will dry up and go away, much has Smalltalk has. Smalltalk had a committed group of die-hard fans, and it was fairly mainstream in the early 1990s. Its gone now.

2) it will evolve into something that is better suited towards modern problems and modern computer systems. This means easy massively parallel programming. Better support for things like Money/Currency and graphics in the language, not in some tacked on library. If so, it could easily be popular in 20 years.

A while back the 'Ranch sponsored a contest about a book called "java, the good parts" and the book talked a lot about how the JVM is great. I agree, the JVM will outlive Java the language.
 
Ulf Dittmer
Rancher
Posts: 43011
76
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have a rather different perspective than Pat. Java today looks very little like it did in 1995 (which was before server-side Java came along). Any Java 1.1 developer would be bewildered by looking at Java 6 code - not just because it runs in a different environment (server instead of client), but also because data structures and control structures have changed so much (collections and generics for starters). So Java has adapted, and may well continue to adapt.

As to concurrency, money, graphics being part of the library instead of being part of the language, I heartily recommend the talk Growing a Language by Guy Lewis Steele, who co-designed Scheme and Java. Besides the auditorium-sized "ooohhh" around the 8-minute mark (no, you can't skip straight to that, it won't make sense without seeing the whole thing), it has much insight into how Java grew, and how languages might or might not grow at all.

Smalltalk had a committed group of die-hard fans, and it was fairly mainstream in the early 1990s.


This statement baffles me. In no meaningful interpretation of the word could Smalltalk be described as ever having been "mainstream" outside of CS departments, and not even inside most of them. There were some notable apps developed in Smalltalk, but they were few and far in between, and got ported to other languages or went away sooner rather than later.
 
Bear Bibeault
Marshal
Posts: 67336
171
Mac Mac OS X IntelliJ IDE jQuery Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here's why I differ: the primary use of Java today is web applications, where servlets run under the auspices of a servlet container. Servlets do not need to worry much about parallel processing (at least if they're not doing something they shouldn't be doing); the containers are what will handle that. There is no need for Java to rapidly evolve (though I agree it should) to serve this purpose*, and as Ulf point out, Java isn't quite as stagnant as you make out..

For other uses -- including writing servlet containers and other servers/frameworks** -- Java may be ripe to be knocked off the pedestal; but that's a much smaller pedestal than web apps.


* The wildcard here is the trend for web apps to transition to using front-end (JavaScript) frameworks with RESTful web service backends. Servlets can be used to implement RESTful web APIs, but its future there may not be assured. ***

** Although not a JEE servlet container, the Play framework's core is written in Scala just to take advantage of improved concurrency.

*** So here's another brick wall that's looming: anyone who is a web developer and isn't boning up on advanced JavaScript is due for a world of hurt.
 
Pat Farrell
Rancher
Posts: 4686
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Ulf Dittmer wrote: Java today looks very little like it did in 1995....(collections and generics for starters). So Java has adapted, and may well continue to adapt.

As to concurrency, money, graphics being part of the library instead of being part of the language....

Smalltalk had a committed group of die-hard fans, and it was fairly mainstream in the early 1990s.


This statement baffles me. In no meaningful interpretation of the word could Smalltalk be described as ever having been "mainstream" outside of CS departments, and not even inside most of them.



There was a huge amount of work in the late 80s and early 90s in corporate America in bringing in GUI/WIMP styles to corporate application development. Smalltalk was much more popular than C++ was, at least until Microsoft's Visual C++ and MFC grew, and mostly that was after Version 2 and 3. There was also a huge amount of work being done in closed environments such as Gupta and other "4th generation languages". I'd been out of college for 20 years before I saw Smalltalk. It was much more than a curiosity in universities and research labs. Smalltalk was the tool that enabled the world of GUI/WIMP programming. Objective-C, which is Apple's prime development language for OS-X and IOS, is simply C hacked with some Smalltalk methods. While Java programmers have a big jump to Objective-C, its natural to anyone used to Smalltalk.

Java the language is trivial, it looks like any other procedural OO language, with some ugly C tacked on because the politics said that they could not make everything an object. If there were any real technical reasons that an int is not an object back in 1995, they have been gone for well over a decade. The original "Java in a Nutshell" book from O'Reilly described Java the language in under 20 pages.

I would call Java's generics a perfect example of what not to do. It was grafted onto a language with more concern about backwards compatibility than forward usage. There is a 400 page long FAQ about generics, and its all needed. Type erasure is a crock, and necessary to support pre-5 JVMs.

Java's collections were a decent start, for a library. Google's Collections, and later Google Guava are far better, richer, more expressive, and more consistent. But both Java's collections and Guava's are just libraries, tacked on to the fundamental language.

If I had a dollar for every time a rookie programmer used float where a proper Money object was needed, I'd be retired to a warm island. Cobol had money arithmetic back five or six decades ago. Arithmetic that worked properly and didn't have rounding and truncation errors.

There is a fundamental problem with Java's approach to add extensions through libraries. The libraries are all written as standalone packages. Each has its own conventions, configurations, error handling, logging, calling conventions, etc. They are far too often orthogonal to each other.

 
Pat Farrell
Rancher
Posts: 4686
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Bear Bibeault wrote:Here's why I differ: the primary use of Java today is web applications, where servlets run under the auspices of a servlet container. Servlets do not need to worry much about parallel processing (at least if they're not doing something they shouldn't be doing); the containers are what will handle that. There is no need for Java to rapidly evolve (though I agree it should) to serve this purpose*, and as Ulf point out, Java isn't quite as stagnant as you make out..


I'm not sure if your "primary use" is accurate today. Its widely used, but Java is also the development language of choice on Android systems. There are hundreds of millions of new Android devices sold each year. I will agree that over the past 15 years, most of the paid work that I've done in Java has been web applications, but a lot of folks are working in 'app' development and sales.

I strongly disagree with your comment that servlets do not have to do parallel processing. I don't mean classical parallel processing, like scientific calculations that invert huge matrices. Rather I mean that a huge number of common business functions should be done in a way that uses the multiple CPU cores. Consider the standard requirement to accept a command from the user, which results in a big complex query of some big dataset. Perhaps you want to calculate the mean IQ of members of Javaranch. You could use an octo-CPU to work 8 times faster if you simply broke up the ResultSet into eight parts, and had each one calculate the mean (or really the sums needed to calculate the mean). Its a trivial extension to calculate the min, max, stdev, etc. from the ResultSet, all eight times faster. Linear processing is neither necessary nor efficient.
 
Pat Farrell
Rancher
Posts: 4686
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Bear Bibeault wrote:* The wildcard here is the trend for web apps to transition to using front-end (JavaScript) frameworks with RESTful web service backends. Servlets can be used to implement RESTful web APIs, but its future there may not be assured. ***

** Although not a JEE servlet container, the Play framework's core is written in Scala just to take advantage of improved concurrency.

*** So here's another brick wall that's looming: anyone who is a web developer and isn't boning up on advanced JavaScript is due for a world of hurt.



I see that containers failing to implement JEE is a great benefit, not a problem. While JEE is better than J2EE, it is still mostly a bag hung on the side of Java.

Most of the interesting work that I've done in the past couple of years had more time working on Javascript than the Java servlet code. Everyone should go buy Bear's Javascript book. Unlike Bear, I'm not a fan of JavaScript, but I do agree that you have to know how to use it effectively or you will be in "a world of hurt"

There is a lot of noise/talk about server-side Javascript. I've not done it professionally, yet, and I'm not convinced that its better than Java.

The OP probably was asking about Java as it is today, which is mainly Java 6 or sometimes Java 7. Soon we will be dealing with Java 8 and its lambda processing, which has more in common with JavaScript's closures than it does to mainline sequential Java code. This supports my idea that by Java 10, most folks won't recognize what Java has become.
 
Forget Steve. Look at this tiny ad:
Sauce Labs - World's Largest Continuous Testing Cloud for Websites and Mobile Apps
https://coderanch.com/t/722574/Sauce-Labs-World-Largest-Continuous
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!