6 ms·
>Immutable data objects and all the stuff are not the basics of programming. They never were. Unless you single-handedly redefine the meaning of "programming".
by nessus42 14y ago
>Immutable data objects and all the stuff are not the basics of programming. They never were. Unless you single-handedly redefine the meaning of "programming".
Immutability was considered to be more fundamental when I took my first programming course at MIT. I received a very good education.
We, of course, eventually moved onto objects with mutable, but they were definitely considered to be more dangerous and less fundamental.
- guard-of-terra 14y agoIt means the course wasn't about programming. Maybe it was misnamed or maybe you approximate its real title. Me, not really interested in what people who never wrote any widely used software consider more what and less what. Programming is what happens (and always happened) on top of computing devices that have, you know, memory, registers and opcodes. It's just the hard truth. That's what programming is. Writing code that compiles (interprets) as machine code for said computing devices. All other kinds of stuff - not programming. Call it CS, call it whatever.
- nessus42 14y ago>It means the course wasn't about programming. Maybe it was misnamed or maybe you approximate its real title. Oops, my mistake. I took you for a serious poster, not a troll. The class I took at MIT (SICP) and the textbook that was used are world-famous, and it was certainly a programming class. As to having "never written any widely used software": Among other things, I wrote the software that was used to configure a NASA space telescope (Rossi X-ray Timing Explorer), from which about 1,000 peer-reviewed astronomy papers were published. I've worked on brain surgery software (3D Slicer) and now I work on software used for doing RNA Interference-based cancer research. But I guess you've made your point: All that is just "Computer Science" noodling, not real programming. So, sure don't listen to what I say.
- icarus127 14y ago"Me, not really interested in what people who never wrote any widely used software consider more what and less what." This argument is getting really really really old. Anyone with 5 minutes and a working internet connection can find hundreds of successful widely used applications written with a focus on immutability, either at the language level or the design level.
- guard-of-terra 14y agoTwo points: The people who write software with focus on immutability are not the same people who advocate pushing immutability down the students' throats. For example, I do write some functional code, but pragmatically. And even after that, the total share of functional code is negligible. Sad but true.
- spacemanaki 14y ago> It means the course wasn't about programming. Parent of your comment might have been talking the Structure and Interpretation of Computer Programs. Likely it needs no introduction, but it is absolutely about programming, and goes right down the rabbit-hole to implementing interpreters, virtual register machines, and a compiler for said machine. Yes, the first couple of chapters is mostly purely functional, but that doesn't detract from the rest, which includes mutable code as well. Really, I don't know why you're so hostile to this pedagogical approach. Do you have experience with teaching CS and/or programming, and have found using C or assembly or following some kind of Java school curriculum more effective? Have you found teaching functional programming first deficient? Or maybe you're looking at this from the perspective of an employer and have had to deal with hiring new grads who are brain damaged by functional intro CS classes? I, for one, welcome this kind of experimentation or change of pace on the part of CS educators like Robert Harper at CMU (http://existentialtype.wordpress.com/ http://existentialtype.wordpress.com/). It can't be worse than what I had (mediocre, big box state Java school)
- nessus42 14y agoYes, the class was SICP. I can't say enough good things about how it influenced my still-forming mind. I went to MIT because I wanted to study black holes and neutron stars, and after this class, I learned that there was something even cooler than that!
- guard-of-terra 14y agoI have experience suggesting that to learn programming, you write programs. The hard way, how Zed Shaw calls it. And when you have enough experience in writing programs with limited success, now you are ready for some theory. You know already to separate bullshit from useful things, for one. When you never wrote any programs, you would not be able to do that separation, which is bad for you.
- nessus42 14y agoWhere do you get the crazy idea that you can't write functional programs? Or that SICP didn't have you write programs? SICP didn't start off with "theory"--it started off with PROGRAMMING. The programming that you did at first, however, just so happened to be recursion-heavy functional programming. The class then taught you how to build your own mutable object system out of the functional primitives, using closures and messages. I clearly got a far better introduction to PROGRAMMING than you did. E.g., I learned how to add an OO subsystem to a functional programming language in my very first programming class. SICP was a lab class. It nearly killed me with all the programming I had to do. It was billed as a 15-hour-a-week class, but 40 hours a week was more like it. I lived in the computer lab during that class. The intense programming assignments began on the first day, and continued all the way through to the end. Is there any other way that you would like to continue to advertise your unsubstantiated bias and ignorance on the issue?
- SrslyJosh 14y ago> It means the course wasn't about programming. You've pretty much blown any credibility you had right there.