From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 107f24,626a0a064b320310 X-Google-Attributes: gid107f24,public X-Google-Thread: f4fd2,626a0a064b320310 X-Google-Attributes: gidf4fd2,public X-Google-Thread: 10259a,626a0a064b320310 X-Google-Attributes: gid10259a,public X-Google-Thread: 114809,626a0a064b320310 X-Google-Attributes: gid114809,public X-Google-Thread: f645d,6230f43a522a82d0,start X-Google-Attributes: gidf645d,public X-Google-Thread: 103376,ea8ea502d35ca2ce X-Google-Attributes: gid103376,public X-Google-Thread: 11440e,fe63fd42b0d6db11 X-Google-Attributes: gid11440e,public X-Google-ArrivalTime: 2001-05-06 16:18:03 PST Path: newsfeed.google.com!sn-xit-03!supernews.com!news-xfer.nuri.net!newsfeed.dacom.co.kr!news.maxwell.syr.edu!news1.optus.net.au!optus!newshub1.rdc1.nsw.optushome.com.au!news1.rdc1.nsw.optushome.com.au.POSTED!not-for-mail From: raj Newsgroups: comp.lang.ada,comp.lang.lisp,comp.lang.smalltalk,comp.lang.functional,comp.lang.perl,comp.lang.ruby,comp.lang.basic.visual Subject: Multiparadigm Languages : (was Beginners Language) Message-ID: <07nbft4hki8dcji80hlfe9rgbdvv6rtvib@4ax.com> References: <9cukad$nn68@news-dxb> <60c9ft0mvlkk9lvno6a67qnqomq7i621al@4ax.com> X-Newsreader: Forte Agent MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Sun, 06 May 2001 23:13:59 GMT NNTP-Posting-Host: 203.164.144.2 X-Complaints-To: abuse@optushome.com.au X-Trace: news1.rdc1.nsw.optushome.com.au 989190839 203.164.144.2 (Mon, 07 May 2001 09:13:59 EST) NNTP-Posting-Date: Mon, 07 May 2001 09:13:59 EST Organization: @Home Network Xref: newsfeed.google.com comp.lang.ada:7245 comp.lang.lisp:9753 comp.lang.smalltalk:9503 comp.lang.functional:5546 comp.lang.perl:2659 comp.lang.ruby:9242 comp.lang.basic.visual:4823 Date: 2001-05-06T23:13:59+00:00 List-Id: Forwarded from the python mailing list Bob Calco Wow, don't see too many references to Mozart/Oz -- but I agree: It's a very powerful environment/language (respectively) that was DESIGNED (versus "evolved") from the ground up to support multiple programming paradigms, and support them well. It's really quite an incredible achievement that isn't hard to appreciate once you get over the hump of its significant learning curve, and some of its open-source/low-development-budget quirks. It wasn't built for the "feint of heart"...though its creators are, like Guido vis a vis Python, quite certain that the world would be a better place if it was taught as a first programming language. I don't disagree with them, or Guido either, for that matter. ;) The language itself (Oz) isn't exactly what I would call "elegant" or syntactically easy to learn (not compared to Python, anyway) -- or in any event the elegance of the language isn't something that jumps out at you right away until you know what you're looking at -- but it does, as I said, offer tremendous flexibility and power in the right hands. It lets you fit the solution to the problem domain, instead of the other way around -- the way most other languages force you to approach application design, i.e., the way of Procrustes ("we're using an OOP language, so we'll describe the problem in OOP terms" vs. "this really is a problem that lends itself to OOP analysis, so we'll use the OOP aspects of the language for this piece of the application"). (The classic "I have a hammer so everything is a nail" syndrome...with Mozart, you have a more-or-less complete toolbox and actually have to pick and choose the right tool for the job. That really is it's primary value proposition, so far as I'm concerned, especially when the problem domain is suited to declarative programming (a la Prolog), which neither Java nor Python nor C/C++ really support. Mozart excels as a cross platform substitute for Prolog-style languages, ideally suited for things like intelligent mobile agents and distributed component-based expert-systems. ) But the fact that it truly does support OOP, and procedural, and declarative, and GUI (via Tk), and about a half a dozen other paradigms, and it is completely free and extensible (like Python) in C, makes it a great one-stop shop kind of language. The difficulty of mastering the language has less to do with syntax/symantics than it does getting used to the many different styles of programming it supports... knowing when to use what paradigm lands you smack dab in the heart of computer science at the highest altitudes. Not every programmer likes to climb that dark and dangerous cliff... most get stuck in some one True Way of doing things, where everything is "obvious" and there's a large community of folks around to reinforce that illusion (Java's a perfect example). This is fine for a technician, but a *real* software engineer in the highest, grandest, most idealized sense of the term really ought to have broader horizons, IMHO. Programming in Mozart is a lot like mountain climbing -- you gotta be just a little nuts and willing to endure the solitude of obscure and distant landscapes and breath thinner air to do it, but ah, the sights you see! (BTW, I still admire and use Python, don't get me wrong. I'm just very impressed by Mozart and figured I'd take the occasion to extoll its many virtues since raj brought it up... ) ;) Check it out at: http://www.mozart-oz.org Download and install it, http://www.mozart-oz.org/download/ then check out some of the interesting online demos: http://www.mozart-oz.org/documentation/demo/ Sincerely, Bob Calco # -----Original Message----- # From: python-list-admin@python.org # [mailto:python-list-admin@python.org]On Behalf Of raj # Sent: Saturday, May 05, 2001 10:09 PM # To: python-list@python.org # Subject: Re: Beginner's Language? # # # Education is different from vocational training. # Vocational training is for plumbers and those who have to # start-work-right-now. # Education is about understanding the fundamentals and the theory that # underlies the subject / the system / the "all". # Education is meant for those capable of understanding the # fundamentals and the theory that underlies the subject / the system / # the "all". # # In this context, I stand by my previous statements: # Lisp, Scheme, subsetted Ada, Smalltalk , Ruby , Python (and if # approached judiciously, even Java and C++) can be used usefully as a # language of discourse. # # Perl while admirable as a tool for sys admins and wannabe-hackers [ # do you want your child to just become a sys-admin ? :-) ] is a # linguistic mishmash that tries to be all things to all programmers # and ends up becoming ( again to quote Larry Wall ) a "Pathologically # Eclectic Rubbish Lister". # # If you really want to teach children to use a multiparadigm language, # try Oz / Mozart. It is has functional, object oriented, logic and # constraint based, features and has concurrency built in. Confusing ? # Yes ! But unlike Perl, Mozart was DESIGNED and did not grow by a # process of uglification / accretion. # # Accretion is not necessarily bad. Just look at Lisp with it brilliant # metaobject protocol, multiple dispatch and CLOS. But to contemplate # teaching Perl or Basic to children......... # Phaugh ! # # -- # http://mail.python.org/mailman/listinfo/python-list #