hadsed said:
It's not inconceivable that Microsoft could pick up D and make something of it.
I think it is inconceivable. Microsoft wants to rule the world. Building on a language that Google uses means that it has to share world domination.
Also language wars are extremely political because of money and power issues. If you have a Java-shop then people that know Java get the money and power. The politics turn out to be more important than technical issues, because if you have money and power behind a language, the technical issues will get fixed. NEWLANG may be better now, but if you put tens of billions of dollars behind OLDLANG, that can change.
They've come up with a lot of crap that isn't widely used (think J++)
J++ makes perfect sense if you think politically. J++ was intended to try to kill Java. If Microsoft didn't put out anything, then you would have developers create an alternative infrastructure for Java which Microsoft doesn't control (bad). If they put out something that was totally compatible with Sun's impelementation, then they have to share world domination.
So the solution is to put out a crappy implementation of Java, and then get people to use C#.
eventually C++ will need to be replaced. No one can say how long that will take, since if you look at FORTRAN...well, it's still around.
Great languages evolve. There are some really interesting things coming out of C++0x and boost. If you want to get your mind blown, take a look at boost::math. WOW!
Also, I don't know anyone that would think of writing code for a serious project in a brand new language, just because...
it will cost a ton of time and money.
Also no one writes any serious project in one language.
Sure it's cool to be that guy who's a total hacker physicist that's better in IT than most IT people (not saying a lot though I guess), but in the end you're wasting a lot of time screwing with memory management and all this other stuff when you could be doing physics.
Except that sometimes the core of what you are trying to do involves pushing the hardware at the limits. In the world of high-perfomance supercomputing, you *have* to care about memory management and cache access, because that makes the difference between code that takes three weeks to run, and something that can't get run at all.
I think that's one of the reasons FORTRAN is still around. Half of our time is spent fixing the damned computers when we could be running simulations or actually be doing physics and not have to be certified sysadmins.
It depends on what you mean by "doing physics." Pushing a supercomputer to its limits is "doing physics". If you are doing grid computing, then you have to learn a ton about the details of how networks work, which is pretty useful once you get your Ph.D.
Eventually, physicists (even computational ones) ought to be doing physics, and sure the way it's structured right now provides a good safety net for a lot of physicists/IT admins/software engineers, and that's good for them, but I don't think it's good for physics.
I think it is. If you are an expert at neutrino processes and an expert at C++, you can come up with cool and creative ideas that someone that knows *only* neutrino processes and C++ can't do.
It's kind of the reason why civilization came up with specialization in the first place, so things get done more efficiently.
But it doesn't work. One big problem with academia is that I think it's *too* specialized, which is one reason I got out of it. One problem with specialization is that it naturally leads to some pretty unhealthy social structures, in which the people that specialize in "getting money and power" end up with all of the money and power.
I'm a naturally curious person, and I get really annoyed when someone tells me what I should be curious about. Being curious about lots of different things turns out to be useful. I'm curious about neutrino processes. I'm curious about sociology. I'm curious about computer languages. It turns out that to do my job, I have to be proficient at all of this.