Showing posts with label Integrated development environment. Show all posts
Showing posts with label Integrated development environment. Show all posts

Monday, January 25, 2010

David Seigel on Improving Launchpad Bug Workflow, or "Developer, Developers, Developers"

Mark Shuttleworth and Canonical Ltd. employees...Image via Wikipedia
David Seigel has a great post, called Improving Launchpad Bug Workflow for Opportunistic Programmers < The Plenitude of Arboreal Beauty. It's not great in that I like the exact solution proposed, but it highlights some important points about Free software development, and the comments are equally interesting.

First, a summary for those not wanting to read the post. David proposes adding a simple link to Launchpad which will help opportunistic programmers fix simple bugs like the ones in 100 Papercuts without having to worry about setting up the proper build environment. Clicking "Quickly fix this bug" installs the proper dependencies and source, opens the preferred editor, and creates a patch when finished.

In effect, David is proposing that Ubuntu prescribe a specific method for bug fixes, including the IDE used. (He proposes using Eclipse.) While this type of policy is likely to rankle many programmers, I believe that having a preferred IDE, language, and toolkit for Ubuntu would be a big step forward. In fact, when Ubuntu started in 2004, I remember Shuttleworth stating that all new work should be done in Python, and that Canonical would be hiring based on this principle. SchoolTool was developed from Zope (IIRC) for this exact reason.

While there certainly have been many new additions to the Ubuntu project which rely on Python since then, we also have GTK-sharp, C, and ECMAScript or JavaScript (e.g. Seed or Gjs). Ubuntu has failed to have a single, defining vision for its product (which Shuttleworth claims he wants) with a preferred development method. I'm not suggesting that there be only one method for development, but both Microsoft and Apple have shown that providing standard tools and languages (VS/.NET and XCode/ObjectiveC, respectively) can create a great developer base. The easier to get involved, the better.

Ubuntu could have a special developers' release which includes all the standard tools necessary to set up and connect to a Launchpad account (for bug fixing and publishing via PPA), an IDE with Ubuntu- and Launchpad-specific plugins, and complete developer documentation. Of course, programmers can continue to use Vim or Emacs or whatever, then use Bazaar from the command line, but new developers would likely just accept the default method Ubuntu provided, and puting "Ubuntu" into the "integrated" part of an integrated development environment would lure many developers. (I had in my notes but forgot to mention that Ubuntu currently is developing Quickly, which appears to be going in the direction I'm proposing. Or it could die like so many other other projects. Wait and see.)

More interesting stuff comes up in the comments section: what is the responsibility for upstreaming? Should bugs be fixed upstream first? Should patches be preferred for upstream? I think these kinds of arguments overlook the strength of FOSS. Ubuntu should fix bugs as it sees fit locally first, and submit those patches or make them easily available (something Launchpad is working hard on). Ultimately, though, many proposed patches will not be accepted by upstream, or they might be delayed by years waiting for a release. If Ubuntu wants to progress, it needs to take responsibility for its own problems and not state that it is waiting on upstream to integrate or fix a patch.










Wednesday, July 1, 2009

Valencia -- a Vala Plug-in for GEdit


I write about Vala fairly often because I think it's a new and interesting part of the Gnome desktop. For those who don't know about Vala, it's a C# and Java-inspired language which pre-compiles to C and eventually becomes native binaries. This means that Vala programs don't need a VM and are suitable for embedded operations, etc. Vala supports the following interfaces
Vala 0.7.4 was recently released, and added support for array properties, support for implicit and explicit GValue casts, initial support for generic methods, and Postgres bindings.

There have been a couple of popular IDEs for Vala, namely Valide and MonoDevelop, but Gnome's default text editor has been left out until now. Sure, it's had Vala highlighting, but that's not enough for a lot of people.

Welcome Valencia, a Vala plug-in for GEdit that offers the following features:

  • no configuration needed: simply open a .vala file and browse its symbols immediately
  • jump to definitions of classes, methods, fields, and variables
  • build your project within gedit, with build output in a gedit pane
  • double-click any build error to jump to the line where it occurred
  • use the Run command to run your program, with output appearing in a gedit pane
The Valencia Wiki gives the following installation instructions.

To build Valencia, you'll need to have the following programs and libraries installed:
  • valac, the Vala compiler. We recommend using a relatively recent version, but you cannot build Valencia with valac 0.7.4 due to a Vala bug.
  • gedit
  • libgee
  • libvte
On Ubuntu (and perhaps Debian), you can install the required build dependiencies like this:
sudo apt-get install valac libvala-dev gedit-dev libgee-dev libvte-dev
You can download the latest source release at valencia-0.1.0.tar.bz2 . Or check out the latest code (possibly unstable) at svn://svn.yorba.org/valencia/trunk. Then run make and make install. (Do not run sudo make install. Valencia installs in your ~/.gnome2/gedit directory, and if you install as root the permissions will be wrong.)
To enable Valencia in gedit, go to Edit->Preferences->Plugins and check the Valencia checkbox.
Adam Dingle, the developer, says
I know that there are a growing number of Vala IDEs and plugins available today. I believe that Valencia's particular strengths are its ease of use and its symbol browser; Valencia was designed to make it effortless to jump between symbols even in a large Vala program. Feedback, patches or code contributions are welcome!























Reblog this post [with Zemanta]

Other I' Been to Ubuntu Stories

Related Posts with Thumbnails