What Julia Does Right

H. S. Teoh hsteoh at qfbox.info
Fri Dec 9 17:28:14 UTC 2022


On Fri, Dec 09, 2022 at 02:11:15PM +0000, Paul Backus via Digitalmars-d wrote:
[...]
> Some features from the article that as far as I know have no
> equivalent in dub:
> 
> 1. Caching registry locally.
> 
> > Resolving environments feels instant, as opposed to the glacially
> > slow Conda that Python offers. The global "general" registry is
> > downloaded as a single gzipped tarball, and read directly from the
> > zipped tarball, making registry updates way faster than updating
> > Cargo's crates.io.

IMO speed in this area is critical.  Room for dub to improve.


> 2. Multiple registries with namespacing.
> 
> > Pkg is federated, and allows you to easily and freely mix multiple
> > public and private package registries, even if they have no
> > knowledge of each others and contain different packages with the
> > same names.

This is the way to go.  Flat package namespaces just don't cut it
anymore in this day and age.  Some kind of namespacing is necessary.

One may argue, D's ecosystem is so small, what need do we have of
package namespacing?  Well, think of it this way: if my D program is so
small, what need do I have of module namespacing?  Answer: it sets the
groundwork for future expansion.  If we start off on the wrong foot, it
will be difficult to add namespacing later when the ecosystem grows.


> 3. Cross compilation.
> 
> > The BinaryBuilder package allows you to cross-compile the same
> > program to all platforms supported by Julia

This IMO would be a big selling point for dub.  We need a comprehensive
cross-compiling solution that doesn't need manual hacking to work. LDC's
built-in Windows target is awesome, but still needs manual setup.
Cross-compilation to Mac is still incomplete, and WASM support is
separate and needs work. 


T

-- 
Frank disagreement binds closer than feigned agreement.


More information about the Digitalmars-d mailing list