I agree with you that difficulty is half the fun, assuming you're a
developer - developers solve problems, so if there weren't any we'd be
a bit out of luck.  For myself I've somehow never, in a 26+ year
career, worked on maintaining code. I've only ever written new code. in
fact  I usually wind up with the things nobody, me included, has a clue
of how to do, tending to make them even more difficult.  On a project
last year the 'technical unknowns' could be boiled down from the 5 page
document I was given to one word, 'everything', including what the
customer (the government, unsurprisingly), actually meant by any of the
terms used in the requirements, since even common networking terms like
VPN mean something different to government employees, apparently, than
to anyone else in the world.
It's rewriting the same or incredibly similar rote code because we
start from the same basic point on every project that gets on my
nerves; writing new and often difficult code, or learning new and often
difficult languages, even learning unfamiliar domain specific
terminology, are the reasons I'm still a developer.  Difficulty though
ought to come with a bit of power.  JavaScript can be extremely
difficult, but when it's difficult and the result is that a page widget
appears in the right place, it doesn't feel like much of an
accomplishment.  Electron apps can be difficult, though the difficulty
isn't in writing them, but in building them and getting them to
actually run, especially if you're supporting Mac as well as Windows.
Unless I'm writing a VM (which I haven't done very much of at all) the
difficulties with CLANG, SLANG, along with about a dozen other tools,
just to build a simple application, doesn't feel like much of an
accomplishment either. At least not to me, I guess it does to some
people though.  I have noticed a squeaky wheel effect: technologies
that 'just work' get quickly forgotten, because there aren't 3 million
people on slashdot or wherever asking questions about how to get them
to work. JINI (now Apache River) is a good example (especially in Java,
where not much 'just works'), when the new cars that automagically
connect your cell phone and tablet to their own 4G were designed, they
had to write JINI clients for C and whatever other languages they use,
because that's what does all the automagic.  But not many people even
remember it exists.
One thing I do disagree with you on is that people prefer Windows. It
seems to me that Windows is more popular due to price, and maybe due to
the relative ease of controlling access centrally, more than anything,
and even given the lower prices on (at least as far as obvious specs
go) equivalent machines, I can't think of anyone I know off the top of
my head who would use Windows if they could afford a Mac, and everyone
I know who can, does use one.  I had to write a Mac app for Charles
Schwab that would run on any home Mac (down to G4 based Macs with a
half gig of RAM that could run at best OS X 10.5) with equivalent
features to a Windows app that required 16GB RAM to load and 24GB to
run decently, because the majority of the professional stock traders
who use Windows all day at work have Macs at home (of course they can
largely afford them).  
If I'm not developing or testing I admittedly most often use a Macbook
myself.  I do use Windows on my tablet, since it can run a full version
of Win 10 x64 (not the useless RT version) and therefore nearly any
Windows program.  I won the tablet at HP at the xmas party though, and
with a quad-core Atom CPU and 8GB RAM it's not really an average
tablet. Even then, I only use it if stuck somewhere for a while with
nothing to do. So I have to admit, if I'm not developing I don't enjoy
difficulty much.  Nor do most of the end users I know. 

I do know a few masochists who prefer Linux to Mac, most of whom don't
run a UI.  The few who do use MATE, which while being both ugly and
lacking any notable capabilities, never mind applications, doesn't use
much memory.  Exactly why a third of a GB of RAM is relevant today I'm
not sure, when both Atom and Sublime Text use more memory than Ubuntu,
Kubuntu or OS X for that matter, but they seem to feel it's radically
important.  Sublime Text makes me think of Hegel's definition of The
Sublime: "the night where all cows are black" ☺.

