All of this is... rather vague, from my perspective.

(1) Package distribution. J let's you install a package via github.

From the user perspective, this looks like:

install'github:username/reponame' NB. updates local from github master branch
load 'username/reponame'

Or,

install'github:username/reponame@branchname' NB. updates local from github
load 'username/reponamebranchname'

Basically J's 'install' is analogous to python's 'pip' but without the
arcane machinations required to deploy a package for general
consumption.

How is this not solid?

(Notice that I am not requiring you to agree that J's package
management mechanism is solid -- I am asking for specific
criticism(s). I might agree or disagree with those criticisms. But
right now I cannot even do that, because I do not know what they would
be.)

--------------

(2) Support for traditional coding styles.

J supports classes and objects and traditional control structures.
When you do this, J is not particularly concise and efficient, but
those are there, and are tremendously useful when bringing arbitrary
algorithms into J. (Port the algorithm, run tests on it to verify
correctness, then write code to help you visualize intermediate
results and bottlenecks and use that to refactor to take advantage of
J's strengths.)

A disadvantage that some time and thought is required. An advantage
here is that this tends to give you a deep understanding of the
algorithm.

That said, if you do not have a specific application in mind, for the
algorithm, you may not have any good way of visualizing intermediate
results and/or bottlenecks.

Anyways... this *is* a speedbump. But it's not a showstopper. You can
code in a traditional style, if you do not mind the verbosity and the
rather boring performance levels provided by the system. (Which, it
seems to me, Henry has been significantly improving, though that's
still a work-in-progress.)

--------------

(3) C++ code can be used directly from J, if you understand the code
well enough to find (or create) "C" bindings for it. And, J can be
used as a component in other programs in an analogous fashion. And
then there's other interfaces like the socket interface, the file
interface and the command line interface.

You don't have to do it all in J if you don't want to,

So... I read these sorts of general statements about J's "flaws" and I
wonder "what are you talking about"?

Once again, I am not saying you are wrong, or that I disagree with you
(though I might, at some point, if I knew enough). I am saying that I
probably do not adequately understand what you think would be an
improvement.

Thanks,

-- 
Raul


On Wed, Apr 14, 2021 at 3:18 AM Emir U <[email protected]> wrote:
>
> Hi Ian, Python is an example of a language with solid package management and 
> repository (Pypi), FFI, parallelism support (e.g. Dask), and data structures. 
> Julia is another. They also both have extensive eco-systems for data science 
> oriented tasks. Python has an extensive eco-system for many other things too.
>
> >  Most of us learn to reason about optimization, monte-carlo methods, AI and 
> > data mining by deep experience of one programming language.
>
> I reason about those things in terms of mathematics and abstract structures: 
> I'd venture to say that's par for the course because its easiest. Most 
> implementations of staple algorithms on the other hand are C/C++ and it I 
> don't think it has anything to do with convenience of reasoning in C. It is 
> to do with portability, integration and performance.
>
> I was drawn to J by the grammar. The infix / suffix notation and combination 
> rules must lead to a different way of conceiving what verbs are useful, and 
> perhaps to a different way of thinking entirely. It is inspired, and I remain 
> extremely impressed by it. However, this must be separated from the utility 
> of the language for a workload which is down to the suitability of the 
> vocabulary it supports today and in the near future.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to