Ralf Müller
12/28/2004 10:53:00 AM
Am Dienstag, 28. Dezember 2004 09:02 schrieb Darren Crotchett:
> I'm trying to get a feel for the philosophical differences between
> Smalltalk, Ruby and Python. I realize that many of the technical
> differences are only going to come from hands on experience. And, I'm sure
> they all have their good and bad points. I'm just trying to get some idea
> of why some people choose one of these languages over the other.
>
> Without any point of reference, this could be a difficult question to
> answer. Therefore, I thought it might be more helpful if I gave a little
> background info on my experience with those languages and my level of
> experience in general.
>
> First, let me say that I am a 4th year CS student (with 3 classes left).
> I've taken classes in C, C++, Ada and Smalltalk. I have done just enough
> C++ to come to the conclusion that I don't like it. Ada is OK (until I get
> to generics), if I have to compile something. But, Smalltalk seems to make
> the most sense to me out of the languages that I've been exposed to so far.
>
> Regarding the 3 languages in question, here is how I summarize them:
>
> Smalltalk. I like it. Smalltalk feels "natural". It seems very
> intuitive, consistent and predictable. After learning the basics, I could
> often guess how to do stuff. But, I get the impression that the Smalltalk
> community is shrinking (or at least, stagnate).
>
> In class, we used Cincom's VisualWorks. VisualWorks seems like it has a
> lot of nice features. But, it also has too many quirks that get on my
> nerves to the extent that I couldn't actually use it unless those oddities
> were fixed. I do like Smalltalk, though.
>
> Python. Its strength seems to be its popularity. To me, however, it
> really seems to lack consistency. I've read quite a bit about the Python
> way of doing things. Yet, for the life of me, I can't seem to get the hang
> of it. For example, I may have the wrong idea, but one thing that bugs me
> is the way that "self" must be included as a parameter to the __init__
> constructor function in a class. That seems weird to me. Who else is
> going to call that __init__? And, I can never seem to remember if it's
> str.length() or length(str). It's like Python wants to appeal to people
> more familiar with C so as to not scare off newbies. Maybe it's just me.
> Maybe after awhile I'll see the consistency.
>
> Ruby. I've been reading up on Ruby, a little. I just bought the
> Programming Ruby book. It seems to be a lot like Smalltalk. I'm thinking
> that I like it better than Python because it seems a lot more consistent
> like Smalltalk. But, then I question, if it is good because it is a lot
> like Smalltalk, why not just use Smalltalk? I'm sure there must be some
> good answers to this question.
>
> Also, is the Ruby community experiencing a lot of growth or what?
>
You're mixing different things:
1. for Smalltalk, you mentioned stagnation of the community: a fact, true or
false (or at least you're not satisfied)
2. for python, the popularity is good, but you get a bit annoyed, typing
strange commands: your feeling, and i know that, too.
3. for ruby: you're feeling, that it's quite near to smalltalk, so why not
smalltalk: Well:
Because, you posted that message?
to 1.: This list IS active and VERY helpfull (BTW: thanks a lot). so, if this
is the only point, forget smalltalk. But it's not, isn't it?
to 2.: ruby has such a nice grammar, that i believe, you could write poems
with it. I made the experience, that commands can be typed as I think they
can.
to 3.: Your gave the answer yourself: you're unhappy with it.
I think, you have to try ruby within something the other langs become odd.
Anyway, there is no way of telling you the advantages and disadvantages. It
seems to be something you feel.
This is not meant to be arrogant or slt. What you feel, is important, because
any language has an inner logic; and this logic should be your friend.
I tried C++, had a small Java-Project and felt that these langs do not fit to
my mind. Then i tried Perl and guess what...., Then I thougth Python would be
the best choice, but after a while i became disappointed whit it.
unfortunately my employer wants me to use bash, perl and php.
So, there is now way of using ruby in big projects. Therewith other members of
this list will be more helpfull.
But for all the tiny things, that'd waste hours and hours, I use ruby and get
them done in a few minutes (logfile analysis, code analysis, database
manipulation).