Thanks. I keep forgetting that J and its emulators are really popular
for databases. That's not something I deal with, so perhaps that's why
I'm blind to some of its virtues.
On 11/28/2017 04:21 PM, Henry Rich wrote:
I use J for all my own work because I get results fast. Example: I am
currently working on a database project, a big key/value store written
as about 200KLOC of C++, and I proposed a major design change.
Management was supportive but concerned, so I offered to write a
simulation of the system including the changes. I said I could do it
in 8 days, and using J, I did. Well worth doing, too, as it led to
refinements in the design. I don't know how long it would have taken
in C/C++, but I would be thinking months rather than days.
The combination of interpretive execution, terseness of expression,
and array-level thinking makes me more productive using J than I've
ever been in a scalar language. I completely disagree with you about
languages being equally good. When it comes to getting a program up
and running quickly, J has an edge in most of the places I've used it.
Yes, but for rapid development isn't Python (or Mathematica) just as
good if not better?
J is a language for describing a computation. C/C++ is a language for
telling a computer how to execute a computation.
I like that distinction. But J seems to get bogged down in syntactic
issues. As a beginner I find it impossible to parse a moderately sized
tacit expression. No doubt one gets better at this, but like all
computer languages, the one dimensional space it lives in seems to
confound any attempts to represent mathematical ideas directly.
A computer language based on mathematical notation sounds like a cool
but impractical idea. It would to have to be 2 dimensional, as in fact
math notation is.
If you don't need to focus on the execution details - that is, if you
can take your head out from under the hood and think only about what
needs to be done - you can save a lot of time and effort by staying at
the higher level. You have to train yourself to do that, though, and
doing so is harder than you would expect.
Henry Rich
On 11/28/2017 3:59 PM, Andrew Dabrowski wrote:
As much as I've complained about J in these forums I've been having a
good time translating some simple code into J. Someone gave me wise
advice, to stick with explicit definitions until I know the language
well, which advice I have cordially ignored because I'm having too
much fun playing code golf with tacit tangles.
I was fascinated by J because it seemed to try to build on aspects of
the human linguistic system. Natural language unfolds in one
dimension, time, so everything relevant to understanding a particular
word in a sentence either came before it or is yet to come. J seemed
to emulate this by having verbs which relate directly only to objects
on the immediate left and immediate right. Moreover J seemed to be
following a linguistic paradigm in have nouns which are inert, verbs
that act on nouns, and adverbs which modify objects. This seemed
like a promising way to exploit humans' natural linguistic capabilities.
But maybe that's not way the J community currently sees J. Do you
love J most because of (pick only one)
1. the NL inspired syntax;
2. the suite of array utilities;
3. the concision of J code;
4. its being open-source; or
5. _____________________?
I've come to feel that all programming languages are ugly compromises
that are about equally good/bad at solving practical problems, and
the "best" language is just the one you know the best. I used to be
contemptuous of Perl, but after having learned it well enough for my
purposes I now kind of enjoy the brain teaser quality of trying to
fit problems into its procrustean bed (although I still think it's a
silly language). I have no doubt that I could live happily with J as
my primary language, but only after an extended period of being
handcuffed to it and forced to assimilate its quirks. I don't know
that I'll have the patience for that.
Is there any project in the J repos that demonstrates the strength of
J, as opposed to just showing that it's at least as good as other
languages? Any project that would have been significantly harder to
complete with say Python? Does J have any killer advantage, even in
just one aspect of programming? Or does J just appeal to you the way
pistachio ice-cream might, it just tickles your palate in a
no-accounting-for-taste way? That's how it appeals to me.
I was hoping someone could talk me into studying J seriously, but now
it looks to me like a language which, with APL, has had enormous
beneficial influence on many other languages, but which has failed to
learn in its turn from them. J seems a tad solipsistic.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
---
This email has been checked for viruses by AVG.
http://www.avg.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm