Paul Graham recommends Ruby

J

Joe Van Dyk

Paul wrote an article about his recommendations for current
undergraduate C.S. students. And plugs Ruby while he's at it.

http://paulgraham.com/college.html



"... What you should learn to get a job depends on the kind you want.
If you want to work in a big company, learn how to hack Blub on
Windows. If you want to work at a cool little company or research lab,
you'll do better to learn Ruby on Linux. And if you want to start your
own company, which I think will be more and more common, master the
most powerful tools you can find, because you're going to be in a race
against your competitors, and they'll be your horse.... "
 
P

Premshree Pillai

Paul wrote an article about his recommendations for current
undergraduate C.S. students. And plugs Ruby while he's at it.

http://paulgraham.com/college.html

"... What you should learn to get a job depends on the kind you want.
If you want to work in a big company, learn how to hack Blub on
Windows. If you want to work at a cool little company or research lab,
you'll do better to learn Ruby on Linux. And if you want to start your

I don't think he "recommends Ruby". He probably means something to the
effect of "use a dynamic language like Python, or Ruby".

As much as all of us would like Mr. Graham to "recommend" Ruby, I
think it's for the better if we don't draw conclusions.
 
J

Joao Pedrosa

Hi,

I don't think he "recommends Ruby". He probably means something to the
effect of "use a dynamic language like Python, or Ruby".

As much as all of us would like Mr. Graham to "recommend" Ruby, I
think it's for the better if we don't draw conclusions.

My take is that he sees Ruby as a good medium to delivering some good
results, because since some articles ago by him, he has mentioned
Ruby, together with other languages. But in this particular article,
"college.html", he mentioned Ruby alone, because in the context of
small companies and research labs, Ruby has more probability of being
used, while Perl and Python feature in bigger companies already.

It's like the Nasdaq -- some indices go down and up, depending on the
trend. :) But these indices are kind of irrelevant to the majority of
the people.

The Perl and Python people can keep ignoring Ruby, till the trend
changes really big. :)

Cheers,
Joao
 
V

vruz

[snip]
I don't think he "recommends Ruby". He probably means something to the
effect of "use a dynamic language like Python, or Ruby".

As much as all of us would like Mr. Graham to "recommend" Ruby, I
think it's for the better if we don't draw conclusions.

Are you arguing about the use of the verb 'to recommend' ?
or else, how do you come to the conclusion that he didn't really mean
exactly Ruby, but Ruby or something else when he has explicitly named
Ruby on Linux ?

I think Graham knows well a number of programming languages, and could
have been explicit about them had he wanted to do so.

IMHO it's for the better if we don't draw conclusions about certain
reptiles when Graham hasn't mentioned any in the entire essay.
 
P

Premshree Pillai

[snip]
I don't think he "recommends Ruby". He probably means something to the
effect of "use a dynamic language like Python, or Ruby".

As much as all of us would like Mr. Graham to "recommend" Ruby, I
think it's for the better if we don't draw conclusions.

Are you arguing about the use of the verb 'to recommend' ?
or else, how do you come to the conclusion that he didn't really mean
exactly Ruby, but Ruby or something else when he has explicitly named
Ruby on Linux ?

Well, I was taking the phrase into context -- "Ruby on Linux". He
probably used that as a specific instance of "[cool dynamic language
here] on *nix".
 
P

Premshree Pillai

It's like the Nasdaq -- some indices go down and up, depending on the
trend. :) But these indices are kind of irrelevant to the majority of

Heh. But we could always use name dropping. :)
the people.

The Perl and Python people can keep ignoring Ruby, till the trend

I don't think others are _still_ ignoring Ruby. Larry Wall after all
does talk about it.
 
W

Wai-Sun Chia

Premshree said:
Are you arguing about the use of the verb 'to recommend' ?
or else, how do you come to the conclusion that he didn't really mean
exactly Ruby, but Ruby or something else when he has explicitly named
Ruby on Linux ?


Well, I was taking the phrase into context -- "Ruby on Linux". He
probably used that as a specific instance of "[cool dynamic language
here] on *nix".

I agree. He explicitly stated "Ruby on Linux".

If going by your logic, of "[cool dynamic language here] on *nix"", I
don't think he'd have meant Tcl on Dynix[1]??? Or Lua on QNX?

The context that he was trying to bring it in is either a small R&D, SME
or startup company with small budgets.

Ruby is relevant for product-to-market-speed (dynamic, OO, etc.), and
Linux is probably due to the fact that it runs well on commodity (read
cheap) Intel/AMD hardware.


p.s. anybody else remember what this is? :)

/wai-sun
 
P

Premshree Pillai

I agree. He explicitly stated "Ruby on Linux".

If going by your logic, of "[cool dynamic language here] on *nix"", I
don't think he'd have meant Tcl on Dynix[1]??? Or Lua on QNX?

