>>>>> "Olwe" == Olwe Melwasul <olwe at cpinternet.com> writes: Olwe> CompSci is SO bizarre! When I was knocking around CS (stork with twins Olwe> ended my grad school hopes ;-) ), there were so many conflicting facts Olwe> and opinions about computers. This was at Wichita State. We had a Lisp Olwe> genius who did automated math theorem proofs. I asked him in an email if Olwe> I should maybe tackle Lisp. His email reply said "No, learn C". Three Olwe> words. Short, concise, to the point. Olwe> And there was the UW(ash) professor who was a firm believer that any Olwe> language that let you do the stuff C/Assembler/C++ etc. did should be Olwe> left in the past. The argument goes that speed is good enough these Olwe> days, CPU cycles are practically free, so it's time to move forward and Olwe> stop the blood-and-guts pointer pennance and go-it-alone memory Olwe> management games. Olwe> Then I find out that practically nothing MS has ever sold actually used Olwe> Visual C++ (something they pushed relentlessly as THE Big Project Olwe> environment). MS uses blood-and-guts C with the usual mountain of MS Olwe> secret tricks. Then they push all these IDEs that do basically one Olwe> thing: data management on Windows. Lord help you if you get off their Olwe> straight line expressway through the jungle. Olwe> Then there's Big Eric Raymond with his "The Art of Unix Programming." He Olwe> says C's great and scripting languages too. He's very happy with the Olwe> byzantine, wooden-handled level of Unix--then, now, and in the future. Olwe> Then there's Knuth who had his own home-brewed assembler (the latest Olwe> runs on a virtual MIPS environment). For him even C is too low-brow. And Olwe> then there's Lisp-Meister Paul Graham. I read about a functional Olwe> language conference he attended where some Perl people showed up. A Olwe> panel discussion left Perl a bloody pulp. Graham is famous for Yahoo Olwe> Stores, which has lots of Lisp in it. Orbitz also has Lisp. Olwe> In general, if programmers get good at something, they have the Olwe> subjective, self-serving if not paranoid tendency to see the computer Olwe> world revolving around their skill set, their language(s). Olwe> [your-language-here] can do everything! No, that's just not fair to these people. Let's try to unpack what these people want to do with their languages, and I think you'll see that they are *not* paranoid, self-serving, yadda, yadda. They are just trying to do different things. For example, "Knuth who had his own home-brewed assembler.... For him even C is too low-brow." Knuth is NOT trying to write software in MIX (I think that's what it's called; I forget), nor is he trying to get YOU to write software in it. Knuth is interested in EXACT analysis of algorithms. He's trying to answer questions like "exactly how many multiplications will be done in the course of executing this algorithm" (among many, many other questions!). A clean assembly language, not tied to any particular chip, is useful for that project. Eric Raymond likes C, but says that you should learn Lisp, because learning it will make you a better hacker by making you think differently about programming. Paul Graham is really interested only in the software problems that come from running a very small business, where excellence and speed of development are critical factors. Perhaps he doesn't come out and say this as clearly as he might. If you want to start the next EDS, you don't want to work his way. But if you want to survive in a startup, you can't afford to work like EDS, either. The conversation we started with is "what's a good language for an introduction to CS?" or possibly "what's a good language for learning to program?" or possibly even "what's a good language for getting a job?" Those are probably not all the same question! At any rate, I was only trying to answer the first form. I think Scheme is a great language for learning the basics of the discipline of computer science (and Abelson and Sussman a wonder-filled textbook). I don't program in Scheme myself, and wouldn't suggest that anyone else do so (except for very particular cases). So what? You wouldn't try to saw wood with a hammer, either. Different languages are good for different things. Now, maybe we you'd like to revisit the earlier question, and ask whether it was meant as: What's a good language for an introduction to CS? What's a good language for learning to program? or What's a good language for getting a job? I'm not way interested in the third question. It seems to me open to debate whether the first two have the same answer. There's more to CS than programming. I've argued that Scheme, or some other relatively "pure" programming language gives a better foundation for coming to grips with some of those other things. Cheers, R _______________________________________________ TCLUG Mailing List - Minneapolis/St. Paul, Minnesota Help beta test TCLUG's potential new home: http://plone.mn-linux.org Got pictures for TCLUG? Beta test http://plone.mn-linux.org/gallery tclug-list at mn-linux.org https://mailman.real-time.com/mailman/listinfo/tclug-list