On Tue, 31 May 2011 22:01:14 +0200, Randal L. Schwartz merlyn@stonehenge.com wrote:
"info@tomsik" == info@tomsik cz info@tomsik.cz writes:
info> In short: 1.) binary messages make sense only for math. I've never info> implemented even one binary message, have you? (for non-math info> things)
info> Why not step further and make dsl for equations? let them live info> outside of language. (with everything common to math world)
info> 2.) keyword messages with more than 2 arguments are just ugly - info> they smell in the "missing another object" way. And 2 arguments info> are rare too. I would allow one argument at top.
So, you've now eliminated both possible ways of creating a new Point:
3 @ 4 Point x: 3 y: 4
I'll go few steps further to show big-picture in hypothetical syntax (one-argument closures with argument as implicit receiver, no returns -> CPS)
Point new: [x: 3, y: 4, printOn: aStream]. <rcvr> <msg>: <arg>[<msgForNew>: <arg>, <msgForNew>: <arg>, <msgForNew>: <arg>]. concepts: always left-to-right (receiver->message->argument), no parentheses -> uniformity returns: nothing, does something
vs. (Point x: 3 y: 4) printOn: aStream. (<rcvr> <msg>: <arg> <key2>: <arg2>) <msg>: <arg>. concepts: sometimes left-to-right, depending on parentheses and message-type (syntax) returns: aPoint, which won't be used anyway, because it was printed already.
I wonder what language we would end up with if all of your (even conflicting) goals were implemented.
The more syntax you eliminate, the more you end up with LISP. Maybe you want LISP... you know where to find it!
I'm not saying "let's drop objects", I'm saying "let's simplify language, let's drop unused/misused/bad-in-long-process things"