TCL definitely doesn't qualify as a "cool dynamic language". :)
 
G

gabriele renzi

Premshree Pillai ha scritto:
I agree. He explicitly stated "Ruby on Linux".

If going by your logic, of "[cool dynamic language here] on *nix"", I
don't think he'd have meant Tcl on Dynix[1]??? Or Lua on QNX?


TCL definitely doesn't qualify as a "cool dynamic language". :)

you're underestimating tcl, it is a *strange* language but it is in the
end a powerful one, being homoiconic and such..
I can say tcl will see, in the third quarter of 2005, a grow in momentum
when it gets to the market.

Ok, I'm becoming addicted to this:
http://buzz.research.yahoo.com/bk/market/market.html?_mid=7440
 
N

Navindra Umanee

Laurent Sansonetti said:

Ruby was a language that was designed and inspired from other
languages... It's interesting to know what others think and how other
languages are evolving.

Ruby blocks are just syntactic sugar for a special-case lambda. Ruby
doesn't support generic lambda half as cleanly, as say, Scheme. What
seems to be happening in the case of Python is that syntactic sugar is
being added to do what people used to do with lambda and so support
for the later is being removed.

Guido makes some good points... For example, I don't know about you,
but I always have trouble with non-trivial reduces as well.

Cheers,
Navin.
 
E

ES

In data 3/19/2005 said:
Ruby was a language that was designed and inspired from other
languages... It's interesting to know what others think and how other
languages are evolving.

Ruby blocks are just syntactic sugar for a special-case lambda. Ruby
doesn't support generic lambda half as cleanly, as say, Scheme. What
seems to be happening in the case of Python is that syntactic sugar is
being added to do what people used to do with lambda and so support
for the later is being removed.

Guido makes some good points... For example, I don't know about you,
but I always have trouble with non-trivial reduces as well.

We need eta-reduction in Ruby! :)
Cheers,
Navin.

E
 
J

Joao Pedrosa

Hi,

Ruby was a language that was designed and inspired from other
languages... It's interesting to know what others think and how other
languages are evolving.

Ruby blocks are just syntactic sugar for a special-case lambda. Ruby
doesn't support generic lambda half as cleanly, as say, Scheme. What
seems to be happening in the case of Python is that syntactic sugar is
being added to do what people used to do with lambda and so support
for the later is being removed.

Guido makes some good points... For example, I don't know about you,
but I always have trouble with non-trivial reduces as well.

I love taking a cheap shot at Python. :)

I made this post on TheServerSide:
http://www.theserverside.com/news/thread.tss?thread_id=32723#162440

Yay!

Cheers,
Joao
 
M

Martin DeMello

Navindra Umanee said:
Proper OO? Um, well how can you justify:

a = [1, 2]
a[1]

but not:

a = lambda{|x|x*2}
a(1)

Simple - [] is a method and () isn't :)

a[1] works nicely for lambdas too, btw (not that I wouldn't like to see
a(1), of course).

also lambda {|i| i+1}[2] #=> 3

martin
 
M

Martin DeMello

Navindra Umanee said:
Yeah, sorry for being unclear. I was referring to higher-order
functions i.e. Ruby blocks allow you to pass one anonymous lambda to a
higher-order function with convenient syntax... for more than that it
gets less convenient.

Well, since you cited scheme, it's the difference between

a.meth(lambda {|i| i+1}, lambda {|i| i-1})

and

a.meth(lambda{|i| i+1}) {|i| i - 1}

So that without the "one free closure" idea things would be *less*
convenient.

martin
 
F

Florian Frank

Martin said:
a[1] works nicely for lambdas too, btw (not that I wouldn't like to see
a(1), of course).
Try the 1.9 cvs version:

irb(main):001:0> a = lambda { |x| x * 2 }
=> #<Proc:0xb7c6118c@(irb):1>
irb(main):002:0> a(1)
=> 2
irb(main):003:0> a 1
=> 2
 
D

David A. Black

Hi --

This apparently got better with the anonymous blocks recently imported
in CVS, but I didn't try that yet. It's a restriction by design,
though.

I'm not sure anything's new in that CVS feature except:

my_lambda = {|| puts "I am a lambda"}

where the || (with or without a param list) tells you that it's a
lambda rather than a hash.

I'm not a fan of this; I prefer using the lambda keyword.


David
 
M

Martin DeMello

Florian Frank said:
Try the 1.9 cvs version:

irb(main):001:0> a = lambda { |x| x * 2 }
=> #<Proc:0xb7c6118c@(irb):1>
irb(main):002:0> a(1)
=> 2
irb(main):003:0> a 1
=> 2

Very sweet. How does this work, internally? Have lambdas been
specialcased at the interpreter level?

martin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top