While I'm sure you can point to a Java program which takes 5 minutes to start, these are the exception in the Java world, not the rule. In fact, the JVM takes seconds (a small number of seconds, less than 5) on all of my systems, including P3's as well as older AMD's. It takes less than 2s on my Athlon 4800+. I can go from Tomcat not running to it being completely started up and serving requests in 4s on my PC, and 11s on my older G5. My IDE, which is extremely feature-rich, takes ~90s to get to where I can start typing code from a completely cold start, in a middling (30K LOC) project. That includes a ton of lib caching and such, so that it can do incremental compilation in real time. It takes 16s to restart once that caching is done.
As far as guzzling RAM goes, all programs these days guzzle RAM, and they're right to do so, because RAM is cheap. This is not unique to Java, the IDE I mentioned uses 56M once it's really going, surely not an unreasonable amount of memory for such a complex app. Java is still not the best choice for small scripts, Python would be better if your program is going to be mostly startup/shutdown time. C# is no better than Java though. Don't forget you need most of.Net in memory for your C# program, and that's no small chunk of RAM. The first time you start up a.Net app of any size you're going to be waiting for it to draw for just as long. And it's no better for scripts, just how fast does Mono start up anyway?
Sure, it depends on what you do for a living, but by picking the 'Wal-Mart' example you implictly seem to be saying that unskilled professions don't need it, but aren't as rewarding either.
In fact, as a software engineer I personally last did advanced math some 5 years ago, when I was working with 3D systems. Some of that math was third and fourth year college stuff, but now I never use any of it. Even when I was doing that, I never used trig directly, since the operations run too slow. Unless they're using lookup tables in high school math now, it's not likely that they'd recognize the trigonometric principles even in software that uses it. And of course most software doesn't.
Lawyers and many kinds of doctors also don't ever have to use all the math they learned in high school. Even many research scientists only use higher level math in isolation, such as needing a solid background in statistics but not needing to know set or number theory.
IOW, it's not necessary to know most high school math to have a highly rewarding and respected job out of college. I'd guess that 80% of what I learned in high school and college was only useful for entrance and exit exams that got me through the academic hoops.
While I'm sure you can point to a Java program which takes 5 minutes to start, these are the exception in the Java world, not the rule. In fact, the JVM takes seconds (a small number of seconds, less than 5) on all of my systems, including P3's as well as older AMD's. It takes less than 2s on my Athlon 4800+. I can go from Tomcat not running to it being completely started up and serving requests in 4s on my PC, and 11s on my older G5. My IDE, which is extremely feature-rich, takes ~90s to get to where I can start typing code from a completely cold start, in a middling (30K LOC) project. That includes a ton of lib caching and such, so that it can do incremental compilation in real time. It takes 16s to restart once that caching is done.
.Net in memory for your C# program, and that's no small chunk of RAM. The first time you start up a .Net app of any size you're going to be waiting for it to draw for just as long. And it's no better for scripts, just how fast does Mono start up anyway?
As far as guzzling RAM goes, all programs these days guzzle RAM, and they're right to do so, because RAM is cheap. This is not unique to Java, the IDE I mentioned uses 56M once it's really going, surely not an unreasonable amount of memory for such a complex app. Java is still not the best choice for small scripts, Python would be better if your program is going to be mostly startup/shutdown time. C# is no better than Java though. Don't forget you need most of
In fact, as a software engineer I personally last did advanced math some 5 years ago, when I was working with 3D systems. Some of that math was third and fourth year college stuff, but now I never use any of it. Even when I was doing that, I never used trig directly, since the operations run too slow. Unless they're using lookup tables in high school math now, it's not likely that they'd recognize the trigonometric principles even in software that uses it. And of course most software doesn't.
Lawyers and many kinds of doctors also don't ever have to use all the math they learned in high school. Even many research scientists only use higher level math in isolation, such as needing a solid background in statistics but not needing to know set or number theory.
IOW, it's not necessary to know most high school math to have a highly rewarding and respected job out of college. I'd guess that 80% of what I learned in high school and college was only useful for entrance and exit exams that got me through the academic hoops.