[#3741] Re: Why it's quiet -- standard distribution issues — Aleksi Niemel<aleksi.niemela@...>
I think it's the feature of the mailing list archive to create a threads of
[#3756] RE: XMP on comments — Aleksi Niemel<aleksi.niemela@...>
> require "xmp"
[#3766] modulo and remainder — Dave Thomas <Dave@...>
[#3776] Kernel.rand — Aleksi Niemel<aleksi.niemela@...>
How about defining:
[#3781] Widening out discussions — Dave Thomas <Dave@...>
[#3795] Re: Array.uniq! returning nil — Aleksi Niemel<aleksi.niemela@...>
> As matz said in [ruby-talk:3785] and Dave said in [ruby-talk:1229],
Hi, Aleksi,
[#3823] Re: Array.pick — Aleksi Niemel<aleksi.niemela@...>
> > Just a general comment--a brief statement of purpose and using
[#3827] JRuby? — Aleksi Niemel<aleksi.niemela@...>
Is there or will there be Ruby equivalent of JPython?
[#3882] Re: Array.uniq! returning nil — Aleksi Niemel<aleksi.niemela@...>
> |look too strange, confusing, or cryptic. Maybe just @, $, %, &.
Hi,
[#3918] A question about variable names... — Dave Thomas <Dave@...>
[#3935] If your company uses Pallets, Skids, Boxes, Lumber, etc. — pallets2@...
[#3956] Tk PhotoImage options — andy@... (Andrew Hunt)
Hi all,
[#3971] Thread and File do not work together — "Michael Neumann" <neumann@...>
following example do not work correctly with my ruby
[#3986] Re: Principle of least effort -- another Ruby virtue. — Andrew Hunt <andy@...>
> Principle of Least Effort.
Hi,
[#4005] Re: Pluggable functions and blocks — Aleksi Niemel<aleksi.niemela@...>
Aleksi makes a question:
[#4008] Ruby installation instructions for Windows — Aleksi Niemel<aleksi.niemela@...>
I had to write these instructions for my friends. I thought it might be nice
[#4043] What are you using Ruby for? — Dave Thomas <Dave@...>
On 15 Jul 2000 22:08:50 -0500,
Hi,
[#4057] Re: What are you using Ruby for? — Aleksi Niemel<aleksi.niemela@...>
Johann:
[#4082] Re: What are you using Ruby for? — Aleksi Niemel<aleksi.niemela@...>
[#4091] 'each' and 'in' — hal9000@...
I just recently realized why the default
[#4107] Re: 'each' and 'in' -- special char problem? — schneik@...
[#4114] Method signature - a question for the group — Dave Thomas <Dave@...>
[#4139] Facilitating Ruby self-propagation with the rig-it autopolymorph application. — Conrad Schneiker <schneik@...>
Hi,
[#4158] Getting Tk to work on Windows — "Michael Neumann" <neumann@...>
Hi....
[#4178] Partly converted English Ruby/Tk widget demo working. — Conrad Schneiker <schneik@...>
Hi,
[#4234] @ variables not updated within method? — Hugh Sasse Staff Elec Eng <hgs@...>
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
On 27 Jul 2000, Dave Thomas wrote:
[#4267] Ruby.next, Perl6, Python 3000, Tcl++, etc. -- Any opportunities for common implementation code? — "Conrad Schneiker" <schneiker@...>
Hi,
"Conrad Schneiker" wrote:
[ruby-talk:04100] Re: Static Typing( Was: Waffling between Python and Ruby)
Thaddeus L. Olczyk <olczyk@interaccess.com> wrote:
:>A precondition asserts a routine's expectations of the state of the
:>world. A poscondition verifies the results of the operation.
:>Why do you feel that static typing has *anything* to do with expressing
:>the semantics of an operation in this manner? I would argue that
:>DBC in a dynamic language gives you the best of both worlds -- some
:>guarantee that you're doing the right thing (the objects you are
:>dealing with honor the semantics you expect, regardless of type),
:>along with the flexibility of dynamic types.
:
:The reason I say that static typing is a part of DBC is because it is
:the principle contract between an object and it's clients.
:Specifically the contract is that the object responds to certain
:messages, and not to others. This has to be specified before you can
:even begin to talk about what state the object is in before or after
:it is acted on.
:
:Looking closely in OOSE2. I don't see any mention of the relation of
:static typing to DBC. The thing I see is a statement that static
:typing is needed for stable, robust systems. There seems to be an
:implication that static typing has to come as a precondition to DBC.
Well, static type constraints (a better phrase than static typing) on
variables ARE preconditions on the run-time properties of objects (that
the object contained is a descendant of some class or another).
These preconditions have the special property that conformance can
(almost always) be calculated at compile time, whereas for general
preconditions it can't. And it has the peculiar effect that for
conventional implementations the resulting code tends to go faster.
Note though that nobody is ever required to write preconditions, and
you can always 'in principle' accept OBJECT or GENERAL for types.
As I see it the main difference between a dynamic and static language is
not really if you have type constraints on variables or not, but whether
the identity of which *subroutine* is called is itself a run-time
changeable variable.
In other words: o.method in Eiffel always calls a routine
called 'method', whose concrete implementation may be in one of any
number of classes---but it still is always called 'method'.
In a generic dynamical language you could do:
methodvar := ''method'';
o.CALL[methodvar](arguments) --- but nobody uses this syntax
methodvar2 := frobnicate(methodvar);
o.CALL[methodvar2](argumetnts);
The usual consequence is that compile time checking of things is
harder and hence most such languages don't attempt to do it.
--
* Matthew B. Kennel/Institute for Nonlinear Science, UCSD
*
* "To chill, or to pop a cap in my dome, whoomp! there it is."
* Hamlet, Fresh Prince of Denmark.