Re: Matz says namespaces are too hard to implement - why?



Robert Klemme wrote:
2007/12/22, Stefan Rusterholz <apeiros@xxxxxxx>:
But I think I begin to see a thought mistake. I guess I have
to think about it a bit :-/

Actually that fits well with what I was going to suggest: it seemed to
me that you did not have yet fully made up your mind what you want.
:-) I doubt though that a lexical solution would be as useful as a
call stack scoped one.

Ditto, though I'm not a fan of selector namespacing yet anyway.

Also, Charles, maybe implementation implications for lexical scoped
changes might be less dramatic but wouldn't they still impose a
performance penalty at runtime? I mean, the issue of checking would
not change whether it's dynamically or lexically scoped. And there
must be a penalty because of Ruby's dynamic nature, i.e. since it's
not compiled you cannot decide at compile time which version of a
method needs to be invoked. When I think about it it may even make
implementation more difficult, because then the set of current methods
changes even more (i.e. when you redefine a method in a namespace and
invoke that method from another method invoked in that namespace the
old definition would apply again; this also imposes the interesting
question if recursion with redefined methods is still possible... :-))
A lot of interesting problems to solve. :-)

Yes, lexically scoped namespaces would have the same performance
implications call-stack scoped namespaces iff they were applied
dynamically at runtime. If they were applied statically at parse time,
via a keyword or other syntax, the overhead of checking for a namespace
would be limited to specific chunks of code:

(assume "namespace" is a keyword)

my_string.rb:
class StringDecorate
def foo
"woohoo!"
end
end

foo.rb:
namespace String => StringDecorate {
"".foo # => "woohoo!"
}
"".foo # => error

So the idea here is that since namespace is a keyword, at parse or
compile time everything inside the block would be decorated with
namespace-checking logic. And more importantly, everything outside the
block would remain blissfully unaware of namespace checking at all.

But this is still predicated on the idea that lexically-scoped
namespacing is actually useful.

- Charlie

.



Relevant Pages

  • Accessing SAP WAS via SOAP / xml-namespace problem
    ... the problem is, it works fine with one server, i.e. after calling ... 'invoke' in the proxyclass, I get an object arry with two non-null ... the only difference is the namespace handling in the two returned ... elements, and there are no siblings to this response element, so there ...
    (microsoft.public.dotnet.xml)
  • Re: Matz says namespaces are too hard to implement - why?
    ... not compiled you cannot decide at compile time which version of a ... invoke that method from another method invoked in that namespace the ... question if recursion with redefined methods is still possible... ...
    (comp.lang.ruby)
  • Re: Matz says namespaces are too hard to implement - why?
    ... invoke that method from another method invoked in that namespace the ... class StringDecorate ... and then there is still the question what happens to recursion? ...
    (comp.lang.ruby)
  • Re: Error dynamically invoking vb.net dll from C# test application
    ... invoke a DLL. ... The test application is able to sucessfully invoke ... Unhandled Exception: System.ArgumentNullException: Value cannot be null. ... same name for the namespace and the class, by the way - it's a really ...
    (microsoft.public.dotnet.general)
  • Re: Invoking a Static Method in a Static Class
    ... |I want to invoke a static method of a static class using a TEXT variable ... | which has the namespace and class name which should be executed. ... Type instance of your class you can do InvokeMethod passing null for the ... Ignacio Machin ...
    (microsoft.public.dotnet.languages.csharp)

Loading