
Newbie question about worth of specializing in Smalltalk
Quote:
> My original take on this project was to get it converted into C++ or
> java
> and go from there with our in-house expertise in these languages.
Understanding that I (and probably most others on this newsgroup) have a
very pro-Smalltalk bias, I'll try to give you as objective an answer as
I can.
The feasibility of converting any software package from one language to
another clearly depends on the size and complexity of the package. In
general, conversion to another language is a difficult project and
requires good knowledge of both languages. Simply re-writing from
scratch is sometimes easier.
Converting from Smalltalk to C++ is complicated by C++'s lack of a
garbage collector. You'll find that Smalltalk applications generally
depend heavily on the garbage collector.
Converting from Smalltalk to either C++ or Java would run into static
type declarations. Smalltalk has no static type declarations permitting
all variables to be dynamically typed instead. Java and C++ require
type declarations on all variables.
Quote:
> Another reason is that we pay a yearly develpment license for
> Smalltalk which is
> not exactly cheap (in terms of our group's budget).
This can be a valid consideration. Which dialect of Smalltalk do you
use? Your vendor may be able to offer better options for your project.
Contact your sales rep.
Quote:
> The other option it to come to speed on Smalltalk.
In my experience, the speed of Smalltalk is the least of your worries.
There's a perception that Smalltalk is slow compared to C++ or Java.
This is unfounded for the most part. If you have algorithms that do
heavy floating point calculations or bit manipulations, it may be slower
than C++. I wrote a Smalltalk ray-tracer (graphics renderer) which was 5
times slower than POV-Ray (a C ray-tracer with heavy optimization).
I have (on several occasions) written performance critical sections of a
system in C and interfaced to it from Smalltalk. This is an effective
solution even if the C code is harder to maintain than the Smalltalk
code. Smalltalk development tools are far superior to those in any
other language (no exageration).
For normal business processing, however, Smalltalk is very close in
speed to C++.
Quote:
> So my question is given the proliferation of C++ and java, do I want
> to spend
> the next 6months learning Smalltalk to some level of proficiency and
> making
> a (temp) career move into this ie. Is it worth it for me, as opposed
> to just the technical merit of Smalltalk vs C++.
Ultimately, you are the only one who can make that choice. I would
suggest that learning Smalltalk would be a valuable investment even if
it was only to improve your programming techniques in other languages.
If it's any re-assurance, we are seeing a re-bound in Smalltalk
popularity recently and I expect that to continue. At our shop, I tell
managers that we don't need to hire someone with Smalltalk skills - just
someone with programming skills. Smalltalk is quite easy for us to teach
to a new person. You situation may differ.
I generally find that converting large amounts of software from one
language to another is a waste of time. It's more cost effective to
maintain it in the original language than to try porting or re-writing it.
I'm not worried about the future of Smalltalk at this point (a few years
ago was a different story).
David Buck
Simberon Inc.
www.simberon.com