3 ms·
Would anybody with experience with J like to share what they did/didn't like about the language or what they did and didn't expect from the language?
by doomrobo 11y ago
Would anybody with experience with J like to share what they did/didn't like about the language or what they did and didn't expect from the language?
- saryant 11y agoJ is fun when you're just starting. Hey, you can take the average of a list of numbers with four characters of code! When you go from that to writing a minimal CMS, things are less fun (actual assignment from a professor who loved J).
- patricklynch 11y agoThe hardest part of J is revisiting old code and trying to figure out what you were thinking when you wrote it. The cognitive cost of writing the same program in J versus your current favorite functional language (let's assume Scheme) is basically the same. The J version will be much more concise, and probably quicker to write. But I found it much harder to review and extend my own J code. Where the Scheme program I wrote last month will be mostly self-documenting and easy to modify, the equivalent J program may as well be machine code. I feel like I _should_ appreciate J more, because it is powerful, but it may be too concise for me to be comfortable with. -survived the same class (Hi Ryan!)
- saryant 11y agoWe run into each other every time there's a submission about J.
- patricklynch 11y agoJust about. Same time in a year and a half?
- saryant 11y agoI've marked my calendar.
- llasram 11y agoOut of curiosity, and if it isn’t impolite to ask, where/when did this bizarre class occur?
- saryant 11y agoTrinity University in San Antonio. The founder of the CS department was a big fan of J and had been there since the 60's so no one really wanted to tell him to stop. J was only used in the Intro FP course. He retired the same year I graduated (2012) and AFAIK the course is now taught in a combination of Scheme, Haskell and ML. The intro sequence for majors also includes Scala so students there get a pretty good basis in FP.
- patricklynch 11y agoThe most recent version of the course - http://www.cs.trinity.edu/About/The_Courses/cs2322/ http://www.cs.trinity.edu/About/The_Courses/cs2322/ They'll probably rewrite the CS department site eventually, but until then, it's a repository of all the information about J you can handle.
- saryant 11y agoIronically, the reason the CS site hasn't been updated is because it's implemented in J. So naturally no one is willing to touch it.
- llasram 11y agoI've recently been learning J to try something different, and have worked through the first 60-odd Project Euler problems using it. My current assessment is that J combines the powerful computational primitives of a language designed by a brilliant applied mathematician with the FFI & I/O interfaces of a language designed by a brilliant applied mathematician. Writing purely algorithmic code feels like writing executable math in ASCII. Writing code which needs to interact with the outside system feels like programming an 80’s 8-bit microcomputer in BASIC. I have not yet learned APL or K, so I cannot yet compare and contrast. * Edited to add: most useful for me so far has been the book J for C Programmers bundled with the official documentation. It mostly takes the tack of expecting that you already know how to program and want to know how to do certain things you can do in other languages in J. Additionally the final section on "tacit programming" includes some details on the implementation which made some of the more obscure behaviors of the language more clear.