6,856 karma · joined October 29, 2012
(For the uninitiated, yes, this is trolling.)
Performance? Lisp can give you that, as can OCaml, Haskell, and other better languages. Real time system? There is a mountain of research on real-time garbage collection and on using HLLs for real-time systems. Operating system kernel? OSes were once written in Lisp, and OSes could conceivably be written in other HLLs.
Throw in a requirement to interoperate with a C library and suddenly things get ugly. Yeah, sure, you have an FFI, but debugging across a language barrier is difficult (I have had to do it, it is agony). Suddenly you need to worry about pinning objects so that the garbage collector won't move them while some C library expects them to stay still. In some cases your code basically becomes C but with the syntax of an HLL, and you start to wonder why you did not just write that routine in C to begin with (it would have made your life easier). Performance matters but your compiler needs to set up a trampoline so that your code can provide some kind of callback, and now that is a bottleneck that kills all that other optimization work. Then some joker writes some C++ code, and the rest of your week is spent writing wrapper functions because your FFI cannot deal with the name mangler.
At the end of the day there is no particular technical reason for C or C++ to remain so popular, and a big pile of technical reasons to stay away from such languages. C made a bit of sense in the 1970s when computers were small and the understanding of compilers and programming languages was less well developed. At this point C and C++ are a liability that we are all stuck with. Maybe some day the expense of sticking with C and C++ will outweigh the expense required to switch to better languages, but I am not holding my breath.
2. GCC is not even the best optimizing compiler out there. Intel's C compiler puts GCC to shame for some tasks.
https://en.wikipedia.org/wiki/Curry-Howard_Correspondence
Basically, checking a proof of correctness for software is equivalent to type checking (for a very fancy type system).
It's not that TDD is perfect, but it is a pragmatic approach to reducing bugs and it helps a lot in preventing regressions.
Pessimistic: Hollywood thugs
Yes and no. When the government wants to get quality software that solves real problems and saves taxpayer money, it manages to do so:
https://en.wikipedia.org/wiki/Dynamic_Analysis_and_Replannin...
"We saw how well that worked with healthcare.gov."
Keep in mind that healthcare.gov was overburdened with moronic, ideologically driven requirements that were still being finalized a week before it was supposed to go live. It was being set up for failure from step one.
Unfortunately, most people do not find this to be terribly exciting. Worse still, there is almost no demand for it; most programmers want to quickly hack out something cool, and by the time they begin thinking about security it is too late.
When people do implement cryptography they rely on having large numbers of other people review it. That is not a model that scales to having a large number (more than a couple dozen) of competing implementations.
2. Do you have time for a rewrite? What makes you think anyone else would?
3. The (generally correct) mindset is don't implement your own crypto. This is particularly true of something like TLS, which is complicated and has subtle requirements that are easy to screw up. Unfortunately, this means that even people who have time are discouraged from doing an OpenSSL rewrite.
"If we were talking about a CEO that was racist and had donated to the KKK would you still rush to call foul when they were forced to step down by popular opinion?"
Here are the guidelines I would use:
1. What does the organization they are CEO of do? If it is an organization devoted to providing aid to oppressed minorities, obviously KKK membership would be a conflict of interest. If on the other hand the organization makes general purpose software, I fail to see the relevance.
2. Is the CEO trying to use the organization to promote the KKK's agenda? If so, there is a problem with his professional conduct. If not, then his KKK membership is something he does on his own time; hateful, sure, but I do not want to live in a world where people are not allowed to separate their personal and professional lives.
I can blame them. Mozilla makes a web browser. Gay marriage has nothing to do with Mozilla's mission or with the political issues Mozilla has to deal with as part of its mission. I could understand the uproar if Eich had donated to a "ban free software" cause, but that is not what happened.
You're right, this is not about free speech. Eich was not punished for what he said, he was punished for what he thought. The donation is irrelevant here, other than the fact that it revealed Eich's beliefs. There would be just as much anger and vitriol if instead of a donation someone revealed that Eich had voted in favor of proposition 8.
Yes, and obviously that is completely orthogonal to the kind of treatment he has received over his beliefs about gay marriage. It is easy to criticize people who are afraid to speak their minds when you have an army of thought police standing with you ready to punish anyone who dares to disagree.