On Sun, 2016-05-01 at 07:55 -0600, Joshua Olson wrote: […] > > P.S. A discussion about their planned package manager: > > https://github.com/ponylang/ponyc/issues/247 > > They like Go's approach, with dependencies listed in the source > files, but > with more consciousness of centralizing some of them in a > configuration > folder and predownloading for machines with limited network access. > That's > what I remember at least.
Go assumes use of Git, Mercurial or Bazaar with explicit statement of the repository in the source code for all packages not in the standard distribution. There is no curated central registry of packages, it is a chaotic free-for-all. This approach has many positive aspects: it does not have a central high-priest controlled (and therefore subject to censorship and whim) location for packages; access to experimental stuff is easy, and the same as anything else. It also has a lot of problems of reproducible builds and so has led to a need for vendoring other people's packages on a per project basis. Python has pip and PyPI. Now whilst pip is getting better, PyPI is an uncurated depository of all that people choose to put there. There is a lot of good stuff, but a lot of total dross. But the system is central and this means all packages are the same as far as source code is concerned. In many ways the package management of Python is better for source code than Go. I have no knowledge of the Ruby Gem system. Rust and Ceylon have taken a road that combines the Go way and the Python way. Both have a central, curated repository, so there are the problems of high priest bias for the content, and the separation of experimental and published content. However this solved the problem of reproducible builds without vendoring. Rust has Cargo, in the way that Go has Go and D has Dub: a tool for managing dependencies and compilation. This allows for accessing experimental repositories instead of the central published repository. Ceylon originally assumed use of an IDE such as Eclipse or IntelliJ IDEA and that handled the dependencies and compilation, but now there is a good Gradle plugin that allows for command line usage. Personally I find the Python, D, Rust, and Ceylon ways of managing external packages much nicer than that of Go, but even Go is far superior to the situation that is C and C++. And Fortran. :-) -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:[email protected] 41 Buckmaster Road m: +44 7770 465 077 xmpp: [email protected] London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
signature.asc
Description: This is a digitally signed message part
------------------------------------------------------------------------------ Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________ Chapel-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/chapel-developers
