Builder is an app I'm writing for myself to make me faster
If that doesn't appeal to you, move on. It probably shouldn't appeal, being that you are not me.
A simplistic IDE
A simple IDE that makes writing applications requiring the following dead simple.
- Serialization of Data Objects to SQLite
- Serialization of objects to JSON
- Adding plugins to your application in additional languages
Writing applications in C, Vala, JavaScript, or Python
- Adding objects to your project in any of the above languages
- Writing documentation for your project
- Writing help files for your project
- Translating your project
- Handling building your project with automake
- Communicating over DBus to a Daemon
- Making your program listen on DBus
- Generating release builds of your project (make dist)
- Profiling your application (integration with Perfkit)
- Debugging your application (integration with Nemiver/GDB)
- Checking that your application maintains ABI (for C and Vala)
- Find memory leaks using Clang
- Integrated documentation from Devhelp, show as you type.
- Adding settings to your application with GSettings
- glib-genmarshal, glib-mkenums support
- Status of files in Git.
Middle ground
Using libgladeui to design your application, and embed the XML into the datasection of the ELF. (I'd like to avoid the glade work if at all possible. often done quite poorly.)
Things to Avoid
Things that should NOT be a priority (or should strive to avoid if possible)
- Writing software that works on anything but Gnome 3. This is more headache than it is worth, and will slow us down. We can do it later, if it is at ALL necessary.
- Supporting languages that do not have strong GObject Introspection support.
- Writing an incredibly technical library like libclutter or libgtk. Totally not our use case. These developers can do shit on their own.
Other Ideas
- Deploy build to Glick2 format?
- Publish to vendor app-stores (gnome app store someday?)
- Online Data storage and synchronization (iCloud, etc?)
- Make communicating with external devices easy? (N9, N900, Android, etc)
- Collaborative debugging (ask a guru to join debug session over telepathy)
- Debug over telepathy (connect GDB over telepathy tube to remote chat contacts program).
- Github integration, make it easy to fork from an online repository.
Mockups
Comments
Fantastic project, would love to help. One thing I would say however is that it'd be a great idea to have both tabs and side-by-side views. I'm really not a fan of dropdown lists like you've suggested (though definitely have those as well). Perhaps make tabs optional? QtCreator, for example, has no tabs only a document list and I find it awkward to work with. I like to see a list of tabs that I have open. Perhaps look at how Netbeans/Eclipse does side-by-side views whilst also having tabs (i.e. treating each separate 'document view' as a separate editor with a separate tab listing. Just my two cents anyway
-- TimDavies
Thanks for the comments Tim. I'm not against it longer term, but I definitely want to focus on the combobox design on the first iteration. It's really a space issue since after about 2 or 3 tabs you don't get meaningful filenames anyway (most of my C projects share a file prefix for example). But I definitely hear you on the "document view" in QtCreator. I have a few other ideas for switching between files, but they aren't fleshed out well enough to be in mockups.
Code is available at https://github.com/chergert/gnome-builder/tree/tng. The original prototype from April '11 is in the master branch.
I love this project. I've been using the editor SublimeText2 http://www.sublimetext.com/2 a lot recently and it has both tabs and a dual view interface that works very well. There's a free trial if you'd like to see how it works for yourself. I think the transparent scroll bars are a great idea
-- VarunMadiath