On Tuesday, May 12, 2015 at 9:30:50 PM UTC-5, Steven D'Aprano wrote:
> On Wed, 13 May 2015 08:00 am, zipher wrote:
> 
> > Everyone gets it wrong and now we have a plethora of languages which all
> > do the same thing, without really knowing what they want as an overarching
> > design or purpose.
> 
> 
> Why must a language be designed with some "overarching design or purpose"?

Because it's considerable work.  Why re-invent the wheel?  After all, there are 
plenty of Turing-complete languages out there.  No, you make one because you 
have an implicit or explicit goal.

> Why can't a language be designed with a *practical and concrete* need in
> mind? As far as I know, only one language designed from theoretical first
> principles has had any measure of mainstream success, Lisp,

Yes, and that was a stellar achievement.  Many language makers still compare to 
such a gold standard.  Even Python.  Yet it has also misled us -- it is based 
on a fundamentally different model of computation.

An elegant model of computation, that many high-level languages seem to try to 
adopt, yet they fail because they can't re-produce the elegance without 
becoming LISP.  So why, then, are there other programming languages that 
specifically try NOT to be LISP?  

Because the model of computation for most hardware is iterative.  This is also 
why the design goal of "everything should be an object" needs to be revisited.  
It doesn't align with any model of computation.  That's fine for small 
problems, but when you're trying to make a p2p data model that can scale to the 
Internet, it becomes an issue.
 
> "I want to do numerical calculations" lead to Fortran.
> 
> "I want to control telescopes" lead to Forth.
> 
> "I want to teach beginners programming" lead to BASIC.

You can stop there.  You are proving my point, that there are goals to a given 
programming language.  If those goals are strong or noble enough, it 
differentiates from existing languages.  "I want to do numerical calculations" 
led to Fortran, which led to C because people wanted to do such calculations on 
many platforms.  And C syntax had the more elegant syntax ultimately (I think 
the increment++ operator ultimately ran Fortran over, because it was directly 
implementable on CPU architectures in 1 clock cycle).

"I want to control telescopes" could morph into the more general goal of "I 
want to make a controller programming language" and Boom, you'd have an elegant 
programming language for all controllers.

"I want to teach beginners programming" started at BASIC, but then led to 
Pascal as the limitations of BASIC became clear, but then became Python.  These 
are all decent design goals for a language.  Python has superceded BASIC in 
almost every way.

Anyway, having a design goal guides the process and helps everyone who wants to 
contribute know how to do so.

Mark
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to