9 ms·
Interesting experience report. I've seen some comments on hn on people starting out like you do, but realizing after a year that they need to work really hard t
by e12e 7y ago
Interesting experience report. I've seen some comments on hn on people starting out like you do, but realizing after a year that they need to work really hard to pickup old code. Do you imagine to have an easy time picking up your advent of code programs next December?
Another question - are there debuggers for these languages? Can you set breakpoints?
How do you interact with the www? Can you get some soap/json data and write a simple web service (even just a json endpoint)?
Or do you mostly see it useful to export data in some tsv/csv format, filter it through k, and write it back out?
- smabie 7y ago>Do you imagine to have an easy time picking up your advent of code programs next December? Without comoments, it might be a little tough. I've gotten into the habit of commenting each line. >Another question - are there debuggers for these languages? Can you set breakpoints? There's an integrated debugger that supports breakpoints. I really haven't used it at all since the REPL works quite well, but I could imagine it being useful in production. Especially since you can debug and fix your program while it's running. >How do you interact with the www? Can you get some soap/json data and write a simple web service (even just a json endpoint)? There's included functions for parsing and generating html and json. I haven't used them though. >Or do you mostly see it useful to export data in some tsv/csv format, filter it through k, and write it back out? I would imagine that live Q programs work by leveraging the real-time streaming functionality and just operating directly on the stream or in-memory database. For offline analysis the ability to load and store data in binary is probably useful. You can also read and write the entire working image in order to transfer state across machines or time.
- kick 7y agoInteresting experience report. I've seen some comments on hn on people starting out like you do, but realizing after a year that they need to work really hard to pickup old code. Do you imagine to have an easy time picking up your advent of code programs next December? If you don't understand something in k or APL after writing it, you probably wrote it wrong to begin with. A cool example of how much APL lends itself to this is co-dfns, which the author rewrote multiple times: https://news.ycombinator.com/item?id=13799067 https://news.ycombinator.com/item?id=13799067 In particular, the desire to make the code as "disposable" as possible has lead to me using strictly combinatory/points-free style programming in the core compiler. It makes it very easy to change things because it's easy to see the whole picture and easier for me to delete any given piece of code. Many "fixes" in my code are single character APL fixes, or maybe two character APL fixes. This whole discussion got started because of the amount of change that has happened with this code base (hundreds of thousands of lines). You can read more about that in the other historical threads referenced by dang. I've rewritten the compiler at least five times.