Why not allow empty code blocks?

Rustom Mody rustompmody at gmail.com
Tue Aug 2 08:29:06 EDT 2016


On Tuesday, August 2, 2016 at 4:01:25 PM UTC+5:30, Antoon Pardon wrote:
> Op 30-07-16 om 18:15 schreef Rustom Mody:
> >
> > The more general baby that is significant is that beginners should have
> > it easy to distinguish procedure and function and python does not naturally aid that.  print was something procedure-ish in python2 but the general notion being
> > absent is a much more significant problem (for beginners) than print.
> >
> > ...
> >
> > Ok Python is better than Java is better than C++
> > But it cannot stand up to scheme as a teaching language
> > [The MIT Profs who replaced scheme by python admit to as much viz.
> 
> But AFAIK scheme doesn't aid in distinguishing procedure from function either.


True. And my words above seem to say that.  However let me restore some more context:


On Saturday, July 30, 2016 at 9:45:34 PM UTC+5:30, Rustom Mody wrote:
> On Saturday, July 30, 2016 at 8:17:19 PM UTC+5:30, Steven D'Aprano wrote:

<snipped>

> > On Sat, 30 Jul 2016 09:39 pm, Rustom Mody wrote:
> > > Its a function… ok.
> > > Its ‘just’ a function… Arguable
> > 
> > "Granny Weatherwax, you are a natural-born disputant."
> > "I ain't!"
> 
> Heh I really aint :D
> At least not for this dispute — its not my baby
> Or rather its a stepbaby of stepbaby
> 
> Diff between
> print "x"
> and
> print("x")
> is one char — the closing ‘)’
> 
> To make a dispute about that — I’ll leave to BartC!
> 
> The more general baby that is significant is that beginners should have
> it easy to distinguish procedure and function and python does not naturally aid that.  print was something procedure-ish in python2 but the general notion being
> absent is a much more significant problem (for beginners) than print.
> 
> Brings me to the even more general baby

<snipped>

> But I studied in the 80s and there was greater clarity (about some matters
> of course) than now.
> eg It was completely natural that in ‘school’ one studied 
> ‘nice’ things like Pascal, Lisp, Prolog, Snobol, APL etc
> And in a professional context used ‘real’ things like 
> Fortran, Cobol, PL-1 and a little later C.
> 
> Once omnibus languages like C++, Java, C# and Python became popular
> the academic vs real-world division has disappeared.
> So beginners start with these ‘real-world’
> And get their brains scrambled
> And think it wonderful
> 
> Ok Python is better than Java is better than C++
> But it cannot stand up to scheme as a teaching language
> [The MIT Profs who replaced scheme by python admit to as much viz.

<wrong send pressed>

> MIT on practical reasons for python over scheme:
> https://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python
> Berkeley on fundamental reasons for the opposite choice:
> https://people.eecs.berkeley.edu/~bh/proglang.html


So I was talking of 3 very different levels:

1. print x vs print(x)
— a difference too petty for me to waste my time with

2. Procedure vs Function as something very necessary for beginner
thinking-ontology which Pascal gets right

3. The fact that the gap between a mainly-for-teaching language and a serious
software-engineering-real-world language is not closable
And that saying that the same language could be used for both purposes is
like arguing that both these delightful ladies are pianists:


Martha: https://www.youtube.com/watch?v=YLZLp6AcAi4
Rose : https://www.youtube.com/watch?v=_bjKDJD-CLc


Scheme and Pascal happen to be two well-known well-crafted but quite different
for-teaching languages



More information about the Python-list mailing list