#!/lang/perl # hoho, nipl can mean `not insane programming language', # OR it can mean `not insane perl'! # 1. object-state-event-channel-protocol based # 2. lazy-evaluation data-flow / constrainty # (functional / relational, like makefile) # - will need to distinguish the LATEST value of X (variable) from the value # of X at some (past) time t (constant) ... # 3. contextual (fancy, first-class name spaces) # 4. yaml-like protocol / data rep, like the textual conceptual-graph notation, # with ASK's concepts # 5. exceptions implemented as multiple alternative returns (signals) # 6. documentation of purpose within the code (not just a comment), such that the computer can report what was supposed to be happening when something went wrong... # 7. order of presentation NOT determined by compiler, any order of `exposition' is ok, so make it readable to people! # 8. use prototypes (fork / branching), not classes # 9. functions, and relations. # 10. allow macros / meta-syntactic forms # could use shell instead of perl as a basis? # or implement the features of make and sh within perl? # Unify the concepts of (environment) variables and files... like mmap # (i.e. have a `make' that operates over variables) x + y = z: add z x y FOO = z: FOO -> z # try to implement the Euclidean GCD algorithm in make / declaratively, using # serial numbers and conditional rules...