Hacker News new | ask | show | jobs
by tluyben2 3098 days ago
The APLs and especially, for me, j and k, are really interesting languagues. For one, I agree with Whitney, the creator of k, that you should not have to scroll to read your software. I think making sure at least every function points fits on a phone screen is a large boon for readability and maintainability. It is not the fact that it fits there, it is more so that if it does, you can work on that implementation mentally focused: without jumping pages or even files. I know a lot of people find j,k and even Forth unreadable, but that is really just practice. When I got used to it, I found, for instance, c# a lot more annoying to read. It is somewhat (this is a bit over the top, but you get the idea) the difference between reading Godel his original whitepaper (in German ofcourse) and Godel, Escher Bach explaining that whitepaper. Both are good reads, but the original paper, when you have the background context, is easier to read and debug that that enormous volume.

I hope to find more time to explore these avenues. For now, k and forth mixtures are my favorite to mess around with; I created a little language to do live coding on my phone for Xamarin and the forth/k mix I use is actually the first thing that is not annoying to work with on a phone screen. Because most happens in your brain and what you type is a few hieroglyphs, the development is interactive, you can walk around doing it. I hope to clean it up enough to release it (I am old, I do not like this releasing of half baked stuff usually, unless it is game related): it saves me a lot hell doing edit/compile/wait/test cycles.

For playing around, check out oK : it is a k implementation in JS, it is slow but works everywhere and has some cool features for making graphics and little games.

1 comments

I am familiar with k and oK. Is your unreleased language closer to forth or k? Sounds interesting. I checked out Sporth by a fellow named Paul Batchelor. Pretty cool stuff. He's going in different directions nowadays I think, but stil livecoding tools.
Sounds interesting! Will check it out. My language is closer to Forth; I borrowed ways of making code terser from k mostly, but I like the way of not having variables (when possible) without making too much off a mess. And the way k does that feels inelegant to me somehow.

Edit: Live coding really helps though; the whole Bret Victor thing and Light table etc but also many artists and game devs before that, know that you want sculpt your ideas first before you stabilize them. Aka you want spreadsheet programming but when you have more or less what you want, you want to 'upgrade' that code so it's not 'spreadsheet programming' anymore. We have the first (live coding environments, usually for art, Forth etc), we have the middle (REPLs, Lisp) and we have the last part (strongly typed languages and even formal verified programming), but we don't have something that flows from begin to end without having to rewrite everything every stage. I think Lisp / Clojure fans believe they do have this, but I don't find it convincing (although I love coding in Lispy's). I feel Forth has the 'beginning' down much more than Lisp, but moving from a 'working' mess to something stable and then to something rocksolid is not so easy. I keep experimenting.