The Artima Developer Community
Sponsored Link

Weblogs Forum
The departure of the hyper-enthusiasts

262 replies on 18 pages. Most recent reply: Dec 20, 2006 2:11 PM by Carlos Neves

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 262 replies on 18 pages [ « | 1 2 3 4 5 6 7 8 ... 18  | » ]
Patrick Hurley

Posts: 1
Nickname: phurley
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 3:22 PM
Reply to this message Reply
Advertisement
I speak most of my piece here (http://blog.hurleyhome.com/articles/2005/12/19/ruby-hyper-enthusiats), but to summerize. All languages have strengths, weaknesses, sytax issues and enthusiasts.

I agree people should not run from fad to fad and need to research the strengths and weaknesses of each language, but I think you are confusing critism of some enthusiasts with critisms of the language.

Additionally, you nitpick Ruby syntax (the Perlisms, which are largely historical and for the most part not in common usage), while ignoring historical warts in Python. These are not significant issues in Python and they are not significant issues in Ruby -- they are just differences. Each language will appeal to different people for a variety of different reasons.

I don't expect that many core Python developers will be switching to Ruby or many core Ruby developers switching to Python -- the languages are too similar both in power and nature. Make your own choice and have fun :-)

Dick Ford

Posts: 149
Nickname: roybatty
Registered: Sep, 2003

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 3:34 PM
Reply to this message Reply
Call me cynical, but this seems more of a defense of Python than "don't jump on the hype bandwagon folks" article. I watched Bruce's Berkley video about Java 5 and he did his fair share (rightly so) of Java bashing and it's no secret that Bruce has been evangelizing Python recently.

Fine Bruce, you prefer Python over Ruby, but I read Beyond Java and I didn't see any Python bashing in it.

Joel Redman

Posts: 3
Nickname: redmjoel
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 3:59 PM
Reply to this message Reply
I think that much of the problem here is that in order to understand a language, you must not just understand the syntax, but also the thought processes and idioms to use the language.

Ruby's thought process is very different from Perl's, or Python's. The blocks in Ruby are a very powerful abstraction and are central to the Ruby mindset. In Python, you also have blocks available, but they are peripheral. In Ruby you have backwards support for Perl, but Ruby style frowns on things such as $ variables.

I think it's important to separate what _can_ be done with the language with the "moral" use of that language.

In theory, for instance, I can do anything in ML, Java, Perl, C, C++, Python, etc, which can be done on a computer. In practice, though, the process by thich you come up with a solution is definitely affected by the language you use.

In C++, I approach most tasks with RAII in mind. I.e. leaving a block of code should automatically free any objects allocated by that code, and in a predictable way. In Ruby, I get some of the same behavior with one of the File.open calls, or Dir.chdir, or any number of other resource allocations. Blocks are useful for this type of behavior. Blocks also mostly replace loops in Ruby.

I can't speak for the thought processes in Python (it's not my first language), but it seems clear to me that the two ways of thinking are not terribly compatible. If you grok one you find it hard to switch to the other because you find it hard to use the methods from one language in the other, but they still LOOK similar.

With respect to the article, the Ruby hyper-enthusiasts will soon learn that Ruby isn't a magic bullet either, and move on to something else. Just like they did with VB, Smalltalk, Java, .NET, UML and any number of other technologies over the years.

Erik Wessel

Posts: 1
Nickname: wesselej
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 4:03 PM
Reply to this message Reply
I think this whole idea of "hype", and therefore the idea of "hyper-enthusiasts", is a distraction. There are people out there who dislike the fact that Ruby is getting a lot of attention, very quickly, because of RoR and that it's drawing that same attention from their language of choice. I can see how those who like Python feel that Python should be getting the same attention that Ruby is now getting. In many ways they are similar. Guido and Matz both have stated that they developed their languages in response to Perl.

But the thing that makes Ruby so appealing right now is its simplicity, which is something I personally have not found in Python. Several years ago, Python was enjoying a surge in publicity because of things like Mailman. I decided to try getting into it, went out and bought Learning Python, and immediately got bogged down in things like setting the PYTHON_PATH. It didn't just work out of the box.

