Hacker News new | ask | show | jobs
by aidos 4256 days ago
I also work that way. I use the autoreload feature of ipython so that any code I change in my editor is instantly replicated in my ipython objects. I've really never been more productive in development in my life.

Contrast with some Java I was doing recently (granted, without a Java IDE) and I found the whole cycle painfully slow. Even things the compiler picked up were a magnitude slower to find than when I was in ipython. And then there were plenty of things the compiler wouldn't get, which could take a good minute for me to discover from the time I made the edit. It's insane to me that people don't work in a REPL.

2 comments

"without a Java IDE"

This was your problem. Programming Java without an IDE that recompiles your changes on the fly is just so arcane and really slows you down as you noticed.

Which is great, but that's almost not the main issue. In the ipython REPL I can work with my code and data at the same time. It's a huge disadvantage to not be be able to probe your data to create a working process.
The Java VM has hot code swapping builtin (IIRC limited to method bodies but the commercial JRebel drops that limitation).

Start your program in your IDE's debugger (or point it to your application server where your program is running) and you can change the code immediately, rerun your methods, change variables, inspect the objects, etc.

It's more than a simple REPL, it's a full-blown debugger and it comes really close to what you have in a SmallTalk image where your code, data, and environment is all the same.

So true. Java was designed for tooling. Using it without tooling is actual using it against its design.
Also for J2EE you need jrebel.
Would you mind making a little screencast demo of your workflow? (Or do you know of any?) That sounds so cool.
Sure. I'm not near my machine for a couple of days but I'll post something when I get the chance. I see your contact info is in your profile so will ping an email when done.
UPDATE: video here https://www.youtube.com/watch?v=k-mAuNY9szI

Sound quality isn't great but hopefully it demonstrates what I'm talking about.

Me as well, if you're offering.

I find iPython interesting but haven't figured out how to integrate it into my current workflow of Sublime/Terminal.

Thank you very much! I look forward to it!
I'd be curious to see this as well
Ping me too, please. Thanks.