Subject: Message 1 [Fwd: About Park - points to consider when designing a new programming language]

From: Omer Zak <[email-masked]>
Date: Fri, 23 Jun 2006 23:04:51 +0300

-------- Forwarded Message --------
From: Omer Zak <[email-masked]>
To: Shlomi Fish <[email-masked]>
Subject: About Park - points to consider when designing a new
programming language
Date: Fri, 23 Jun 2006 18:32:46 +0300
Hello Shlomi,

ref: http://www.shlomifish.org/park-lisp-fooware/

I believe that a new non-DSL can justify its existence only if it
addresses the problems of developing a giant application (O(10^7 lines
of source code)).  I raised the subject in Hackers-IL few years ago.

So, I suggest that the following points be addressed in the specs of the
new language (rather than minutieae about expressing stuff which is
expressed in O(1) lines of source code):
- Modularization (you did mention namespaces; is it possible to declare
a namespace within another namespace like in Perl AA::BB::CC?)
- Support for expressing things in terms of design patterns.
- Aspect orientation.
- Laws of the thumb, like Demeter's Law.
- Support for mixed-language software development.
- Seamless integration of database access, with all the power of SQL.
Also include declaration of constraints for integrity validation of data
being stored in the database.
- Multi-versioning of support code (it would be cool to be able to link
one part of a giant application with version 1.5 of a library, and
another part of the same application with version 1.6.3 of the same
library).
- Testability (probably supported by aspect orientation).
- Debugability (a language which can help detect heisenbugs can be a
winner).
- Seamless multithreading.
- Several views of the source code (LabVIEW is suited to certain
personality types, among whom I am not).  Syntax coloring.  Finding all
references to a concept [variable, procedure, object] without being
confused by having its name reused elsewhere; or having several names
aliased to it.

I am not saying that the language design needs to provide for all of the
above.  But I claim that when a new language is designed, the above
points should be addressed.
                                         --- Omer