[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