> but also more often than not impractical to attempt to translate any old COBOL program into another modern language without simply transliterating it,
That is a good point.
That said, I don't think people think most people think it through that deeply. The analogy of why Java would stick around seems to communicate (at least is intended to communicate) the idea that Java would be economically infeasible to displace with something else. That's all I meant. I didn't mean anything about COBOL. I only meant something about Java's entrenchment.
That is a perfect example of why there is no single programming language that is prefect for everything. If there were, we would all already be using it.
So why should people bash Java because they work in an area where Java might not be the best choice? Obviously Java is heavily and widely used, so there must be SOME reason for that. And the fact that it tops job boards for years in a row. I'm not saying everyone has to like Java. Just quit making up crap. If it were so horrible it would not be used.
The Zero-G indicator inside the Dragon 2 capsule looks like a stuffed furry plush toy.
Couldn't they have at least selected a different toy: the stuffed plush Alien Face Grabber? That would have been much better to be in the capsule with "Ripley" on this demo flight.
When astronauts are transported to the launch pad to load into the Dragon 2 capsule, is it true that SpaceX has selected Tesla to provide the transport vehicle? (Model X)
(that is a serious question. any real information would be interesting.)
Java is pretty dang simple to install onto Windows. Maybe you're getting your Java from the wrong place? Java is so easy to install onto Windows that even a PHB could do it -- I think.
Corporations are optimizing for Dollars not for cpu cycles and bytes. Java is way more economical than C and C++.
A long time ago, in a galaxy far, far away . . .
CPUs were very expensive. It would take the annual salary and benefits of a good sized team of programmers to buy a CPU.
Today one developer's salary + benefits for a single month can buy a sweet box. And a very sweet box for two months worth.
Programmers are now the expensive resource. Not machines.
A Java programmer can ask for more memory and get it, because they can work at a higher abstract level and beat their C/C++ programmer to market, and laugh all the way to the bank. I know it is sad that we're not focused on saving every possible byte and cpu cycle. But that's the real economics. A business person would laugh at your argument. It's not the 1980s any more where every cycle / byte mattered.
Java is amazingly backward compatible. One of the reasons for its success. They maintain source code compatibility, and binary code compatibility to earlier JVM bytecode class file layouts. Even in the presence of significant extensions such as Generics. I thought the backward compatible way Java implemented Generics was genius. I would never have thought of that.
I don't disagree with you. But it is just an analogy. Few analogies are perfect. But the point is Java is deeply entrenched. Here to stay. Attempting to replace it would require monumental resources.
The biologist would be talking about gender and biology. The 'triggered' one would be upset that the biologist does not accept the POV that gender isn't grounded in biology, and has no biological function, but rather is a mere social construct.
I hate to say, but Swing is possibly where the "write once, debug everywhere" mantra got started. I have done a few Swing applications and have experienced having to make small tweaks for some platforms.
I have not tried FX yet.
If starting something new, I would seriously consider whether it should even be a desktop app instead of a web app. Web apps have zero install and zero maintenance at the end user's workstation.
Java has excellent development tools. Fantastic story on refactoring of large code bases.
Java is very mature. Battle tested. Industrial Strength. Java has a history of backward compatibility better than most other languages. Especially Python 2 / 3, just to pick one example.
Java has an industrial strength managed runtime platform. First the Java (or Scala, Kotlin, etc) compiler translates your source code into JVM bytecode. That bytecode is platform neutral. When you start your program on the JVM (Java Virtual Machine), it initially runs by interpreting your bytecode. All your functions are dynamically profiled for cpu usage. The JVM watches for a CPU hotspot. That is, some function that is getting a higher than average cpu utilization.
As soon as the JVM detects a hotspot, that code is immediately dynamically compiled to native code by the C1 compiler. The C1 compiler rapidly generates un-optimized native code. That code is also scheduled by be recompiled by the C2 compiler in the near future.
Before long, the C2 compiler comes along and spends significant time compiling that code into highly optimized code. In aggressively inlines code. It is able to do optimizations that no "ahead of time" compiler (such as C) can do. This is because the C2 compiler can see the "entire" program. That is, all possible code that makes up the entire program which is running. So the C2 compiler can make changes that an ahead of time compiler cannot make. Even though different parts of the entire running system may be been written by different authors, at different periods in history. Furthermore the C2 compiler can compile into code that is SPECIFICALLY for the processor you are running on, including any processor specific extensions, like SSE2, etc. Again, something an ahead-of-time compiler (like C) cannot do and be able to run on all x86 processors. (But remember JVM bytecode runs on any JVM, even on microprocessors not yet invented today -- without recompiling your source code.)
Now imagine this. Your function calls My function. Both your and my function are dynamically compiled, and C2 optimized Your function by inlining My function into your code. Next, for some reason, My code is dynamically reloaded and updated within the running JVM. Now Your function has a stale copy of My old code. The JVM immediately switches Your code back to running Your bytecode via an interpreter. Before long, if your code is still a cpu hotspot, it will again get recompiled first by C1, and then later by C2.
Java's C2 compiler has been described as being probably one of the most sophisticated compilers there is -- even though its "source" language is JVM bytecode.
Next is Java's GC. Like Java's native compiler, Java's GC is the product of two decades of research by many researchers (due to the platform being open for many years). Java offers multiple GC choices. Each garbage collector offers multpile knobs for tuning your workload to run best. There presently is one company (Azul Systems) that makes a proprietary Java runtime with a proprietary GC that handles memory heaps of HUNDREDS of GIGABYTES. (yes, you read that correctly) And has only 10 ms GC pause times. The latest thing is Red Hat's Shenandoah GC which can handle several TERABYTES of memory with 10 ms GC pause times. Also the new ZGC that similarly handles TERABYTES of memory.
Why such big memory heaps? Because Java can run concurrently on many CPU cores (the most I've heard of is 768 cores) with lots of memory. Yes, folks, Java is used for SERIOUS workloads.
Even if you don't like Java the language, other languages compile to JVM bytecode -- and many can all interoperate with each other. The JVM (java runtime) is an industrial strength battle tested runtime for serious workloads.
Please call me when your Python or Node.js can do that.
> I know of no new development done on java applications or anyone in my company doing anything with java.
Wow, then it obviously MUST be true!
Clue: Java continues to be the top language on various jobs charts year after year. (And I don't mean JavaScript.)
Java is very widely used for enterprise web applications. (not web 'sites' but applications)
Maybe your knowledge about Java is actually limited to what you personally see.
Java is the COBOL of the 21st century. It will be around forever for the same reason as COBOL. The sheer economic value of business applications written in Java is so large and the cost to ever consider rewriting them would be so high.
You may not like Java. And that's fine. There's nothing wrong with that.
caller: a biologist is lecturing at my school and says that gender is NOT a social construct! He cannot be allowed to say that because this campus is supposed to be a safe space for all points of view. Therefore his point of view must not be allowed!
We must embrace diversity:
* straight white christian men with black hair
* straight white christian men with brown hair
* straight white christian men with gray hair
* straight white christian men with no hair
* straight white christian men who are tall
* straight white christian men who are short
* straight white christian men with blue eyes
* straight white christian men with brown eyes
* straight white christian men who are rich
* straight white christian men who are richer
* . . . etc
I think you are confusing the Falcon 9 / Dragon 2 with the SLS / Orion.
Might I suggest you would find more readers interested in your proposal over on Reddit.
> but also more often than not impractical to attempt to translate any old COBOL program into another modern language without simply transliterating it,
That is a good point.
That said, I don't think people think most people think it through that deeply. The analogy of why Java would stick around seems to communicate (at least is intended to communicate) the idea that Java would be economically infeasible to displace with something else. That's all I meant. I didn't mean anything about COBOL. I only meant something about Java's entrenchment.
That is a perfect example of why there is no single programming language that is prefect for everything. If there were, we would all already be using it.
So why should people bash Java because they work in an area where Java might not be the best choice? Obviously Java is heavily and widely used, so there must be SOME reason for that. And the fact that it tops job boards for years in a row. I'm not saying everyone has to like Java. Just quit making up crap. If it were so horrible it would not be used.
The Zero-G indicator inside the Dragon 2 capsule looks like a stuffed furry plush toy.
Couldn't they have at least selected a different toy: the stuffed plush Alien Face Grabber? That would have been much better to be in the capsule with "Ripley" on this demo flight.
When astronauts are transported to the launch pad to load into the Dragon 2 capsule, is it true that SpaceX has selected Tesla to provide the transport vehicle? (Model X)
(that is a serious question. any real information would be interesting.)
It was a while back. But I did figure it all out. I also learned MigLayout really well.
Did Reddit exist when I signed up on slashdot.
We must never tolerate the intolerant.
Java is pretty dang simple to install onto Windows. Maybe you're getting your Java from the wrong place? Java is so easy to install onto Windows that even a PHB could do it -- I think.
Corporations are optimizing for Dollars not for cpu cycles and bytes. Java is way more economical than C and C++.
A long time ago, in a galaxy far, far away . . .
CPUs were very expensive. It would take the annual salary and benefits of a good sized team of programmers to buy a CPU.
Today one developer's salary + benefits for a single month can buy a sweet box. And a very sweet box for two months worth.
Programmers are now the expensive resource. Not machines.
A Java programmer can ask for more memory and get it, because they can work at a higher abstract level and beat their C/C++ programmer to market, and laugh all the way to the bank. I know it is sad that we're not focused on saving every possible byte and cpu cycle. But that's the real economics. A business person would laugh at your argument. It's not the 1980s any more where every cycle / byte mattered.
Java is amazingly backward compatible. One of the reasons for its success. They maintain source code compatibility, and binary code compatibility to earlier JVM bytecode class file layouts. Even in the presence of significant extensions such as Generics. I thought the backward compatible way Java implemented Generics was genius. I would never have thought of that.
I don't disagree with you. But it is just an analogy. Few analogies are perfect. But the point is Java is deeply entrenched. Here to stay. Attempting to replace it would require monumental resources.
The biologist would be talking about gender and biology. The 'triggered' one would be upset that the biologist does not accept the POV that gender isn't grounded in biology, and has no biological function, but rather is a mere social construct.
I hate to say, but Swing is possibly where the "write once, debug everywhere" mantra got started. I have done a few Swing applications and have experienced having to make small tweaks for some platforms.
I have not tried FX yet.
If starting something new, I would seriously consider whether it should even be a desktop app instead of a web app. Web apps have zero install and zero maintenance at the end user's workstation.
> If you are a Java guy . . .
Yes.
>would you start anew with Java today
Yes.
Java has excellent development tools. Fantastic story on refactoring of large code bases.
Java is very mature. Battle tested. Industrial Strength. Java has a history of backward compatibility better than most other languages. Especially Python 2 / 3, just to pick one example.
Java has an industrial strength managed runtime platform. First the Java (or Scala, Kotlin, etc) compiler translates your source code into JVM bytecode. That bytecode is platform neutral. When you start your program on the JVM (Java Virtual Machine), it initially runs by interpreting your bytecode. All your functions are dynamically profiled for cpu usage. The JVM watches for a CPU hotspot. That is, some function that is getting a higher than average cpu utilization.
As soon as the JVM detects a hotspot, that code is immediately dynamically compiled to native code by the C1 compiler. The C1 compiler rapidly generates un-optimized native code. That code is also scheduled by be recompiled by the C2 compiler in the near future.
Before long, the C2 compiler comes along and spends significant time compiling that code into highly optimized code. In aggressively inlines code. It is able to do optimizations that no "ahead of time" compiler (such as C) can do. This is because the C2 compiler can see the "entire" program. That is, all possible code that makes up the entire program which is running. So the C2 compiler can make changes that an ahead of time compiler cannot make. Even though different parts of the entire running system may be been written by different authors, at different periods in history. Furthermore the C2 compiler can compile into code that is SPECIFICALLY for the processor you are running on, including any processor specific extensions, like SSE2, etc. Again, something an ahead-of-time compiler (like C) cannot do and be able to run on all x86 processors. (But remember JVM bytecode runs on any JVM, even on microprocessors not yet invented today -- without recompiling your source code.)
Now imagine this. Your function calls My function. Both your and my function are dynamically compiled, and C2 optimized Your function by inlining My function into your code. Next, for some reason, My code is dynamically reloaded and updated within the running JVM. Now Your function has a stale copy of My old code. The JVM immediately switches Your code back to running Your bytecode via an interpreter. Before long, if your code is still a cpu hotspot, it will again get recompiled first by C1, and then later by C2.
Java's C2 compiler has been described as being probably one of the most sophisticated compilers there is -- even though its "source" language is JVM bytecode.
Next is Java's GC. Like Java's native compiler, Java's GC is the product of two decades of research by many researchers (due to the platform being open for many years). Java offers multiple GC choices. Each garbage collector offers multpile knobs for tuning your workload to run best. There presently is one company (Azul Systems) that makes a proprietary Java runtime with a proprietary GC that handles memory heaps of HUNDREDS of GIGABYTES. (yes, you read that correctly) And has only 10 ms GC pause times. The latest thing is Red Hat's Shenandoah GC which can handle several TERABYTES of memory with 10 ms GC pause times. Also the new ZGC that similarly handles TERABYTES of memory.
Why such big memory heaps? Because Java can run concurrently on many CPU cores (the most I've heard of is 768 cores) with lots of memory. Yes, folks, Java is used for SERIOUS workloads.
Even if you don't like Java the language, other languages compile to JVM bytecode -- and many can all interoperate with each other. The JVM (java runtime) is an industrial strength battle tested runtime for serious workloads.
Please call me when your Python or Node.js can do that.
I hope that answers your question.
> I know of no new development done on java applications or anyone in my company doing anything with java.
Wow, then it obviously MUST be true!
Clue: Java continues to be the top language on various jobs charts year after year. (And I don't mean JavaScript.)
Java is very widely used for enterprise web applications. (not web 'sites' but applications)
Maybe your knowledge about Java is actually limited to what you personally see.
Java is the COBOL of the 21st century. It will be around forever for the same reason as COBOL. The sheer economic value of business applications written in Java is so large and the cost to ever consider rewriting them would be so high.
You may not like Java. And that's fine. There's nothing wrong with that.
operator: 911 What's your emergency?
caller: a biologist is lecturing at my school and says that gender is NOT a social construct! He cannot be allowed to say that because this campus is supposed to be a safe space for all points of view. Therefore his point of view must not be allowed!
Someone suggested that American news organizations make things up and call it news.
American news organizations DO NOT make things up and call it news.
They call it BREAKING NEWS.
Police Officer: Yes, Ma'am. Our department does have a policy of not giving tickets to pretty girls. Now sign here please.
> But wait a minute: Isn't diversity... EVERYONE?
The best way to be more inclusive is to exclude white male hetrosexual Christians.
Because we can never tolerate intolerant people.
Political correctness can be achieved by sacrificing logic and internal self consistency.
We must embrace diversity:
* straight white christian men with black hair
* straight white christian men with brown hair
* straight white christian men with gray hair
* straight white christian men with no hair
* straight white christian men who are tall
* straight white christian men who are short
* straight white christian men with blue eyes
* straight white christian men with brown eyes
* straight white christian men who are rich
* straight white christian men who are richer
* . . . etc
You may on to something!
Paid for by Americans for Renewable Complaining and Sustainable Whining.
The basis of my lawsuit is that I went to Playboy.com to read the great articles.
But those women were sexually assaulting me and creating a hostile environment by exposing their bodies on adjacent pages.
This male dominated industry never ceases to amaze me with their constant "pull requests".
I think you have to agree to this first. But consider this hypothetical complaint uttered in a single breath:
I just hate how much Google knows about me! Hey Google, can you recommend a movie I might like?