Monday, September 20, 2010
Broad experience: the browser plug-in
My nephew, Richard, rather amazes me by the breadth of his experience sometimes. I think true geeks grow up "broad" now days. Many of the rest of us have had careers in very vertical pursuits sometimes and breadth has come to us more especially at the moments of technological shift, from ALGOL and Fortran to C, from C to C++, from C++ to Java or C#.
Anyway, among the myriad things he's done in his as-yet short career of PHP and web work, streaming video and a few other undertakings is an open source project that grew out of experience gained at Move Networks to enable rapid development and easy maintenance of browser plug-ins written for just about any platform. Move is a now-struggling concern with some pretty super streaming video technology whose future is a bit uncertain to say the least at this point. Browser hosting of video streams was the name of the game.
The project is called FireBreath, but that doesn't so much tell the tale. Check out A Year in the Life of an Open-source Project.
Browser extension vs. plug-in
While we're at it, let's note that there is some confusion in the space between browser extensions and browser plug-ins.
The first is code extending the browser, usually to give it the ability to do rather sweeping things like debugging. I use something called FireBug with my FireFox browser to help me find trouble in my web pages or to inspect other web pages when there's something cool in them I haven't seen before or want to know how to do.
It would be a real stretch to unify the development of browser extensions across multiple browsers and platforms.
The second is a bit more conservative undertaking: the plug-in affects pretty much just the web page being viewed (and not the browser application displaying the web page) and is often brought in via the <embed> tag in HTML I have much experience with, and more modernly, the <object> tag.
An example of this would be something that plays MIDI files or sets up for viewing Windows Media files, both things I do in some of my pages. Apple's Quicktime player and Macromedia's Flash are two more examples of browser plug-ins. I also use temperature converters on my cooking site, from poodwaddle.com that I helped design, and a calendar on other pages of mine (also from poodwaddle) that are plug-ins. You may remember having to install such things before gaining the full user experience of some web sites.
In summary, we've been talking about Richard's plug-in framework, FireBreath, and not about browser extensions.