Domain: jsoftware.com
Stories and comments across the archive that link to jsoftware.com.
Comments · 35
-
Re:Exposure and accessibility
Those of us in the array-programming communities have been aware of the limitations of working memory - and the concomitant problems - for decades: http://code.jsoftware.com/wiki... .
-
Math + visuals
A number of fairly simple mathematical problems lend themselves also to visual representation, which many find appealing. For instance, start with building Pascal's triangle, then display it as an image by choosing some way to map numbers to colors. Once you've done this, similarly visualize the triangle modulus some different integers - as shown here: http://code.jsoftware.com/wiki... . Doing this while extending the triangle to very high numbers can lead to discussions about the limitations of floating-point representation and other topics.
Another project that can start simply and become as complex as you want to make it is something like diffusion-limited aggregation - https://en.wikipedia.org/wiki/... - which also lends itself well to visualization and requires non-trivial array-handling.
Of course, the calculation and display of the Mandelbrot set also lends itself to any number of enhancements. -
A larger view
For a comprehensive look at what can be done with a very unusual language, the J essays are hard to beat: http://www.jsoftware.com/jwiki... . They provide context around why you might want to do something one way rather than another and are much more literary and wide-ranging than typical documentation.
The details of the vocabulary - linked to from the "Vocabulary" page (http://www.jsoftware.com/jwiki/Vocabulary) are also pretty good because they combine general definitions with explicit usage examples.
-
Re:little-known programming language
Many of the problems with APL have been fixed in J, of course if you are going to work on old APL systems it would be your first choice.
-
Essays on J
Most of the essays like this one here: http://www.jsoftware.com/jwiki... .
-
Code as a tool of thought?
There is a (rather small) minority view that code can actually improve our ability to think - http://www.jsoftware.com/jwiki... . However, the bulk of opinion sees code as an obstacle to be overcome - rightly so, given the sloppy, ad-hoc construction of most programming languages.
-
What would I code if I had no money worries
I would probably code in R, or bring back APL-360, the language developed by the late Dr. Ken Iverson, but with an upgrade different from the J language introduced by his son. ( http://www.jsoftware.com/ ).
-
Re:what about APL
One language that might be terser is J: see jsoftware.org.
For instance, Newton's method is written
N=: 1 : '- u % u d. 1'
(see http://www.jsoftware.com/jwiki/Essays/Newton's Method)
However, about the claim of APL being faster than C, this is only true if you're talking about development time (which may be the most important metric). An interpreted language like APL or J might approach the execution speed of C for operations on large arrays but the interpretive overhead will always impose a performance penalty.
-
How long to write it?
This is the question techies never want to talk about though it's often more relevant than how quickly it runs. Here's a solution in J in fewer than 20 lines: http://www.jsoftware.com/jwiki/Essays/Knight's_Tour .
-
For the J programming language
The wiki at http://www.jsoftware.com/jwiki is a very good resource and getting better as more people contribute.
-
The J language
OK - here's where I recommend J (jsoftware.com) as a first language, you all flame me, I call you all a bunch of clueless boobies, and it goes downhill from there.
Ready to get started?
Anyway, since we've already had a number of posts like this, it would be interesting to have some follow-up: what did people end up doing and how were the results?
Personally, I've had no luck getting my daughter interested in programming but she is very much into music composition, so I guess that's something. She did show some interest in an "Eggbert" game when she was little - it lets you design Eggbert video game landscapes/obstacles/rewards that were pretty cool. She was also interested a little bit in some of the J to do some math that could be represented graphically, like pictures of Pascal's triangle modulus some constant - see http://www.jsoftware.com/jwiki/NYCJUG/Projects/Pascal
. -
Re:To be completely honest
It's called "J": http://www.jsoftware.com/.
Yes, it does pretty pictures too: http://www.jsoftware.com/jwiki/Studio/Gallery. -
Re:To be completely honest
It's called "J": http://www.jsoftware.com/.
Yes, it does pretty pictures too: http://www.jsoftware.com/jwiki/Studio/Gallery. -
Re:I know why it's been 10 years
A better illustration might perform something other than scalar operations on the items, but here is a specific example of what this means using the functional language J http://www.jsoftware.com/; lines prefixed by spaces are user input, un-prefixed lines are the interpreter's response; comments begin with "NB." and go to the end of the line.
NB. First, define G and F:
G=: 1&+ NB. Add 1
F=: *: NB. Square
NB. How each one works separately:
G 1 2 3
2 3 4
F 2 3 4
4 9 16
NB. How they work together:
F G 1 2 3
4 9 16
NB. Working together using explicit composition:
F@G 1 2 3
4 9 16 -
Functional Languages
-
Re:Haskell - another write-only language like PerlEh, that was quicksort in the J language. Quicksort in Haskell looks like...
qsort [] = []
qsort (x:xs) = qsort less ++ [x] ++ qsort more
____where less = filter (<x) xs
__________more = filter (>=x) xs -
Re:Solving the wrong problem
Furthermore, there has been a language that looks a great deal like (parts of) mathematics: APL. No one uses it, and part of the reason is that the statements are far too compact--i.e. "mathematics like"--to be readable.
APL has been superseded by J. IMHO, J will not catch on, not because of the syntax. In fact, APL and J syntax are a feature, not a bug. But J is proprietary, and has small mindshare. So, no, it won't catch on...This is a mistake some people still make...We're not in the 80s anymore.
APL inventor Kenneth Iverson has passed away, but J has not been released into an open source form.
Mathematica historically has had a lot of bugs, AFAIK, because the way it was implemented was to write everything in C. Maple, OTOH, first implemented a small language (Maple), and everything else was written in Maple itself, thereby reducing the number of bugs.
I'm not a user of Mathematica, one has to follow the tradition at their school, and at mine, people prefer Maple; but the few the integrations answers I saw (Calculus I class) had somewhat bizarre answers. Maple had answers that were equal to those done "by hand." -
Re:Forth
it inturn influenced nothing else. In fact to program it, you needed a special keyboard.
You might want to have a look at J, the successor to APL. It uses standard glyphs and everything... -
Coding speed
If it was about coding speed, the question would be: "Which non-special character APL-family-language to use, J (http://www.jsoftware.com/) or Q (http://www.kx.com/)(formerly known as K)
-
Iverson's 'Calculus' and a J interpreter
Iverson, one of the developers of the APL and J languages, wrote a brilliant text on calculus which uses his notation/language, "J", to teach and compute calculus. The reason I call it brilliant is that it takes a completely different approach to calc than I've ever seen before, starting with polynomial approximations rather than limits, and including fractional derivatives and other amazing oddities. Oh, and in the process you'll learn J, which is worth the study -- you won't learn to program in it, but you'll learn to express yourself in it better than most programmers.
Check it out!
-Billy -
J SoftwareJ Software
"J is a modern, high-level, general-purpose, high-performance programming language. J is portable and runs on Windows, Unix, Mac, and PocketPC handhelds. J runs both as a GUI and in a console (command line)."
"J is particularly strong in the mathematical, statistical, and logical analysis of arrays of data. It is a powerful tool in building new and better solutions to old problems and even better at finding solutions where the problem is not already well understood."
-
Jsoftware or Maxima
-
Ken Iverson?
Kenneth Iverson, undoubtedly one of the brainiest people to have lived in the 20th Century, devised APL and its follow-on, J, and inspired several generations of programmers.
Sadly, he died just two months ago, and I guess that disqualifies him for this list. If it didn't, I can see several names on the list that are less worthy of commemoration than Iverson's. -
Yea. New boring expensive calculators!
A really smart guy by the name of Albert Einstein said
"Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world."
Here's what I imagine:
Install J J: Home on a Pocket PC, go through the J programming language tutorials, and you get a programmable calculator- sized device that calculates, computes, and can graph fluctuating hyperparabaloids in technocolor, and while being a phone, a camera, an mp3 player, and...
I got the convergence monkey in my pocket.
-Wargames -
Re:Calculator vs. PDA?
Yes. Using a properly laid out calculator rather than a qwerty keyboard is much easier for math exploration, etc. I'd like to have the power of J on a handheld but it doesn't run on PalmOS, just MS Windows CE (the last time I checked.)
-
Re:Where is APL now?
There is still an active APL community and there are APL implementations for Linux, UNIX, MacOS, OS/390, Windows...
After APL, Ken Iverson created J, a dialect of APL that uses the ASCII character set. -
The language J
No, not java. J "is a modern, array oriented, high level, high performance, general purpose programming language. J is used in a variety of industries including banking, investment analysis, insurance, derivative trading, scientific research, and education." It's available for Windows, Unix (including OS X), and PocketPC. J has many built-in functions perfect for mathematics work. There are also several free books available for download to help learn it. You'd especially want to read the excellent "J for C Programmers," to become familiar with the J way of thought (it's most likely completely different than what you're used to!).
-
The language J
No, not java. J "is a modern, array oriented, high level, high performance, general purpose programming language. J is used in a variety of industries including banking, investment analysis, insurance, derivative trading, scientific research, and education." It's available for Windows, Unix (including OS X), and PocketPC. J has many built-in functions perfect for mathematics work. There are also several free books available for download to help learn it. You'd especially want to read the excellent "J for C Programmers," to become familiar with the J way of thought (it's most likely completely different than what you're used to!).
-
The language J
No, not java. J "is a modern, array oriented, high level, high performance, general purpose programming language. J is used in a variety of industries including banking, investment analysis, insurance, derivative trading, scientific research, and education." It's available for Windows, Unix (including OS X), and PocketPC. J has many built-in functions perfect for mathematics work. There are also several free books available for download to help learn it. You'd especially want to read the excellent "J for C Programmers," to become familiar with the J way of thought (it's most likely completely different than what you're used to!).
-
Influence by little known languages.I was wondering if you have looked at little known languages for ideas in Perl? It seems that Perl is agressively going after areas that are heavily explorer in other language paradigms. Have you seen or been influenced by any smaller language (aside from the common choices of Scheme, Python, Ruby, Tcl, and the such)?
Seeing Perl6's introduction of more powerful map-like and reduce-like operators in the hypers, I would like to know if you have used and been influenced by the modern APL derivatives: Dr. Iverson's APL successor, J, is more well-known; but Arthur Whitney's K mixes more functional, Lisp-inspired abilities into the language.
-
Get Mathematica...or something similar
Computers have made it much easier to experiment with mathematical ideas, and experimenting helps you learn better. I'd suggest buying a copy of Mathematica and one of the companion books. It will do you more good than college courses until you're back in the swing of things.
For the more adventuresome, I'd try J from JSoftware. It's terser, and more intellectually challenging, but it's free and also has advantages over Mathematica in some respects. Ken Iverson has some on-line papers that make a good companion (one of which comes with the J distribution). -
Oh, grow up.Dunno your time frame, but when I studied it back in 71, it was at another college. I rather liked it, despite the pain of memorizing all those little symbols. Anyway, the symbols can be replaced by text tags. The important feature of the language is its elegant support for mathematical concepts, as this paper demonstrates. As with many languages, APL does make it too easy to write over-terse code that's hard to read. But that doesn't stop Perl from being popular.
Incidentally, APL was invented by Kenneth Iverson, who never taught at Pomona. Perhaps you're thinking of somebody involved in APL's descendent, J. But neither language was the pet project of one prof.
-
Offtopic, but what about J?
Wouldn't these people have problems with the name of Microsoft's J# programming language being so similar to their product's name? Seems like they were around before J#... but I'm not sure...
-
J language
It has been re-incarnated as J. Essentially APL without the need for a special keyboard/character set. It looks like fun, if you're into that kind of thing.
-
j & kI haven't seen anyone mention j or k , both of which are derivitives (more or less) of APL and both of which are highly functional in approach.
and how often nowadays do you see a programming environment that can ship on a floppy disk? The entirety of K was under 200k the last I checked, and it has a smoking database engine. J also is amazingly fast.