Songbird Source Released 114
Rinisari writes "The source for Songbird, a music-oriented XULRunner application, is now available via Subversion. Rob Lord, CEO of Pioneers of the Inevitable, released the source for the not-yet-0.2 version of the music player, which integrates a music library and the facility to purchase and download music from a variety of vendors. If you haven't heard of it, read the features list and try it out. Slashdot previously mentioned Songbird when it was released as a preview in February."
I wonder if... (Score:1)
Re:I wonder if... (Score:2)
List of XUL Applications? (Score:5, Informative)
XULRunner is still a problem, though. It's not clear to most programmers that XUL applications can function just as well standing alone as in a browser. Songbird is a great start, but does anyone know if there's a list of existing XULRunner applications? If such a list existed, it would be a lot easier to show people what XUL can do just by pointing them to a single URL.
Re:List of XUL Applications? (Score:1)
Chirp, chirp!
r0b
Re:List of XUL Applications? (Score:1)
I suppose Songbird's abbreviation is Sb? (As in Thunderbird's Tb)
Re:List of XUL Applications? (Score:1)
Re:List of XUL Applications? (Score:1)
Re:List of XUL Applications? (Score:1)
Blatant plug of my own link: ChatZilla on XULRunner [rdmsoft.com].
See also the "XULRunner Hall of Fame [mozilla.org]" on DevMo.
Re:List of XUL Applications? (Score:3, Insightful)
Re:List of XUL Applications? (Score:5, Interesting)
And for good reason! XUL is a terrible, terrible, terrible, terrible, terrible system.
Crap, now I have to back that up with reasons, don't I? And the fact that I hate JavaScript really doesn't count, does it?
You can think of XUL as being almost exactly like VB, except without any nice GUI tools for building UIs. Almost all the things people hate about VB also apply to XUL.
But anyway, that's rather vague. How about some specific reasons?
First off, XUL is rendered using the same rendering engine as Firefox uses for rendering webpages. Yes, when you're looking at Firefox, everything you see is rendered by Gecko. That includes the menu, the toolbars, the tabs, and the webpage itself. This mixing of UI and webpages is just asking for security holes. The webpage is embedded in what is practically an IFRAME within the XUL document. There have already been a number of security exploits caused by webpages elevating their privileges into the "chrome" security level. If ActiveX has taught us anything, there will likely be more.
This relates directly to the next problem: because the entire interface is implemented using Gecko, the widgets aren't native. They feel out of place. Gecko does an amazing job of making the widgets look almost-right, but they're still not native and they still don't look quite right, even on Windows (most work spent on this) and GTK (second most work). And forget about Mac OS X, it's not even close!
But the real problem with not using native widgets is that XUL doesn't get the benefit of a platform's accessibility features. Yes, they have some hacks that attempt to stitch XUL widgets back to a platform's native accessibility system, but this means that they're chasing whatever new features are added. Right click on a native text field on my Windows system, I get the full set of Unicode editing features for dealing with BIDI text. Right click on a Firefox text field, and it's not there.
And, finally, JavaScript. You knew it was coming. But I'm not going to go after the language, I'm going to complain about the JavaScript interpretor that Mozilla uses. Most of the widgets are implemented by using JavaScript glue to access native code using XPConnect. Some widgets are implemented almost entirely in JavaScript - this is why the progress meter under Windows looks completely wrong. The concept of having native code do the heavy lifting and using a scripting language to glue everything together is a very good idea.
But that turns out to be a problem. If you want to write a cross-platform XUL application, you can only use JavaScript since that's what XULRunner provides. (Keep in mind, if you want to run on every platform XULRunner runs on, it's JavaScript or else.) Otherwise you'll have to compile for every platform, and you can only rely on the core XPCOM objects to be available. JavaScript is an interpretted language. And it's slllllllow. And - here's the most important part - in Mozilla, it's strictly single-threaded.
Now, combine that up above with JavaScript being used to implement some widgets. Plus, the thread used to run chrome JavaScript is the UI thread - the thread that receives messages from the windowing system. This means that if an application is using JavaScript to do heavy lifting, the application will literally freeze while it can no longer accept messages. The windows will stop redrawing. Clicks will be ignored. Nothing will happen until the JavaScript finishes and the UI thread can start handling messages again.
Trying to write XUL applications that don't do things that are already implemented as part of the core XUL system is mostly a waste of time. XUL works best if you can write native code for the heavy lifting and use JavaScript soley for the UI. Unfortunately, that makes your application non-portable - something XUL is supposed to help solve.
Re:List of XUL Applications? (Score:5, Informative)
As it so happens, the widgets are native. Mozilla exposes the underlying implementation. Which is why buttons look like Windows, Mac, or GTK+ buttons. The caveat to this is that you can create XUL buttons/components that are entirely virtual. These components are generally used to produce skins like that used in Firefox. But most XUL applications actually rely on the native components instead. Which is why the Amazon browser I linked to looks like a native Windows app.
JavaScript is an interpretted language. And it's slllllllow.
It's also just glue. All the heavy lifting is done by the XPCOM components, which are FAAAAAASSSST.
This means that if an application is using JavaScript to do heavy lifting, the application will literally freeze while it can no longer accept messages. The windows will stop redrawing. Clicks will be ignored. Nothing will happen until the JavaScript finishes and the UI thread can start handling messages again.
Putting aside for a moment that this is an issue in all GUI programming, Mozilla does support multithreading. It just doesn't do it at the Javascript level. Threads are pushed down to the XPCom level instead, where they do the most good. (e.g. The XmlHttpRequest object can run synchronously or asynchronously.) If you really must multithread your JavaScript app, then cooperative multithreading is easy to do. Timed call-backs allow you to regain control whenever you need it, or in spurts if you'll be processing for a long period of time.
Re:List of XUL Applications? (Score:5, Informative)
Open Firefox (or Camino). Start VoiceOver. Notice how absolutely nothing in the web page display area is interpreted as a Cocoa widget. Notice how in the web page display area, checkboxes, drop-downs, text fields, and any other controls lack any access to Cocoa services such as spell checking and Dictionary. The same lack of OS-native widgets is apparent in Firefox for Windows, though GTK does a much better job of emulating the look of these widgets, if not the feel.
If it looks like a native app, it's not necessarily a native app.
Re:List of XUL Applications? (Score:1, Flamebait)
Re:List of XUL Applications? (Score:2)
Actually, from what I know, that is
Re:List of XUL Applications? (Score:2)
I'm trying to tell you, the Mozilla platform allows both types of widgets. The bindings are there. If you don't believe me, go read the XPCom and XBL source code. They link off to native components when available. I don't know what your tools are telling you, but they're wron
Re:List of XUL Applications? (Score:2)
(Make sure you copy and paste them. Bugzilla doesn't allow referrals from Slashdot.)
https://bugzilla.mozilla.org/show_bug.cgi?id=11773 0 [mozilla.org]
https://bugzilla.mozilla.org/show_bug.cgi?id=28325 7 [mozilla.org]
https://bugzilla.mozilla.org/show_bug.cgi?id=29709 5 [mozilla.org]
https://bugzilla.mozilla.org/show_bug.cgi?id=24307 8 [mozilla.org]
https://bugzilla.mozilla.org/show_bug.cgi?id=23131 3 [mozilla.org]
https://bugzilla.mozilla.org/show_bug.cgi?id=17462 9 [mozilla.org]
https://bugzilla.mozilla.org/show_bug.cgi?id=62278 [mozilla.org]
https://bugzilla.mozilla.org/s [mozilla.org]
Re:List of XUL Applications? (Score:2)
Re:List of XUL Applications? (Score:1)
Specifically, yes, XUL does make an application not native, and things like Mozilla GTK support is chasing a moving target. But not every application needs to be fully, 100% native. Firefox's Windows support is more than enough, Firefox's GTK support is very, very nice, but could be a bit better. And yes, the Mac support is atrocious. But Safari owns, so no one cares. The point being, the nativeness problem is not a
Re:List of XUL Applications? (Score:2)
Oh, yeah, and because I haven't got around to make an exception for the XML, our XML docs come over as JSON encoded, which is then parsed into a javascript string, which is then parsed into an XML object. =(..
We don't use any XPCOM on our app yet, haven't had the need. Simple client/server but you gotta have those stats. And in XML for external export.
Re:List of XUL Applications? (Score:2)
Personally, I'm shunning it since I only have 512MB RAM and a 500MHz processor... Since switching from firefox + thunderbird to epiphany (gecko inside a GTK shell) + sylhpeed I've not had to go and make a cup of tea while I waited for either to come out of swap space, and when fully in RAM they're noticably faster. I'm currently trying opera instead of epiphany, which has given me another huge cut in memory use and boost
Re:List of XUL Applications? (Score:1)
Re:List of XUL Applications? (Score:2)
XUL is like DHTML, except that it's a complete GUI toolkit and works on other browsers. The app I linked to is an AJAX app. (Which has nothing to do with DHTML, other than the fact that they're usually coupled.)
Re:List of XUL Applications? (Score:1)
Re:List of XUL Applications? (Score:1)
"Google Notebook is only available for Firefox and Internet Explorer at this time. You can download Firefox here. You can also continue on to your notebooks."
So does XUL offer anything that is cross browser and better than Ajax?
Re:List of XUL Applications? (Score:2)
Whoops, that was a typo. It should have read, "XUL is like DHTML, except that it's a complete GUI toolkit and doesn't work on other browsers."
would be cool if... (Score:4, Interesting)
Re:would be cool if... (Score:4, Informative)
Re:would be cool if... (Score:2)
Re:would be cool if... (Score:2)
Re:would be cool if... (Score:1)
Re:would be cool if... (Score:1)
awesome! (Score:4, Funny)
What's that quote? (Score:4, Insightful)
Songbird is barely usable (Score:3, Interesting)
Like I said I know its new and I look forward to it maturing some. But this isn't one of those alphas where the devs are just super dragging their feet till release (*cough gmail) This this really is ALPHA!
Trashhalo [mindjunk.org]
Re:Songbird is barely usable (Score:1)
Re:Songbird is barely usable (Score:5, Funny)
That's a feature.
Re:Songbird is barely usable (Score:2)
Re:Songbird is barely usable (Score:1)
I am sorry you misunderstood my point. I have no doubt they will work out the kinks and songbird will fly (sorry I couldnt resist). I was just commenting on the fact that there is a trend to label stable software as alpha/beta to avoid responsibility. Songbird is not in this category, currently there are many application breaking bugs (such as the ones I pointed out). The fact that
bugs, questions etc etc (Score:5, Informative)
What's the big deal? (Score:3, Interesting)
Re:What's the big deal? (Score:2, Interesting)
best, r0b
Re:What's the big deal? (Score:2)
This one uses XUL.
Re:What's the big deal? (Score:2)
Re:What's the big deal? (Score:5, Informative)
Enough to deserve
Re:What's the big deal? (Score:2)
Re:What's the big deal? (Score:5, Funny)
This one goes to eleven
Re:What's the big deal? (Score:5, Informative)
On the Linux front, Songbird will give us a media player with an attractive front end, all of the standard rip-organize-burn capabilities, plus the ability to purchase music from online music stores. Not to knock the current Linux offerings (I'm currently an Amarok user), but the UI's aren't as attractive as Songbird's UI (yes, XMMS is slick-looking, but those buttons are so small . . . ), and AFAIK, the ability to buy music from online music stores through a Linux app is slim to none.
As for iTunes and Windows Media Player, they each lock you into their own music stores (the iTunes Music Store and the MTV-powered Urge, respectively). Songbird is going to allow you to purchase music from a wider array of online music stores from the outset, and online music stores will be able to write plugins to make them searchable from within Songbird. From the website . . . "Web page authors will be able to publish playlists and transfer MP3s into Songbird to build digital music stores like eMusic, music subscription services like Yahoo! Music Unlimited, virtual jamming services like Ninjam, playlist sharing services like WebJay and more."
And, of course, neither iTunes nor WMP plays natively under Linux. All in all, a strong cross-platform app like this just makes Linux that much more viable for everyday desktop users.
songbird? (Score:4, Funny)
Re:songbird? (Score:5, Funny)
THey have the logo with cramps, the runs and throwing up.
lovely.
Re:songbird? (Score:1)
Doesn't play anything on Mac OS X (Score:3, Informative)
Why XUL? (Score:5, Insightful)
Is XUL a good application platform? If so, why?
It doesn't seem to have much to reccommend it at first glance -- a language that lacks features and performance (javascript) a runtime that's bulky (mozilla), and worst of all a real case of Java-itis -- XML files and source files that endlessly have to be kept in sync and bundled together, no self-documentation and no metadata.
I ask because I tried porting a semi-complicated IE plugin to XUL and had to give up -- admittedly, I had to give up because of limitations in the HTML renderer, but long before then I had learned to dread the process of hooking into Mozilla at all. And that's saying something, considering that the original IE plugin was entirely made of hand-written COM, written against IE's none-too-predictable interfaces.
So, why XUL? I appreciate that you _could_ write an application in it, but what's the unique selling point that justifies all the work?
Re:Why XUL? (Score:2)
With ActiveX/IE, you only provide Windows support. (Now, hear me out here before you dismiss that statement as Windows-Only isn't being a problem...)
With that, your application will only be runnable there. With XUL, and some work, your app will run on the following:
MacOS X (x86 AND PPC)
Linux
and of course...
Windows
There's a bunch of others, but they're subsets of the above in most cases. If you think Windows is the thing, you'd
be rather mistaken since approximately 10-20% of the
Re:Why XUL? (Score:4, Insightful)
To be honest, your reply comes across as 'don't use XUL'. Being cross-platform (to platforms that have Mozilla available and installed) is hardly a big unique selling point that justifies a whole new way of doing things. As you point out:
To be sure, you don't need to do XUL- you can do the application in Qt, GTK+, Fltk, and a few others and get
the same results with less effort unless you need some HTML rendering support
So, why use XUL...
Re:Why XUL? (Score:2)
It uses CSS for style(look&feel), so your web guy can do it, or you can if you're familiar with it.
It has translation support built in if you wish to use it, nothing requires you to use it but using it is automatic, nothing to enable, no 3rd party libraries to include.
XUL itself(the XML UI file
Re:Why XUL? (Score:1)
Re:Why XUL? (Score:2)
You quickly find that you have almost as many lines of code in XML than you do in Java, (or sometimes even MORE XML than Java) and that keeping your Java and your XML in sync become
Re:Why XUL? (Score:2)
Re:Why XUL? (Score:3, Insightful)
There are other cross-platform systems, but none which integrate as well with the system's look. The browser component is nicely integrated. It's very easy to use HTML + CSS to render interface components.
Re:Why XUL? (Score:2)
Re:Why XUL? (Score:2)
But it doesn't work for everything, but it works for a lot more than you would think. I've only done app dev, not really any firefox plugins with it though. And I've barely touched XPCOM, haven't had to(yet).
all ofmp3 (Score:1, Flamebait)
Re:all ofmp3 (Score:1)
Curious about the 'variety of online music stores' (Score:3, Interesting)
(also, nitpick: did they have to make it look like iTunes so much? sheesh. As if these users need a superfriendly, superbasic user interface. XULRunner is innovative, but the app design, not so much.)
The DRM question (Score:3, Insightful)
It sounds like it will support DRM-ed music stores (they mention Yahoo's subscription service, I think); how they're going to accomplish this I'm not sure of. I can only assume that each service will have its own binary blob for parsing and playing back its own files, and then the interface will pass commands to these blobs?
Still seems like it would be easy to get around: if the DRM parts are compartmentalized, how hard woul
Re:The DRM question (Score:2, Informative)
What good is an 'online' music player... (Score:1)
At least, version 0.1 didn't, and it certainly wasn't copying my IE or FF settings properly, if at all.
Let's hope they fix it this time round.
Open Source Media Player? (Score:3, Interesting)
I'm still using winamp 2.72 because I've never found anything that compares (although Snackamp [sourceforge.net] is pretty slick for dealing with my 20,000 song mp3 collection).
Re:Open Source Media Player? (Score:1)
Re:Open Source Media Player? (Score:1)
Rhythmbox was really nice too (seemed lightweight even though it was very capable), but I couldn't get it to play random songs from my playlist in a way that I liked (it added songs to the pla
Re:Open Source Media Player? (Score:2, Informative)
I also use Amarok, altough it does have visualisations build in, I can't call it really lightweight.
Re:Open Source Media Player? (Score:1)
Re:Open Source Media Player? (Score:1)
Re:Open Source Media Player? (Score:2)
Now this is stupid (Score:1)
Release the source of a script? (Score:1)
The title is a tad misleading - you've been able to view the "source" since it's first release... after all, it's written in javascript and XML.
Now if they open sourced the project, that would be something!
Re:Release the source of a script? (Score:1, Informative)
http://publicsvn.songbirdnest.com/trac/browser [songbirdnest.com]
Forgot about this (Score:1)
Wasn't overly impressed with it, iTunes and its simplicity has left me pretty jaded. Songbird is almost a direct rip off of iTunes. I prefer originals to copy cats.
My biggest question is, why does every music player have to have online music store tie ins? I mean, whatever happend to a simple music player that played music. Now I must be affliated with some music store which robs me of system and network resources in the bac
Re:Forgot about this (Score:1, Interesting)
linux (Score:2, Offtopic)
Just curious.
Tom Caudron
http://tom.digitalelite.com/ [digitalelite.com]
Re:linux (Score:4, Informative)
Parent is offtopic??? (Score:1)
Oops (Score:1)
MPD? (Score:1)
iTunes integration? (Score:2)
One thing I couldn't figure out how to do in iTunes (granted, I didn't try very hard) was to order a (non-smart) playlist in any order, not just sorting by one of the column headers. Does Songbird allow this?
Re:iTunes integration? (Score:2)
Re:iTunes integration? (Score:2)
D'oh! The key is you have to have the very first column selected as the sort column. I was a little boggled that iTunes didn't allow me to order things to my preference.
Damn, I Really Need This (Score:2, Interesting)
Re:Damn, I Really Need This (Score:1)
Re:Sounds great (Score:1)