Hacker Newsnew | past | comments | ask | show | jobs | submit | alexcweiner's commentslogin

They found a new shape, and I wanted to 3D print it so bad. I'm not the first, but its ~100x100x6mm so I can use it as a coaster.


This lets you access CUDA with APL

https://github.com/arcfide/Co-dfns


What do you want to know about, specifically?


Anything and everything, seriously! How easy is it to model in APL, how much did you enjoy coming up with array oriented solutions not possible in standard algol based languages? What type of field did you work in and did others in your group or company know APL? How easy was it to share/read code from/ collaborate with others? What were the pain-points? Do you now use something else that although less terse, you feel is better? If so, why? What were the coolest projects you worked on and do you think APL has a future?


While I’m learning kdb+, Dyalog remains my favourite language for hacking and is likely to remain so for much of the publishing work I do, because of its solid UTF-8 support.

Iverson was on to something with his iterators. I am still getting insights decades later. When I use control structures like for-loops (even in APL) it feels like talking with my thumb in mouth.


Can you go into more details please? How's your experience with kdb+?


I use APL as the sole language for my current job. Previous job was also APL. cumulative 4 years, and I'm under 30 yrs old, which is a bit of an oddity.


APLs are really nice, though! I think they scare away newcomers since they look like brainfuck but it's incredible how you can write fairly intricate programs with one-liners. Also can be incredibly fast since array operations are straightforward to vectorize.

I just wish the K language or KDB+ was open sourced. We'd see people from just about every industry drooling over how nice it is.


With companies like Simcorp, it doesn't sound so odd.


Do it in APL


This was my group's senior project. none of us are working on this anymore.


What group was this? University project?


I suggest checking out GNU APL. There are relatively few libraries, so there is lots of room for contribution.


Iverson's later language, J, is also open source. It doesn't require a special keyboard, has top notch documentation and online support resources and is open source under GPL3. It might or might not be a better place to get started than APL depending on a person's goals.

http://www.jsoftware.com/stable.htm


It's not really open source. Only the "core." The development environment is excluded.

(Looked into it recently and I was disappointed.)


Between the command line, scripts and Emacs the J IDE isn't really a big deal for me. Because J was a closed source commercial product and dates to the 1980's their may be copyright licensing issues tied into the code base. It's hard to release existing projects into open source.


I know a person who went through this program, and is still APLing today.


This looks really neat. Is the SDL wrapper you wrote publicly available? It shouldn't be too hard to clone.


Sorry, I was being unclear. The environment I wrote my game in is not an SDL wrapper- it's all javascript and HTML 5. It is called iKe and it is indeed open-source: https://github.com/JohnEarnest/ok/tree/gh-pages/ike

I was suggesting that it might be possible to use some graphics library (such as SDL) to write an equivalent to iKe for other APL-family languages.


This looks really neat. It may even give me a reason to learn K :)

I'm still not sure I totally understand. Are you suggesting that it would be neat to rewrite things in ok/examples or ok/ike/examples in APL and provide the draw function? Would that be enough to take advantage of what you wrote? What else would be needed?


iKe works by running a K script, which includes both calculating static data and defining some selection of functions. It then calls K functions in response to various events- mouse clicks, key presses, etc. K programs define handlers for the events they're interested in and ignore everything else. The "draw" function is the only one which is strictly required, and it returns a list of tuples which represent some bitmaps to blit to the display. It and "tick" (if present) are called repeatedly and automatically by the system to permit animation and so on.

iKe is designed to be similar in usage both to the kOS "Z" windowing library (details are unknown, but there is one example program available to the public: http://kparc.com/edit.k) and Processing, a Java-based environment aimed at beginners and artists.

I'm suggesting that other APLs could be equipped with a similar setup to what iKe provides- export an APL module with some set of event handlers and at least a definition of a "draw" method, and then use some cross-platform UI toolkit to feed the APL events and render its results for the outside world.

Does that make sense?


I think so,

It would be easy to make bitmap data with APL. What is the output of the "draw" being processed by, (or where)? From there, I think it would be easy to see where to wedge in APL.


In iKe's case, the output of draw is used by JavaScript to render to an HTML5 Canvas tag.

https://github.com/JohnEarnest/ok/blob/gh-pages/ike/ike.html...

"draw" specifically returns a list of tuples which each consist of a position (or a vector of positions), a palette of colors and then a single pixel, a vector of pixels or a matrix of pixels. (Call it a rank 0, 1 or 2 bitmap, if you like.)


I can't speak for performance, but both GNU APL and Dyalog have solved the "problematic keyboard" problem, so getting running is no longer a problem.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: