The IPython autoreload extension does something quite similar to what has 
been discussed here ( 
https://ipython.org/ipython-doc/3/config/extensions/autoreload.html ). 
There are cases where it's actually very convenient, e.g. if you have 
results from a long-running calculation in an IPython notebook interactive 
session and you notice that you should change one of the classes, but don't 
want to rerun the whole calculation.

Some of this one gets almost for free in Julia with the Autoreload.jl 
package, since methods are outside of types in Julia, so there's no need to 
search for all object of a modified type in memory and add/modify the 
methods like in Python. (Modifying inlined methods is a bit of a problem, 
but one could probably extend Autoreload.jl to inject @noinline into 
modules.)

Adding fields would only be possible in Julia if it were possible to 
overload field access ( https://github.com/JuliaLang/julia/issues/1974 ). 

That's essentially the way one does this in Python. You add a property 
getter y to class X, which allows you to access x.y:

class X(object):




On Friday, February 5, 2016 at 8:17:47 AM UTC+1, Tomas Lycken wrote:
>
> My main concern is predictability. 
>
> Imagine that I define a type Foo and start playing around with it - define 
> some functions that work on foot, perhaps one or two types that hold foos, 
> and manipulate a bunch of Foo instances.
>
> Then, I redefine the Foo type - say, I add a field. Which of the other 
> things that I have defined are still valid?
>
> If I understand the motivation for this feature correctly, it's to make 
> exploratory programming easier. However, I think it would actually make it 
> a lot more difficult - it would basically give you a bazooka so heavy that 
> the only thing you can reasonably aim at is your own foot... 
>
> //T 
>
>

Reply via email to