[#8566] Visions for 2001/1.7.x development? — Robert Feldt <feldt@...>

Hi matz and other Ruby developers,

18 messages 2001/01/03
[#8645] Re: Visions for 2001/1.7.x development? — matz@... (Yukihiro Matsumoto) 2001/01/04

Hi,

[#8580] bug?? — jmichel@... (Jean Michel)

I don't understand the following behaviour:

19 messages 2001/01/03

[#8633] Interesting Language performance comparisons - Ruby, OCAML etc — "g forever" <g24ever@...>

13 messages 2001/01/04

[#8774] No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...>

So, why not include Comparable in Array by default? It shouldn't have any

28 messages 2001/01/07
[#8779] Re: No :<, :>, etc. methods for Array — matz@... (Yukihiro Matsumoto) 2001/01/07

Hi,

[#8780] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

matz@zetabits.com (Yukihiro Matsumoto) wrote:

[#8781] Re: No :<, :>, etc. methods for Array — gotoken@... (GOTO Kentaro) 2001/01/07

In message "[ruby-talk:8780] Re: No :<, :>, etc. methods for Array"

[#8782] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:

[#8829] Sandbox (again) — wys@... (Clemens Wyss)

Hi,

20 messages 2001/01/08
[#8864] Re: Sandbox (again) — Clemens Hintze <c.hintze@...> 2001/01/08

On 8 Jan, Clemens Wyss wrote:

[#8931] String confusion — Anders Bengtsson <ndrsbngtssn@...>

Hello everyone,

21 messages 2001/01/09
[#8937] Re: String confusion — matz@... (Yukihiro Matsumoto) 2001/01/09

Hi,

[#8953] Please remove account from files — "Thomas Daniels" <westernporter@...>

Please take my e-mail address from your files and "CANCEL" my subscription to "Ruby-Talk". Ruby is not right for what I do. The "Bulk Mail" is overwhelming. Please, no more e-mail! Thank you! yours truly, Stan Daniels

14 messages 2001/01/09
[#8983] Re: Please remove account from files — John Rubinubi <rubinubi@...> 2001/01/10

On Wed, 10 Jan 2001, Thomas Daniels wrote:

[#9020] time to divide -talk? (was: Please remove account from files) — Yasushi Shoji <yashi@...> 2001/01/10

At Wed, 10 Jan 2001 14:23:30 +0900,

[#9047] Re: time to divide -talk? (was: Please remov e account from files) — Aleksi Niemel<aleksi.niemela@...>

Yasushi Shoji:

27 messages 2001/01/10
[#9049] Re: time to divide -talk? — Yasushi Shoji <yashi@...> 2001/01/10

At Thu, 11 Jan 2001 00:20:45 +0900,

[#9153] what about this begin? — Anders Strandl Elkj誡 <ase@...> 2001/01/11

[#9195] Re: Redefining singleton methods — ts <decoux@...>

>>>>> "H" == Horst Duch=EAne?= <iso-8859-1> writes:

10 messages 2001/01/12

[#9242] polymorphism — Maurice Szmurlo <maurice@...>

hello

73 messages 2001/01/13

[#9279] Can ruby replace php? — Jim Freeze <jim@...>

When I read that ruby could be used to replace PHP I got really

15 messages 2001/01/14

[#9411] The Ruby Way — "Conrad Schneiker" <schneiker@...>

As a member of the "Big 8" newsgroups, "The Ruby Way" (of posting) is to

15 messages 2001/01/17

[#9462] Re: reading an entire file as a string — ts <decoux@...>

>>>>> "R" == Raja S <raja@cs.indiana.edu> writes:

35 messages 2001/01/17
[#9465] Re: reading an entire file as a string — Dave Thomas <Dave@...> 2001/01/17

raja@cs.indiana.edu (Raja S.) writes:

[#9521] Larry Wall INterview — ianm74@...

Larry was interviewed at the Perl/Ruby conference in Koyoto:

20 messages 2001/01/18
[#10583] Re: Larry Wall INterview — "greg strockbine" <gstrock@...> 2001/02/08

Larry Wall's interview is how I found out

[#9610] Re: 101 Misconceptions About Dynamic Languages — "Ben Tilly" <ben_tilly@...>

"Christian" <christians@syd.microforte.com.au> wrote:

13 messages 2001/01/20

[#9761] Re: 101 Misconceptions About Dynamic Languages — ts <decoux@...>

>>>>> "C" == Christoph Rippel <crippel@primenet.com> writes:

16 messages 2001/01/23

[#9792] Ruby 162 installer available — Dave Thomas <Dave@...>

15 messages 2001/01/24

[#9958] Re: Vim syntax files again. — "Conrad Schneiker" <schneik@...>

Hugh Sasse wrote:

14 messages 2001/01/26
[#10065] Re: Vim syntax files again. — Hugh Sasse Staff Elec Eng <hgs@...> 2001/01/29

On Sat, 27 Jan 2001, Conrad Schneiker wrote:

[#9975] line continuation — "David Ruby" <ruby_david@...>

can a ruby statement break into multiple lines?

18 messages 2001/01/27
[#9976] Re: line continuation — Michael Neumann <neumann@...> 2001/01/27

On Sat, 27 Jan 2001, David Ruby wrote:

[#9988] Re: line continuation — harryo@... (Harry Ohlsen) 2001/01/28

>A statement break into mutliple lines if it is not complete,

[ruby-talk:10036] Re: line continuation

From: Aleksi Niemel<aleksi.niemela@...>
Date: 2001-01-28 21:07:19 UTC
List: ruby-talk #10036
Brian F. Feldman replied:

> You think so?  My eyes, when following it, are drawn to the 
> periods and the matching parentheses/braces/brackets. 
> In other words, my ... style? ... will often include more 
> punctuation whereas yours will include whitespace because 
> that's what really helps you visually pick out control flow.

I guess they have some studies about these things, so it would be
interesting to know scientific truths behind :). I think your observation is
essentially the difference between us. I read much easier whitespace
delimited text. I guess I could get used to punctuation style, but I think
Perl is better with syntax-highlight (giving me the non-punctuation based
hints of the flow) than without. And that in other languages it doesn't
matter as much.

> Also, I notice that I tend to give ephemeral arguments 
> one-letter names. How shell-scripty!

I used them a lot too. Nowadays I find it much better to have "meaninful"
names, but most of all it's about being consistent. So it doesn't matter too
much in simple case like this

>         subber = lambda {|s|

if you have s, str or string, as long you do it in a same way in other parts
of the program also. But if you happen to pass occassionally a Struct to
your blocks with short names there's better to be some difference between s
and s.

There's another reason too. 's' doesn't tell much more than string. Many
times the string is a special field or something else. Thus the name
shouldn't be 'string'. It should be more like 'sql_property'. Probably not
in this case, but in general.

> I'm one of those people that believe that if you're only 
> using something once, it's usually wrong to give it a 
> name unless otherwise it would truly make things very 
> hard to follow.

That's a nice principle to follow. Is there any more explicit versions of
this around? Describing like when exactly you're using some thing only once?

  subber = lambda {|s| s.succ}      # once?
  subber = lambda {|s| s + s}       # twice?

> In this specific case, I usually /try/ to 
> let my regexps speak for themselves.  If they're so hard to 
> follow that I can't tell what they're for, they're probably 
> not very good at all :)

I understand. I did that too. Then I had a season that I made all the
regexps in commentary mode. Nowadays I prefer just to name them (and maybe
give a comment if needed). There are couple of regexps that don't need
comment or name IMO, like /s+/ and such simple, and short ones. I guess I
tend to write too hard regexps still, without naming them elsewhere.

The major thing is, that the regexp could be easy to read to it's author,
but quite horrible for the others. So I try to give a reason for myself to
code verbosely (and nicely) using other people as an excuse ;).

> > Still I'd like to exploit the possible rule of "unsub every second
> > parameter", name the mystical range of 1..-2, give better names to
> > variables in unsubber, maybe split the long line of listed_numbers
> > definition into two lines and call collect! on the latter.
> 
> I don't think that's a very good rule, because it's really just... 
> coincidental:

Yep, I guessed the rule wasn't real this time, just looked like it,
therefore the word "possible".

> The range 1..-2 will probably be seen an awful lot as the 
> most common idiom for taking the "inside" of a string.
> I can't think of any way to express it better :)  

Indeed, that will probably happen. But it will be pretty tricky for the guy
not messed with strings. You have to "see" what the data looks like when you
try to decipher the meaning. Some people, like me, aren't good at imaging
the underlying data, so I had to go in and see it in debugger or by other
means. Writing code in a way which makes it more apparent helps
tremendously, mostly removing the need for runtime inspection.

In this case, I'd consider changing string class

  class String
    def inside    # drop the first and last character of the string
      self[1..-2]
    end
  end

or the same as a (named) helper method

  def inside(str)
    str[1..-2]
  end

then the client code would be like

  inside(e[0]).gsub(/\\(.)/, '\1')

> > Do we still disagree ?)
> 
> It's a matter of style :)  

Definitely.

> I feel you raise a lot of good points, but I find my 
> ethos on it to be different from yours.  So, I agree to 
> disagree on parts of it, but I agree with you when you 
> suggest that making things more "documentary" is 
> useful.  Perhaps I should use comments some time...

Agreed. :)

> P.S.: I just noticed that using Ruby for this kind of stuff 
> rather than C, saying nothing about the amount of code 
> needed, I never need any comments in the Ruby code to 
> go back and understand any of it, but for C I always need 
> to comment all manner of uncomplicated code.

I find the same to be true. I wonder what the reason might be but maybe it's
just that I'm more accustomed to code in a documentary way in Ruby than in
C. Go figure out.

	- Aleksi

In This Thread

Prev Next