• 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
  • Devaka Cooray
  • Tim Cooke
  • Jeanne Boyarsky
  • Ron McLeod
Sheriffs:
Saloon Keepers:
  • Piet Souris
Bartenders:

Why Java is Still Popular for Software Development

 
Greenhorn
Posts: 4
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello everyone,

Many new programming languages are emerging, but Java is still one of the most popular languages in the software industry. Here are a few reasons why Java continues to be widely used.

1. Platform Independent
Java follows the concept “Write Once, Run Anywhere.”
This means Java programs can run on any system that has the Java Virtual Machine (JVM).

2. Object-Oriented Programming
Java is based on OOP concepts like:

Classes

Objects

Inheritance

Polymorphism

These concepts help developers build large and maintainable applications.

3. Secure Language
Java provides strong security features like:

Bytecode verification

Secure memory management

No direct pointer access

This makes Java suitable for banking systems and enterprise applications.

4. Large Community Support
Java has a huge developer community. If you face any problem, you can easily find solutions online.

Conclusion
Because of its security, portability, and reliability, Java is still widely used for web applications, Android apps, and enterprise software.

What do you think about Java’s future? Do you think it will continue to dominate programming?
 
Bartender
Posts: 1202
20
Mac OS X IntelliJ IDE Oracle Spring VI Editor 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
Simply put the Spring Framework.    

Various Java technologies (IMHO) was often over engineered in the past, but Spring simplfied everything.  Thinking of Enterprise Java Beans in particular those horrid Entity Beans.  
Being too critical I starting to think Java has become like an "old school bus that takes everyone, everwhere".  This was originally said about the old cobol language.      

Write Once, Run Anywhere. - Write anywhere, test everywhere!

Also Java does not have true multiple inheritance or operator overloading (C++), which is a good thing.  

It also has many functional programming features, but not a true functional language.    
 
Bartender
Posts: 29139
215
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
One of the signal strengths of Java was the development of the POJO - the Plain Old Java Object.

As Sun originally envisioned them, there were indications that toolkits would be available to allow Java development to be done DDD-style (Drag, Drop, Drool), similar to efforts such as those by Microsoft. But for whatever reason, that concept was never actively pursued.

Enterprise JavaBeans, on the other hand, were horrible in large part because they were not POJOs. They were extremely delicate and could only be used in limited environments. Sun realized their error and future efforts such as EJB3 and JavaServer Faces were designed to be POJO-based.

However, as this was happening, third-party frameworks with similar ideals were being developed. Spring is arguably the best-known of them. At its core, it provided a central factory for POJOs - plus had the ability to source many types of non-POJO pbjects. Then they leveraged that by adding module families such as Spring Data until a complex but very usable ecosystem had emerged.

EJB had its own redeeming moments, the greatest of which was the fact that you could subset it and use the Java Persistence Architecture part in virtually any runtime environment. And in fact, Spring Data can itself leverage that via the Spring JPA module which I have used for many a successful project.

Spring did have another virtue over the original EJB at least, which was that it was purported to provide better persistence transaction management. As to whether that still applies or not, I cannot say, since I've never needed them myself.

