5 ms·
After seeing Rich Hickey's excellent material on the matter^, I can no longer read anything talking about Simplicity and Complexity in programming without suspe
by frou_dh 9y ago
After seeing Rich Hickey's excellent material on the matter^, I can no longer read anything talking about Simplicity and Complexity in programming without suspecting the author of being fast and loose with what those terms specifically mean.
As it stands, they are recipe for different camps and sub-camps of programmers to talk past each other endlessly.
^ https://www.infoq.com/presentations/Simple-Made-Easy https://www.infoq.com/presentations/Simple-Made-Easy
- xyzzy_plugh 9y agoI tend to agree with you, but I think Cheney has done an excellent job here. Did you even read TFA?
- frou_dh 9y agoYes - evidently not as impressed. It's against the site guidelines to ask that btw. For example, I cannot accept that having no means to define immutable structures makes for an overall "simpler" programming model. What could be simpler than allowing information to be information? Whether having an additional concept makes Go more burdensome to learn and implement is another matter, and is on a different axis to Simplicity/Complexity (again, using Hickey's excellent deconstruction of simple/complex vs. easy/hard).
- catnaroek 9y agoSimplicity is very easy to objectively measure. Write down a formal semantics for the programming language in question, and count how many pages you used. But, of course, nobody will actually do this, because it would expose the inherent complexity of designs advertised as simple. Many people's feelings would be hurt in the process.
- majewsky 9y agoAs long as the result is shorter than 1500 pages (afair), your language is simpler than C++.
- catnaroek 9y agoAnd the C++ specification isn't even a formal one.
- woah 9y agoWhy don't you do it?
- catnaroek 9y agoBecause I have no time to study languages I dislike, and the one that I do like (Standard ML) already has a formal semantics and a type safety proof.
- MereInterest 9y agoI would argue that is a good measure of the simplicity of the language itself, but not a measure of the simplicity of the use of the language. By that measure, Malbolge is a simple language than C++ by a factor of ~1000. However, it is still much simpler to write code in C++ than in Malbolge.
- taeric 9y agoNot that you don't have a point, but I actually prefer fast and loose with most terms. Ironically, I find it leads to simpler conversations. :) It can lead to some misunderstandings, but I think those are usually given more voice than they are worth. Also ironically given everything I just wrote, I found that an odd mark for a footnote. I instinctively look up when I see the caret. Usually for a superscript, but not seeing one my eye kept going.
- sridca 9y ago> I actually prefer fast and loose with most terms. Ironically, I find it leads to simpler conversations. You mean simplistic conversations right? The problem with being fast and loose with terminology is that it lacks precision; and with lack of precision comes ambiguity and misinterpretation, which beats the whole point of good communication.
- taeric 9y agoSorta. I'm reminded of the point Feynman made about keeping everything as "layman" in explanation as possible. His point was basically not to hide behind jargon and highly specific terms in trying to explain something. So, if communication is hinged on highly specific meanings of words, the odds go way up that someone will not actually hear what you think you are saying. Instead, keep conversations high level and do not rely on the specific meanings. It requires more thought from the listeners, in some ways, but it actually relies on less pre existing knowledge from the listeners. It is tempting to think you have narrowed your audience down to non laymen. This is often an incorrect assumption, though. And in writing, this can go out completely. There is a place for highly specific and very precise language. It is usually best along side the non-specific language.