[Idle-dev] Fwd: Discussion: 2 many IDE's...don´t we want more?!
Paul D. Fernhout
pdfernhout at kurtz-fernhout.com
Sun Apr 23 14:41:44 CEST 2006
Somewhat belated, but here are some ideas I earlier posted on the edusig
list, related to adding some of the featueres of a Squeak Smalltalk
development experience to Python, and might be of interest to discuss here.
I like the promising idea of developing and debugging across images (or
VMs) -- that is, you develop using tools in a VM you are not also
changing, but they work across a socket to talk to another VM where your
application is running. I have one prototype that does that somewhat (for
a custom language); I built a socket server into the VM.
I realized later it would probably be better to build a client in instead.
That is, you have just one server on the machine, which coordinates client
debuggers and client applications, and redirects their messages to each
other as a switch board. That way you just use one common port, and can
debug multi-VM communications stuff as well.
I would try to
ship the objects around as pickled Python objects, but would need to look
hard at current security issues there; otherwise they would end up as some
To support this at first might involve
using a separate thread running in the application, and would initially
use a sort of module or per function reloading approach, but later the
Python VM could be modified to support a debugger socket connection
To be clear, what I am going for here is the "feel" of developing in
Smalltalk, where you can point your inspector at an arbitrary application,
not necessarily the specifics of the Squeak experience. In this case, the
Python philosophy of being like glue :-) suggests treating any
OS as analogous to a Squeak VM, and finding a way, sockets in this case,
to make seemingly different things work together.
It's a bit like the notion behind "Dabo" but for development, evaluating
one-off Python expressions inspecting existing objects, and debugging.
As long as everyone agreed on specific versions of the communications
protocol this common subsystem, which would run as a common server, one
could use IDE tools written in any language (or Python flavor) and any
widget set (even just the command line shell) to debug any application
which is a client to this server (including self-referentially the IDEs).
I think that might not exactly address this proliferation of IDEs, but it
would allow them to be fractured into components that each do what they do
best, and the parts of several IDEs could be used selectively together to
develop or debug the same application.
Remote debugging is nothing new. VisualAge Smalltalk has had it for years,
for example, but I think this idea takes it to a whole new level.
SPE Stani's Python Editor wrote:
> Hi Kurt, Noam and every other IDLE developer,
> I tried to send you this by mail, but maybe it didn't arrive.
> drPython and Eric3 joined as well.
> I would be very glad to receive your reaction.
> Thanks in advance,
More information about the IDLE-dev