Java retains its popularity because it has always enjoyed the support of Big Business. It offers better security than almost any other language, good performance, lots of libraries from both commercial and open-source offerings and - from a business standpoint - has one of the best "future-proofing" capabilities around. What made me give up in disgust on Microsoft languages more than anything was that a program you ran last week might not execute at all this week, as their tools were constantly mutating with little-to-no legacy support. Java, on the other hand has marked the Day(month, day, year) constructor as deprecated for probably 2 decades or more and the worst that will happen if you use it anyway (old code, of course, you'd never use it in new code, right?) is that the compiler will whine at you. And that's not even considering the backwards-compatibility computer and runtime options.

It's possible that in another Universe, we might be saying this about the Ada programming language, instead, but Ada came out around 5 years before Java and it made similar demands on hardware, though the hardware of the day was less capable. I took an Ada course around 1989 and the load it put on a mid-sized IBM mainframe just to compile was about what I got compiling Fortran on a 4MHz Z-80 microcomputer.

But there's a lot to like about Ada despite its relative lack of popularity and anyone interested in exploring can use the "gnat" system available on most PC platforms.
 
Tim Holloway
Bartender
Posts: 29139
215
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
Incidentally, I would not say that Java is "ideal" for banking and financial systems.

The Common Business Oriented Language (COBOL) is, for all its clunky verbosity about the best suited of all popular languages for straight bookkeeping. Possibly also Ada, but I know of no Ada financial apps, so that's moot. For that matter, C++, but I wouldn't if I were you.

The key feature that makes COBOL better for general banking is its support for the COMPUTATIONAL-3 data type (as IBM styles it). COMP-3 represents data in Binary-Coded Decimal (BCD) form.

BCD offers the convenience of rapid conversion to/from display characters and both the IBM mainframes from System/360 onwards and virtually all microprocessors have hardware support for BCD arithmetic.

BCD, unlike floating-point, offers exact precision when dealing with fractional dollars/euros/whatever. So for adding up bank statements, it's the better way to go. Only when you get into the higher levels such as interest rate calculations and amortizations would you use floating-point in banking.

Java does have a class for supporting big decimal numbers, but compared to COBOL it's very clunky. There is no decimal-number primitive data type corresponding to COBOL's COMP-3 nor do math operators apply, so everything has to be done via brute-force method calls as opposed to the simpler COBOL "ADD MONTHLY-RECEIPTS TO CURRENT-BALANCE" syntax.
 
Peter Rooke
Bartender
Posts: 1202
20
Mac OS X IntelliJ IDE Oracle Spring VI Editor 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
COBOL - an old school bus that takes anyone, everywhere!  I'm not a fan, but only did it as a student never (thankfully) on a real project Cobol Fingers.  Having said all of that, I did once talk to an old boss about J2EE, and he just said we already had technologies (KICKS) that worked.      

Kind of thinking that tokenisation of asserts is happening, reduced settlement times, an immutable ledger, and on chain payments.  Of course, it is a new technology, and still in the early stages of acceptance (or rejection!).  

I’ve used Solidity which runs on the Ethereum (blockchain) network, and while it’s not too difficult to write simple code, it’s difficult to create secure code that would pass an security audit.  Suspect a lot of the banks will opt for private chains due to the hacking risks with public chains (or bad code!).        
 
Ranch Hand
Posts: 231
1
VSCode Eclipse IDE Spring C++ Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Popular!? Let me be brutally honest, I have started to like C# more than Java (Everything Java does modern C# does it better) as a language, specially in the past couple of years, popularity? not sure but yes Java is very much in use, thanks to stable, financial, legacy systems, and spring framework also needs to be given credit, it has become mainstream backend development framework in Java ecosystem. also I feel Java's ecosystem is old and very active compared to any other programming language.
 
Tim Holloway
Bartender
Posts: 29139
215
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You may like C# all you like, but its popularity is limited to the Microsoft Windows world. Yes, there's Mono for Linux, but the .Net world is almost universally avoided on Linux and MacOS to the point where the popular Mono Tomboy Notes app was forked produce the non-C# gnotes app because users didn't want C# on their non-Windows boxes.

Personally, I still carry burn scars from back when Microsoft discarded database interfaces on an almost weekly basis. As I mentioned previously, one of Java's greatest strengths is that it retains backwards compatibility to an almost obsessive degree.

A more compelling reason for avoiding C# is that Microsoft has been alienating large populations with products like Windows 16 and hints at even worse in the next release. A LOT of people are taking their old Windows 10 and 11 computers and installing Linux on them because they cannot be used for Windows 16, but even the latest versions of Linux run just fine on them.
 
Peter Rooke
Bartender
Posts: 1202
20
Mac OS X IntelliJ IDE Oracle Spring VI Editor 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
Just spent about month messing around with .NET and C#.  Company ran a course which we were all pushed onto, then I got the pleasure of 'teaching' the next one.  
Overall the language seemed quite nice, very close to Java (where it was taken from).  I liked some of the autogeneration tools, which reminded me of Ruby-on-Rails.
One benefit i've always thought is that since it's all from one company, Micro$wipe, so all the tools work well together.  Of course only on Windows  
Never used it for anything in the real world, and not planning on doing so.

Got bored a long time back with the constant arguments about which language, tool, or whatever is better, mostly it seems to depend upon the folks doing the work, and the nature of the project (etc).  Put it this way Lewis Hamilton in a mini-moke would be faster going around Silverstone than me in a race car            
 
Bartender
Posts: 359
12
IntelliJ IDE Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
C# isn't a bad language at all. I'm not about to choose it over Java unless there's a very strong reason, Microsoft is evil and I use Linux, but I find the language decent. I don't know if I care for some of the features they added in over what Java has, such as the ability to pass variables by reference instead of value, but it's perfectly usable. It's a shame it became the second big gaming language thanks to Unity, instead of Java.

However there is one thing other than coming out of MS that can't be forgiven... their code style convention to CapitalizeMethodNames and PublicVariables is objectively wrong and immoral! Not to mention harder to type.

What's really baffling is why the disgusting monstrosity called JavaScript still continues to be popular (also objectively wrong and immoral, of course).
 
reply
    Bookmark Topic Watch Topic
  • New Topic
Morty Proxy This is a proxified and sanitized view of the page, visit original site.