Several years later, I was involved in a project using Zope. So the whole environment was set up for me, finally, by a web framework. I was actually happy coding procedurally in Python. Zope made it easier to program in an MVC fashion. But the other developers I worked with didn't understand that, and still did it all backwards. But when it came to OO programing, I was lost again. Zope itself almost discourages the use of custom objects. Despite this, I was determined to use them, but learned that creating objects involved an abundance of silly ways of doing things. (Why do you have to send "self" as a parameter to __init__? Doesn't the object know itself?)

As far as databases go in Zope, it's a disaster. There's no way to easily create a single connection to a database that can process all the SQL you throw at it. Those who set up the environment created way to do it, but it required making a new connection to the database for *every* SQL statement. Five statements on a page makes five connections to the database. Ugh.

All of this happened before I even heard about Ruby. I heard about it and started investigating before RoR even showed up on the scene. And I liked it immediately upon seeing it. I downloaded an interpretter and could run a script that used my own custom objects the first day I started learning about it. *Then* RoR came along and showed me even more great things about the language.

So, this from a person who has used Python professionally and only played with Ruby. I'm not even saying Python is bad, just that it's not as easy as Ruby. And that's why so many people are finding RoR and Ruby attractive.

Joao Pedrosa

Posts: 114
Nickname: dewd
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 4:19 PM
Reply to this message Reply
"Either you don't like the conventions set by PEP 8 ( http://www.python.org/peps/pep-0008.html ) and PEP 257 ( http://www.python.org/peps/pep-0257.html ), or you didn't even bother looking for python style guidelines before bashing Python on this.
Which one is it?"

Both. I prefer the Ruby conventions over the Python conventions, even though I have had some opportunities of using Python and getting a little acquainted with it. It's possible that I have had the opportunity of reading a Python guideline in the past (maybe the PEP 8).

"Arguments please, the only OO-related thing that I saw could be considered superior in Ruby 1.8 (compared to Python 2.4) is the handling of properties..."

I have seeing OO in Delphi, Java, Ruby, and a little in Python. I prefer Ruby for programming, but I don't think I can contribute with a philosophical discussion on OO or programming in general. As I have said in a previous post, I'm a very "hands-on" person, so feeling comfortable while programming is essential for me, and I prefer the OO way by a long shot, mainly because of the "methods + data" in the objects, plus polymorphism and a good documentation, all of which Ruby provides in a nice way. Also, the big plus of Ruby over the others that provide OO programming, is that Ruby seems to favor ease of use for the ordinary people like me. I like typing a regular expression like "if /^\s+$/ =~ text; puts 'matches a string filled with only spaces.'; end".

After Delphi and Java, I wanted a good OO shelter, I think, and I found Ruby in two tries. I'm very thankful for the people responsible for that, including all the Ruby community and Matz and Dave Thomas in particular. I don't want to move from Ruby for at least three years, but I expect C# 3.0 to be a very good static typed alternative in the future. I really want them to create something good so I don't have to use Ruby all my life. hehehe.

Cheer up, guys. Cheers.

Gregor Zeitlinger

