<br><div class="gmail_quote">On Nov 14, 2007 7:48 AM, Brandon Black <<a href="mailto:firstname.lastname@example.org" target="_blank">email@example.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
> <div><div>I view things like database and mail protocols similarly to how you<br>> (and I) view UIs - these are things that belong in extension<br>> libraries, not as some core part of a language distribution. The
<br>> popular protocols will change over time, and the popular<br>> implementations of those protocols will change as well. Old<br>> implementations will naturally be replaced with increasingly superior<br>> abstractions if you let the more external stuff evolve in a darwinian
<br>> fashion somewhere like CEAN. Even really good implementations will<br>> get replaced by newer ones that follow newer and better best practices<br>> that evolve over the years. Embedding early implementations of what's
<br>> popular today into the main distro is counterproductive if anything.<br>> Once you bundle something with the core, your stuck with it as legacy<br>> baggage for a very long time for fear of breaking upgraders, and
<br>> people tend to use it "because it's there" long after it's a very<br>> unrecommended practice to still be using it. Keep the core as minimal<br>> as possible, IMHO.<br></div></div></blockquote>
<div><br>Agreed that libraries should be separated from core. My point wasn't that they should be a part of core language or even distribution, but rather erlang can improve its adoption with the new comers with better support for conventional databases and other standard protocols than it has now. Mnesia is great and all, but it doesn't fully replace rdbms and few newcomers will start learning erlang by writing a full blown database client (or smtp client) that they've taken for granted (and never have to intimately know of the protocols) in other language platforms, even though erlang makes it easier to do so.
<br><br>But while we are on the extension point, I also agree with you that the extension distribution mechanism should be standard (besides tarballs + make). While organic evolution has its merits, IMO extension distribution is one problem where standardization helps more than it hurts, just witness CPAN and other variants. My personal favorite is PLT Scheme's Planet, which allows you to completely skip the install step by directly requiring the remote module as if it's local.