Git, the D package manager

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Sun Feb 8 08:57:01 PST 2015


On 2/8/15 3:00 AM, Jacob Carlborg wrote:
> On 2015-02-03 19:00, Russel Winder via Digitalmars-d wrote:
>
>> Learn lessons from SBT vs. SCons/Gant/Gradle: SBT is a Scala build
>> system using Scala programs as input.
>>
>> Some Scala folk got religious about Scala being the only right language
>> for Scala builds, and created what has become SBT. Because of the way
>> statically typed Scala works as a domain specific languages there are
>> performance and expression issues that means SBT is getting a reputation
>> in the very companies that should be supporting it that it is "the
>> enemy".
>
> It's kind of the same in the D community. Before Dub existed I started
> to work on both a package manager (Orbit) and a build tool (never
> officially announced). I used Ruby as the description format for package
> files a build scripts. Ruby is a language which allows you to create
> DSL's both with a declarative syntax and still support imperative code.
> Example:
>
> target :foo
>
> if System.osx
>    target :foobar
> end
>
> Of course that was completely reject since it was Ruby and not D.
> Although, for some reason Make is acceptable in the D community. It's
> basically only D or a markup language that will be accepted.

Ehm. This part sounds unnecessarily a bit political - NIH syndrome, 
closemindedness of the D folks toward using anything else but D and 
make, and such.

I do remember one action I took "against" Ruby - replacing a 109 line 
Ruby installer script with 13 lines of makefile code: 
https://github.com/D-Programming-Language/installer/pull/10/files. It 
would be difficult to construct an argument against that work.

Ruby and Python have all my respect as an outsider of their respective 
communities: they have users who enjoy them and get work done using 
them. That's always a good thing in my book.

That said, I wouldn't feel easy appealing to Ruby or Python for D 
internal work for reasons that I consider entirely practical and 
non-political:

* One more language for the maintainers to know and use.

* One more dependency. Although scripting languages are ubiquitous 
enough, I can tell from direct experience that versioning and dependent 
packages can be quite a hassle.

* Escaping into a high-level language seems as much "cheating" as 
escaping into a low-level language. If C or C++ would be needed instead 
of D for a task, it is worthwhile exploring how to make D a better 
replacement for them . This has been historically a good and important 
goal to pursue. Similarly I'd rather explore what it takes to expand D 
into high-level territory instead of escaping into a high-level language.


Andrei



More information about the Digitalmars-d mailing list