Posts: 108
Nickname: gregor
Registered: Aug, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 6:20 PM
Reply to this message Reply
> Ruby, for example
> has coroutines, as I learned from Tate's book. The
> expression of coroutines in Ruby (at least, according to
> Tate's example) is awkward, but they are there, and I
> suspect that this may be why coroutines -- albeit in a
> much more elegant form -- are appearing in Python 2.5.
C# 2.0 has introduced coroutines as well (the yield return statment). It may not be exactly the same - just like Java's anonymous inner classes are not true closures.

Considering that Sun has basically not changed the core language of Java until C# came along, I could imagine that coroutines will find their way into Java in one way or another, once they become popular in C#.

Brian Ford

Posts: 153
Nickname: brixen
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 7:38 PM
Reply to this message Reply
> Where did the hyper-enthusiasts go? To Ruby, apparently.

Why is it that the word most associated with Ruby and Rails outside of those communities is 'hype', and now 'hyper-'?

Communication is often fraught with misunderstanding, and perhaps I am guilty of misunderstanding, but that opening sentence sounds disparaging, and seems to suggest that Ruby is not legitimate, or does not have substance. While that initial impression may be tempered by things said later, the post nonetheless has a general air discounting Ruby and Rails.

Arguing for one language being superior without carefully laying the grounds for the comparisons is pointless. That said, I have used Python enough to know that I like it better than C, C++, or Java, which I have used enough to accomplish something nontrivial.

I learned Ruby much later and now I find that language feels best for me. But, your mileage may vary. I mentioned to my Python mentor, "the reason I like Ruby is doing something like this: yield if block_given? unless flag == 'never yield!'". He responded, 'because it's backwards?' Not unless 'go to sleep if you are tired' is backwards, I replied. I find constructions like these to be extremely helpful; he disagrees. But, at the same time, he hardly calls me a hyper-enthusiast.

I also find blocks extremely useful. They are not a simple idea. And their inclusion in Ruby _is_ a compelling reason to use Ruby. Perhaps you should try them. And then present in Python why you don't need them, which might actually render them a non-compelling reason to use Ruby, aside from your simple assertion. Some people think they are a good idea in Python (e.g. http://www.python.org/peps/pep-0340.html).

Please provide examples of 'Perlisms' that you find to be flaws in Ruby. Include as well examples of their usage in such technically sound projects as Rails. (Hint, there is a 'Perlism' in this response; can you spot it? Is it a 'flaw'?)

And for anyone who wants to answer in depth how Python and Ruby differ, why not port Rails to Python? Then we can really compare apples and apples and perhaps gain insight into the languages deeper than the common but vacuous sentiment, 'I can do the same things in either language.'

Before making rather empty assertions about why Ruby is a hyper-fad, you may consider actually coding a nontrivial project in Ruby and then describe, with code fragments, what you dislike about Ruby and how Python, again with code fragments, is technically better, along with the basis for the comparison, of course.

I actually own two of your books, and found them to be very helpful. Sadly, after this hyper-defensive and ill-thought post, "I had better double-check" what I learned elsewhere. Perhaps in the 'Programming Ruby' book. ;)

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 7:52 PM
Reply to this message Reply
Ah WebObjects - great framework - when it was written in ObjectiveC. Now its been ported to Java and it is much less attractive, more rigid, harder to work with, and Apple isn't doing a good job supporting it.

Java killed WebObjects. If 4.5 were resurrected I might give it a look, but the 5.x versions all blow chunks.

FWIW, I'm doing all my work in Smalltalk/Squeak/Seaside these days and loving it. Smalltalk is what all these other langauges are trying to become. Might as well just go to the source.

leouser leouser

Posts: 9
Nickname: leouser
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 7:59 PM
Reply to this message Reply
Does anyone have an Open Source Ruby application they can point me to besides "ROR"( prefarbly a desktop app)? I wouldn't mind analysing some of its code, if one exists, so I can get a better sense of why its going to be a great desktop application programming language for me to use.

I have to nod in agreement that having multiple implementations of List, Set or Map is a good thing. There are times when I need a TreeMap or TreeSet, times when I need just a HashMap. The point is, there there when I need em.

gotta run!
leouser

Joao Pedrosa

Posts: 114
Nickname: dewd
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 8:21 PM
Reply to this message Reply
Find one that you like:
http://raa.ruby-lang.org/
http://rubyforge.org/

There are two that I know of in Ruby-GTK+:
Alexandria: http://gnomefiles.org/app.php?soft_id=110
Rbbr: http://ruby-gnome2.sourceforge.jp/hiki.cgi?rbbr

But the most well known must be the Free Ruby IDE:
http://freeride.rubyforge.org/wiki/wiki.pl

But you know, with open source it's hard to keep up. So maybe a look in the RAA or RubyForge might show something interesting.

