Some co-workers and I recently had a conversation about programming and the question was asked, “what’s next?” The conversation started after reading an article about how Oracle is making a lot of changes that are effecting a huge crowd of developers and companies. I’ve said plenty of times before that i think Oracle will be the down fall of Java. However, one of my co-workers is wrapped up in Java that he feels like it is “the future” of programming. If he would have said that back in the ’90s, I would’ve agreed. But, I don’t think that statement still stands true today. Let me explain why.
Although I believe that Java is a great language, I believe that its time has come that something bigger and better will knock it down. For example, hardware is getting faster and faster with every passing moment. In fact, it’s pretty much impossible these days to find a processor that doesn’t have more than 1 core. In the programming world, this is a great thing as it means more speed! However, in the Java world, this is a bad thing as Java isn’t designed to work with multiple cores. So, you can throw parallel processing out the window when working with Java.
Even though it’s possible, Java also makes it very difficult to design applications that run distributed. Because of this, it’s extremely hard to design applications that can be separated onto multiple machines, but still share state or even play well with each other. So, if you want to get more performance out of the hardware itself, you find yourself throwing more memory at the server and adding a faster processor.
Ok. So Java doesn’t provide support for multi-core processors. It’s still a mature programming language that’s used widely enough to continue its growth. That’s true, but I believe that in about 5 years or so, we’re going to look back on Java the same way we do about languages like COBOL as we do today. Back in its day, COBOL was a good language. And, even though it’s still widely used, it’s still an old technology that people need to let go off and learn to embrace newer technologies. In a few years time, we will be saying the same thing about Java. “Back in its day, Java was a good language.” But, we need to stop using technologies just because “they’re good today”. We need to start looking at technologies of tomorrow.
Ok. So what about other languages? Well, there are some other languages out there right now that get just as much game-time as Java like C#. Being a developer of both Java and C#, I would definitely have to lean more toward C# for certain application types because of its willingness to work well with multi-core systems. For example, since the release of .NET 4, Microsoft has made parallel-processing much simpler. Before .NET 4, C# was still capable of working with multiple cores, but it was up to the developer to write their own parallel-processing modules, which were still relatively easy to do. However, even as big of a fan of C# as I am, I’m still doubting its ability to carry the title of “the programming language of the future”.
I know there are a number of other languages out there, languages that far exceed the performance and ease of use of Java and C#. In fact, there are hundreds of languages out there that better utilize multi-core processors and make the whole development process extremely simple. But, I still haven’t seen anything yet that I would learn towards as being the future of programming. Now, before I start getting hate mail from you guys, I will remind you that I write in almost every programming language you will write to me about. With that said, I am more than qualified to make that statement. So, don’t be hating on me because you think that I’m not being fair about any language (C# and Java included) imparticular because I’m not. I am a huge fan of other languages as well whether they are compiled or interpreted. And, although I will admit that there are some languages out there that fall pretty close to what I would consider the future of programming, I believe that those candidates are still a little too premature to award that title just yet. But, I’m hoping that over the next couple of years we will see some of those languages evolve into the greatest thing since sliced bread or that someone will come along with something even better than anything I’ve ever seen before, something that just rocks my socks! Until then, it’s back to my world of writing code in Java, C#, C++, Perl, PHP, Python, Scheme, Lisp, Ruby, R, etc…
Ok. Now you can start sending me hate mail. Or, you can just leave your comments below. 🙂
P.S. The last time I wrote about this, I received over 200 emails telling me I don’t know what I’m talking about. So, I’m looking forward to getting those again. It shows me that there are a lot of you out there asking the same questions I am. And, as always, your feedback is greatly appreciated!
PayPal will open in a new tab.