From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset=windows-1252; format=flowed; delsp=yes Mime-Version: 1.0 (Apple Message framework v1075.2) From: Daniel Lyons In-Reply-To: Date: Mon, 7 Sep 2009 03:49:56 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: <936A4BAB-7D9A-4B65-AB6A-C5EEA8E4326C@storytotell.org> References: , <542783.92348.qm@web83904.mail.sp1.yahoo.com> To: comeau@comeaucomputing.com, Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Subject: Re: [9fans] nice quote Topicbox-Message-UUID: 68207182-ead5-11e9-9d60-3106f5b1d025 On Sep 7, 2009, at 3:05 AM, Greg Comeau wrote: >> Some keep saying that we should use more complex languages in >> the introductory course because they're in some way easier. >> But I've yet to understand their definition of easier. > > I've seen this before. It's usually a combo of people > not knowing what they're talking about, making stuff up > as they go along, generalizing their personal programming > universe, being elite, and, miscommunication their point. I have a friend who insists that every other language has been harder =20= on him than macro assembler. And I think that's true, if you cannot =20 understand how to program a machine other than by thinking about =20 what's happening at the instruction level of the processor. Each language provides its own view of the land. If you have a strong =20= understanding of the hardware and wish to think in those terms you =20 will probably find assembler or C to be your best friend. If you have =20= a strong mathematical inclination Haskell will probably suit you =20 better. I find Scheme introduces a model of computation which is a =20 compromise between the two; close to the machine in memory, simple in =20= syntax, and rather far from the machine in terms of continuations, but =20= most of the code being in the middle anyway. Part of what makes computing so interesting to me is that we can =20 remodel it to suit different needs, tastes or problems. If we had to =20 write our schedulers in rc, we'd probably find it obnoxious; similarly =20= if we had to write trivial pipelines in C. The nice thing about Lisp, =20= Haskell and Java is that when you're in their little world everything =20= works the way you'd expect it to in their little world; the nice thing =20= about Plan 9 and Unix is that most everything is designed to interact =20= sanely and simply with the rest of the world. I find writing puzzle =20 solvers simpler in Prolog than in Haskell despite Haskell's list =20 comprehensions being essentially the same in power and somewhat more =20 straightforward to reason about. For some reason, the fact that we program rational machines in logic-=20 based languages deludes us into thinking our experience is the same as =20= everyone else's or our situation must be the same as everyone else's. =20= I don't know anyone who likes to debate a programmer and isn't also a =20= programmer; we are undoubtedly the most self-assured and non-=20 empathetic group of people on the planet. We have every opportunity to =20= be free of dogma, but our reason and our aesthetic reactions seem =20 somehow to be soldered directly onto our emotions. A problem is that the world isn't as rational as we are. It often =20 chooses based on expedience, popularity, rumor, or emotion. Often the =20= good is devoured by good marketing. I never would have expected to =20 find defenders of Lisp or Haskell here in the Plan 9 mailing list. I =20 am happy about that. But the hindsight has not been 20/20. Lisp and =20 Plan 9 are in the same situation for exactly the same reason: they're =20= both conceptually rigorous and short on eye candy, and the market =20 chose other alternatives long ago, and now those alternatives define =20 the question in a way that precludes these answers. =97 Daniel Lyons=