I'll use Linux if my Thinkpad is handier. It runs OEL with KDE, so it's
not difficult (unless you want anything by Adobe, lol), and it's pretty
quick. Though ironically the Macbook is still quicker, though it has
half the RAM and an i7 that's 2 generations older.  
I visited a friend at the IBM lab I used to work at a few months ago,
and since they know me pretty well at security, I had no problem
getting a visitor badge.  Walking through the area where they write
among other things, DB2 UDB, InfoSphere, WebSphere and associated
products, and all of ibm.com I glanced in the cubicles as I went to my
friend's desk, and the majority of the developers were using Macbooks.
The only people with Thinkpads were managers.  So maybe developers like
difficulty, but not quite as much with things that are supposed to be
already developed.  It could just be easier to give them Macbooks than
to try to get security to let them have local admin rights on Windows
...
Best quote I've seen on Windows, particularly given the source: 
"With luck, this will start Windows, and a dialogue box will appear and
tell you the default drive onto which IADS will be installed.  If
Windows doesn't start up, you could always try launching Windows
manually." 
- IADS Manual, U.S. Army.  
Since IADS requires Windows 7 at minimum, exactly how you 'launch it
manually' is beyond me, but then again I'm not in the military, and
they seem to be able to write software in ADA (software that runs,
even).  Although the Army writes IADS, it's used by virtually every
government department, not only in the U.S. but in Canada as well -
it's AFAIK the only open source, free, true WYSIWYG SGML editor, and
given FrameMaker is $999 a license, free becomes relevant when you have
a lot of employees. It has to have the worst name of any software in
the world, excepting maybe Eclipse VIATRA.
cheersAndrew Glynn   
-----Original Message-----
Date: Fri, 13 Oct 2017 07:00:46 +0000Subject: Re: [Pharo-users] Behold
Pharo: The Modern SmalltalkTo: Any question about pharo is welcome <pha
ro-us...@lists.pharo.org>Reply-to: Any question about pharo is welcome
<pharo-users@lists.pharo.org>From: Dimitris Chloupis <kilon.alios@gmail
.com>
> That is a familiar path, but still an obstacle for people to get over
> in trying Pharo - i.e. its a barrier of entry.  I've previously
> referred to this article by JoelOnSoftware, but to pull out a key
> part... "Think of these barriers as an obstacle course that people
> have to run before you can count them as your customers. If you start
> out with a field of 1000 runners, about half of them will trip on the
> tires; half of the survivors won’t be strong enough to jump the wall;
> half of those survivors will fall off the rope ladder into the mud,
> and so on, until only 1 or 2 people actually overcome all the
> hurdles. With 8 or 9 barriers, everybody will have one non-negotiable 
> deal killer.  This calculus means that eliminating barriers to
> switching is the most important thing you have to do if you want to
> take over an existing market, because eliminating just one barrier
> will likely double your sales. Eliminate two barriers, and you’ll
> double your sales again."
> 

 
****WARNING LONG POST AHEAD**** 

There numerous reason why this kind of thinking is fundamental flawed,
if not completely wrong

1) How you get people to run in this race ?
2) What makes you think that people participating in the race doing to
get first or even finish ?
3) How you are certain that those barriers are not the very reason
people participate ?

The fundamental problem is that if you base your assumption that people
are motivated on avoidance of pain, this is a very popular argument by
the way, you going to be severely disapointed. From the very first fact
that there is a 90% chance that right now that you use almost 100% of
your time one of the worst software to be ever created. 

Microsoft Windows. 

Of course you can throw claims to me that peope use Windows because
that is what's popular and widely available, but then so is MacOS is by
far the easiest to use OS out there. When you pit Windows vs Macos a
such taboo subject , fuel to so many flame wars, there is one thing
that both sides agree on and that is that MacOS is far easier to use ,
perdiod. The rest of the debate which OS is the best is up in the air
and frankly not the point of my argument. 

The fact is , we love pain, we love barriers, we love doors that slam
into our face. We love challange. But only if we find it interesting. 

Of course Windows is not the only example  (C/C++ , Java , Web dev,
computer games and the list is just endless)of the machocistic nature
of human beings. I dont need to look far, my own story about how I
started coding is more than enough . I am going to ramble about my
initiation to the realm of coding , so feel free to ignore the rest of
my post but what the hell here we go. 

>From an early age , no idea when, I was exposed to the idea of the
computer. Never used one before or saw on in person other than what I
saw in the TV I asked my father to get me one and he agreed on the
ground that I wont use it just to play games but to learn how to code.
My father had no idea what coding is, had no idea what technology is,
to this day he hates technology and he refuses to learn even how to
close a window. None , friend , relative or random stranger I knew used
a computer.

So I got this weird thing called computer and turned it on, of course
motivated to play games like any other kind in my age, I was 9 years
old at the time, december 1988. But I had a sense of honor even from
that age so I had to keep my promise. So I did and I was fascinated by
it, to the degree that I was coding as much I was playing games.
Problem is that it was mainly masochistic venture. I had one book and
one book alone, none that had any clue how to show how to turn this
thing on and of course no internet, no schools, no magazines I could
afford to buy or even know where to buy them . So in 3 years, I made
nothing special, only tiny fragments of code and I was still struggling
with basic concept like looping.

Yes, looping.

 But I already was doing things that a greek kid did not suppose to do
and I did not even fit the geek stereotype at the time (not that the
term existed at the time, I still does not exist in my language), I had
tons of friends, I was anything but shy , I was the craziest nosiest
kid suffering from the annoying syndrom of hyperactivity and with very
lmited attention span. 

I was the absolute worst candidate to learn how to code, yet I did .
Sort of. Then my father decided to send me, after me begging on my
knees, on a prrivate school, that just opened near our neighborhood for
learning. At the time time I only still had the same computer, Amstrad
CPC 6128 and knew the very basics of Locomotive Basic which was used
also by the computer as a bash like language for its OS. 

