A programming environment and framework that supports interactive, data-driven, scriptable construction of graphical tools with low effort. It is implemented in Squeak/Smalltalk.
- Get Squeak 5.3 or later with a recent OpenSmalltalkVM for your operating system.
- If not already integrated, load Metacello. Learn how it works.
- Finally, load VIVIDE into your Squeak image:
Metacello new
baseline: 'Vivide';
repository: 'github://hpi-swa/vivide:master/repository';
"get; --- for updates"
load.
Then, create and enter a new animated Morphic project. There, your can open Vivide with VivideLight open
.
See FAQ for further information.
You can download a Squeak/Smalltalk image with the latest working version of Vivide pre-installed from here. Additionally, you may want to get the latest OpenSmalltalkVM and sources file.
- CCMail - a mail client by Conrad Calmez
- Gramada - interactive DSL creation by Patrick Rein
- Matriona - tools for a new module system by Matthias Springer and Fabio Niephaus
If you did work based on (or related to) Vivide and want to write about that work, you can refer to our project as follows:
@phdthesis{taeumel2020datadriven,
author = {Taeumel, Marcel},
title = {Data-driven Tool Construction in Exploratory Programming Environments},
school = {University of Potsdam, Digital Engineering Faculty, Hasso Plattner Institute},
year = {2020},
month = {2},
numpages = {299},
url = {https://doi.org/10.25932/publishup-44428},
doi = {10.25932/publishup-44428},
}
Here is an older, yet more compact, description about some ideas around Vivide:
@inproceedings{taeumel2014interleaving,
author = {Taeumel, Marcel and Perscheid, Michael and Steinert, Bastian and Lincke, Jens and Hirschfeld, Robert},
title = {Interleaving of Modification and Use in Data-driven Tool Development},
booktitle = {Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming \& Software},
series = {Onward! 2014},
year = {2014},
isbn = {978-1-4503-3210-1},
location = {Portland, Oregon, USA},
pages = {185--200},
numpages = {16},
url = {http://doi.acm.org/10.1145/2661136.2661150},
doi = {10.1145/2661136.2661150},
acmid = {2661150},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {adaptation, graphical tools, reflection, scripting, tool building, vivide},
}
The following publication describes a different aspect of this work:
@inproceedings{taeumel2012vivide,
author = {Taeumel, Marcel and Steinert, Bastian and Hirschfeld, Robert},
title = {The VIVIDE Programming Environment: Connecting Run-time Information with Programmers' System Knowledge},
booktitle = {Proceedings of the ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software},
series = {Onward! 2012},
year = {2012},
isbn = {978-1-4503-1562-3},
location = {Tucson, Arizona, USA},
pages = {117--126},
numpages = {10},
url = {http://doi.acm.org/10.1145/2384592.2384604},
doi = {10.1145/2384592.2384604},
acmid = {2384604},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {concurrent views, dynamic analysis, navigation, program comprehension, programming environments, source code},
}
Here is a screencast about exploring the file structure of a C program with treemaps:
Here is a screencast about integrating information from Stack Overflow into the Squeak/Smalltalk programming environment using Vivide. I included it in my talk at the Onward'14 conference:
Here is a screencast about creating tools for context-oriented programming, which I showed at the COP'14 workshop:
Here is a recent screencast about how to create a browser for GitHub issues, which I showed at the FutureSOC'14 symposium:
Here is an older screencast about how to create a code browser and modify its appearance to reveal more or different information:
We are very thankful for any feedback in the form of bug reports, discussions, or even custom applications. Vivide is designed and implemented by Marcel Taeumel in context of his PhD thesis. To date, the following people also contributed to this project:
Pavel Belskiy, Lars Blumberg, Thomas Bünger, Conrad Calmez, Jonas Chromik, Falco Duersch, Tim Felgentreff, Maxi Fischer, Dustin Glaeser, Anne Gropler, Sebastian Hahn, Eva-Maria Herbst, Hubert Hesse, Robert Hirschfeld, Johannes Koch, Simon Krogmann, Sebastian Kruse, Jens Lincke, Thorben Lindhauer, Roland Lux, Tobias Mohr, Christoph Neijenhuis, Fabio Niephaus, Phillipp Otto, Philipp Otto, Tobias Pape, Tobias Pfeiffer, Stephanie Platz, Stefan Ramson, Jan Rehwaldt, Patrick Rein, Jakob Reschke, Oliver Richter, Marko Röder, Robin Schreiber, Leonhard Schweizer, Benjamin Siegmund, Matthias Springer, Sebastian Stamm, Tobias Stengel, Karsten Tausche, Lauritz Thamsen, Juliane Waack, Florian Wagner, Daniel Werner, Sebastian Woinar