[stack] Summary of Survey Results

"Christopher Diggins" <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
Well the results of the survey are in (sorry about the delay):

> - I feel the advantages of concatenative languages are ..

This is an interesting list that I can't effectively summarize:

- syntactic simplicity x3
- easy to implement x2
- semantic closeness to a machine model x2
- generally good referential transparency x2
- conciseness of expression x2
- quick and continuous refactoring,
- incrementally implementable
- easy experimentation with language design
- powerful
- highly interactive
- fun
- dataflow notation
- very short read-eval-print loop
- natural modularization
- theoretically interesting and intellectually stimulating
- immediate testability

> - I feel that the most powerful advantage of concatenative languages
> is ...

I think one word sums up the responses: simplicity.

- easy to refactor code
- syntactic simplicity
- close to the hardware
- immediate feedback
- immediate testability
- ease of syntactic transformation

> - My positive experiences with concatenative languages have been ...

This was a tricky question for people to answer because it was
subjective and open-ended. It did reveal something I think: Forth has
already proven itself a particularly effective language for embedded
programming development. Also I think it reveals that learning about
concatenative languages is intellectually enriching.

- learning about Forth;
- challenging myself to do anything productive with dc;
- having a wonderful time playing with Factor.
- programming in Forth
- scientific and embedded programming in Forth
- reading about Joy
- large scale instrustrial software development with Forth
- learning about the fundamental issues of computer science

> - My negative experiences with concatenative language have been ...

Many of the negative experiences mentioned were primarily language
specific. However, I think the results suggest that maybe people find
concatenative languages somewhat hard to use. However, this could also
be due to preconceptions.

- fragmentation of the Forth community
- distinguishing compile-time from run-time and definition-time
execution in Forth
- lack of a type system in Forth
- Trying to program in Joy
- Lack of acceptance of Forth by clients
- programming complex algorithms without named parameters

> - I feel that for concatenative languages to gain more mainstream
> success will require ...

In summary: better tools and find a niche.

- development and maturation of one or more programming environments
- that it is clearly demonstrated what they are good for.
- a solid high-level language with multiple successful implementations
or platforms
- choose a niche (e.g. embedded programming)
- a major breakthrough in ease of programming
- the identification of a lively niche where they provide great leverage
- education as to the advantages
- overcoming the aversion to postfix syntax.
- integration of ideas from modern programming language theory
- better tools

> - I consider a language to be concatenative when it has the following
> properties ...

So I'll summarize with my own personal definition inspired by the
other contributions: a concatenative language is a language where the
concatenation of terms (i.e. justaxposition or sequencing) denotes the
function composition operator instead of function application.

- token-oriented, combinator-based postfix syntax with relatively
shallow nesting;
- semantics defined primarily by function composition rather than by
[nested] function application;
- an execution model of passing state from function to function.
- concatenation of source text denotes new programs
- where concatenation means function composition
- Concatenation is just about everything.

I hope you found this as intersting and useful as I did.
A big thank you to everyone who contributed!

Christopher
http://www.cdiggins.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.