Live Code Update on JVM
Just happened to find the presentation about live code updates on JVM, and was looking around it. I was knowing of the live reloading which some web frameworks provides, but didn’t know about the live updating of the codes while maintaining the state (variables, etc.).
The above presentation at twitter was implementing the dynamic class/method dispatching architecture by introducing additional layers into class hierarchy. It’s interesting approach, but introducing the layers seems to exposing the complexity, especially when states need to be updated or when reflections are involved. If it becomes open-source, it might be worth trying out.
- JRebel Java Plugin: Eclipse, IntelliJ, NetBeans | zeroturnaround.com
- Reloading Java Classes: HotSwap and JRebel — Behind the Scenes
As also noted in the question session in the presentation, the product JRebel seems to provide similar functionality as above. It doesn’t
The related article covers interesting topic too. The dynamically loading new classes can cause hidden chain in the class reference which fails the garbage collector to dispose the unused objects to be maintained in the heap.
Erlang is famous for live-code updating, and will be looking around the differences.