Just an update on the presentation last Saturday. 2/3rds into the hands-on presentation/demo ... I lost my audience. :(
Some are interested but when I started discussing topics which requires more than 2 lines of coding (I dare not even talk about tacit programming) ... I get glass eyes (you know ... the watery ones). Hehehehehehe. Still, I'll try another presentation (again) when I'm back in the Philippines. :) r/Alex -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Alex Rufon Sent: Wednesday, March 05, 2008 2:54 PM To: Chat forum Subject: RE: [Jchat] Re: the purity of quantified conception Hello Oleg, Thanks for the links. Your examples are actually better and I'll use them on Saturday. In the last part of your email, you mention something about letting the developers feel the awesome power of interactive execution of a J Session. Unfortunately, the J session window "scares" them and the "cryptic" way of getting data from a database actually puts them off. So I created an application called SmartEOE.IDE. I did it partly as a solution to the problem and to actually build a true Model-Viewer-Controller application in C#. The idea is that the developers have a tree window for each Library->J Script and an editor window for the actual scripts. They can then run and test the script in the embedded J window at the same time it allows them to retrieve data from familiar data sources and be able to send it to the J session. I took some screenshots and uploaded them to my website in: http://amrufon.spaces.live.com/photos/cns!2B169BDA829381E6!194/ I will be emphasizing that before they embed their J scripts into their C# code, they can test it out with "real" data in the IDE. So when they are happy, they can then proceed and update their C# code with the J script, compile then deploy. Of course, I will still show them that there is an option where they can encapsulate all of the code that uses J so that it becomes a black box library. Still, my intention right now is to get them interested to use in-line J scripts and then later on convert C# modules into J verbs leaving the C# function as a wrapper method. Again ... thanks. :) r/Alex -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Oleg Kobchenko Sent: Tuesday, March 04, 2008 7:28 PM To: Chat forum Subject: RE: [Jchat] Re: the purity of quantified conception 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
