←back to thread

1401 points alankay | 5 comments | | HN request time: 0.021s | source

This request originated via recent discussions on HN, and the forming of HARC! at YC Research. I'll be around for most of the day today (though the early evening).
Show context
CharlesMerriam2 ◴[] No.11939986[source]
Many mainstream programming tools feel to be moving backwards. For example, Saber-C of the 1980s allowed hot-editing without restarting processes and graphical data structures. Similarly, the ability to experiment with collections of code before assembling them into a function was advance.

Do you hold much hope for our development environments helping us think?

replies(3): >>11940314 #>>11941076 #>>11941813 #
1. Joeri ◴[] No.11941813[source]
Hot-editing updates behavior while keeping state, causing wildly unpredictable behavior given the way objects are constructed from classes in today's languages. The current approach to OO is to bootstrap fresh state from an external source every time the behavior changes so guarantees can be made about the interaction between behavior and state. It seems to me the equivalent of using a wheelchair because you might stumble while walking, the concern is genuine, but the cure is possibly worse than the affliction.

I don't know what the solution is. Perhaps a language with a fundamentally different view of objects, maybe as an ancestry of deltas of state/behavior pairings, somewhat like prototypes but inheriting by versioning and incrementally changing so that state and behavior always match up but still allowing you to revert to a working version. Likely Alan has some better ideas on what sort of language we need.

replies(2): >>11942273 #>>11942447 #
2. aidos ◴[] No.11942273[source]
I use hot-editing in python by default and I find it incredibly useful (now I feel crippled when I'm on a system without it). There are times when I need to reload the state completely but it's pretty rare (changing something that uses metaclasses, like sqlalchemy, is one such place).

Maybe there's something about the style I've adopted that lends itself more to hot-editing but it's definitely a tool I'd hate to be without.

replies(1): >>11960460 #
3. derflatulator ◴[] No.11942447[source]
Redux does this at a library level - http://redux.js.org/docs/introduction/
4. jasonamyers ◴[] No.11960460[source]
I'm super interested in how you do that! Can you share at all?
replies(1): >>11972177 #
5. aidos ◴[] No.11972177{3}[source]
Yes! I can! I quickly made a video with super crappy audio quality last time it came up - https://www.youtube.com/watch?v=k-mAuNY9szI

It's pretty poor quality listening but you should get the point. You can send me an email (see my profile) if you wanted to go through it in more detail.