[#96321] parent of TrueClass, FalseClass — "Ara.T.Howard" <Ara.T.Howard@...>

19 messages 2004/04/01
[#96356] Re: parent of TrueClass, FalseClass — matz@... (Yukihiro Matsumoto) 2004/04/02

Hi,

[#96404] Variable names — David King Landrith <dlandrith@...>

About a year ago, I wrote a simple type enforcement library that adds a

33 messages 2004/04/02
[#96406] Re: Variable names — ts <decoux@...> 2004/04/02

>>>>> "D" == David King Landrith <dlandrith@mac.com> writes:

[#96424] Re: Variable names — David King Landrith <dlandrith@...> 2004/04/02

[#96430] Re: Variable names — Dan Doel <djd15@...> 2004/04/02

On Friday 02 April 2004 2:43 pm, David King Landrith wrote:

[#96432] Re: Variable names — David King Landrith <dlandrith@...> 2004/04/02

On Apr 2, 2004, at 3:51 PM, Dan Doel wrote:

[#96447] Learning Ruby, was a C geek... — Nicholas Paul Johnson <nickjohnson@...>

Hello all,

17 messages 2004/04/02

[#96634] Where does the name Rite come from? — Michael Neumann <mneumann@...>

Hi,

15 messages 2004/04/06
[#96642] Re: Where does the name Rite come from? — matz@... (Yukihiro Matsumoto) 2004/04/06

Hi,

[#96652] Re: Where does the name Rite come from? — Eric Hodel <drbrain@...7.net> 2004/04/06

Yukihiro Matsumoto (matz@ruby-lang.org) wrote:

[#96697] Idea: Simplified GTK — Hal Fulton <hal9000@...>

Here's an idea. I've begun implementing it.

74 messages 2004/04/07
[#96699] Re: Idea: Simplified GTK — Chad Fowler <chad@...> 2004/04/07

[#96876] RedCloth bug and suggestion — Jim Menard <jimm@...>

_why_ and fellow RedCloth users,

15 messages 2004/04/09

[#96877] Instiki 0.3.0: Before the Storm — David Heinemeier Hansson <david@...>

What's new in Instiki 0.3.0?

12 messages 2004/04/09

[#97020] test / unit question: facility to mark some tests as "missing" or "incomplete" — "Its Me" <itsme213@...>

I often find myself with some unit tests that run, and several more test

14 messages 2004/04/12

[#97077] Instiki 0.5.0: Getting Serious — David Heinemeier Hansson <david@...>

What's new in Instiki 0.5.0?

16 messages 2004/04/13

[#97083] New Ruby questions... — Jeff Massung <jma@...>

I've just started Ruby a couple days ago (man this is cool). Coming from

14 messages 2004/04/13

[#97109] New Local Variable Scope rule — "Shashank Date" <sdate@...>

In one of Matz's slides at RubyConf ,

33 messages 2004/04/14

[#97134] BlueCloth: a Markdown implementation for Ruby — Michael Granger <ged@...>

Hi all,

17 messages 2004/04/14

[#97201] File locking, portably? — Hugh Sasse Staff Elec Eng <hgs@...>

Searching the web and books for information on this, I can't seem to

12 messages 2004/04/14

[#97277] Hash, ==, key-value comparison — walter@...

Ok,

20 messages 2004/04/15

[#97308] Instiki 0.6.0: Feeds, Exports, Safety, and Compatibility — David Heinemeier Hansson <david@...>

What's new in Instiki 0.6.0?

14 messages 2004/04/15

[#97351] "bad file descriptor" in Win32 DLL — "Christian Kaiser" <chk@...>

Using Ruby 1.81, the DLL (msvcrt-ruby18.dll) sometimes raises an exception

14 messages 2004/04/16

[#97363] BlueCloth 0.0.2 (beta) — Michael Granger <ged@...>

Hi,

18 messages 2004/04/16
[#97399] BlueCloth on Instiki (was Re: [ANN] BlueCloth 0.0.2 (beta)) — David Heinemeier Hansson <david@...> 2004/04/16

> Thanks to all of you that have offered your suggestions and code. I

[#97405] RubyConf 2004 — Ian Macdonald <ian@...>

Hello,

46 messages 2004/04/17
[#97409] Re: RubyConf 2004 — Chad Fowler <chad@...> 2004/04/17

[#97460] Re: RubyConf 2004 — Paul Duncan <pabs@...> 2004/04/17

* Chad Fowler (chad@chadfowler.com) wrote:

[#97465] Re: RubyConf 2004 — Hal Fulton <hal9000@...> 2004/04/17

Paul Duncan wrote:

[#97466] Re: RubyConf 2004 — Chad Fowler <chad@...> 2004/04/17

[#97486] Ruby Installer for Windows 1.8.1-12 — "Curt Hibbs" <curt@...> 2004/04/18

The Ruby Installer 1.8.1-12 for Windows has been released and is now

[#97418] Objects in perl6 (rubyish :) — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com>

Hi gurus and nubys,

20 messages 2004/04/17

[#97426] $0 is messed up — Simon Strandgaard <neoneye@...>

I have just upgraded to 1.9 16-apr-2004 from 1.9 7-apr-2004.

15 messages 2004/04/17

[#97473] convert yield to proc — Simon Strandgaard <neoneye@...>

How do you guys convert yield to block ?

21 messages 2004/04/18

[#97565] Gateway — "Robert Klemme" <bob.news@...>

34 messages 2004/04/19

[#97628] Instiki 0.7.0: Flavors of Expression — David Heinemeier Hansson <david@...>

What's new in Instiki 0.7.0?

15 messages 2004/04/19

[#97631] proposal: call_up() for use in redefined methods — Mark Hubbart <discord@...>

Hi all,

18 messages 2004/04/19

[#97640] Fox --> GTK ? — Hal Fulton <hal9000@...>

Who has experience converting Fox to GTK and might like to

29 messages 2004/04/19

[#97705] The quest for opensource database... — "Ruby Tuesdays" <NoSpamPlease_rubytuzdaiz@...>

Perhaps you database guru able to suggest what would be a good choice for

35 messages 2004/04/20

[#97743] Setting up a wiki when you don't have root — ptkwt@... (Phil Tomson)

12 messages 2004/04/20

[#97785] Creating bang methods — "Jon Hurst" <jon@...>

(newbie) I can't for my life figure out how to create bang methods. Please

20 messages 2004/04/21

[#97797] rexml: how to get element type? — "Its Me" <itsme213@...>

doc = REXML::Document.new <<EOF

14 messages 2004/04/21

[#97808] binding - how to get current script? — Szymon Drejewicz <drejewic@...>

18 messages 2004/04/21

[#97866] Is Ruby is better than PHP ... — "Useko Netsumi" <usenets_remote_this@...>

or perhaps Java for developing web application?

46 messages 2004/04/21

[#97873] Re: how to get ri/rdoc working for 1.8.1 on Windows? — "John W. Kennedy" <jwkenne@...>

Part 1 is to chdir \Ruby\bin and delete the five *.bat files

41 messages 2004/04/21
[#97910] Re: how to get ri/rdoc working for 1.8.1 on Windows? — "Its Me" <itsme213@...> 2004/04/21

[#97964] Re: how to get ri/rdoc working for [user-installed libraries] — Gavin Sinclair <gsinclair@...> 2004/04/21

On Thursday, April 22, 2004, 4:44:09 AM, Its wrote:

[#97984] Re: how to get ri/rdoc working for [user-installed libraries] — Dave Thomas <dave@...> 2004/04/22

[#98000] Re: how to get ri/rdoc working for [user-installed libraries] — "Gavin Sinclair" <gsinclair@...> 2004/04/22

>

[#97926] Re: how to get ri/rdoc working for 1.8.1 on Windows? — Lothar Scholz <mailinglists@...> 2004/04/21

Hello John,

[#97936] Re: how to get ri/rdoc working for 1.8.1 on Windows? — Dave Thomas <dave@...> 2004/04/21

[#97971] Re: how to get ri/rdoc working for 1.8.1 on Windows? — Jos Backus <jos@...> 2004/04/21

On Thu, Apr 22, 2004 at 05:50:40AM +0900, Dave Thomas wrote:

[#97985] Re: how to get ri/rdoc working for 1.8.1 on Windows? — Dave Thomas <dave@...> 2004/04/22

[#97997] RedCloth 2.0.7 -- A Textile Humane Web Text Generator — why the lucky stiff <ruby-talk@...>

more and more, you've seen it all before (i swear it's slowin down):

12 messages 2004/04/22
[#98008] Re: [ANN] RedCloth 2.0.7 -- A Textile Humane Web Text Generator — David Heinemeier Hansson <david@...> 2004/04/22

> I've wanted this feature to work right for awhile. It took a rewrite

[#98101] Extract all occurences from a text — Michael Weller <michael@...>

Hi!

11 messages 2004/04/23

[#98135] Problem assigning an Array object to an Array-subclass object — "Richard Lionheart" <NoOne@...>

[ I apologize if this is a second post. My earlier one seems to have gotten

29 messages 2004/04/23

[#98177] Psyco — Jim Moy <web@...>

Interesting stuff for Python, is any work like this being done in Ruby?

14 messages 2004/04/23

[#98181] Playing with sockets... — Hal Fulton <hal9000@...>

I'm writing a little expect-like piece of code and trying to test it

16 messages 2004/04/23

[#98281] String#unpack and null-terminated strings — Michael Neumann <mneumann@...>

Hi,

15 messages 2004/04/24

[#98362] How's ruby compare to it older brother python — "Hunn E. Balsiche" <hunnebal@...>

in term of its OO features, syntax consistencies, ease of use, and their

51 messages 2004/04/26
[#98597] Re: How's ruby compare to it older brother python — "Ken Hilton" <kenosis@...> 2004/04/28

Amen, brother.

[#98778] Re: How's ruby compare to it older brother python — "trevor andrade" <trevor.andrade@...> 2004/04/30

I agree that flaming the question is not appropriate and its also bad for

[#98789] Re: How's ruby compare to it older brother python — Dan Doel <djd15@...> 2004/04/30

I'm not saying the topic isn't appropriate. I don't mind the topic, and I find

[#98365] Introducing myself - Sascha Ebach — Sascha Ebach <se@...>

Hello dear Rubyists,

51 messages 2004/04/26
[#98568] Re: Introducing myself - Sascha Ebach — "Josef 'Jupp' Schugt" <jupp@...> 2004/04/27

Hello from Beethoven's home town,

[#98569] Re: Introducing myself - Sascha Ebach — Sascha Ebach <se@...> 2004/04/27

Hello Jupp

[#98570] Re: Introducing myself - Sascha Ebach — Simon Strandgaard <neoneye@...> 2004/04/27

Sascha Ebach <se@hexatex.de> wrote:

[#98753] Re: Introducing myself - Sascha Ebach — "Josef 'Jupp' Schugt" <jupp@...> 2004/04/29

Simon Strandgaard wrote:

[#98762] Re: Introducing myself - Sascha Ebach — Simon Strandgaard <neoneye@...> 2004/04/29

Josef 'Jupp' Schugt <jupp@gmx.de> wrote:

[#98817] Opportunities and pitfalls; was "Introducing myself - Sascha Ebach" — Mike Calder <ceo@...> 2004/04/30

A word of warning from a potential friend. Please don't take this negatively,

[#98847] Re: Opportunities and pitfalls; was "Introducing myself - Sascha Ebach" — Mark Hubbart <discord@...> 2004/04/30

[#98854] Re: Opportunities and pitfalls; was "Introducing myself - Sascha Ebach" — "Curt Hibbs" <curt@...> 2004/04/30

Mark Hubbart wrote:

[#98858] Re: Opportunities and pitfalls; was "Introducing myself - Sascha Ebach" — Mark Hubbart <discord@...> 2004/04/30

[#98366] How do I scale large Ruby web applications? — Sascha Ebach <se@...>

Hi there,

19 messages 2004/04/26

[#98409] Semantics of Multiple Values — Kristof Bastiaensen <kristof@...>

Hi liszt,

25 messages 2004/04/26

[#98435] Approaches to localization? — ptkwt@... (Phil Tomson)

I'm developing a GUI app using Ruby and FLTK. One of the requirements

22 messages 2004/04/26

[#98714] Ruby under Suse Linux — Mike Calder <ceo@...>

Hi.

14 messages 2004/04/29

[#98750] coerce(), what protocol to implement it — Jean-Hugues ROBERT <jean_hugues_robert@...>

Hi,

14 messages 2004/04/29

[#98758] File.expand_path(__FILE__) — John Platte <john.platte@...>

I'm having a problem with File.expand_path(__FILE__) after a chdir.

30 messages 2004/04/29

[#98796] SciTE Ruby Lexer — Kaspar Schiess <eule@...>

-----BEGIN PGP SIGNED MESSAGE-----

13 messages 2004/04/30

[#98820] ruby CVS can't use shared libs on NetBSD — Dick Davies <rasputnik@...>

11 messages 2004/04/30

[#98832] def [](v) xx; return yy; end # returned value is ignored !? — Jean-Hugues ROBERT <jean_hugues_robert@...>

Hi,

27 messages 2004/04/30

[#98851] Lazy evaluation — Michael Neumann <mneumann@...>

Hi,

51 messages 2004/04/30
[#98871] Re: Lazy evaluation — Jean-Hugues ROBERT <jean_hugues_robert@...> 2004/04/30

At 03:45 01/05/2004 +0900, you wrote:

[#98875] Re: Lazy evaluation — Florian Gross <flgr@...> 2004/04/30

Jean-Hugues ROBERT wrote:

[#98896] Re: Lazy evaluation (evil) — ptkwt@... (Phil Tomson) 2004/05/01

In article <c6uh31$gaq2i$1@ID-7468.news.uni-berlin.de>,

[#98913] Re: Lazy evaluation (evil) — Florian Gross <flgr@...> 2004/05/01

Phil Tomson wrote:

[#98917] Re: Lazy evaluation (evil) — ts <decoux@...> 2004/05/01

>>>>> "F" == Florian Gross <flgr@ccan.de> writes:

[#98919] Re: Lazy evaluation (evil) — Florian Gross <flgr@...> 2004/05/01

ts wrote:

Re: deciding between ruby and python

From: Gavin Sinclair <gsinclair@...>
Date: 2004-04-06 10:46:07 UTC
List: ruby-talk #96628
[warning, long post :]

On Tuesday, April 6, 2004, 4:34:20 PM, Ville wrote:

>     Gavin> That's a poor man's substitute.  Seriously.  It means you have to name
>     Gavin> everything you're doing, and pollute the function namespace *for no
>     Gavin> good reason*.  Yes, you can "do it", but it's ugly in comparison.
> 
> You don't really pollute it much, because you can always use the same
> name. The old name (and as such, the old definition too) is clobbered
> by the new name. If you always use big L for this purpose, 
> 
> Also, you can do the deffing inside functions too. So it's not even
> visible at module level.

True.  That's a pretty good compromise.  I'd like to see Ruby support
"functions within functions" more properly, but there's probably some
reason it doesn't fit.  At the moment, if you def within a def, your
inner def actually takes place in the outer scope.  There's a
workaround if you need it, but I dislike workarounds.

>     Gavin> Can you provide an implementation in the same style in Python?  It's
>     Gavin> not that I don't believe Python can count characters, lines and words
>     Gavin> in a string.  But I don't believe it can carry outside state into its
>     Gavin> "substitute for blocks".
> 
> Yes. Python supports lexical closures. The only gotcha is that you
> can't 'assign' the names of free variables to point to new objects,
> i.e. it has to be the same object, though it can be mutated. So you
> can use e.g. length 1 array to contain the other object.

That's an unfortunate limitation.  Just like Java.  Given that
limitation, does it really count as a lexical closure?  (I'm out of my
expert range there.)


> The following code:
> 
> ------------------
> 
> def get_char_counter():
>     chars = [0]
> 
>     def filepusher(f):
>         chars[0] += len(open(f).read())
>         return chars[0]
> 
>     return filepusher
> 
> acc = get_char_counter()
> 
> print acc("/bootsect.dos")
> print acc("/bootsect.dos")
> 
> -------------------
> 
> Prints out:
> 
> -------------------
> 201
> 402
> -------------------

I've seen an example like that before.  I don't understand why the
return value changes.  You are asking for a character count of an
unchanging file.


>     Gavin> # Connection: the database connection is automatically released at
>     Gavin> # the end of the block, including if there is an exception therein.
> 
> try - finally blocks are used for this in Python. 
> 
>     Gavin> # Transaction support: any exception in this block will cause a
>     Gavin> # "ROLLBACK".  If all is fine, a "COMMIT" is performed at the end.
> 
> try:
>    stuff()
> except:
>    rollback()
> else:
>    commit()
> 
> But I admit that the ruby approach seems cleaner here. It's probably
> easier to use and the logic doesn't clutter the code.
> 
>     Gavin> I'd like to see the same program written in Python.  I don't know the
>     Gavin> Python database interface, but I expect it would need to have explicit
>     Gavin> exception handling.  There would also be no automatic releasing of
>     Gavin> resources.
> 
> Back when I did db programming, I didn't think it was such a big
> deal. It seems bigger on the paper, though. 

Quite right.  But power steering in cars is not such a big deal,
either.  It just becomes a hassle to live without once you're used to
it.

>     Gavin> To prove me wrong, please present your best effort at translating the
>     Gavin> database programming example above into Python.  Of course, you may
>     Gavin> disagree with my frame of reference instead, but I think that's pretty
>     Gavin> good.
> 
> Yes, I do indeed disagree with your frame of reference. I just don't
> think this issue such big a deal.

It may not be a "big deal", but that doesn't invalidate the frame of
reference.  It demonstrates higher-level programming as applied to a
very practical domain, which was the purpose of the exercise.

To do 10 transactions, you have to write 10 "try/finally" blocks.  I, on
the other hand, only need to write 1 "try/finally" block.

To do 100 transactions, you have to write 100 "try/finally" blocks.  I
only have to write 1.

And in fact, since the database library implements it for me, I don't
have to write any. There will never be a superficial transaction-
related bug in my code, because there was no opportunity for mistyping
or omitting.

A higher degree of reuse == higher level programming.

And when you apply that across several domains instead of one, it
makes a big difference to your code as a whole.

> you might want to go googling for
> more elaborate discussion - code blocks have indeed been suggested for
> Python, they just didn't happen. It seems to pop up every now and
> then, so perhaps they will be in Python some day if they are deemed
> valuable enough.

I imagine it's hard to see the value of code blocks as an "added
feature".  We're only human, after all.  They are only useful if the
pervade the language.  That way, when you're new to the language, you
see them being used in very useful ways.  That familiarises you with
the concept, and then you go: "hang on, does that mean I can do ____
myself?  Wow, what a cool feature!"  That's my experience, anyway.

That's what really rocks about Ruby: people come up with excellent new
ways of applying the technology that I would (probably) never have
thought of.  And they usually involve getting the computer to make the
programmer's life much easier.

With other languages, the limits of discourse seem to be design
patterns (i.e. arrangements of classes) and refactoring techniques.
Those are certainly worthwhile, but Ruby's flexibility seems to spread
the discussion into a new dimension.  And some design patterns (e.g.
delegate, singleton) are directly implementable in Ruby.  E.g.:

  class DataManager
    include Singleton
    # ...
  end

  DataManager.instance.do_something   # the one and only instance

That's another instance of writing the code (ensuring there's only one
instance of a class) once and using it conveniently.  I doubt there
are any other popular/practical languages that enable this level of
reuse.
  
I acknowledge that sometimes the techniques I speak of are more
focussed on "doing cool things" than "getting things done".  But there
is usually some overlap.  I'd say Ruby is an engine-room of innovation
just as much as it is a practical programming language.  Matz even said
(about continuations) "I just implement the feature; you have to work
out what to do with it." (paraphrased)

My point is that many people benefit from this engine-room side of
Ruby.  Just as nearly every feature of Ruby is swiped from or inspired
by another language, so Ruby is contributing to the evolution of
existing languages (Python, Perl) and design of "new" ones (Groovy).
The contribution comes about by demonstrating the worth of unorthodox
features and approaches.

It's pretty common knowledge in our communities that Python used to
lack certain useful features and this situation was improved after
2.0 or 2.1 or thereabouts (e.g. inheriting built-in classes,
OO-vs-function-call interfaces).  I'm sure it would be acknowledged
that Ruby was a factor in some of the changes.  Well, I'm also pretty
confident that that process is not complete.  Python needed to correct
some of its design mistakes; Ruby does too.  Work is underway on Ruby
2.0, which will be a very bold break from the past.

That is some context in which to view the significance of things like
code blocks (and other features, to be sure).  In fact, the point I
make above probably go a long way to explaining the "difference"
between Python and Ruby (the subject of this thread, after all).  But
they are "just" my opinion, so it doesn't necessarily make good fodder
for when the question invariably comes up.

Cheers,
Gavin


In This Thread