> 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. ;)