A J dictionary type is a good idea and it has been kicked around many times before. The hard part is not implementing it, but doing a careful and thorough spec that is backed by a complete model written in J.
Presented with a full spec that had community buy in, would probably be followed by implementation. On Mon, Jan 31, 2022 at 11:14 AM Alex Shroyer <ashro...@gmail.com> wrote: > I agree with Raoul that competing with Python is not a good idea. > But J can learn from Python's decisions (good and bad) to grow and improve. > In my opinion, numpy is Python's "killer app" because it brings reasonable > performance without much conceptual overhead. > The feature of Python that enabled numpy is its extensibility, down to the > C layer. > > There are other good features of Python that J could copy, in particular > the 'dictionary' data type. > The array language K has dictionaries, so J might take some inspiration > from there for integrating them into the language. > > Cheers, > Alex > > > On Mon, Jan 31, 2022 at 5:30 AM Raoul Schorer <raoul.scho...@gmail.com> > wrote: > > > Just my 2c, but I think that competing with python in general is somewhat > > delusional. I think the key point for expanding J use to have a "killer J > > app". For example, an improved clone of or excellent plugin for VisiData > ( > > https://www.visidata.org/) is my idea of a killer app. But someone here > > may > > have a better idea? > > > > Cheers, > > Raoul > > > > Le lun. 31 janv. 2022 à 03:49, Ric Sherlock <tikk...@gmail.com> a écrit > : > > > > > Yes from a data structure point of view, inverted tables get you a lot > of > > > the way (note they're also available in the 'general/misc' addon - load > > > 'general/misc/inverted' ) and I've used them to good effect in my > > > 'data/struct' addon (https://github.com/tikkanz/data_struct). > > > I agree that J's arrays are more general, flexible & powerful. But when > > > you're dealing with a tabular data set there is an overhead to keeping > > the > > > fields in a table in sync that dataframes can help with. Perhaps it's > > > something abstracting the structure so you don't have to deal so much > > with > > > the mechanics of manipulating it? At least for me :) > > > > > > On Mon, Jan 31, 2022 at 3:28 PM Elijah Stone <elro...@elronnd.net> > > wrote: > > > > > > > https://code.jsoftware.com/wiki/Essays/Inverted_Table, perhaps? > > > > > > > > That said, I think a great strength of j is that data are _not_ > > > explicitly > > > > tabular. The associations are defined in an ad-hoc manner as needed > by > > > > the programmer. This is also an essential difference between the > array > > > > paradigm and the relational paradigm (cf SQL): in the former, > pointers > > > > come with implicit context; in the latter, that context must be > > explicit. > > > > > > > > -E > > > > > > > > P.S. regarding analysis/optimization: I would love to see it, but for > > > some > > > > reason everybody is scared of building a compiler because of the > > parsing > > > > problem. > > > > > > > > On Mon, 31 Jan 2022, Ric Sherlock wrote: > > > > > > > > > Yes, I've been thinking that a Dataframes equivalent in J would be > > > > useful. > > > > > Most things are already possible with J's arrays, but conceptually > > > > > DataFrames are well understood by many now, and they make it easy > to > > > work > > > > > with datasets as named fields. > > > > > I've spent a reasonable amount of time working with Pandas, but > have > > > > > recently been using Polars (Rust backend with Python bindings) > which > > > > really > > > > > shines for larger datasets. Performance (especially read/write) is > > > > awesome, > > > > > and the LazyFrames which optimise your query/analysis plan make a > big > > > > > difference too. > > > > > I haven't taken enough time to explore it, but maybe Jd is the > > starting > > > > > point in this space for J? > > > > > > > > > > > > > > > On Mon, Jan 31, 2022 at 9:01 AM Michail L. Liarmakopoulos < > > > > > m.l.liarm...@gmail.com> wrote: > > > > > > > > > >> Hello all, > > > > >> > > > > >> I find any parallels between python and J pretty interesting, > being > > a > > > > >> person with some python experience and an interest of the > > applications > > > > of > > > > >> both python and J in mathematical modelling, analytics, > > computational > > > > math > > > > >> and perhaps computational physics too. > > > > >> > > > > >> If you'd like to bring some features from the python > math/analytics > > > > >> libraries/ecosystem in J, I'd suggest you to look at the features > of > > > > three > > > > >> libraries: > > > > >> > > > > >> - numpy (I believe most features are already covered from the > built > > in > > > > >> features of an array language such as J) > > > > >> > > > > >> - pandas ( a nice library for manipulating csv files within python > > as > > > > >> dataframe objects -- see the dataframes from the R language) > > > > >> > > > > >> - scipy (a collection of methods and functions ranging from > solving > > > > >> numerically: differential equations, evaluating definite > integrals, > > > > >> constrained and unconstrained optimization, and I believe > statistics > > > > too) > > > > >> > > > > >> There is also out there an amazing python library for symbolic > > > > calculations > > > > >> (like the ones you can do with Mathematica or WolframAlpha: > symbolic > > > > >> evaluation of definite and indefinite integrals, symbolic > solutions > > of > > > > >> diff. equations, symbolic solutions of algebraic and Diophantine > > > > equations > > > > >> etc...). It's called sympy. > > > > >> > > > > >> But I'm not sure if you'd like J to include symbolic computations > > too > > > > or if > > > > >> the aim of the language is to excel only in numerics, data > > analytics, > > > > >> stats, whatever can be quantified pretty much. > > > > >> > > > > >> My few cents as food for thought. > > > > >> > > > > >> > > > > >> Best regards, > > > > >> > > > > >> --- > > > > >> Michail L. Liarmakopoulos, MSc > > > > >> > > > > >> On Sun, Jan 30, 2022, 20:39 R.E. Boss <r.e.b...@outlook.com> > wrote: > > > > >> > > > > >> > > > > > >> > > > > > >> > I copied the first chapter of the book A Journey to Core Python > > (in > > > > >> > > > > > >> > > > > > > > > > > https://drive.google.com/file/d/1p1uIANh-LFniNNRqjDeeWWd4_-ddEZmz/view?usp=sharing > > > > >> ) > > > > >> > and have the question: do we want that J is competitive with > > Python? > > > > >> > > > > > >> > If the answer is yes, the next question is: what is the to do > list > > > to > > > > be > > > > >> > competitive and how long will it take? > > > > >> > > > > > >> > (And then the unavoidable question: WHY?) > > > > >> > > > > > >> > > > > > >> > > > > > >> > Personally I think we must aim on the niches in the market, as > > there > > > > are > > > > >> > the mathematical oriented people, e.g. the broad scientific > > > community. > > > > >> > > > > > >> > Then all people experienced in Excel or other spreadsheets or > > > > calculation > > > > >> > tools. > > > > >> > > > > > >> > Schools and universities. Financial and statistical oriented > > people. > > > > >> > > > > > >> > > > > > >> > > > > > >> > What we should do, IMHO, is > > > > >> > > > > > >> > - to emphasize the strengths of J, > > > > >> > > > > > >> > - to improve (considerably) the error handling of J, > > > > >> > > > > > >> > - to admit the steep learning curve, > > > > >> > > > > > >> > - to facilitate the use of mnemonics instead of primitives (I > > tried > > > > this > > > > >> > afternoon the primitives.ijs for half an hour, but was not > capable > > > of > > > > use > > > > >> > any mnemonic, not even with > > > > >> > https://code.jsoftware.com/wiki/Primitives_to_Mnemonics) > > > > >> > > > > > >> > - to decide which of the features, benefits or applications (of > > > > Python) > > > > >> we > > > > >> > want J to have. > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > Just my 2 cents. > > > > >> > > > > > >> > R.E. Boss > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > ---------------------------------------------------------------------- > > > > >> > For information about J forums see > > > > http://www.jsoftware.com/forums.htm > > > > >> > > > > > >> > > ---------------------------------------------------------------------- > > > > >> For information about J forums see > > > http://www.jsoftware.com/forums.htm > > > > >> > > > > > > > ---------------------------------------------------------------------- > > > > > For information about J forums see > > http://www.jsoftware.com/forums.htm > > > > > ---------------------------------------------------------------------- > > > > For information about J forums see > http://www.jsoftware.com/forums.htm > > > > > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm