Intel's Threading Building Block Library
« previous entry | next entry »
Jul. 25th, 2007 | 09:50 am
Yesterday I sat through Intel's tutorial on Intel's Threading Building Blocks at OSCON.
The library looks pretty interesting, and I've been looking at the
interface and white papers to see how it was written.
Good white paper:
http://cache-www.intel.com/cd/00/00/3 0/11/301132_301132.pdf
The part I don't get?
Its C++.
They missed the point. Most of open source is in C. If you want
ubiquity, you write in C. You can wrap C into C++.
Or Perl, Python... but C++? Pain in the ass.
If I write something for just myself I'll use C++, but if I want
ubiquity? Its going to be C.
What would have been an even bigger leap in thought for this release?
Find a way to incorporate the library in Apache's APR or in the GNOME
libraries.
The second part that they missed?
Its GPL, not LGPL, not BSD, but GPL. They have a waiver on it, but it
would have been better to just say it was BSD.
Licenses are business models. I have a hard time believing that Intel
needs to make money off this library. The GPL creates an environment
for dual licensing. Great business model, but from listening to the
Intel speakers, this is not what they were aiming for,
They seem to be pushing for ubiquity. What is the license model for
ubiquity?
BSD. The BSD license provides for the opportunity for ubiquity.
The interfaces look good for Intel's Building Block Library, which
means there exists now examples for these algorithms that can be
followed, so this is a gain for open source.
I just wish the library would have come in a package that was a bit
more useable.
The library looks pretty interesting, and I've been looking at the
interface and white papers to see how it was written.
Good white paper:
http://cache-www.intel.com/cd/00/00/3
The part I don't get?
Its C++.
They missed the point. Most of open source is in C. If you want
ubiquity, you write in C. You can wrap C into C++.
Or Perl, Python... but C++? Pain in the ass.
If I write something for just myself I'll use C++, but if I want
ubiquity? Its going to be C.
What would have been an even bigger leap in thought for this release?
Find a way to incorporate the library in Apache's APR or in the GNOME
libraries.
The second part that they missed?
Its GPL, not LGPL, not BSD, but GPL. They have a waiver on it, but it
would have been better to just say it was BSD.
Licenses are business models. I have a hard time believing that Intel
needs to make money off this library. The GPL creates an environment
for dual licensing. Great business model, but from listening to the
Intel speakers, this is not what they were aiming for,
They seem to be pushing for ubiquity. What is the license model for
ubiquity?
BSD. The BSD license provides for the opportunity for ubiquity.
The interfaces look good for Intel's Building Block Library, which
means there exists now examples for these algorithms that can be
followed, so this is a gain for open source.
I just wish the library would have come in a package that was a bit
more useable.
Talk...
from:
jeremycole
date: Jul. 25th, 2007 09:48 pm (UTC)
Link
Reply | Thread
Re: Talk...
from:
krow
date: Jul. 26th, 2007 05:09 pm (UTC)
Link
This is not under my control so...
Reply | Parent | Thread
(no subject)
from:
craigp
date: Jul. 25th, 2007 10:13 pm (UTC)
Link
btw, it's easy enough to write or auto-generate (via swig or similar) a c interface wrapper over c++ (if necessary).
Reply | Thread
(no subject)
from:
krow
date: Jul. 26th, 2007 05:12 pm (UTC)
Link
Auto-generated interfaces are great for prototyping... but something multiple projects are going to use? Something where you care about performance?
I am not thinking that is a good idea...
Reply | Parent | Thread
(no subject)
from:
craigp
date: Jul. 26th, 2007 09:00 pm (UTC)
Link
at least i rarely hear folks complaining about lack of c++ compatibility anymore (kudos to the gcc folks)... the excuse is pretty much limited to "c++ is too complicated" anymore.
Reply | Parent | Thread
Companies choose licenses because of community they are targeting
from:
divadanese
date: Jul. 26th, 2007 05:17 am (UTC)
Link
Intel is very much still learning as a company about Open Source. There are individuals and groups who have a great depth of knowledge...but if I've learned one thing from hanging out at Sun and now Intel its that organizations don't really grok a new idea like catching a virus where is moves through the organization and afterward everyone has simply "got" it. Its more gradual and less systematic (and except in rare cases, its hard to save them from themselves). Several groups have to make the same mistake before everybody gets it. I'm guessing that C++ seemed like a good choice to whoever made this choice because some customer or other preferred it that way or it was what they were used to working with and that it made later more sense to Open Source it "as is" than to delay for a port. I think it would be marvelous if it were ported to C
On the question Choice of License. In my experience companies tend to think about the community they are hoping to impress or attract when they choose an open source license. Not saying Intel did this in this case (because as I've said before I didn't help choose), but they do spend a lot of time with the Linux Kernel. Those affiliations might suggest GPL with exception as a valid choice. Isn't GCC licensed under GPL?
Reply | Thread
Re: Companies choose licenses because of community they are targeting
from:
krow
date: Jul. 26th, 2007 05:07 pm (UTC)
Link
From a couple of hallway conversations with Intel folks, I get the impression that releasing under the GPL was just a "go with what you know". I've had the license conversation with a couple of folks now from Intel, and I am hoping someone takes the license issue back on Monday and considers a dual license of both BSD and GPL.
Intel gets things mostly right with open source, but it seems they miss the bigger picture frequently on how users are likely to use the technology they provide (ask me sometime about your compiler).
As far as porting it to C goes, I think that is likely :)
Reply | Parent | Thread
Re: Companies choose licenses because of community they are targeting
from:
dirkhohndel
date: Jul. 26th, 2007 09:14 pm (UTC)
Link
We looked very closely at the license options. It's under "GPL with runtime exception" which allows you to use it both for open source and proprietary software. We have an FAQ about this which I can proudly say is entirely useless (ok, something I need to get fixed next week).
So why that and not BSD? Simple, we really want to build an active community where everyone contributes back to the community. GPL has worked very well for that in the past - better, actually, than BSD (and you can feel free to flame me about that comment).
If the GPL with runtime exception really stops you from using the library, please explain it to me and we will see what we can do about it.
PS: I would have responded hours ago, but I really wanted to use my OpenID (after having had dinner with the OpenID folks yesterday) and LiveJournal flat out refused. I can log in with it, but I can't submit a comment with it. How weird is that...
Reply | Parent | Thread
Re: Companies choose licenses because of community they are targeting
from:
krow
date: Jul. 26th, 2007 10:23 pm (UTC)
Link
What I do not understand is why you would care about anything but ubiquity. Under your current license I could not use this library in conjunction with Apache, Postgres, FreeBSD, etc...
OpenID even started with LJ. So why didn't comments work from day one? I leave login required just because I don't have time to deal with spam.
Reply | Parent | Thread
Re: Companies choose licenses because of community they are targeting
from:
dirkhohndel
date: Jul. 27th, 2007 03:06 pm (UTC)
Link
GPL with runtime exception basically means you can use this library at runtime (i.e., link programs against it) without creating derived work that would have to be released under GPL. But if you modify the library and distribute this modified library (either on its own or as part of an app that you linked against it), then these modifications have to be licensed under the GPL as well.
I understand requiring login for comments (even though I never did that in my Wordpress blog and Akismet dealt with spam just fine) - what I don't understand why my OpenID isn't accepted as a way to log in, even though LiveJournal allegedly supports OpenID...
Reply | Parent | Thread
Re: Companies choose licenses because of community they are targeting
from:
krow
date: Jul. 27th, 2007 05:50 pm (UTC)
Link
Personally, and I do write BSD projects, this exception would be a pain to explain to users who use my code, and I know it is enough to turn others off from using the library. I can see the fear of MS or Apple taking the library in house and extending it, but why would you mind? It would just mean more and better multi-cpu utilization.
I suspect with LJ the issue is that they aren't really innovating as much as they once did.
Reply | Parent | Thread
Re: Companies choose licenses because of community they are targeting
from:
dirkhohndel
date: Jul. 27th, 2007 07:34 pm (UTC)
Link
Reply | Parent | Thread
Re: Companies choose licenses because of community they are targeting
from:
krow
date: Jul. 31st, 2007 02:58 am (UTC)
Link
libstdg++ gets a free ride, it will be installed with the distribution. Linking to it is not an issue.
Your library is not distributed, which means for a project to really use it, they are going to need to ship it (which stinks, but anything else is a pain to end users who compile stuff). Telling people to get a project, and then get subprojects is annoying and I believe is the tipping point for "not worth compiling".
Now a project could include your library, but then they will have to explain that to others in the project (and probably to people who distribute the code). This requires a conversation, and conversations are.... non-starters. Plus the project has to be diligent in not copying your code.
In the end? I think someone would just stand up and say "lets just re-implement". This might just cause a thousand flowers to bloom, which in the end wouldn't be bad for Intel.
I love the GPL, and I love how it creates more open source. In the case of libraries though? I really believe in ubiquity.
Reply | Parent | Thread
Re: Companies choose licenses because of community they are targeting
from:
robilad
date: Jul. 26th, 2007 09:34 pm (UTC)
Link
Reply | Parent | Thread
(no subject)
from:
kytty
date: Jul. 26th, 2007 04:38 pm (UTC)
Link
Reply | Thread