As I was thinking about Don's attempts to redefine J in order to make  
it easier to teach (in theory), I also thought about my own reluctance  
to use J in my professional environment (financial).

One of the main reasons for our not using J in my company is that the  
adoption and usage rate is so low, that the cost of that choice would  
be high in either hiring specialized developers, or training our  
developers, and then, in maintaining the specialized culture that is  
necessary for long-term support of any unique development environment.

How can I commit company resources to a development environment that  
requires specialists to do development, or, alternatively, requires my  
existing Java, ObjC, Python, and Ruby developers to spend considerable  
amount of time learning J just to become productive?   And, once  
having become productive in J, are now even more critical than they  
used to be, which is not a healthy thing for any company.

To avoid the problem of depending upon a few, highly specialized J  
developers, we would have to develop a J culture, in which new hires,  
or college interns, would learn our specialized J development  
environment, and, those that were productive and found the work  
interesting would become part of the continuity of the J culture.

Alternatively, by choosing a popular (e.g., Ruby) development  
environment, with its very high levels of  adoption and usage, it's  
large library of packages ("gems"), and correspondingly large  
development pool, I can find more Ruby developers quickly, at lower  
cost than I could for J.  And, I would not need to train them much,  
except in the special classes that we would have built for our own  
purposes.

The problem of J's low level of adoption and usage is like the problem  
of esperanto.  It is a perfectly logical, artificial language, but one  
which almost no one uses.  The reason no one uses esperanto, is  
because it is not integrated into any culture, as are all native  
languages.

J, even more than esperanto, is a logical, concise, and, to some  
purists, beautiful language which allows for compact expressions of  
powerful, high-level operations.  The mathematics field is a culture  
that appreciates J (and APL and its other derivatives).  Perhaps,  
physicists also appreciate it for similar reasons.

For interesting reasons, there are some technical folks in the  
financial and investing fields that have developed a culture of using  
APL, K, and perhaps J.

But, other technical or scientific cultures, and certainly the  
mainstream, have not been exposed (as much) to APL, K, and J, and are  
thus not inclined to choose it for their computational analysis and  
solutions.

If I were the "king of J", and I wanted to increase the rate of  
adoption and usage of J, I would follow Don's idea of teaching kids J,  
and begin a program of getting elementary kids using J on their  
partially subsidized laptops so that by the time they reach high  
school, they will feel lost without their little J console.

I would also get J into the computers at the high-schools for similar  
reasons -- so that the kids going off to college will naturally want J  
on their college laptops.

I would also begin a rapid development of J apps for the most popular  
PDAs and SmartPhone, certainly one for the iPhone and perhaps Palm  
Pre, for the same reason -- get people to begin using J on their  
ubiquitous PDA and they'll "gotta have it" on their computer, too.

Get people using J's easy calculator-like features, and gradually,  
more and more people will begin discovering its other features.

And, if there's a J platform on lots of computers and PDAs, then  
developers will build more J packages to solve problems so that users  
do not even need to know that much about the J language itself, just  
use it as a platform.

Need to keep track of expenses? you can spend $$$ for MS Excel, or you  
can use this handy J Expenses package.

Need help managing your calorie tracking?  Use this shareware J  
package that provides caloric estimates on many kinds of food, and  
helps you track your diet.

Need to estimate your mortgage?  Just load up the handy J mortgage  
calculator.

This is how you create demand, and lower the barriers to adoption and  
usage.

This is the approach that Wolfram has begun to follow -- getting  
variants of Mathematica into more markets and opportunities, except  
that they aren't very far along.  I imagine they're having a hard time  
putting Mathematica into small devices without having the battery go  
dead in 15 seconds! :-)

A good example of a portable, powerful, expressive, mathematical  
language is Frink.  It runs on almost any portable computing device  
that supports Java, which includes most PDAs and smart phones.   
However, Frink is at the beginning of its lifetime, and there is no  
IDE, no set of common libraries, no large user base .. yet.

I hope this has given some food for thought.  I've admired J for  
personal reasons, and have been wanting to use J in my professional  
environment, but until recently, had not really clarified why I  
couldn't.  I'm hoping that not too far in the future, I'll be able to  
make a different choice.

-- 
Alan Stebbens





----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to