Peter,
At your joung age you might have very good reasons to have chosen
Pharo over anything else as I did a lot of years ago. I
discovered Smaltalk by chance when I was 21 years old and already
had my years developing with Perl and was starting to learn Java.
Fortunately I started making a living out of it since I was 22
until today.
But if you want to make the community bigger you have to look
into why people don't chose it, otherwise we'll be "preaching to
the choir" as we many times are.
These days FP is on the bull trend, having been there way before
than Smalltalk (Lisp, Haskell, etc. and their reincarnations
Clojure, Scala...). What makes them popular most of the times is
not the techology per se, but who uses it.
Regards!
Esteban A. Maringolo
2015-07-23 13:06 GMT-03:00 Peter Uhnák <i.uh...@gmail.com
<mailto:i.uh...@gmail.com>>:
On Thu, Jul 23, 2015 at 4:51 PM, Esteban A. Maringolo
<emaring...@gmail.com <mailto:emaring...@gmail.com>> wrote:
When I talk to "new programmers" (20-25 years old),
almost all of them don't get attracted by it.
Why? I couldn't tell. Mainly because they can't use the
few tools/patterns they already learnt how to, barely, use.
As someone who (still) falls into this range I see several
(unrelated) reasons why they might not like it.
For me personally I encountered Pharo in University in
"Conceptual modeling" class, where it was introduced pretty
much as "Oh, by the way, here is this completely new
environment that you've never seen nor worked with that we
will use, but we will not tell you much about it"... so my
first experience was quite awful. I mean... I couldn't even
write the code in my favorite text editor and I had to use
this weird browser where system code and my own code were
mangled up. Image crashing meant I lost my work. Now I know I
can just replay changes but I didn't know it back then (the
focus of the class was modeling, not Pharo). Bugs (this was
Pharo 2 (and 3 beta)) were commonplace and since I had no
experience I couldn't tell whether it was my fault or the
system's fault... it was overall very unpleasant.
I later (after the course) basically foced myself to look at
Pharo again because I didn't understand why would people
bother to use it... so clearly there must have been some
value I've missed. And I don't regret that decision a bit,
but I had to go look for it. So statistically speaking from
the year I did the class only two or three students (to my
knowledge) kept their interest out of 119 (so 2-3% maybe).
Other years were no different.
Next year there will be a dedicated class for Pharo so I'm
curious if this will change somehow.
But there may be other reasons why students may not like
it... (looking again from my experience)
From university experience perspective, the previous year
(for us, and from what I talked with people it's not that
different also for other universities) was a heavy massage in
C and C++ where we were implementing very basic concepts
(hashtables, and other data structures). A year where your
main concern was to pass a automated checking system... so
mostly memory management and creating write-only code. Plus
warped concepts of OOP (so to use actual student quotes: "C++
is great for explaining OOP", "You can do OOP in pure C", or
"OOP is useless, long confusing code, full of getters and
setters, .. and slow. Inline assembler is much faster"). So
with such concepts it's hard to give them OOP language,
because they already made up their mind.
Yet another reason I can see might be that when you are young
you are more inclined to follow what's cool and modern and
popular and shit (or has the word "game" in its name).
So if today's world revolves around connectivity, internet,
JavaScript and whatnot, then giving them a isolated
environment with non-mainstream technology and a dead
language they've never heard of (I thought that Smalltalk was
an obscure language that died in '80s, before I found that
actually it's alive and doing quite well) will not be met
well with appreciation.
But no reason to stop there... there market for Smalltalk is
arguably small, so people will prefer language that is in
demand by the market (after all, I pay my bills with
JavaScript/PHP/webstuff, and not Pharo; because it's much
easier to find a job; with Pharo I would have to basically
start my own business to be profitable and then I would be
doing business and not programming).
And last (but not least), finding support for it is much
harder, since the community is smaller. So it's almost all or
nothing scenario.
Also some of the arguments here can be applied also for
functional programming (which I haven't (shame on me) even
engaged with, besides messing with Haskell in XMonad (and
multi-paradigm languages that have some functional concepts).
Finally I don't think that you should expect the same
behavior from young people (<26) as from adults. They will
have different values, views, and whatnot... I mean that's
the point of growing up and acquiring experience. All you can
do is offer this alternative option and provide support.
Being mainstream or non-mainstream is akin to self-fulfilling
prophecy. (Of course exceptions happen, JavaScript was raised
to glory because the language happen to be in the right place
(browser) at the right time (boom of modern web)).
Hmm... and this post ended up being much chaotic and longer
than I intended to... but whatever.
Peter
p.s.: I like the music analogy since I was listening to k-pop
while working (webtech), and now I am listening to ambient
music when writing about Pharo :p