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

Reply via email to