That getting paid bit is always a bummer....
On Mon, Dec 3, 2012 at 9:59 AM, Raul Miller <rauldmil...@gmail.com> wrote: > J's performance is a blend of the language design, Roger Hui's years > of implementation, and probably Arthur Whitney's influence. > > Also, there isn't anything you can do with lambda notation that you > cannot do in J. J's gerunds have all the expressiveness of lambdas, > and you can implement anything in them up to and including call/cc. > But you probably should not go down that path because: > > * This kind of programming is mostly only meaningful for things that > you can do in other ways, and > > * the current implementation gives awful performance for > gerunds-each-step-of-the-way code, and > > * J's arrays give you most of the power of lambdas (and what it leaves > off is arguably a good thing). > > For example, a list of 1s and 0s is semantically equivalent to a list > of variables in a constrained domain. And if you are using something > like (gensym), you should not look down your nose at array indices. > > In other words: you could easily implement threads using gerunds, but > the performance will be so awful that you would not want to use them > in the current implementation of J. > > Anyways, if you like Scheme, I'm not sure why you would have a problem > with syntax from the 60s. And, for that matter, J is something of a > dual of Scheme. For example, J's dyads serve a role similar to > Scheme's cons cell, but without bogging down data representation. > > Also, as for booleans -- I have a strong opinion that booleans should > be 1s and 0s and not some other data type. If you are calling them > booleans, instead of truth values, it just makes sense to be > consistent with what George Boole was doing. > > That said, when I want to translate J into a language other people > understand, Javascript is usually my first choice. > > But one of the nicest things about J is one of its most reviled > features: it's line oriented. So I can iterate testing an expression > by recalling the previous line, editing it, and hitting enter. In > contrast, for example, in DrRacket I have the annoyance of having to > position the cursor at the end of the input region before hitting > enter, and even then I do not get a session log showing the history of > statements with their associated results. > > Anyways, it's great that arrays are starting to appear in other > languages. I can hope that within the next years languages like > python will have the array expressiveness that APL had back in the > 60s. But languages like python have so many irregularities that I > don't see any reason to use them over something like perl (well... > except I'm getting paid to use them...). > > -- > Raul > > On Sun, Dec 2, 2012 at 12:43 AM, Alex Giannakopoulos > <aeg...@blueyonder.co.uk> wrote: > > I am not sure Ian really meant BASIC when he said "people who know > BASIC". > > Perhaps the gist of what he meant was "people who want to do basic > > programming". > > > > No-one really uses old-style BASIC today, regardless of what marketing > > blurbs may say. I have *never* seen anyone recommend it to people who > ask > > "what language should I start with?" on any programming forum whatsoever. > > > > OTOH, the languages that J would be competing with, if it wanted to > become > > more widespread, would be today's popular scripting languages - the likes > > of javascript, python, ruby, even PHP. These are today's "BASIC"s. And > > believe me, they certainly have facilities for booleans and not only > that, > > many of them are functional, or functionally oriented, as well as having > > popular features like-object orientation and other modern concepts. > > > > The J community would be doing itself a disservice (perhaps even > absenting > > itself from reality) if it thought it was competing with the world of > > BASIC!! We are not in the 80s any more. Javascript will easily do maps, > > and its default container is basically a dictionary. It features an > > interesting and very powerful way of doing OOP using prototypes. Python > > has handy things like list comprehensions, several tons of (established) > > libraries and is fast moving towards becoming the sane individual's Perl. > > Even my own favourite (if not widespread) educational language, Scheme, > is > > starting to make a serious appearance with systems like PLT/Racket which > > are pretty complete. All these languages can be used to make teaching > > examples as elegant as Bo's, in almost as few lines. And elegant though > J > > might be, nothing will ever beat lambda-calculus in that arena, not even > > Iverson notation! (personal opinion, I know) > > > > So let us not kid ourselves with anachronisms re line-numbers in BASIC... > > sheesh. > > > > The question is what is the real advantage of J. Why are we using it? > > For me the answer would be power of expression and PERFORMANCE. I doubt > > that I would use it if it wasn't about 100x faster than a good Scheme > > interpreter. I won't even mention the superiority in terms of space > > requirements. You can get near-C performance, without the associated > > overhead baggage, plus functions for free. > > > > These are *real* issues, otherwise why bother? So, I see J as an > > incredibly flexible and powerful RAD environment, which frankly, I think > > has no peer at the moment. From concept to production in amazing time. > > Not to mention that if it ever gets to use CUDA-like GPU technology, it > > will blow *everything* out of the water. > > > > So I think that *THIS* is what has to be emphasised when people ask why > the > > should bother with the steep learning curve. Frankly. I'd struggle to > > think of a reason why anyone would otherwise bother with concepts like > > capped forks, a binary infix syntax from the 60s (which may be very wise, > > but certainly not in today's mainstream) and boxes. And while I love the > > array operation philosophy, it is starting to appear in other languages > > too, you know.... no disrespect meant to anyone or anything, just trying > to > > reflect something of the attitudes I see out there every day. > > > > ====== > > > > Love the cos rule suggestion by the way Ric, THAT'S what I'm on about, > > that's the way to showxase J for beginners! > > > > Should be included in the math/misc/trig file. (At the moment it only > has > > the most basic of stuff, function redefinitions and some dfr-rfd stuff - > > hardly a beginners trig library.) > > > > > > > > On 1 December 2012 23:10, Boyko Bantchev <boyk...@gmail.com> wrote: > > > >> On 1 December 2012 16:17, Ian Clark <earthspo...@gmail.com> wrote: > >> > A "training wheels" form of J, tailored to people who know BASIC, > >> > would be so easy to write. > >> > >> Not necessarily. A BASIC thinking can be so different that hardly > >> any tailoring could possibly exist as a bridge to J. > >> > >> > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- John D. Baker bakerj...@gmail.com ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm