Ted Leung on the air: Open Source, Java, Python, and ...
Packaging is just one of those things that has always bothered me. Search paths, library paths, incorrect dependencies. This stuff is just a pain in the neck. Recently I've been reading a bunch of posts about packaging. Ian Bicking wrote one about the use of Python's site-packages directory. Joe Gregorio wrote one about the evils of setuptools. Back when I was doing stuff in Java, there were any number of problems related incorrect classpaths, mismatched jars and so forth.
These problems are so bad that we have to build decently complicated programs (which then become their own problem) to manage the problem. There's Maven (hated by half the Java community, loved by the other half), the CPAN shell, Ruby's gems, Python's setuptools, and the plethora of package managers for Linux.
There does seem to be a common thread, though. Almost all of these systems/languages have their roots in Unix.
Good thing I still have my Unix Barf Bag...
[ Update: some people like setuptools -- I'm in this category myself ]
An unpackaged program only works in one place. Half the program is in the source itself, and half of it lives in undocumented and implied interactions with the host system. The process of packaging is enumerating all of the interactions, making them explicit, classifying them, and writing programs to re-establish them.
In other words, when you are writing unpackaged software, you are programming your computer, but when you are writing packaged software, you are programming the computers of everyone who might ever use it. Put that way, I think packaging sounds reasonably easy given the tools we have today - only a few dozen hours of effort, to expand the usefulness of a program to five orders of magnitude more computers :).
Posted by Glyph Lefkowitz at Thu Feb 9 03:00:03 2006
Posted by antonio at Thu Feb 9 04:06:46 2006
Posted by seth vidal at Thu Feb 9 08:37:09 2006
Also, where do you really think all those Java people are programming things like Maven? Most Java is still programmed on windows, and unix is relegated to a deployment role.
Posted by rjwittams at Thu Feb 9 09:05:03 2006
I didn't hold up Windows as an example of something that's better than Unix. Arguing that Unix is better than Windows is too easy. It's 2006 -- can't we do better than what we have now?
Posted by Ted Leung at Thu Feb 9 10:14:04 2006
Packaging only accounts for part of the issue - the rest lies with the OS: providing tools that "intelligently" install and configure compilers and libraries, etc. (think Gentoo Portage or BSD pkg_install which are not perfect, but better than the usual shotgun approach).
Until developers can trust that the OS is going to provide access to libraries in a consistent way, we are pretty well stuck with having to bumble our way along as best we can, and relying on ever-more complicated tools just to handle configuration and installation of software.
Posted by Sjan Evardsson at Thu Feb 9 16:41:05 2006
Because of these things, I install most of my own works from Debian packages now. As I recall mentioning on comp.lang.python once upon a time, Python packaging systems could learn a great deal from (and cooperate much better with) existing packaging and dependency management tools such as smartpm.
Posted by Paul Boddie at Fri Feb 10 03:02:48 2006
Posted by Trackback from Oakwinter.com :: Code at Fri Feb 10 04:50:40 2006
Posted by Baczek at Sat Feb 11 07:34:13 2006
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
<a href>
, <em>
, <i>
, <b>
, <blockquote>
, <br/>
, <p>
, <code>
, <pre>
, <cite>
, <sub>
and <sup>
.You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk