On Thu, Jul 23, 2015 at 4:51 PM, Esteban A. Maringolo <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

Reply via email to