If you neglect some aspect of computation
in designing your programming language,
then the people who actually need that aspect
will have to spend a lot of time dealing with it by themselves;
and if you don't let them do it by extending your language,
they'll have to do it
with inarticulate barkings rather than civilized sentences.
(
Read more... )
Comments 7
* Saying absolutely nothing
* Wasting my time
* Posting when you shouldn't have
* Pretending the old is new again
* Having a fascist comment moderation system
* Repeating tired lisp dogma yet ignoring that any extension to a Lisp system is not easily handled by tools (FYI your tool has to parse Turing complete macros, THAT'S HARD).
Reply
Reply
Check( Number Number --> Number )
The compiler in this case is named "Check(". Yes, that's right, the paren was part of the compiler's name. It parsed up to the closing paren, and generated Assembly code to validate that two numbers were to be given on the data stack, Checked for stack underflow, and required that a number be left on the data stack by the following code.
I often miss programming in that world, the highly interactive, write only language that Forth can be. Oh well.... THAT kind of extensibility just isn't allowed in modern languages...
Reply
Reply
Also, wouldn't it be that much better to alter the parser itself, defining syntax that really matches what you need? Sure, there's more to learn when switching from language to language, but large scale macro systems (such as CLOS) have that problem anyway.
Reply
Python 3.0's defaults simply make having a user much easier.
Reply
I like the idea of implementing Python in Lisp, using macros behind the scenes, making Python extensible in Lisp and vice versa. That didn't make sense two decades ago when Python was begun... can you imagine writing it in Common Lisp at the time? It would've been an academic curiosity... and I'd still be using C.
Python got where it is by focusing on practical concerns first, with gradual refinements to make it more regular and extensible, more Lisp-like. Python 3.0 finally has sensible lexical scope rules, which Scheme had 30 years ago. Conversely, PLT Scheme 4.0 finally has a module system on par with Python's. It's nice to see both camps learning from one another. Of course, I use Python for real work. Being part of a cohesive community has its benefits.
Reply
Leave a comment