Re: programming languages - antipathy to C++
Few questions seem to drive passions more than language choice - In the good old days the Smalltalk vs. C++ conflicts actually became physical and the very real emotional rage that some people exhibited when their language was dis'ed was truly amazing. And the various arguments for/against a specific language were almost always based on totally specious reasoning. Caveat: all programming languages are Turing machines so are ultimately equivalent. Historical Notes (included only because some earlier posts intimated that C++ and Java were OO): 1- C++ is not, never was, and was never intended to be an "object oriented language." You can "do" objects in C++ (and in Assembler, for that matter) but only at the cost of subverting Stroustroup's stated intent for the language. 2. Except for a really dumb decision on the part of ParcPlace, Java would never have come into existence. Sun wanted Smalltalk, and only when rebuffed, decided to morph Oak to Java. (An earlier, equally stupid, decision forced Apple to do Object Pascal when they wanted Smalltalk.) The initial design criteria for Java was to be as Smalltalk-like as possible while still preserving the small-footprint/embeddable goals of Oak. Java is OO to the extent it emulated Smalltalk and not OO to the extent that it emulated C; and Objective-C is a far, far, better realization of the original design goals for Java than Java. Language selection reasons like, "it is too hard to learn," "memory leaks," "it runs faster," "Java developers are cheaper because there are more of them," etc., are really dumb reasons for choosing a language. Instead you should focus on your application domain, your reason for creating the software in the first place, your working style, and how well you truly understand the problem, and any potential solution to that problem, you are trying to address. If you are trying to emulate a "machine" - i.e. solve a problem with a known, formal, solution - use C or C++. That is what the language was created to do, and nothing will be as 'machinelike' as a well-crafted C++ program. If you want to enable non-programmers, especially children, to develop applications while teaching them good design and programming skills - use Smalltalk (Logo, NetLogo, and even Erlang are also useful). If your working style is any combination of exploratory, iterative, and incremental; or if you are consciously trying to simulate some part of the real world - use Smalltalk with an object database for persistence. If you want to build Web apps: Ruby and Rails. If you want to build "desktop" applications that are delivered via the Web or a Cloud - you really need to evaluate GLASS at the Complex workshop next month. (Same thing is true if you want to deliver Flash-like iPhone apps. The iPhone does not do Flash, but Smalltalk's Morphic via the Lively Kernel and Javascript can do the same job.) davew On Thu, 12 Feb 2009 17:33:31 -0700, "Owen Densmore" <[email protected]> said: > The other day, I mentioned reading that Google had settled on 4 > languages for work inside the company. It occurred to me to look up > the article. Here it is: > http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html > > They use C++, Java, Python, and JavaScript. > > Here's the quote: > One of the (hundreds of) cool things about working for Google is > that they let teams experiment, as long as it's done within certain > broad and well-defined boundaries. One of the fences in this big > playground is your choice of programming language. You have to play > inside the fence defined by C++, Java, Python, and JavaScript. > > It's sorta an interesting article. It's about how one sophisticated > engineer worked within these constraints to build a ruby on rails > environment using rhino, the java based javascript implementation. > > One reason we care about this is that the Google Ecology is becoming a > pretty interesting one for us (redfish and the complex). > > -- Owen > > > > ============================================================ > FRIAM Applied Complexity Group listserv > Meets Fridays 9a-11:30 at cafe at St. John's College > lectures, archives, unsubscribe, maps at http://www.friam.org ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org
