Skip to content
0:00 / 0:00

#codebubbles#ide#userinterface

Code Bubbles: Rethinking the User Interface Paradigm of Integrated Development Environments

AndrewBragdon

99 subscribers • 1 video on Hallway

YouTube
  • Recommended by 2 people: 2 on Hacker News.
  • A classic. People kept recommending it from 2013 to 2022.
  • Presented by Andrew Bragdon

Beginner. No background in the topic needed.

283K views16 years ago2 recommendations

Tools and practiceVim, Emacs and editorsDeveloper productivity

Andrew Bragdon demonstrates Code Bubbles, an experimental IDE interface that presents code as editable, interconnected fragments instead of traditional files.

Code Bubbles is a novel user interface for IDEs based on fragments, rather than files. For updates, see Twitter feed: twitter.com/AndrewBragdon codebubbles.org

Why it's here

2 people recommend this

What people say. Engineers frequently point to this demo as a groundbreaking and highly convincing vision for the future of code visualization and IDEs.

stcredzeroon Hacker News • Recommends

On “Pyret: A new programming language from the creators of Racket”

…ts, then fired in ovens before being read. At least text files in directories are digital, but they are as static and behavior-less as clay tablets, and all of the important relationships therein are expressed as implicit correspondences which programmers have to keep track of in their heads. Code Bubbles is a beacon in the direction we should go. link to this video…

zokieron Hacker News • Recommends

On “How do you visualize code?”

Code Bubbles (from 2010) is the most convincing code visualization tool that I can recall: link to this video Shame it never grew beyond a research prototype.

u/yogthosin r/Clojure • Mentions

On “Light Table: New year, same old plans”

This is really great news. Atom or VS already provide excellent general purpose editors, however I think that Light Table could excel at being a Clojure specific editor. Restricting the scope to a single language would make it much easier to add interesting features. I would especially love to see some of the originally planned features like being able to see code relationships, or a view like Code Bubbles. Currently, LT already has a decent feature set, and with a little polish it would be a comparable experience to Calva. However, a lot of really interesting stuff could be done on top of that if there was some community buy in for the editor.

u/yogthosin r/Clojure • Mentions

On “The Calva Journey Continues - Please Jack In”

Thanks for all your work on Calva. It's a fantastic development environment for Clojure that's very easy to get up and running with. This kind of tooling is exactly what's needed for lowering the barrier for newcomers. I also think that building on top of Electron a lot of of potential going forward since you can do a lot of interesting things with the canvas. For example, it would be really interesting to explore a mode like Code Bubbles or some of the ideas from the original Light Table pitch (around 3 min mark).

u/yogthosin r/Clojure • Mentions

On “Inspiring a future Clojure editor with forgotten Lisp UX - Shaun Lebron”

I really find there hasn't been much meaningful evolution of editors in a long time. We're still treating code as text, and browse it by files. However, it's easy to imagine far more interesting modes of interaction. My favorite example is Code Bubbles. I really like the idea of presenting code based on the relationships as opposed to where function happen to be defined in files. If I'm looking at a function, it would be great to see all the related functions shown, and how they interact with one another. This approach would work especially well in Clojure since functions tend to be short, while monitors are pretty large nowadays. You'd still use files for persistence, but the editor shoul…

u/yogthosin r/Clojure • Mentions

On “Kosmos: experimental graphical development environment for Clojure”

I would pay good money to have an editor like Code Bubbles for Clojure today.

u/yogthosin r/Clojure • Mentions

On “I want to share some ideas about a visual Clojure/LISP editor [VIDEO]”

Code Bubbles would be my ideal Clojure editing experience. The original Light Table pitch also demonstrates a similar workflow (towards the end). I think it's really unfortunate that it never materialized because it really would be a revolutionary way to interact with the code. The way the code happens to be organized in the files is mostly incidental to how you think about it when you're developing. It would be far more useful to display code based on the relationships between functions. I want to be able to see the structure of the logic and the flow of the data in the application. I also suspect that this would have a huge positive impact on overall code quality because you'd visually…

