Towards a better IDE in Squeak

Philippe Marschall philippe.marschall at gmail.com
Sun Feb 18 21:46:58 UTC 2007


2007/2/18, David Röthlisberger <squeak at c3com.ch>:
> Hi all,
>
> I'm currently doing a PhD under the supervision of Stephane Ducasse and
> Oscar Nierstrasz at the university of Bern, Switzerland. My main
> research interests are in the context of Integrated Development
> Environments (IDEs). I'm planning to work on the Squeak IDE to see how
> the IDE of a dynamic object-oriented programming language can be
> improved and extended.
> Especially, I want to experiment with different metaphors to browse and
> navigate source code, with new metaphors to present static (i.e.,
> classes, methods, source code) as well as dynamic aspects (i.e.,
> objects, relationships between objects, etc.) of a program in the same
> IDE, with new ways to modify and edit source code, etc.
> I believe that we can do more in a better way these days than what we
> have in the current IDE in Smalltalk or in Java. I believe that the IDE
> of the future can help the programmer to program more efficiently and
> with less errors by giving him more insights into the program being
> developed or by providing him with better tools and guides during his
> daily work. I believe that what we have now as IDEs are far away from
> what is possible to have and even far away from what we actually need to
> be effective and efficient in our daily work. This is a bit sad for
> Smalltalk, because a long time ago it had the best IDE, but now Eclipse
> is getting better and better while the IDE of Smalltalk / Squeak stays
> more or less the same. During my PhD I want to see how we can get
> something better out of the current Squeak IDE.
>
> I write this message out of two reasons: First, I would like to know if
> you have ideas for things that are missing in the current DIE of Squeak,
> "things", tools, metaphors, ideas that you would like to see
> implemented. What are your ideas of how an IDE could help you to work
> more efficiently in your daily work? Where is the current IDE in your
> way, where is it not good enough, what could be better? What do you
> miss, what do you need to get a better IDE?
>
> Second, I would also like to do kind of empirical studies in the future
> to somehow validate the effectiveness and efficiency of new approaches
> for an IDE, hence I need subjects performing some experiments in these
> future IDEs and I also need data about how you use your IDE (e.g., how
> you browse source code, how and where you write source code, with which
> tools, etc.). Will you be willing to provide me with these data recorded
> by some non-invasive recordings tools you can simply load in your image
> and which will then save the recorded data to a file which you would
> then send to me? Are you also willing to perform some experiments in new
> IDEs, e.g. trying and playing with them, use them for a project of
> yours, etc.?
> For me it is important to know if I can motivate enough people to do a
> serious empirical study. Without that, I would have a hard time to
> "prove" that a new approach to e.g. navigate source code is indeed
> useful and promising, because this is very much dependent on personal
> feelings and impressions. Only a broader study can hence "prove" the
> general usefulness (or uselessness) of such a new approach or metaphor.
>
> Thanks for your help.

Most things in this list are either taken form other IDEs or bugfixes,
so they might not be interesting from a research point of view:

- Scoping of implemtors/senders to packages
- make class extensions work like in VW
- make the submethod display more than just a text string. Why can't
SLint just underline the code that violates a rule?
- run SLint on a method once it is compiled (for error reporting see above)
- bring Refactoring Engine to the point where the Eclipse Refactoring
Engine is (code formatting and stuff)
- a protocol browser that is actually usable (choose upper bound)
- multiselection (including nil-selection)
- make drag and drop work everywhere in the browser
- make multiselection work with drag and drop
- fix those annoying bugs in the browser where a method ends up in the
wrong category (if you are lucky) when you are editing the same class
in two browsers
- fix the debugger (those annoying cases where you code ten minutes in
the debugger accept it but the code lost because you where in a block
or whatever)
- "move to class/instance side" refactoring (yes I know this is
technically not a refactoring, I don't care)
- roel typer integration to display the "roel types" of variables
- when changing the shape of a class only recompile the methods that
actually access instance variables
- method display plugins (eg. a profiler can draw a heatmap but just
coloring the statements differently without the need to implement the
whole index <-> statement mapping)
- a better inspector that supports drag and drop and where you can
drop objects in the evaluator pane
- back-button
- "make trait" refactoring (working together with multiselection)
- trait support for refactoring engine
- finish the traits browser
- what is is the status of services to enable refactoring support in
the omnibrowser? It it is not done then do it.
- integrate services into the duo-systembrowser

Cheers
Philippe


More information about the Squeak-dev mailing list