[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Libraries and repositories



Summary: Libraries should be language-specific (even
extension-libraries).

There are lots of good reasons why you might not want multiple-values,
multiple-inheritance, multiple-dispatch (generic functions), or
multiple-syntax (macros) in a language.

However, if I have any of these available to me, I would certainly want
the extension library I use to have them, too.

My chosen language for a given application is very likely to be one that
contains more of these language features.   Unless that language turns
out to also be the lowest-common-dominator, a language-independent
extension library will not utilize these capabilities.

It is true that there are low-level graphics or networking utilities
that I want to be able to use, but I don't think that counts as an
extension library because I really want those to be integrated and
supported by my language-implementation supplier.

I think maybe the only language-independent libraries are those that
operate over the network.  That is, they are language-independent only
as a secondary effect of being machine-independent and
high-speed-volatile-memory-independent.

Pixel wrote:
> 
> Tim Hickey <tim@cs.brandeis.edu> writes:
> 
> > It seems that the standard libaries aspect of successful languages might
> > be made moot if there was an efficient way of accessing the Java libraries
> > in a language independent way. Something like the C#/.net approach but
> > with platform independence. Conceptually, languages and libraries seem
> > somewhat orthogonal.
> 
> I've been fighting against this idea on LtU (http://lambda.weblogs.com/).
> To be more precise, we must devide libraries in 2 categories:
> 
> (1) the basic library including manipulating strings / numbers / lists /
> dictionnaries / IO
> 
> (2) the extension library (a la CPAN) which can be more or less independant of
> the language. In fact i think it's true if the library interface is designed
> to be language independant.
> 
> IMO (1) is not orthogonal with the language. It depends from a lot of features
> a language has or not (closures / static-checking / operator-overloading / OO
> / type-based-overloading / generics). Syntax/sugar is very important for (1).
> 
> Python/Ruby/Perl will not win anything from using Java's strings/lists library
> which is much poorer.
> 
> For (2), the functionalities are complex enough and not used often enough, so
> that a tight integration is not needed. For (2) i truly agree with you
> (but note we've already been doing this for years with libraries in C).
> 
> http://lambda.weblogs.com/discuss/msgReader$2188?mode=day
> http://lambda.weblogs.com/discuss/msgReader$1642?mode=day
> 
> PS: if someone can proove me wrong, please do :)