Hacker News new | past | comments | ask | show | jobs | submit login

Author here. I know how to program, I've been doing it a long time. And yet learning a new codebase feels like learning a new language. And it doesn't help much in understanding the next new codebase. Maybe that's just how things have to be. I'd like to see if a better way is possible, if it's possible to learn faster by starting not with code but with scenarios that look like log files. "Welcome, newcomer. This is a text editor. Here's an edited sequence of events that happen when a key is pressed. Click on any line to locate it in the codebase, and to find some other scenarios that print it." Something like that, but easy enough for authors that such scenarios are actually created and kept updated. I have more details in a couple of the posts linked at the end: a) http://akkartik.name/post/wart-layers, and b) http://akkartik.name/post/tracing-tests. But yes, the article is a year old, and I hope to have something more concrete soon.



You're hinting at traceability. This might give you some ideas. http://worrydream.com/#!2/LadderOfAbstraction

Definitely watch his videos and read his other posts. I think it will be of interest to you.

I've had similar ideas but my philosophy is that we should store code as an annotated AST and that we should provide users with different editing techniques for each different programming task. If you think about how physical objects or buildings are constructed, they have multiple views (top down, wireframe, rendered, walk-thru, electrical, plumbing, etc) and can be manipulated at different levels. However with programming, it is pretty much 1 level (source code in raw text).


Yes, I'm very influenced by Bret Victor: http://akkartik.name/search_results?q=%22%26mdash%3B+bret+vi...

Yes, your goal is worthy as well. I'm interested to hear more about it, but maybe we should take it offline. My email is in my profile; feel free to get in touch.




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

Search: