At the risk of posting twice since I am so interested in this conversation and would like to put some questions out to the J community, I am going to repost and hope that by resubscribing this will get through. I have been lurking for a while, but would definitely like to become more involved. bt
What a great discussion! I'm not going to get to technical here because it is already being done really well by those much more experienced than I. My background is in communications, distance education and television production, so my approach may be a slight excursion from the previous thread entries. I love the architectural analogy that is being used, and if it is extended a bit further I think it shows some of the "big" questions faced by many languages in their evolution. The idea behind S is really a new coat of paint as I see it. Don points out that it should not get in the way of existing J programmers. Another consideration is how easy is it to remove (cognitively) for a beginner that decides to explore the surface. The paper Don supplied indicates that he has thought about both an S-J and J-S conversion, but I raise the point so that the same conversion can be easily done for a novice who has been programmed in S! If we think of J as a type of building, one of the big questions is what type of a building do we want it to be? (I use 'we' because we all have our own views on this, but the majority 'we' will determine how the language actually grows). Bill's mention about kings and the buddha shows that sometimes building functions are designated. In these days of social networks the bottom up process is easier to do than in the past (Benkler, 2002) and are also an option. The question remains that if this building called J is to become more popular, what type of building will it be initially? A school? A factory? A research laboratory? One of the neat aspects of J is that it could be all of these things, but we probably don't have enough resources to effectively develop all of them at once. If we consider how things work inside the building of J, there are even more questions. Do we take an ecology of learning (Siemens, 2005), the studio approach to learning (Brown, 2006) or the course based curricula that we see in most schools. The answers to these questions also determine how fast and how well the language will grow based on what we want the language to do. Once the structure and function of the building is determined then the location becomes key. Where is J situated and with whom is it affiliated? A university? The Internet? A software development company? The answer to these questions will determine how the message gets out to users. An example of a group that is promoting a language through podcasts, screen demos and blogs is Cincom with Smalltalk link. We all have our own answers to these questions, but no one has all the answers for everyone else (the J development team of course hold much more influence, but even they will not be successful if they try to take the language a direction the users don't want it to go). As I said before, this is a great discussion and I look forward to the ideas that come out of it. I hope I have added and not subtracted (monadic >: as opposed to monadic <:) from the process. :) Cheers, bob ps. I list a script after the references that I wrote two weeks ago that creates a form to view tacit sentences. I tried to post in programming and it did not go through, hopefully it is not too out of place here, as it does involve a tool to provide more accessible views of tacit sentences. Feedback on my approach is welcome, but may be more appropriate in the programming forum, if someone has more luck than I creating a thread there. Benkler, Y. (2002). Coase's penguin, or, linux and the nature of the firm. Retrieved April 11, 2009, from http://www.benkler.org/CoasesPenguin.html Brown, J.S. (2006). New learning environments for the 21st century: Exploring the edge. Change: The Magazine of Higher Learning, Sept./Oct., 18–24. Retrieved March 8, 2008, from http://www.johnseelybrown.com/Change%20article.pdf Siemens, G. (2005). Learning development cycle: Bridging learning design and modern knowledge needs. Retrieved on January 30, 2007 from http://www.elearnspace.org/Articles/ldc.htm cocurrent 'rgtVisual' require'gl2' NB. load gl2 definitions in jgl2 locale coinsert'jgl2' NB. allow use of gl2... without _jgl2_ NB. --------------------------------------------------------- NB. This script creates a form that takes tacit sentences NB. entered by the user in a text box and displays the NB. selected format in a listbox. NB. --------------------------------------------------------- DISPLAY=: 0 : 0 pc display nomenu nosize; xywh 386 330 44 12;cc cancel button;cn "Close"; xywh 9 309 317 22;cc box edit; xywh 343 24 60 11;cc boxFormat radiobutton;cn "Box Format"; xywh 344 40 60 11;cc mathFormat radiobutton group;cn "Linear Format"; xywh 344 55 60 11;cc treeFormat radiobutton group;cn "Tree Format"; xywh 344 72 60 11;cc parenFormat radiobutton group;cn "Parenthesis Format"; xywh 333 11 95 80;cc format groupbox;cn "Display Style"; xywh 0 0 326 299;cc tdisp listbox ws_hscroll ws_vscroll lbs_multiplesel; pas 6 6; rem form end; ) NB. --------------------------------------------------------- NB. form creation NB. --------------------------------------------------------- display_run=: 3 : 0 wd DISPLAY GHANDLE=: wd'qhwndc tdisp' NB. gsel arg to select gl target wd 'setfont box "courier" 12;setfocus box;set box "+/%#";' wd 'setfont tdisp "courier" 12; setenable tdisp 1;' wd 'set boxFormat 1;' STYLE=: 5!:2 COLOUR=: 0 0 0 box=: '+/%#' NB. set default display directly update '' wd 'pshow;' ) NB. --------------------------------------------------------- NB. repaint if the form already exists, otherwise create it NB. --------------------------------------------------------- display=: 3 : 0 try. wd 'psel display;' update '' catch. display_run'' NB. create form end. ) NB. --------------------------------------------------------- NB. repaint tdisp according to STYLE of box contents NB. --------------------------------------------------------- update=: 3 : 0 try. ".'ZZZ=: ' , box NB. ZZZ is a global dummy that holds the tacit entry wd 'set tdisp *',;(<"1 ": STYLE < 'ZZZ'), each LF catch. wd 'set tdisp *', 'Not a valid tacit expression' end. ) NB. --------------------------------------------------------- NB. event controls for objects on the text form NB. --------------------------------------------------------- display_close=: 3 : 0 wd'pclose' ) display_cancel_button=: 3 : 0 display_close '' ) display_box_button=: 3 : 0 display '' ) display_mathFormat_button=: 3 : 0 STYLE=: 5!:5 display '' ) display_boxFormat_button=: 3 : 0 STYLE=: 5!:2 display '' ) display_treeFormat_button=: 3 : 0 STYLE=: 5!:4 display '' ) display_parenFormat_button=: 3 : 0 STYLE=: 5!:6 display '' ) display '' On -Apr25-2009, at -Apr25-20093:42 PM, Don Watson wrote: > Hi Ric, > > I can see that we are starting to agree. For example, you state: > > "I think that in reality once they got through the front door and > started walking around, they'd pretty quickly gravitate towards > the current symbol set". > > I would agree with that - at least for people like you. I would, > perhaps rephrase your statement: "A nice facade that doesn't put > first-time viewers off " by saying that: > > "The purpose of replacing any two character symbols with one > symbol is to enable new users and school students to > more easily see the relationship between book Mathematics > and executable Mathematics.". > > I don't think the work of implementing this would be that large. > It is not worth replacing every two character verb with one > symbol - just those that would serve the purpose above. > > We have to remember that everyone is not the same as you are. > I would expect users to graduate to using the two character > symbols in J at their own pace. At the extremes, some would do it > very quickly and some might stay with the single symbols indefinitely > ______________________________________________________ > > You state: > > "I think it would also be nice (continuing with the house selling > metaphor) > to give all the documentation a new coat of paint in a more up-to-date > color. In my opinion it currently looks dated, both in terms of visual > appearance and underlying structure. . . . I also totally agree that > it > would be great to have a separate document that was be more > appropriate for that purpose [for schoolteachers]." > > I want to be very clear in stating that I am not criticizing the > present > documentation - much of it is very well written. I am only stating > that its > target audience is a small group of sophisticated users. If J were > to be > targeted to a new audience, a different set of documentation would > be needed > ________________________________________________ > > You state: > > "My advice would be not to confuse your target audience with tacit > to start > with (whether it is J's version of tacit or yours)." > > I would agree with that statement, but comment that all existing J > documentation gets to tacit quickly. There is minimal documentation on > explicit J. > _________________________________________________________ > TO THIS POINT WE SEEM TO AGREE > __________________________________________________________ > > You state: > > "As I see it the only > thing stopping you from going down that route at the moment is that > you > don't like the syntax of: > > myverb=: verb def '(x + y) - (x * y)' > > I think you'll have much less resistance to the above than to this > below: > > myverb=: (([) + (])) - ([) * NB. I think this is the > equivalent in > your tacit notation?!?" > > Tacit programming is central to what J is. The ASCII > keyboard and tacit programming seem to me to be the two most > fundamental and central additions that J has over the APL that I knew > - I do not know what has been added to APL since. I am not prepared > to use J without the equivalent of tacit programming. > > Every Computer language has Computer Science > business trappings like: verb def ' ' . They don't belong in > Mathematics. > > Actually the relevant notation would be: > > myverb=: (([) +) - ([) * > > The right argument is automatically brought in to the left of a > right > parenthesis - except when a left argument is indicated and, of course, > to the right of the last verb. I have 11 characters in my definition. > You have 20. And if we are talking elegance, a fundament objective of > Mathematics, I would argue that mine is more elegant than yours. > > How would you put this expression in tacit J ? > _______________________________________________________ > > Don > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
