I'm trying to find my way developing Julia code interactively. In other 
languages (e.g. Python, R, Octave, etc.) when working on some piece of code 
I open a file with it and a console. Each time I change something in the 
file, I send that part to console and thus get new state. When I change a 
lot of things, I just send the whole file, replacing all definitions. It's 
quite convenient, and I'm pretty sure many of you are familiar with this 
practise. 

In Julia, however, I faced several challenges. 

1. When developing modules (and I really like modular systems) I have to 
either run "using MyMod" after each change, or use qualified names (e.g. 
"MyMod.somefunc()"), which is really annoying. In Python, for example, all 
definitions sent to console go right to a global namespace, which is pretty 
convenient within single module. And for several modules there's IPython's 
"%autoreload 2".

2. If I abandon modules, on other hand, I can't redefine constants. So if, 
for example, I define type Point in global namespace, then change it and 
want to load new definition, I just get "invalid redefinition of constant 
Point" error. 

So I want to know how YOU cope with these issues. Are there any best 
practises for interactive development? Are there any workarounds for cases 
I mentioned?

Thanks you,
Andrei

Reply via email to