[#5218] Ruby Book Eng tl, ch1 question — Jon Babcock <jon@...>
From: Jon Babcock <jon@kanji.com>
Thanks.
From: Jon Babcock <jon@kanji.com>
Ah, thanks, I think I get it, a slightly different nuance then.
From: Jon Babcock <jon@kanji.com>
'Because all of Ruby has been...' -> 'Because Ruby has been...'?
[#5221] better way to say 'recursive join' — Yasushi Shoji <yashi@...>
in [ruby-dev:6289], Shugo Maeda suggested better name for recursive
[#5240] Ruby for Win32/DOS — Dennis Newbold <dennisn@...>
Not all of us are blessed with the opportunity to be able to develop on
[#5254] problem: undefined method `size' for File — "葡ic Santonacci" <Eric.Santonacci@...>
Hi all,
HI,
[#5264] Re: problem: undefined method `size' for Fil e — Aleksi Niemel<aleksi.niemela@...>
matz critizes good solution argumenting with features lacking from some
[#5268] Proper ConditionVariable usage? — Aleksi Niemel<aleksi.niemela@...>
Abstract
On Wed, 04 Oct 2000 07:05:22 +0900, Aleksi Niemelwrote:
In message <20001004110040.A26666@xs4all.nl>
Hi,
[#5276] Re: Ruby Book Eng tl, ch1 question — schneik@...
[#5310] Errata for Ruby Book? — Jon Babcock <jon@...>
[#5318] Redefining super method as singleton? — Robert Feldt <feldt@...>
On Fri, 6 Oct 2000, Yukihiro Matsumoto wrote:
[#5329] Ruby vs PHP ? — "Valerio Bamberga" <bamberga@...>
Hi!
[#5331] Unit testing network code? — Hugh Sasse Staff Elec Eng <hgs@...>
Can someone give me pointers on how to Unit Test code that is run on
> I think maybe one would test each end on its own first, faking the
[#5335] string streams in Ruby? — Hugh Sasse Staff Elec Eng <hgs@...>
Is there any way, without going through "modifying the internals",
[#5346] Is Ruby "enough better"? — Gabriel Lima <Gabriel.Lima@...>
Hi.
[#5364] Allowing *ary's in the middle of a camma separated list — "Akinori MUSHA" <knu@...>
Hi,
Hi,
At Tue, 10 Oct 2000 14:17:24 +0900,
[#5404] Object.foo, setters and so on — "Hal E. Fulton" <hal9000@...>
OK, here is what I think I know.
At Wed, 11 Oct 2000 11:37:25 +0900,
Hi,
Hi,
Hi,
Hi,
[#5425] Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...>
At Thu, 12 Oct 2000 03:49:46 +0900,
Thanks for the input.
At Thu, 12 Oct 2000 04:53:41 +0900,
At Thu, 12 Oct 2000 07:25:03 +0900,
oops, I didn't read this one before I went out for food..
At Thu, 12 Oct 2000 09:59:19 +0900,
[#5437] Editor recommandations? — "Chris Morris" <chrismo@...>
Any recommendations on editors for Ruby script on Windows?
[#5471] 2 ideas from Haskell — Mark Slagell <ms@...>
Do either of these interest anyone:
[#5479] Some newbye question — Davide Marchignoli <marchign@...>
I am reading the documentation I found about ruby but several points
[#5480] InstallShield version for Ruby soon... — andy@... (Andrew Hunt)
Okay folks,
[#5489] Regexp#matches — Aleksi Niemel<aleksi.niemela@...>
Would someone object aliasing matches for match in Regexp?
[#5505] Sorry, What is Ruby Book — Mansuriatus Shahrir Amir <chioque@...>
Sorry if this information is somewhere obvious. I just stumbled upon
[#5516] Re: Some newbye question — ts <decoux@...>
>>>>> "D" == Davide Marchignoli <marchign@di.unipi.it> writes:
Hi,
On Sat, 14 Oct 2000, Yukihiro Matsumoto wrote:
matz@zetabits.com (Yukihiro Matsumoto) writes:
Dave Thomas <Dave@thomases.com> wrote:
Hi,
> Proposal a and b have incompatibility. I'm not sure it's worth it.
>>>>> "Y" == Yukihiro Matsumoto <matz@zetabits.com> writes:
On Mon, 16 Oct 2000, ts wrote:
>>>>> "Y" == Yukihiro Matsumoto <matz@zetabits.com> writes:
[#5558] GC: malloc_memories — Mathieu Bouchard <matju@...>
Hi,
> |precipitate a new GC cycle if lots of resizing is done. My biggest
[#5570] Notes about GC — Mathieu Bouchard <matju@...>
[#5600] passing single or multiple strings. — Hugh Sasse Staff Elec Eng <hgs@...>
With multple assignments I can get nested arrays "shelled" (like peas)
In message "[ruby-talk:5600] passing single or multiple strings."
[#5603] debug command list in English — "Morris, Chris" <ChrisM@...>
I found this page which lists the interactive debugger commands ... anyone
[#5619] lint? — "Swit" <swit@...>
Is there something like lint for Ruby? I'd like to find NameErrors before
[#5705] Dynamic languages, SWOT ? — Hugh Sasse Staff Elec Eng <hgs@...>
There has been discussion on this list/group from time to time about
Hugh Sasse Staff Elec Eng wrote:
On Sat, 21 Oct 2000, Charles Hixson wrote:
[#5715] Help: sockets broken — jason petrone <jp@...>
I just compiled ruby 1.6.1 on an openbsd 2.6 machine(x86).
[#5716] Re: Array#insert — Aleksi Niemel<aleksi.niemela@...>
> From: jweirich@one.net [mailto:jweirich@one.net]
[#5727] String#slice surprise — "Guy N. Hurst" <gnhurst@...>
Hi,
Dave Thomas wrote:
[#5787] Shells and Ruby — "Dat Nguyen" <thucdat@...>
Hello all,
[#5850] Re: Array#insert rehashed — Aleksi Niemel<aleksi.niemela@...>
Dave asks for:
[#5862] succ but no pred? (& the MURKY award) — "Hal E. Fulton" <hal9000@...>
First of all, a serious question:
[#5873] Integer(String) weirdness for a ruby newbie — Stoned Elipot <Stoned.Elipot@...>
Hi,
[#5881] Q:what about "Programming Ruby"? — Gabriel Lima <Gabriel.Lima@...>
Hi to you all.
[#5882] [RFC] Towards a new synchronisation primitive — hipster <hipster@...4all.nl>
Hello fellow rubyists,
On Fri, 27 Oct 2000, hipster wrote:
[#5947] Hash.new {block} / Hash#default_proc{,_set} — "Brian F. Feldman" <green@...>
I've done very little testing, but I think I've successfully implemented the
[ruby-talk:5748] Re: Dynamic languages, SWOT ?
Dave Thomas wrote: > Charles Hixson <charleshixsn@earthlink.net> writes: > > > > This is the area I'm thinking about where the typing is not so strong > > > as would ease error detection. OK, types can be dynamic, but for > > > parameters it only make sense for them to be in a subset of the > > > class heirarchy. There is no way to express this constraint in Ruby > > > > This is a run time check in a dynamically bound language. I'm pretty sure > > that Ruby does have ways to catch this, though they don't seem, to me, to be > > quite as ?elegant?, ?standardized? as those that Smalltalk uses. Much more > > similar to the techniques of Python. > > Well, I'm not sure what Ruby could do here, apart from implementing > protocols. You can't constrain a parameter to be an object of a > particular class: it's the methods that the object supports that is > relevant, not the class itself (as I know everyone knows--I'm just > reemphasizing the point) Only one answer here, mainly questions: Actually, I believe that you can implement a run-time constraint. It just isn't obvious what kind of standardized action should be taken. So it's not clear how the language could reasonably respond. Also, it's not clear how one should declare a parameter to be of a type. Inheritance could be used, but isn't really appropriate. What is really wanted is something on the order of: The paramer must respond to the following messages: ... and must not throw any more than the following exceptions: ... And then what should you do if it is in violation? Currently an error is raised (forget which one). What is a more elegant way to handle this? I don't think that it could be reasonably detected until during execution, but I could be wrong, so, if you could detect it, then what would you want it to do? Abort the program? Throw and exception? Loop? Wait forever? Throwing an exception is the best one that I've been able to think of. It would be nice if it could be detected at an earlier stage, but then what if the branch of the program to be followed never executed the statement in violation? Programs often have branches that are only executed when the inputs are of a certain specific kind. > ... > Objective C had the concept of protocols, which are similar to Java's > interfaces, which specified what messages an object supports. This > _could_ be added to Ruby (I have a quick hack that implements them in > Ruby itself). I think that Ruby already has such a list, but I could be confusing it with Python (and don't know how to look this up quickly). This isn't a formalized thing created for users. It's just that the compiler uses a list to keep track of things, and that isn't hidden away. (If you've done that "quick hack", then I'm sure you know what I'm referring to.) The problem is, if you were to design a user interface to this list, what should the API look like? Remeber that included files can change the structure of the class (defining new methods), and that individual members of a class can have methods added to them (I still struggle when thinking of this as a Singleton, but I suppose that it is). So it looks like this list doesn't only exist for the class, but also for the members of the class. And, at least for the members, and probably for the entire class, this list can be changed dynamically . (When WILL that book show up! ... I've already ordered it, but it sure would be nice to have a reference right now.) > > > However, let me ask a question: how often do you get bitten by this in > reality? And, having been bitten, how long does it take to fix? > > Personally, I find that I pass in a wrong object about once in a blue > moon, and it becomes apparent that I goofed pretty quickly. > > Now ask yourself a different question. Right now, legions of Java > programmers are using > > Employee emp = (Employee)staff.nextElement(); > > Fundamentally, how is this different from using Ruby's type system? The fundamental difference is that at programming time Java required knowledge that the found element would necessarily be castable to type Employee, rather than, say, Consultant, or Owner. Now it you had been asking about C ... > > > Regards > > Dave Java is an interesting case. It seems to carry enough information around that it SHOULD be able to tell what the type of an object is. But it can't. It depends on type declarations embedded in the program which must be program time constants. (Program time comes prior to compile time). In C it come prior to pre-processor time.) This wouldn't be quite as wierd as it is if it weren't for ClassLoader. ClassLoader can take a file of compiled code, and extract the types of the objects that it contains. So the information is in there. My guess it that this constraint is a part of Java's security model, but I don't really know. Anyway, making type declarations programming time constants, but not taking advantage of the optimizations that this makes possible in Strongly typed-Statically linked languages, is one of the design decisions that were made in creating Java. This is the kind of choice that makes me uncertain of just where in language space I should position it.