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

Reply via email to