[erlang-questions] What problem are we trying to solve here? [was Erland users group [was re: languages in use? [was: Time for OTP to be Renamed?]]]

Garrett Smith g@REDACTED
Mon Feb 17 15:50:18 CET 2014


On Mon, Feb 17, 2014 at 8:33 AM, Miles Fidelman
<mfidelman@REDACTED> wrote:
> Jon Schneider wrote:
>>>
>>> Perl's CPAN repository really is the most amazing repository system I've
>>> seen
>>
>> Amazing at what ?
>>
>> In my experience it asks lots of questions about what options you want for
>> a package I never feel confident answering. Can I revisit my choices ?
>>
>> There seem to be gadzillions of packages to do things like parse a date or
>> an HTTP response and packages to do some of these seem to depend on more
>> complicated packages.
>>
>> It seems to keep wanting to update itself. "should be a seamless upgrade".
>> Sometimes it is.
>>
>> Lots of tests seem to fail. Sometimes it knows they're supposed to fail
>> and sometimes you're left scratching your head.
>>
>> Many roads lead to perl 6 being built.
>>
>> I've head the displeasure of CPAN going back to the mid 90s and it's still
>> a steaming heap as far as I'm concerned. I'm glad I stopped writing more
>> than the very occasional bit of perl a long time ago.
>>
> My experience has been a bit different - though, admittedly I haven't built
> anything in Perl for maybe 10 years.  (Mostly because I don't do a lot of
> website development these days, and when I do, PHP is a far cleaner
> language.)
>
> But, during a period when I was building a bunch of web sites, I was
> continuously amazed by how easy it was to:
> - find a perl module to do a particular job
> - type 1 instruction
> - watch everything get built, tested, and loaded, with all dependencies
> resolved (and automatically running regression tests is a really nice
> feature)
> - yes, sometimes it took a while, and sometimes things failed, but mostly
> things just worked
>
> These days, my main use comes from periodic upgrades to Sympa (really
> top-notch mailing list manager maintained by a consortium of French
> universities).  It's all built in perl, and it uses cpan to update all its
> dependencies.  (When things fail, it's usually Sympa's updater that fails -
> at which point I use cpan to install/update all the required modules and
> then things generally just work.)
>
> The only other thing I've found that comes close is "apt-get install foo"
> from a Debian package repository (or "apt-get update; apt-get upgrade").

The use of github as a repository for Erlang libraries was never
planned, but as I use it, I think I actually prefer it.

It's very hard to manage packages. Very, very hard. Even with mature
ecosystems like dpkg, rpm, pacman, where the tools have been mature
for years now, there's a near constant battle against staleness and
version incompatibility. This is compounded when you layer system
independent packaging systems, e.g. PyPi, Ruby gems, CPAN, etc.

Even with Erlang core itself, how many problems have been caused by
package quirks on a particular OS? (E.g. Ubuntu Erlang has
historically been notoriously unhealthy - I don't know if it's
changed, but I always compile from source at this point.)

Grabbing required source into a single directory and compiling
everything, independent of shared system code, is, in my experience,
much more reliable.

And having six projects in github for a given domain (e.g. ZeroMQ) is
hardly a misfeature IMO. As Joe pointed out, the multiple projects
encourage independent evolution based on environmental pressure
(programmer requirements) and, if it makes sense, can be be merged
into a consolidated source (e.g. see the heroic efforts Jesper to
merge the various MySQL driver branches).

I think I'm going to call this a feature, not a bug.

Garrett



More information about the erlang-questions mailing list