3 ms·
Wadler's critique seems to be that Scheme is too imperative for his tastes and that programming ought to be more like maths. In my opinion, comp sci is (or oug
by cabalamat 15y ago
Wadler's critique seems to be that Scheme is too imperative for his tastes and that programming ought to be more like maths.
In my opinion, comp sci is (or ought to be) about computers. And the underlying hardware of nearly all Turing-complete computers is imperative: there's a CPU which executes instructions one at a time, and which can vary which future instruction is to be executed based on the results of previous ones. I get the impression that Wadler, on the contrary, regards comp sci as a branch of mathematics rather than engineering.
- kabdib 15y agoYou're not going to turn shlubs into Einsteins by forcing students' heads under water next to a calculus textbook. I've suffered at the hands of "CS is all math" profs. I was in a course that subjected a bunch of CS-101 students to this kind of thing. A whole semester of "Here's a proof that this ten line program sums some numbers correctly." A collective "Huh?" from the class. It became crystal clear, after nearly everyone failed the mid-term, that things were not working. The profs held a "come to Jesus" class, where they explained everything; all the proofs, all the ten line programs that added or multiplied numbers, all the assignments full of greek symbols they made us learn. That all became crystal clear, and you could see the lightbulb blink on, just above everyone's head: /Yup, they're trying to fuck us./ [I survived this course because I wrote my own functional language interpreter, then just typed their damned calculus into it for the programming assignments. What a crock.] I take a real dim view of teaching "mathematically pure" CS to beginning students. You don't start riding a motorcycle by doing experiments with gryroscopes in a lab; you listen to an instructor, get on the damned thing and learn to ride in a safe environment. Save mathematical purity for after you get 'em hooked. I've heard: "Oh, but if have them program in BASIC we're doing irreperable harm!" Horsepucky. I'd rather have an ex-BASIC hacker at my side, helping me ship, than someone who can't write a hundred line program without dragging in declarations that nobody will be able to understand a week later. The best engineers I know weren't hurt by exposure to BASIC, or assembly; they were good at everything. I guess I'm just a greasemonkey with a keyboard. [I love Scheme, btw. I don't get functional languages that think it's okay to ditch the programs-as-data paradigm.]
- thesz 15y ago>The best engineers I know weren't hurt by exposure to BASIC, or assembly; they were good at everything. I wish I spend my time with assembly language with something more fruitful, like Coq (which was developed during my assembler-using days).
- belial 15y agoI disagree with you on the notion that CS is a branch of Engineering and not mathematics. It's not that I'm with the view that CS is a branch of mathematics btw. I'm with Edsger Dijkstra's point that Computer Science is a new emerging paradigm which should be approached with a Zen-like mindset... It depends on the natural sciences, however, take for example: mathematics, information theory...etc and on the other hand it depends on Engineering... Yet it's not an interdisciplinary field for any of the mentioned ones above! It's a field of its own making. "Computer science is no more about computers than astronomy is about telescopes." - Edsger Dijkstra
- thesz 15y agoYou happily forget (an ever increasing) non-determinism in current (increasingly) parallel hardware. That way you cannot count only on one CPU executing instructions one by one, you have to leave engineering, you have to do some math. You have to prove the absence of deadlocks, race conditions.