A good book for Squeak that helped me out was Objectland, which can be
found at
http://www.amazon.com/gp/product/0201731142/104-3133589-5645569?v=glance&n=283155.
I was able to check it out from my local library and it's a fun,
interesting, and informative.
An updated version of "The Blue Book" can be found at
http://www.amazon.com/gp/product/0201136880/104-3133589-5645569?v=glance&n=283155.
The original also included The Implementation, which can be found
online at
http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html.
Most of the specifics in these texts are a bit dated, but the whole
historical aspect of Smalltalk is important to get where it's coming
from.
Reading text geared for VisualWorks or Dolphin might be a bit confusing
since each dialect differs in how they actually implement the fine
details. If you aren't using these dialects I wouldn't read up on them
under those conditions, especially if you are a newbie :-)
As for Ruby being fun I would say from my perspective it is. I have the
luxury to choose it for certain things. If I was forced to use another
language to accomplish the same tasks, such as using Java for example,
the experience wouldn't be the same. I have tried to sit down and dig
into Java for my own educational purposes, but the syntax, gotchas, and
immensity of it leaves me unhappy. Like Matz' credo when he started
developing Ruby. He was looking for something that made him happy. It's
not a pure OO language without flaws. It's not a mature,
unicode-compliant languages chock full of multiplatform libraries you
can draw upon. But for me it's enjoyable to use and makes whipping up
small projects a breeze.
As for the time investment standpoint a 10-year perspective it
difficult to take into account. With the changing landscape of IT and
the software development in general at least I don't look ahead that
far. I do what makes me productive and happy. All languages survive to
one degree or another. If you want you can code away in anything from
Lisp to Fortran to Cobol to Basic to Logo for crying out loud :-)
I would strongly recommend Smalltalk from the angle that it is the
first effective and widely-adopted object oriented language. Sure
Simula preceded it historically, but what Smalltalk provided the
software community had a much larger and longer lasting impact.
Features it had over 20 year ago have just recently been matched by
other languages. If you learn it as your first OO language then picking
up other OO languages will come easier and you ultimately will be a
more efficient and effective using them.
And once you start learning these languages you can probably pick up a
couple of them in a year's timespan if you have the inclination and the
free time available. I was able to pick up Ruby, Python, and Smalltalk
within roughly a year-and-a-half to the degree that I was able to
create working production applications in them. Mastering them is
another story I suppose but it's a process not an end result :-)
I wouldn't choose a language just because it's "ancient." Just as I
wouldn't choose a language just because it's cutting edge and popular.
As along as I enjoy it, can learn its concepts and practices without
too much grief, and find resources that allow me to get my questions
answered. More obscure languages still have active online communities,
instructional text, and updated software revisions, so you shouldn't be
on an island.
If you are trying to sell your boss on a language choosing something
like Brainf**k might be tough sell versus C++, C#, Java, etc. but if
you are just exploring for yourself I would recommend learning
Smalltalk as a first language and then you should have your feet under
you if you wish to further explore the OO language realm.
Once again, good luck and have fun!
Post by c***@gmail.comPost by gregarican"The Blue Book" is a classic introduction into where Smalltalk came
from, back with the release of Smalltalk-80. If you search from the
smalltalk.org site you will find links to other books available online
for free. VisualWorks comes with loads of online documentation with the
install. Then there's the "Dolphin Smalltalk Companion" for Dolphin,
although it's a few version behind what's currently available. eBay was
a good resource for me as well in terms of acquiring books that might
be out of print.
What's the title of "The Blue Book"? And what's a good book for Squeak?
Would it be confusing if I read a Dolphin, VisualWorks or whatever
books when I'm using Squeak?
Post by gregaricanI have learned both Ruby and Smalltalk but couldn't recommend one over
the other as a broad generalization. Depends on what you are looking to
do. For a larger scale GUI project Smalltalk is ideal for developing,
testing, and refactoring your work in a thoughtful organized manner.
All interactive to a 'T' so you can inspect and modify things while the
program is actively running. For smaller projects, admin scripts, quick
modeling, etc. Ruby would be a good choice because to me it's fun to
program in and it fits with my way of thinking when throwing ideas out
there.
Is Ruby more fun than smalltalk?
Post by gregaricanAs long term investments I am not sure if either one can necessarily
have dozens of potential employers beating down your door. If that's
what you mean. While Ruby is gaining popularity due to the Rails/AJAX
bandwagon it might still be a good bit behind Java and .NET languages
in regard to preferred web programming langauges. Smalltalk's Seaside
offers similar promise and I hope gains popularity since it appears to
be very good at what it does.
I should've clarified that I don't mean working as a professional
programmer as a return to my "investment". What I meant by investment
of time and effort is simply that for lisp, and perhaps smalltalk and
forth too, the basics are quite simple but the advaned stuff takes a
lot of time and effort to learn (especially lisp) that I could be
looking at many years of commitment to be good at it, considering that
I'll be doing the learning it as a hobby.
1- If I spend 10 years mastering the language the language would still
be around and relevant in 10 years. Perhaps that's why I'm choosing
languages that are, in computing terms, ancient, since the youngest of
those three is already well over 30 years old.
2- It's flexible enough that whatever advances come up in computing
paradigms and methodologies can be implemented in the language itself.
3- That it would enable me to understand other languages and learning
to program in it would give me good thinking and habits that I can use
in others if I need to.
4- Productive: suitable for a lone programmer developing stuff for his
own use in limited hobby time.
5- It's versatile enough to cover my needs in case they change.
I'd rather spend a lot of time mastering a versatile language than
learning a few fashionable but rigid ones.
Post by gregaricanI use these languages to "glue things together" between other third
party apps or as a hobby for the most part in my professional
environment. But there are a couple of cases where I developed an
in-house custom app using them and they have stood the test of time so
far.
Good luck in your endeavors!
Thanks.