4 ms·
Yeah, I'm sure switching to a more fashionable programming language will automatically fix all bugs and security issues. (sarcasm)
by otabdeveloper4 6y ago
Yeah, I'm sure switching to a more fashionable programming language will automatically fix all bugs and security issues.
(sarcasm)
- mrmonkeyman 6y agoMemory leaks are not bugs, they are a fundamental design error.
- pdimitar 6y agoEvery little bit helps IMO. Rust seems like it eliminates class of bugs (and so do Haskell and OCaml), the JVM looks like it could prevent another subset of them, and I am sure there are other examples. Not going to bash anyone for using C -- sqlite's team has their priorities and values clearly stated (performance and discipline) -- but it's probably time for all of us to admit that not all recent tech innovation is about fads. Some of it is actually genuinely useful and helps with age-old problems (though sadly, none of it addresses all of them).
- anyfoo 6y agoAll of them? No. But will a modern language, where many more properties are mathematically proven through the type system, massively improve the situation? Yes. If you don’t believe me, do the converse and write your next big project completely in assembly (which is effectively untyped), and see what happens.
- saagarjha 6y agoRemoved undefined behavior from your code with this one weird trick!
- dathinab 6y agoThrough only if has high usability. You currently can bend C++ into ways to have such a type system. The usability this introduced through additional complexity is just very very bad. So no one does it because bad usability means bad productivity and getting a project done with bugs is often better then getting it not done at all (sure there are exceptions!).
- anyfoo 6y agoThat's a good point, and I think you've hit one of the main issues why we're still stuck with old, unsafe languages. There is the saying that once you got a Haskell program to compile, it usually just works, and I personally found it to be true a lot. But getting it through the compiler can indeed be much more of a journey than in, say, C. And I realize that the work you have to put in to just even being able to run something can be discouraging, maybe going against a natural (or maybe just common) affinity towards tight, iterative "change-compile-try" approaches. Still, in cases where it really matters, i.e. system software or common, but often mission-critical software like sqlite, maybe it's worth taking the jump?
- pdimitar 6y agoI would jump with joy if sqlite3 was rewritten in Haskell, OCaml or Rust. They can bring so much to the table in terms of safety and less development surprises.
- jrockway 6y agoI am not really talking about the present day, though I agree with the other comments that a lot of modern features help. Think back to the era of Lisp machines. Memory safety, macros, OO... all in the 80s! We ignored the lessons and paid the price. People, to this day, still look at you weird when you say "I think you could write a game in a garbage collected language" and don't bat an eye when you say "C is dangerous, but I was very careful." I think what killed us is that computers are expensive (and performance directly translates to the number of computers you need to buy) and security holes are free. Of course you're going to optimize for speed; optimizing for safety can save you at most zero dollars. That's just engineering.