u/yogthosin r/Clojure • Mentions

On “Clojure/north: Composing Applications by Rafal Dittwald”

Yeah, I've been thinking about the fact that files are a really terrible way to organize and present code for a while now. The main issue that that the way the code is organized in a file tends to be completely unrelated to how it relates to itself. What I really want to see is the graph of function calls, so I can tell the flow of the logic in the code. My hypothesis is that visually presenting relationships in code would lead to cleaner code as well. When we see ugly code we tend to want to refactor it, but a lot of the ugliness in relationships is invisible to us, so we don't tend to worry about it as much. If the editor made us more aware of the gnarly branching logic for example, then…

u/yogthosin r/Clojure • Mentions

On “Completing the data feedback loop - Thoughts on Dark lang, Bret Victor etc”

I really think the idea that the primary mode of interaction with code should be via using a text editor is preventing far more interesting UIs. A related idea was presented at Clojure/north last year regarding residential programming where each function is individually versioned, and stored in a database. This approach provides some really interesting benefits. For example, any time you change the behavior of a function, the rest of the code is not affected until you explicitly update it to use the newer version. And you have a complete version history for each function, so you know how it's evolved over time, and you can roll back any function to a previous version if you need to. In t…

u/yogthosin r/Clojure • Mentions

On “Is Arachne abandonware already?”

I still think that the original vision of providing novel ways to visualize relationships in the code. There's actually a more fleshed out version available for Java called Code Bubbles. I still hope to use a development environment like that one day. :) Unfortunately, building an IDE from scratch is a huge undertaking. Building on top of either Eclipse or IntelliJ would've allowed focusing on the interesting things as opposed to reinventing a basic text editor.

Montagiston Hacker News • Mentions

On “The IDE must move onto the server”

Ditto on the java-applet comments - I was shocked. Haha. In all seriousness, though, people have mentioned this before but I don't think anyone's really tackled any underpinning reason why an IDE should be in "the cloud" (::cringe:: yea, I went there). If I think about it in terms of features such a setup could provide - cohesiveness btwn. client & serverside testing, development statistics in real-time, and highly integrated documentation & comm. - then perhaps it's kind of sexy. Seamless/buil-in pair-programming would seal the deal. It would be pretty awesome if it looked like Code Bubbles though...haha ( link to this video )

nuopnuon Hacker News • Mentions

On “Apple Dylan IDE (2014)”

You are thinking of a structured editor. But as to the single feature you mentioned, see for example Code Bubbles: link to this video

mhomdeon Hacker News • Mentions

On “Never edit a method, always rewrite it?”

…r than arguing over coding standards (although it can still text-based rather than completely graphical). Ability to more easily see related code and flows. Manage the meaning of code rather than its text (not changing text but changing symbols when you refactor). There's been attempts to move in that this direction with things like code bubbles ( link to this video ) but yet there hasn't been an approach that's both visually attractive and offers enough benefits, but it's probably coming somewhere down the line…

swizzleron Hacker News • Mentions

On “Should you split that file?”

There is code bubbles. Early demo: link to this video current site (eclipse plugin for java projects?): link . Maybe also inspired Visual Studio debugger exploration. I haven't used it (but have wanted to)

thomassmith65on Hacker News • Mentions

On “An infinite canvas for code exploration”

Aha, so that's what happened to Code Bubbles. I saw this video about the project years ago, and always wondered. link to this video

u/yogthosin r/Clojure • Mentions

On “Cirru Cumulo Editor 0.2.8 changes”

Nice work, I really think that the potential for structural editing in Clojure could be explored a lot further than it has been so far. I really like the concept behind Code Bubbles that's similar to what was demonstrated with Light Table originally. The Code Bubbles concept looks like it would work much better in Clojure than Java since functions tend to be short. I would love to have an editor that is semantically aware, and shows code that's related to the code I'm working on as opposed to just showing me files.