You should be prepaired that developers may not be as
technically naive as their technical managers.

  http://www.csharp-station.com/HowTo/StringJoinSplit.aspx

So starting with this example you should admit that
it was simple enough so that the managers would get it
and be lured to get you guys here, but now we gonna 
talk about some real cool stuff.

.NET has vast standard libraries that handles numerous
stock operations on simple objects like strings and collections.
Whereas the forte of J is a few really powerful operations
which generalize over higher-order structures in compact
yet expressive notation(*).

To expand on the Join example, you can show how to turn
a matrix into HTML table in a one-liner.

A second example of the .NET/J distinction can be that
J has no dedicated operation for SubStr found in mostly
any language library. However is can be easily done with
Cut <;.0 and easily generalized to simultaneous multiple
substrings in a one-liner and to a sub-matrix etc.
Related examples here are running average (infix) and matrix 
convolution with <;.3 (another cut).

Of course C# developers are really excited about Linq. So you
must show Linq as they've never seen before, the way
it is done in J

  http://www.jsoftware.com/jwiki/DB/Flwor

  (*) J notation best preserves its clarity when maintained 
separately from the client calling code, so its best not 
intermingle C# and J code, but keep a thin calling layer 
with clean separate C# and J sources. To this end, 
it is helpful to organize J code with externally callable 
entry points (top-level verbs) and some kind of convention.
It is the same with SQL. Also keeping it separate makes
use of the full power of J session for trial-and-error 
experimentation--another advantage of interpretive environment
worth showing off.


--- Alex Rufon <[EMAIL PROTECTED]> wrote:

> The WAN is down so I can't work ... then I accidentally click on this email.
> 
> I am basically the ONLY J programmer in our office. Were basically a C# and 
> VB.NET software
> house but our core processing is done in J. Unfortunately, I am the only J 
> programmer (I can
> repeat that as a mantra you know).
> 
> For the longest time (going 8 years now), I've been trying to convince other 
> teams to adopt J
> into their project ... and quite frankly I continue to fail. 
> 
> You said: 
> " People don't embrace J because, having been exposed to its awe-inspiring 
> qualities, they are
> swept away by "the purity of quantified conception."  That is likely to be a 
> factor, but without
> a sense that J provides what they need in their actual context they'll never 
> go beyond initial
> dabbling."
> 
> Is VERY-VERY true.
> 
> Last Saturday, I did another presentation to the Technical Managers trying to 
> convince them to
> adopt J. But this time, I tried another approach (read this as being sneaky). 
> Instead of doing
> examples on how it works, what the language is about and its capabilities. I 
> showed them how I
> use C# with J to do the following:
> 1. Array processing
> 2. File processing
> 3. Converting MS-SQL DataSet to SQL INSERT statements
> 
> For the array processing, one of my example is creating the classic:
> Select * from FRUITS where NAME in ('Orange','Apple','Banana')
> 
> Normally, to do this in C#, they would have
>    string[] data = {"Orange","Apple","Banana"}; 
> 
> What they actually need is to have the data in this format:
> 'Orange','Apple','Banana'
> 
> To do this in C# they have to loop through each of the item in the array like 
> so:
> string result = "";
> for (int i = 0; i < data.length; i++)
> {
>   result += "'" + data[i].tostring() + "',";
> }
> // We have to remove the ending "," comma
> if (result.length > 0)
> {
>   result = result.trim(result.length - 1,1);
> }
> 
> Where if they use J, all they need to do is:
> JSession objSession = new JSession();
> string[] data = {"Orange","Apple","Banana"};
> string result;
> // Send the data to EOE
> objSession.Variable("Temp1",(object)data);
> // Process the data
> objSession.Eval("res=: ',' charsep '''' ,~ each '''' with each Temp1");
> // this can even be shortened with
> // objSession.Eval("res=: datasep Temp1");
> // Get the data back to C#
> result= (string)objSession.Variable("res");
> // SQL command
> string sqlCommand = "Select * from FRUITS where NAME in (" + result + ")";
> 
> And the other thing I pointed out is that in the original C# code, they have 
> to do this:
> // We have to remove the ending "," comma
> if (result.length > 0)
> {
>   result = result.trim(result.length - 1,1);
> }
> 
> By putting things into the perspective of what they need now, I may have some 
> measure of
> success. A few of the Technical Managers want to do another session on 
> Saturday but this time
> they will be bringing their developers and wants a more detailed discussion 
> on the language. The
> warehousing team is actually scheduling a meeting when I get back to the 
> Philippines for me to
> help with their developers on data processing. 
> 
> I hope that this continues and I can encourage more people to adopt the 
> language. :)
> 
> r/Alex
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tracy Harms
> Sent: Friday, January 25, 2008 4:17 AM
> To: [email protected]
> Subject: [Jchat] Re: the purity of quantified conception
> 
> Randy MacDonald wrote:
>  
> > Happy New Year, Tracy;
> 
> A belated Happy New Year to you, too, Randy.
>  
> >
> > My personal thought about that "law" that says all systems of
> > sufficient complexity are equivalent to lisp, my thought is,
> > that all matter of sufficient temperature becomes plasma.  True,
> > but not of much use in the ordinary world.
> 
> I had not recognized the allusion to that saying, so thanks for pointing it 
> out.
>  
> > BTW, did the xkcd  post have such an effect on the lisp community?
> 
> Touché
>  
> Perhaps there is a fine line between desiring to see the beauty of J more 
> widely recognized, and
> falling into factional squabbling. Lisp has had a small but fervent user base 
> for a long time,
> and XKCD is one manifestation of that. At the point I start letting myself 
> think "if they only
> knew..." I've fallen off the edge into fantasy.
>  
> People don't embrace J because, having been exposed to its awe-inspiring 
> qualities, they are
> swept away by "the purity of quantified conception."  That is likely to be a 
> factor, but without
> a sense that J provides what they need in their actual context they'll never 
> go beyond initial
> dabbling.
>  
> --
> Tracy
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> 



      
____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to