3 ms·
> In languages where there are no guard rails, it's much more difficult to work out what you don't know that you don't know. I don't disagree. But the above is
by doublerabbit 2y ago
> In languages where there are no guard rails, it's much more difficult to work out what you don't know that you don't know.
I don't disagree. But the above is what's not taught anymore. Which what Computer Science taught you about; a subject that has now been watered down.
It's great to have languages that have guard rails. And sure helps you learn shaving time off your project/life.
However if you're using syntax you have no idea about that can cause system damage than the fault is on the programmer not the language. It exists to be used, but use it wrong it becomes unsafe.
I know i'm not right, but i'm not wrong either. It's a double edged sword.
- kstrauser 2y agoHas computer science ever been primarily about programming? I don’t think that’s the case.
- nicoburns 2y ago> It's great to have languages that have guard rails. And sure helps you learn shaving time off your project/life. It also means that beginners can reasonably use the language for production projects. Including those who have never had the opportunity to study computer science. To me, it reflects poorly on a language if pretty much the only reasonable way to learn it such that you can use it safely is via computer science course (or another similarly structured environment - perhaps a work place with senior mentors). Of commonly used languages, that's pretty much true only of C and C++.
- kazinator 2y agoIn electronics, we have parts which need their SOA (safe operating area) respected by the design, or they will catastrophically fail (melt, vaporize, explode, catch fire). We also have safe parts that have features like thermal shutdown, or output current limiting. That's kind of similar to safe versus unsafe language features. You still have to respect the operating parameters, because if the part goes into thermal shutdown or current limiting, then your device doesn't perform properly. When the device doesn't work properly, even though there is no smoke coming out of it, it can still take time to track down the problem. When using a safe language, we similarly don't necessarily want the user to be exposed to the raw safety mechanism going off, which could have consequences like terminating the image, with the loss of unsaved data, and interrupted workflows. Typically, in modern safe languages we have some decent choices for handling and recovering from situations like that, so we don't have to be cluttering every operation with conditionals that check for exceptional situations.