leouser leouser

Posts: 9
Nickname: leouser
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 9:18 PM
Reply to this message Reply
Thanks for the links, finding one I might like is going to be hard. Ill skip RIDE, won't have too much fun playing with a garden variety IDE, Alexandria won't get much exercise, rbbr probably falls in the same category as RIDE. If I were a ruby enthusist RIDE and rbbr probably would be good. I need a cool concept app, something that hides its rubyness.

leouser

Joao Pedrosa

Posts: 114
Nickname: dewd
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 9:20 PM
Reply to this message Reply
That's what I'm creating, but it's not open source yet.

Steven E. Newton

Posts: 137
Nickname: cm
Registered: Apr, 2003

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 9:37 PM
Reply to this message Reply
> Does anyone have an Open Source Ruby application they can
> point me to besides "ROR"( prefarbly a desktop app)? I
> wouldn't mind analysing some of its code, if one exists,
> so I can get a better sense of why its going to be a great
> desktop application programming language for me to use.

How about a Ruby/Cocoa application? I'm speaking of the graphical TestRunner for Ruby's Test::Unit I wrote: http://rubyforge.org/projects/crtestrunner/
It provides an interface similar to jUnit's for running ruby unit tests.

Also check out Rake and RubyGems. Actually any of the top projects on RubyForge are worth digging into.

Cedric Beust

Posts: 140
Nickname: cbeust
Registered: Feb, 2004

Re: The departure of the hyper-enthusiasts Posted: Dec 19, 2005 10:22 PM
Reply to this message Reply
> """Python still struggles to support OO as well as Ruby
> does"""
>
> FUD and nonsense. If Python advocates were to use such
> slippery reasoning, we'd be saying that Ruby isn't OO
> because it lacks multiple inheritance and it's unsafe
> because its builtin types lack encapsulation.
>
> Stop repeating religious slogans and try thinking for
> yourself.

I'm not the original poster but I agree with him.

Here is a quick question to make the case that Python is not really OO, then: why do I need to pass "this" (sorry, "self") to each method?

Last time I used this trick, it was to emulate OO behavior in C.

Python was not designed OO from the ground up. There's nothing wrong with that, but trying to retrofit OO features to it is taking its toll on its consistency and syntax.

--
Cedric
http://testng.org

D H

Posts: 13
Nickname: dug
Registered: Jul, 2003

Re: The departure of the hyper-enthusiasts Posted: Dec 20, 2005 12:27 AM
Reply to this message Reply
I highly recommend skimming thru these short resources to get a much more in depth feel for what ruby is like, if you are already familiar with java or python like myself. I did recently and I am finally "getting" ruby much better (the perl-isms turned me off from seriously looking at it earlier, just like it took me a year to get over python's indenting):

Ruby user's guide:
http://www.rubyist.net/~slagell/ruby/
10 things every java programmer should know about ruby:
http://onestepback.org/articles/10things/
Coming to ruby from java:
http://fhwang.net/blog/40.html

Things I like:
-blocks
-you can be more expressive in ruby and essentially twist it into different domain-specific languages, see: http://blog.ianbicking.org/ruby-python-power.html
-I like how standalone functions essentially become protected extensions of the object class (like C# 3.0 extension methods):
http://www.rubyist.net/~slagell/ruby/accesscontrol.html
-using "end" instead of curly braces (easier for beginners and more readable)

Things I don't like and never will:
-awkward syntax for some things like symbols and properties
-awful perlisms like $_,$$,$0,$1,?,<<,=begin
-80's style meaningless and over-abbreviated keywords and method names like "def", "to_s", "puts", etc.
-:: (double colon) vs. . (period).

Ruby is definitely better than python, but still not perfect, and still an order of magnitude slower than statically typed languages.

Flat View: This topic has 262 replies on 18 pages [ « | 1  2  3  4  5  6  7  8 | » ]
Topic: The departure of the hyper-enthusiasts Previous Topic   Next Topic Topic: Java Applets + Ajax = ?


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us