[#11815] problems with DBM module — Eric Sven Ristad <ristad@...>
[#11822] RCR: Input XML support in the base Ruby — Dave Thomas <Dave@...>
Hi,
TAKAHASHI Masayoshi <maki@inac.co.jp> writes:
On Fri, 2 Mar 2001, Dave Thomas wrote:
David Alan Black <dblack@candle.superlink.net> writes:
[#11832] Re: RCR: Input XML support in the base Ruby — "Conrad Schneiker" <schneik@...>
Dave Thomas Wrote:
[#11868] Re: RCR: Input XML support in the base Ruby — "Mike Wilson" <wmwilson01@...>
Ok, first off I feel I am at least semi-intelligent
[#11876] Option to allow Python style indenting? — "chris" <nospam@6666666.com>
Don't know whether this discussion would be better here or on the email
[#11884] Re: Seeking Ruby/Tk sensei... — Kevin Smith <sent@...>
>Hal 9000 Fulton wrote:
[#11893] Re: rewrite with Ruby — ts <decoux@...>
>>>>> "M" == Max Ischenko <max@malva.com.ua> writes:
>>>>> "M" == Max Ischenko <max@malva.com.ua> writes:
I have a class where the initializer takes a filename
[#11915] Why I bought a second copy of The Book. — jfn@... (Jeremy Nelson)
It was the book that exposed me to ruby and caused me to absolutely fall
[#11960] Not Ruby, for me, for the moment at least — "Michael Kreuzer" <mkreuzer@... (nospam)>
I wrote on this newsgroup last weekend about how I was considering using
"Michael Kreuzer" <mkreuzer(nospam)@mail.usyd.edu.au> wrote in
[#11986] possible memory leak in GDBM/gdbm — Eric Sven Ristad <ristad@...>
The following program suggests there is a small memory leak in
[#12000] Re: Seeking Ruby/Tk sensei... — "Conrad Schneiker" <schneik@...>
Kevin Smith wrote:
[#12003] Re: How do I reach members from a Proc? — "Conrad Schneiker" <schneik@...>
Dave Thomas wrote:
On Mon, 5 Mar 2001, Conrad Schneiker wrote:
[#12014] ANN: Memoize 0.1.2 — Robert Feldt <feldt@...>
Hi,
Robert Feldt <feldt@ce.chalmers.se> wrote in
[#12019] hooking/wrapping all of a classes methods — David Alan Black <dblack@...>
Hello --
[#12023] French RUG ? — "Jerome" <jeromg@...>
Hi fellow rubyers,
Tammo Freese <tammo.freese@offis.de> writes:
[#12048] Windows Installer questions — andy@... (Andrew Hunt)
[#12052] Re: RCR: shortcut for instance variable initialization — "Ben Tilly" <ben_tilly@...>
Dave Thomas <Dave@PragmaticProgrammer.com> wrote:
> From: Ben Tilly [mailto:ben_tilly@hotmail.com]
"Christoph Rippel" <crippel@primenet.com> writes:
[#12061] Ruby & AOP — "Dennis Decker Jensen" <dennisdecker@...>
Hi !
[#12093] Another hook — Dave Thomas <Dave@...>
[#12097] RCR: replacing 'caller' — Robert Feldt <feldt@...>
Hi,
[#12102] Re: Another hook — "Conrad Schneiker" <schneik@...>
Dave Thomas wrote:
[#12103] disassembling and reassembling a hash — raja@... (Raja S.)
Given a hash, h1, will the following always hold?
ts <decoux@moulon.inra.fr> writes:
[#12116] String.gsub() — Mike Bowler <mbowler@...>
The method String.gsub() isn't working the way I expected (or the way
[#12124] Is Ruby japanese-centered? — "Henning VON ROSEN" <hvrosen@...>
[matz writes]
In article <MABBIFGPDKFFOJPHLCLIOEAKCBAA.hvrosen@world-online.no>,
[#12135] Re: hash.invert loses data if equal values exist - is this the right behaviour? — Dave Thomas <Dave@...>
Tammo Freese <tammo.freese@offis.de> writes:
[#12144] New submissions to the Ruby Application Archive? — "Lyle Johnson" <ljohnson@...>
OK, I promise I looked around for this answer before posting here ;)
On Wed, 7 Mar 2001, Lyle Johnson wrote:
[#12155] RCR: Block form of Dir.chdir — Robert Feldt <feldt@...>
Hi,
[#12174] Nonblocking Read — Alex McHale <lists@...>
Hi there,
[#12179] Re: (long) Re: hash.invert loses data if equal values exist - is this the right behaviour? — Dave Thomas <Dave@...>
gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) writes:
Hi,
On Tuesday 06 March 2001 22:36, you wrote:
> From: Charles Hixson [mailto:charleshixsn@earthhlink.net]
[#12182] Re: Nonblocking Read] — Alex McHale <lists@...>
> IO#sysread is what you are looking for.
[#12204] FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1>
Ruby is, indeed, a very well designed language.
>>>>> "GK" == GOTO Kentaro <gotoken@math.sci.hokudai.ac.jp> writes:
In message "[ruby-talk:12250] Re: FEATURE REQUEST: 'my' local variables"
Hi,
In message "[ruby-talk:12289] Re: FEATURE REQUEST: 'my' local variables"
Hi,
In message "[ruby-talk:12457] Re: FEATURE REQUEST: 'my' local variables"
On Monday 12 March 2001 00:39, GOTO Kentaro wrote:
matz@zetabits.com (Yukihiro Matsumoto) writes:
Hi,
On Tue, 13 Mar 2001, Yukihiro Matsumoto wrote:
> From: Stephen White [mailto:spwhite@chariot.net.au]
[#12229] random chars — Urban Hafner <the-master-of-bass@...>
Hello everybody, I think/hope I have some simple questions.
At 22:35 07.03.01 +0900, you wrote:
Tammo Freese <tammo.freese@offis.de> wrote:
[#12237] [ANN] NQXML v2.0 adds DOM, DOCTYPE, and ENTITY — Jim Menard <jimm@...>
NQXML is a pure Ruby implementation of an XML tokenizer, a SAX parser, and
[#12244] [ANN] NQXML v0.2.2 — Jim Menard <jimm@...>
In the spirit of "release early, release often", version 0.2.2 of NQXML can
[#12308] GUI Toolkit for Ruby — jjthrash@...
Hi all,
jjthrash@pobox.com wrote in message
[#12329] Math package — Mathieu Bouchard <matju@...>
In message "[ruby-talk:12329] Math package"
Hi,
[#12330] Haskell goodies, RCR and challenge — Robert Feldt <feldt@...>
Hi,
Hi,
Hi,
On Sat, 10 Mar 2001, Yukihiro Matsumoto wrote:
[#12331] Re: Q re looping structures — ts <decoux@...>
>>>>> "M" == Mathieu Bouchard <matju@sympatico.ca> writes:
[#12332] ...and the challenge — Robert Feldt <feldt@...>
Hi again,
On Sat, 10 Mar 2001, Robert Feldt wrote:
> On Sat, 10 Mar 2001, Robert Feldt wrote:
[#12349] Can Ruby-GTK display Gif Png or Jpeg files? — Phlip <phlip_cpp@...>
Ruby-san:
Kent,
On Saturday 10 March 2001 15:30, Samantha Atkins wrote:
[#12369] Re: FEATURE REQUEST: 'my' local variables — Kevin Smith <sent@...>
matz@zetabits.com wrote:
[#12443] Re: ...and the challenge — "Benjamin J. Tilly" <ben_tilly@...>
>===== Original Message From Mathieu Bouchard <matju@sympatico.ca> =====
[#12444] class variables — Max Ischenko <max@...>
[#12446] Locale support in Ruby — Ollivier Robert <roberto@...>
Hello,
[#12523] rb_ary_each and hash — User Tcovert <tcovert@...>
awesome! thanks all!
[#12524] C++ is like teenage sex. — Stephen White <spwhite@...>
Forwarded message from glen mccready <gkm@petting-zoo.net> -----
[#12529] Re: Sum of Squares — "rashworth" <rashworth@...>
Thank you for your note. The new coding worked just fine.
[#12540] Strange segmentation fault problem with C++ extension — "Paul C" <paul_c@...>
Hi,
[#12601] http page download question — "Ian Marsman" <imarsman@...>
I am writing a script to download webpages from a favourite radio program
[#12606] Order, chaos, and change requests :) — Dave Thomas <Dave@...>
>>>>> "DT" == Dave Thomas <Dave@PragmaticProgrammer.com> writes:
[#12635] email address regexp — "David Fung" <dfung@...>
i would like to locate probable email addresses in a bunch of text files,
In article <m18zm531s9.fsf@halfdome.holdit.com>,
[#12646] police warns you -- Perl is dangerous!! — Leo Razoumov <see_signature@127.0.0.1>
I just read this story on Slashdot
On 14 Mar 2001 11:46:35 -0800, Leo Razoumov <see_signature@127.0.0.1> wrote:
On Wednesday 14 March 2001 15:40, Pete Kernan wrote:
On Fri, 16 Mar 2001, W. Kent Starr wrote:
Amos wrote:
[#12655] Re: FEATURE REQUEST: 'my' local variables — "Benjamin J. Tilly" <ben_tilly@...>
>===== Original Message From Leo Razoumov <see_signature@127.0.0.1> =====
[#12689] refactoring ruby code — Pat Eyler <pate@...>
To help myself learn more about Ruby, I'm starting to translate
[#12706] Library packaging — "Nathaniel Talbott" <ntalbott@...>
I have a project that I'm working on that needs to live two different lives,
"Nathaniel Talbott" <ntalbott@rolemodelsoft.com> writes:
Would it be possible to use some sort of jar style packaging - ie distribute
Hi,
matz@zetabits.com (Yukihiro Matsumoto) writes:
[#12738] Parser? — Hugh Sasse Staff Elec Eng <hgs@...>
Has anyone written a parser for Ruby in Ruby?
[#12754] assert_exception question — Pat Eyler <pate@...>
Okay, I'm reading along between several docs and now I'm confused ...
[#12768] Re: Tk Demo in Windows — ts <decoux@...>
>>>>> "R" == Ron Jeffries <ronjeffries@acm.org> writes:
[#12803] Deja vu? — Roy Smith <roy@...>
After years of reading people on c.l.python interject comments about Ruby,
On Tue, 20 Mar 2001 11:20:58 +0900, Hal E. Fulton
[#12821] units of measure — Mathieu Bouchard <matju@...>
[#12825] Floating point performance & Garbage collection — Jean-Sebastien ROY <jean-sebastien.roy@...>
I recently came across a little performance problem I have difficulties
In article
On Mon, 19 Mar 2001, Jean-Sebastien ROY wrote:
In article <Pine.LNX.3.96.1010319225134.15108F-100000@relayer>,
On Tue, 20 Mar 2001, Jean-Sebastien ROY wrote:
[#12829] converting a string to a class — "Doug Edmunds" <dae_alt3@...>
I want to concatenate strings which
[#12840] Looking for a decent compression scheme — Dave Thomas <Dave@...>
Dave Thomas wrote:
On Mon, 19 Mar 2001, Michael Neumann wrote:
Robert Feldt wrote:
[#12892] find.rb — Tyler Wardhaugh <tgw@...>
Hello, I'm new Ruby and I like it very much. The dynamic extensibility
Hi,
"Christoph Rippel" <crippel@primenet.com> writes:
> From: dave@thomases.com [mailto:dave@thomases.com]On Behalf Of Dave
[#12895] differences between range and array — "Doug Edmunds" <dae_alt3@...>
This code comes from the online code examples for
On Tue, 20 Mar 2001, Hee-Sob Park wrote:
Jim Freeze <jim@freeze.org> writes:
On Tue, 20 Mar 2001, Dave Thomas wrote:
[#12905] Native/pthreads in Ruby — Christopher Petrilli <petrilli@...>
I read everything I could find in the archives talking about
Hi,
On Tue, Mar 20, 2001 at 05:34:27PM +0900, Yukihiro Matsumoto wrote:
[#12906] RubyConf 2001 update — "Guy N. Hurst" <gnhurst@...>
RubyConf 2001 Update
[#12921] fork problem??? — "Hal E. Fulton" <hal9000@...>
Hello all,
[#12929] Re: animal is onion as show stopper — "Conrad Schneiker" <schneik@...>
Apparently sleep-deprived Hal wrote:
[#12935] How to add accessors dynamically? — Ville Mattila <mulperi@...>
Hello
[#12941] rubicon version? — Hugh Sasse Staff Elec Eng <hgs@...>
ISTR that Rubicon was going into the CVS base of Ruby. Now 1.6.3 is out
[#12960] TextBox ListBox — Ron Jeffries <ronjeffries@...>
Attached is a little Spike that Chet and I are doing. It is a
On Wed, 21 Mar 2001 04:36:38 +0900, rise <rise@knavery.net> wrote:
[#12991] [ANN] Lapidary 0.2.0 — "Nathaniel Talbott" <ntalbott@...>
Well, here's my first major contribution to the Ruby world: Lapidary. It's a
How is this different from RubyUnit?
>>>>> "Nathaniel" == Nathaniel Talbott <ntalbott@rolemodelsoft.com> writes:
jweirich@one.net [mailto:jweirich@one.net] wrote:
"Nathaniel Talbott" <ntalbott@rolemodelsoft.com> writes:
[#13020] instrumenting system resources — Eric Sven Ristad <ristad@...>
[#13028] mkmf question — Luigi Ballabio <luigi.ballabio@...>
[#13033] How do I properly munge stdout and stderr when using IO.popen? — Donald Sharp <sharpd@...>
Or alternatively is there a better way to do this?
In [ruby-talk:13033], Donald Sharp <sharpd@cisco.com> wrote:
I can't force the end user to choose a particular shell.
[#13039] extending existing classes. — Hugh Sasse Staff Elec Eng <hgs@...>
I've run up against something I thought I knew how to solve, but...
[#13046] Philosophical question: extension v. pure ruby — Colin Steele <colin@...2.com>
[#13054] Questions about ruby — Roy Patrick Tan <rtan@...>
Hi, I am preparing a presentation about Ruby, for the programming
[#13064] Lapidary questions — Paul Pladijs <ppladijs@...>
[#13079] Thread Safe — Rogers Gene A Civ 96 CG/SCTOB <gene.rogers@...>
Here's a question (stupid, maybe):
[#13086] Amusing contrast — Bob Kline <bkline@...>
I was struck by the discrepancy between this quote from the Ruby man
[#13099] xmlparser installation woes — Phil Suh <phil@...>
[#13117] ZPT, a next-generation template technology (repost) — "Conrad Schneiker" <schneik@...>
FYI. Thought some Rubies might be interested in this.
[#13138] How would Ruby say this? — "Lyle Johnson" <ljohnson@...>
One group of C++ functions I'm wrapping for FXRuby have signatures like
"Lyle Johnson" <ljohnson@resgen.com> writes:
[#13163] Re: Amusing contrast — Kevin Smith <sent@...>
Dave Thomas wrote:
[#13182] Re: email address regexp (fwd) — Paul Pladijs <paul.pladijs@...>
[#13185] Reading a file backwards — "Daniel Berger" <djberg96@...>
Hi all,
> Hi Dan,
On Sun, 25 Mar 2001, Daniel Berger wrote:
"Mathieu Bouchard" <matju@sympatico.ca> wrote in message
On Mon, 26 Mar 2001, Daniel Berger wrote:
Ernest Ellingson <erne@powernav.com> writes:
[#13225] Installation Woes — "John Kaurin" <jkaurin@...>
System: alphaev6-osf4.0f
[#13226] Re: Randal in Ruby-land? (was: email address regexp) — "Benjamin J. Tilly" <ben_tilly@...>
>===== Original Message From claird@starbase.neosoft.com (Cameron Laird) =====
[#13236] drb and "recycled objects" errors — Jimmy Olgeni <olgeni@...>
[#13240] hash problem — Urban Hafner <the-master-of-bass@...>
Hello everybody,
[#13246] Re: Randal in Ruby-land? (was: email address regexp) — "Conrad Schneiker" <schneik@...>
Mathieu Bouchard wrote:
Hi,
Hi,
> From: Yukihiro Matsumoto [mailto:matz@zetabits.com]
On Thu, 29 Mar 2001 23:11:03 +0900, Christoph Rippel pontificated:
On Fri, 30 Mar 2001, Pete Kernan wrote:
[#13255] This is going to sound crazy, but... — Dave Thomas <Dave@...>
[#13294] ruby slowww socket handling — Joseph McDonald <joe@...>
[#13303] Reloading files — "Nathaniel Talbott" <ntalbott@...>
First of all, a confession: Lapidary's GTK::TestRunner had a show stopper
[#13318] hash slice implementaion — "Hee-Sob Park" <phasis@...>
[#13369] Buffered and non-buffered IO — Lloyd Zusman <ljz@...>
Could anyone point me to some documentation that describes how I could
[#13374] Passing an array to `exec'? — Lloyd Zusman <ljz@...>
I'd like to do the following:
[#13388] Using Antlr for Ruby? (was RE: Re: why won't "( a) = 1" parse?) — Christophe Broult <cbroult@...>
Hi,
Hi,
[#13397] Multidimensional arrays and hashes? — Lloyd Zusman <ljz@...>
Is it possible in ruby to make use of constructs that correspond to
masa@stars.gsfc.nasa.gov writes:
> From: nosuzuki@e-mail.ne.jp [mailto:nosuzuki@e-mail.ne.jp]On Behalf Of
"Christoph Rippel" <crippel@primenet.com> writes:
[ruby-talk:13115] Static versus dynamic typing [long]
FYI--This topic has come up a number of times in the past, and it usually seems that (most of) the strongest pro-dynamic arguments lean toward the "based on my (considerable) experience" varity, which nevertheless seem less than satisfying (in terms of understandying why) for many people. So I thought some people might find these remarks interesting. Subject: Re: Who's minister of propaganda this week? Date: Thu, 15 Mar 2001 12:37:18 +0100 From: "Alex Martelli" Newsgroups: comp.lang.python Alex Martelli wrote: > > "Michael Chermside" <mcherm_python@yahoo.com> wrote in message > news:mailman.984619039.7856.python-list@python.org... > > Alex Martelli wrote: > > ... [snip]... > > > So, all the compile-time checking is buying is catching (a small > > > subset of) the errors that would be caught in testing anyway, a > > > little bit earlier (thus, a little bit cheaper) -- it's never the > > > case that one has to write a test which would not be needed at > > > all if type-checking was static, since "the object has the right > > > type" is a small subcase of "the object _behaves_ per the specs". > > > > > I'm really not sure I see it this way. If the method foo(x) is known to > > take a FancyDateObject > > Assume that is an abstract interface (no gain in terms of > functionality assurance if it's concrete) and (without loss > of generality) that it has two methods First and Second that > foo uses (it may have others that foo is ignoring, but they > don't affect the following argument). OK so far? Good. > > > there are three kinds of errors we could make. One is that foo() is > > written badly so it > > doesn't do what it's supposed to. The unit tests of foo() need to guard > > against this. > > Right. Specifically, they'll test the combinations of calls > to First and Second methods of the x argument that foo needs > to actually perform, say in certain cases First only, in > others Second only, in others yet, First then Second (if foo > never needs to call Second before, and First after, on its > argument, then its unit-tests will not exercise that path). > > > Another possible error is that FancyDateObject isn't written properly. > > As I assumed this is an interface, let's say you're talking > about some specific implementation thereof -- FDO_impl1, say. > > > The unit tests > > of FancyDateObject need to guard against this. > > Right again -- specifically, they'll test that FDO_impl1's > implementations of First and Second support the call patterns > that the specification demands. For example, if that is what > the specs say, the implementation will work fine if only First > is called, or if only Second is called, or if Second is called > before and _then_ First is called -- 'First before, Second after' > may not be in the specs and thus doesn't get exercized by unit > tests. > > > And the third type of > > error is that > > that somewhere where we CALL foo(), we might pass it a DateObject > > instead... or > > even a String... which will cause it to perform wrong. To guard against > > More generally: we might erroneously pass to foo some object that > does not even _implement_ First and Second methods with acceptable > signatures, or some that _does_ implement the methods with signatures > that appear good BUT not with the semantics that foo needs -- e.g., > it does not let First be called earlier and Second later (because > there is a mismatch in semantics specs between the specs that foo > requires and the specs that x actually ensures -- just as in the > other cases, regarding existence or signature of the methods). > > No compiler wards you at compile-time against all, or even _most_, > errors of this very common kind. (The existence of more than one > method is not needed to have this behavior -- just a single method > suffices to exhibit this error, e.g. it could take an argument i > with a prereq of i>23 and be called with i==23 by foo; or foo might > call it 7 times when the semantics specify it must be called no > more than 6 times; etc, etc). > > Another way to express it: an interface is not just, not even > _mostly_, about existence and signature of methods -- it's mostly > about prereq's, post-conditions, and invariants; and nobody can > check those at compile-time in enough cases to make a difference > to your software's reliability. > > So, statically-typed languages make a LOT of the not-very-important > issues of method-existence and signature -- because those issues > are THE ones they can check statically, not because their importance > (wrt the importance of real semantics issues, the programming-by- > contract parts of the interface) warrants special attention. It's > like the drunkard who was looking for his housekeys at one end of > the street, opposite to the end where he had dropped them, because > the end he was searching at was the one that a streetlamp lit... > > > this in a > > dynamically typed language, we have to write unit tests for *every > > single place* > > that we call foo(). Of course, we'd be writing unit tests for those > > functions anyway, > > but we won't be able to assume that foo() works properly, and will need > > extra tests to ensure this. > > You can never 'assume that foo(x) works properly' for a given x > in an untested case -- and syntactic-level compatibility between > the methods x offers (& their signatures), and the ones foo > requires of its arguments, doesn't buy you much, since the likely > and troublesome errors are with contract-expectations mismatches. > > If the implementation of foo and its call are inside the same > component, then unit-tests should exercize the relevant paths > (or else the component is being released in a state of incomplete > testing -- thus, dubious reliability, whether with or without > static typechecks). > > If the implementation of foo and its call are in different > components, then you have a system-integration problem (again, > one that remains independently of static type-checking) and > thus more 'strategic' kinds of troubles. You *STILL* need > 'extra' tests to ensure the actually-implemented semantics > of a given actual argument and the ones foo requires of its > formal argument match -- for all distinct cases that occur > in the (system-level) acceptance criteria tests. If then, in > later system operation, you meet a failing case that was not > tested (makes no difference whether the mismatch is in > method existence, signature, or semantics), then your acceptance > tests were insufficient -- and static checking would not have > made them sufficient. > > > In a staticly typed language, we still need the unit tests for cases 1 > > and 3, but the > > third type of error is caught by the compiler. > > Not in most cases of interest, no. > > > And in my mind, ANY TIME that > > I can have a machine do my work for me it's better... I can be lazy, and > > the machine > > never gets tired after a long day and forgets to test sometimes. Of > > Extra checks (even if theoretically redundant) are good insurance EXCEPT > where they breed exactly this kind of 'complacency'. Release procedures > MUST 'never .. forget to test' either -- and it's not that hard a problem > to setup your build/release environment so that a machine ensures this. > > > course, I can > > put an assert at the top of foo() which asserts that x is of type > > FancyDateObject, > > but if I always assert the types of my arguments then I'm basically > > using a staticly typed language. > > If your 'assert ... is of type' actually runs a sensible albeit small > 'type'-testing procedure, which exercizes the whole contract that the > interface implements, then you have gone statically typed languages > one better -- unfortunately, this is most often impractical (as such > infinitely-repeated tests are far too slow, can't be made non-invasive, > etc, etc). And it doesn't buy you all that much either (a bit more > than just statically checking types, but not all that much more) -- > you still need to have *exercised* the call-cases of interest. > > Asserting a single, specific, invariable concrete type would be on > a different plane -- perhaps feasible (at non-inconsiderable cost) > for some within-the-component cases (where you can commit to never > needing ANY polymorphism EVER), definitely unfeasible across any > component-boundary (cfr. Lakos' "Large Scale" book, again -- it's > still the best treatment I know of dependency management in large > scale software development, and, in particular, of the inevitability > of purely abstract interface-classes across component boundaries > to manage those dependencies; Martin's articles, which can be found > on his objectmentor site, are more readable, although not quite as > deep and extensive as Lakos' big book of course). > > > There are times when a dynamically typed language is more flexible, and > > it's certainly > > nice not to have to declare everything just to specify its type, but > > there ARE > > advantages to static typing, and this, I believe, is the biggest one. > > We agree that the (redundant, but earlier) checks performed by the > statically-checking compiler are the 'biggest' (least small?-) > advantage of said compiler (well, apart from speed issues, which > may at times be paramount for certain well-identified components). > > We disagree on how big that 'biggest' is. I estimate that (speed > apart) this specific advantage may buy me about a 5% productivity > improvement -- so I agree it's an advantage, and I agree it's > larger than any other advantages of static checks (none of which, > it seems to me, may make even a 1% further improvement even when > all taken together -- again, speed of resulting code apart), but > I don't think it's worth anywhere near the _bother_ (productivity > impact, _negative_ improvement) of the contortions I have to > perform to satisfy the checks (which cost me _at least_ 10% of > my sw-lifetime-coding-productivity, even in the cases where I'm > least interested in specifically taking advantage of dynamism). > > I come to these (tentative) conclusions after a lifetime spent > working _mostly_ in statically-typed languages -- because the > performance characteristics of the machines I was targeting just > didn't afford me the luxury of doing otherwise (when they DID, > I repeatedly tried out dynamically typed languages, and, over > and over again, I was tickled pink at how well they worked -- > most people are surprised when they learned how much of the > 'background processing' of the programs I was doing in the > mid-80's [on IBM mainframes] was done in Rexx, but then, they > are equally surprised at how fast and reliably I delivered:-). > > Today, I'm still relying mostly on C++ to earn my daily bread > (3-D modeling &c being pretty compute-intensive even by today's > standards -- and 3D for mechanical engineering is that what > we're mostly doing here at my current employer), but more and > more dynamically typed code 'sneaks in' (thanks be!-)... > > Alex -- Conrad Schneiker (This note is unofficial and subject to improvement without notice.) Conrad Schneiker (This note is unofficial and subject to improvement without notice.)