I went 3 years, the first year I did ok, an average student even though
I had by far the most experience than other kids we learned GWBASIC.
The second year I did terrible, we learned DBASE and the third we
learned CLIPPER and blow any other student completely away, I was the
only to graduate with 99.8% and our teacher was super strict on the
matter of grades. But I wanted more. 

So I went and learned C++ and assembly because why not and when I told
my teacher that, he was looking me with his eye wide open, took me
quite a lenghy discussion to convince him that this was true. 

The reason why the first year I did average was that it was too easy. I
was already familiar with Basic , sure I was struggling with basic
concepts when I started but   under the wing of the teacher (he was a
great teacher, professional coder and highly skilled at helping you
understand even the most difficult concepts) and full access to
multiple books in few months became a walk in the park. The second year
was a disaster, partly because our teacher decided to hire a relative
of his to teach us DBASE and the guy was a moron wasting his time with
telling jokes. The truth is that I did not like and still dont like
database coding. Clipper I fall in love with it at the time because
still a database orientated language but our teacher tought us, his
relative got sacked as soon as he learned that he sucked, that happened
one year after because none of the kids had the courage to go tell him
and it was probably a parent the told him and did so well I was even
offered to make a database for a considerable amount of money. Said no.
Again not interested. 

My story is nothing special, I heard it in slightly diffirent versions
by countless others in a similar situation however my point is  not to
brag, because lets face it I was just merely learning languages and not
doing any serious coding , my point is that the drive behind it was the
pain. Was the obstacles. Was the challange. 

Pharo for me is also the same story. At the time I was coding in
Python, super easy, got the job done, had no intention learning another
language because why bother when they all look the same and they would
have been much less powerful than Python. I was super happy with Python
and still is one of my favorite language as you all know. Then I saw
people on forums rambling about this weird language called Lisp , I was
interested, google a tutorial , saw the parentheses , said "hell no!"
and carried on coding in python. Then even more people claiming that it
was so amazing, that it can cure cancer and make you super sexy. I
always wanted to be super sexy so I said, ok lets give this a serious
try. So I bought a book called "Land of Lisp" very fun to read,
terrible teaching material, messy and all over the place. Community was
terrible too (Common Lisp), at least some people, rude, snobs,
evangelistic and plain stupid. A minority of people but still enough to
ruin your day.Then I was introduced to emacs, another super painful
experience, thoroughly enjoyed and one day I mentioned how cool it
would be if one could combine the simplicity of Lisp with emacs but via
a GUI IDE and without elisp which was hog slow. People immediately
recommended Squeak, I though they were messing with me because none
would pick such a ridiculous name for a language. Looked to me like a
toy language for kids and then it hit my face like a train. 

Pain, pain and more pain. 

But it was well worth, I was completely blown away from the elegance of
Smalltalk.

The learning curve of Smalltalk and Lisp are plain insane. Made
learningh DOS Assembly a walk in the park in comparison. 

But frankly thats half of the fun. 

Many obstacles, many challanges. 

And there lies my point that an obstacle is a good thing when it
becomes an interesting challange. You have to have at least a degree of
masochism to learn how to code in any language. Of course the question
is what makes an interesting challange and welcome to the abyss that is
called "human brain". None knows and we are not anywhere close in
finding out. 

What we know is that documentation is super important , whether you are
a masochist or not, you need it to progress. Problems is that
documentation is hard to create and maintain, again masochism required.
So we should not just worry about making it easier for people to reach
documentation we should make it easier for people to maintain it.
Because even masochism has its limits. Those limits are as far it is a
pleasureable pain. 

So congratulations to anyone reading this long post , you already
proven my point.

Thus, let embrace the pain of Pharo and the pain of smalltalk and
instead of trying to make it easy, boring and usual. Lets turn it to a
challange, lets turn it to a painful yet pleasureable experience 

I think to that extend we in a very good path, I think Pharo is
definetly a fun experience to use and learn. 

A huge plus also for Pharo is the community and how welcoming it is, we
take for granted but my experience with Python was not the best either.
I joined the IRC channel, other than having to endure the stupidity of
"say lol 3 times and you are banned" , too many wars over languages and
how superior Python is than anything else. Guido is god and blah blah
blah... No thanks. 

People here are open minded, still "religious" about Smaltalk but they
actually want to help , not to teach, actually help. 

I think we are a bit too obsessed on how to make Pharo popular,
Smalltalkers suffer from this insecurity of the "failure" of the "best
language of the world" not only to become popular but also to convince
coders that "is not a a relic of the past".  

But we are fine, documentation is doing grear, Pharo is improving
rapidly , the community is welcoming as ever. All we need is embrace
our successes and our failures, reject the hype, consider the crticism
and accept it or reject it and generally carry on doing what we all
love. 

Improving Pharo. 

;)

Reply via email to