
Enfield: a programming language designed for pedagogy - llambda
http://blog.fogus.me/2013/01/21/enfield-a-programming-language-designed-for-pedagogy/#body
======
dalke
I started the article thinking it would be based on the ideas of LOGO, Etoys,
or Scratch, with their heritage as programming for children, or ABC (precursor
to Python) with its emphasis on developing a language which non-
programmers/non-CS majors can more easily learn.

This essay even started nicely, saying "Imagine a programming language
designed specifically for teaching young computer science students a solid
foundation in sound computer science topics." My first CS class was in 9th
grade, as I recall, so I thought the target audience was secondary/high school
students.

But it quickly lead to statements without empirical justification, like:

> To start, I’m strong believer that when learning new, and at times complex
> topics it’s outright detrimental to overload students with frivolous syntax
> rules. Therefore, Enfield is designed with minimal syntax rules and what’s
> more minimal than a Lisp like syntax.

Is that opinion backed by any of the decades of research on the topic?
Additionally, FORTH is a more minimal syntax than Lisp, so why a Lisp-like
syntax instead of a FORTH-like syntax?

It then went into things which made no sense for a high-school CS student,
like bignums and tail recursion.

Only then it say "Key to any college programming course .."

Which means this is designed for an early undergraduate course for CS majors,
and not what I was looking for.

(I work with programmers with no formal CS education. These are computational
scientists. I chose first Tcl then Python in part because they are languages
that non-CS majors could pick up without the "untyped lambda calculus." I'm
interested in knowing if there's more research along these lines. Perhaps it
could replace Python in the future.)

Perhaps for a CS major it is 'ideal' that "an introductory course would
require students to not only learn a language, but to also create an
interpreter for a subset of the language using the language itself." My first
and only BASIC interpreter was written in BASIC. But I think it's reasonable
to say that this is an opinion piece and not the direct of empirical research
or based on a research review.

