2 ms·
I get that and agree with you. My point is that it's easier to evangelize for a language that is intuitive and comprehensible with only limited exposure to the
by timmytokyo 10y ago
I get that and agree with you. My point is that it's easier to evangelize for a language that is intuitive and comprehensible with only limited exposure to the language. Languages like go are a good example of this. If you've ever done any programming, you can read go code and know what it does. even if you've never written a single line of go code in your life. I'd say Elixir, a functional programming language, is also good in this regard.
- catnaroek 10y agoMaybe I'm weird, but I make sense of code as much as possible from static information, without actually running it in my head: (0) Type signatures (obviously). (1) Abstraction boundaries - which implementation details are not exposed outside of a module, class, whatever. (2) Documented preconditions, postconditions, invariants and algebraic laws. (3) In impure languages, the scope of mutable variables and effectful procedures. > My point is that it's easier to evangelize for a language that is intuitive and comprehensible with only limited exposure to the language. I have to admit I don't care much for technological evangelism. I prefer to let technical merits speak for themselves. To be more precise, I'm okay with others showing me technologies I might like (“good” advertisement), but I'm not okay with others trying to convince me to like whatever they like (“bad” advertisement). > If you've ever done any programming, you can read go code and know what it does. That hasn't been my experience, and I've honestly tried. If you show me a heavily concurrent Go program, I can't easily tell on a first read whether the program is correct, or, if it's incorrect, where the problem might be. Just because I can run a program (in the sense of myself acting as the interpreter), it doesn't mean that I actually understand its design. :-p > I'd say Elixir, a functional programming language, is also good in this regard. I haven't actually tried it, but the fact it's designed to be similar to Ruby doesn't inspire much confidence on me. I don't mind Ruby's syntax, but the impossibility to make sense of Ruby code other than by trial and error is incredibly frustrating.
- AnimalMuppet 10y agoInteresting. I wonder to what degree that influences language popularity. I suggest the following plausible points: 1. Nobody is born knowing a programming language. Languages have users to the degree that they convert non-users into users. 2. Sometimes people are forced to use a language for a job (which is, I suspect, somewhat common, but less common than hiring someone who already knows the desired language). Others are forced to learn it to pass a course. Other than those cases, though, languages convert non-users into users in proportion to how much a non-user gets rewarded for the first attempts to write code in that language. This was one of the virtues of BASIC, for example. I picked up BASIC from the TRS-80 manual in an hour, and was writing code that afternoon. I got immediate feedback (we didn't call it a REPL on BASIC, but it had one). You could just read BASIC code. But if I have to learn a mathematical notation, or a 1000-page book, in order to be able to do anything that I want to do, I have to want to learn that language more before I'm going to bother to learn that language. Other than university people, Haskell seems to attract people who have been around the block enough times to know why they might want to learn FP, and therefore who care enough to make the effort.