3 ms·
Also part of that group - Paul Graham's essays drove me to Lisp. I am very happy with what I've learned over ~5 years of near-exclusive CL usage. I agree - whil
by ced 12y ago
Also part of that group - Paul Graham's essays drove me to Lisp. I am very happy with what I've learned over ~5 years of near-exclusive CL usage. I agree - while CL-the-language is amazing, CL-the-ecosystem just doesn't have any momentum. It's spread too thin.
I think I'll be putting my chips on Julia from now on. It should be a near-ideal language for data science and AI research. I like that it's focused on one thing (numerical computations), so it should avoid the lack of focus that plagued most Lisps.
- scottlocklin 12y agoI also got into lisp (Lush lisp) because of Graham, and still consider it a glimpse of the promised land. The thing is, if you haven't screwed around in an APL language, you don't realize what you're missing. For numerics, the array part of the language is much more important than the rest of the thing. When I read the J sources, I recognized what Yann and Leon were trying to do in Lush, and the combination with a decent lisp repl was gold. Now all the array parts are in Torch7/Lua, along with threading, the bleeding edge of Deep Learning research, better C++ support and CUDA. Lua ain't pretty like lisp, but these are practical men, and it has everything one needs. Julia: no thanks.
- ced 12y agoI gave Lush serious consideration, but at this point, it already feels like Julia has more momentum (might be all perception, though). I actually haven't tried Julia yet, what problem do you see with it? The thing is, if you haven't screwed around in an APL language, you don't realize what you're missing Please tell us more! Give examples.
- scottlocklin 12y agoThe -idx- system in Lush is a pretty good example. Like I said above, this has now made its way into Torch7/Lua. Anyone who works with arrays and matrix math for a living needs to look at an array based language to see how it is done properly. J is the one I've been futzing with. It's a rough learning curve, as the language looks like line noise to the uninitiated. The upside is it teaches you a lot about how the array parts of other languages should work; vectorizing R or Matlab certainly becomes more obvious. As a bonus, it can be amazingly fast: single threated SVD in native J matches lapack speeds on big problems. Stuff like J encapsulates decades of insight into programming, particularly with arrays, that is mostly forgotten in modern programming languages. Learning an APL is the same sort of experience as learning Lisp: "why doesn't everything work this way?" Definitely a productivity boost if you can do a project in J; you can replace pages of Java with a line of J. That line might take a while to write if you haven't been J-ing for a decade, but it's still a productivity boost. As a bonus, J comes with a decent columnar database built in. It isn't concurrent yet, but it's pretty good for medium sized problems, and unlike something like Redshift, you can do some fancy math on the data directly using J verbs. I don't want to crap all over Julia, but it's pretty obviously a student project. I'm sure its compiler is better than that of Lush, but Lush was designed for people needing to solve real problems. Julia definitely has more momentum, but frankly, I'll stick with R/Torch7/J until Julia has proved useful for something.