I sat down with Adobe intern Tom Lieber, the developer for Theseus. Tom is an MIT grad student and intern working with Adobe Research on problems relating to the development and understanding tools for software engineering, end-user programming and user interface design.
So, what is Theseus?
The goal of Theseus is to let you see what your program is doing by looking at the code, without having to make as many guesses by simulating the code in your head.
How does someone get started with Theseus?
First, grab the latest version of Brackets. Then, in Brackets, click the menu item File, choose Extension Manager. Pick the Available tab, type Theseus in the search box and click the install button in the search results for Theseus. There are also a couple of great videos demonstrating Theseus on the Brackets blog.
And starting with version 0.4, you can use Theseus to debug Brackets itself, as well as any extensions Brackets has loaded, in just two steps:
- Open the source code for Brackets or the source code for your extension, in Brackets.
- Click the menu item Debug > Debug Brackets with Theseus.
There are additional places to learn more about Theseus:
How does Adobe use this?
Why did you do this?
Part of it is a personal desire. It’s always fascinated me how we can interact with the application by poking at, trying things out. However the code itself is rather stagnant and somewhat arcane. My goal was to make it as easy as possible to work with the code. In fact, I want people to be able to play with the code as if it was the live application. This is part of my goal to create more usable programming environments.
How would you like others to get involved?
The best way to get involved is to use Theseus on your own projects and give me feedback. I’m looking for when/where it is useful as well as when/where it isn’t useful. The feedback will help me expand my academic research and make Theseus better for everyone.
Contributions to the code are quite welcome. It is a research project and thus, research code, but it’s fairly robust. I’m more than willing to support anyone who’d like to extend the code, or use it for their own purposes.
It would be great to see Theseus expand to project level discovery and project scope exposure. It would be useful to see events, or be able to ask questions like “What modules were involved in initialization?” It would be great to have visualization of data and elements so when things go out of range you understand the cause and impact.
Anything to add?
Well again, this is a research project and I would particularly enjoy hearing back from anyone who’s using it. We need to get a clearer view of how people want to use it and what people are doing with it to make sure Theseus expands and matures to make it an even better tool for asynchronous language debugging. I can be reached at firstname.lastname@example.org, so feel free to drop me a note to let me know how you are using Theseus. (Tom is also on Twitter and on Github.
Thanks for your time Tom and good luck with your continuing studies at MIT. We are quite taken with the capabilities of Theseus and look forward to seeing how it grows in future releases.
Please follow OpenAtAdobe on Twitter