Re: Programming and Martial Arts
- Posted by jeremy (admin) Jan 02, 2011
- 2393 views
I'm a bit confused. Euphoria 4.0 has everything 3.1 had. You can program in 4.0 just as if it were 3.1. You need not know anything more. Now, what 4.0 does that 3.1 doesn't is that in 3.1 when you wanted to split a sequence by ",", you had to write that method yourself or go to the archive and choose one of the 2 or 3 routines found there to do it. Instead, 4.0 comes with a well tuned, community audited split routine that allows you to perform this function out of the box.
For a beginner (non-black-belt), many of the routines included in the 4.0 library would be pretty complex to write. Sure, the docs for 3.1 were smaller but these smaller docs meant a smaller standard library, which by its very nature are routines that one would commonly use in an application. Thus, 4.0 with its standard library has only lowered the bar of the belt required to develop in it.
At the same time something wonderful has happened. To keep with your analogy, what if your Judo class only offered training up to the orange belt? Once you achieved your orange belt, you were done. You could go no further without traveling to a far distant land dramatically different from your home town. The people were different, the culture was different the language was different as well. Then, and only then, could you move from the orange belt up to the black belt, 10th degree.
With 4.0 you can program as if you are a total newbie, nothing more than the 3.1 docs are required but as you learn and get your white belt. Then as you progress and acquire your yellow belt you can begin to use the standard library features and some of the more advanced (100% optional) features of 4.0 such as sockets, regular expressions and labeled loops. As you progress on the belt gathering adventure, 4.0 offers something with each step.
Now, picture this as 3.1. Sure, you get started with a simple document (which you can use to learn 4.0 as well) but once you get your white belt and are ready to start making an application you immediately have to skip 3 or 4 belts to start writing your own split, join, file copy, character testing routines, string trimming and padding routines. You cannot gradually increase your knowledge.
4.0 provides a much more gentle learning approach that is far more suited to a beginner than 3.1 ever was or hoped to be. I was recently asked to port one of my libraries to 3.1 and I decided to look into it. A few hours later, looking at the total lack of a well designed standard library and how much code the 4.0 standard library actually allowed me not to write, I gave up the idea totally. I cringe at the thought of anyone having to learn Euphoria w/3.1. I truely feel sorry for them.
When you look at other languages and compare it to 3.1, you can see we have just raised the bar on the ability to compete with them or offer a viable alternative. 3.1 could have never competed with any modern language in terms of productivity. 3.1 may have competed with languages in the 1990s, but no further. Today GWBasic is no longer in use (at least normal use, I'm sure someone out there in some corner of the world still uses it). Why? It was fantastic back in its day but failed to move forward. As languages evolved and it became known that the ability to slice an array by a single character was common place in all applications and GWBasic did not offer such a thing while other languages did, GWBasic began its death. Euphoria (prior to 3.1) was in that state, dying and dying quickly.
If I were shopping for a language today and stumbled across 3.1, I would pass it right up. In fact, back when I started I actually passed it up for any real programming. It was only once Rob gave the blessing to the dev team to start enhancing Euphoria that I began a real user. I am not alone in this very common story. If 3.1 were to remain, Euphoria would have died. It was near death. Something has to be done to save Euphoria and keeping on with the same old failing hard core Euphoria must contain no more than X methods so that anyone can learn the core language was the dagger being shoved into the heart of Euphoria.
Jeremy