www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - [Fwd: Re: [go-nuts] Need for official package manager]

reply Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit

There has been a long running thread on the Go list about needing a
package manager, the nay sayers claim there is need for one as Go source
can import packages from Git (also Mercurial, and also Bazaar)
repositories. Someone posting this about Rust just to keep the
discussion going I think.

The news does validate putting effort into Dub for D codes.
-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
Mar 22 2014
next sibling parent Paulo Pinto <pjmlp progtools.org> writes:
Am 22.03.2014 15:36, schrieb Russel Winder:
 There has been a long running thread on the Go list about needing a
 package manager, the nay sayers claim there is need for one as Go source
 can import packages from Git (also Mercurial, and also Bazaar)
 repositories. Someone posting this about Rust just to keep the
 discussion going I think.

 The news does validate putting effort into Dub for D codes.

I was following the discussion as well, but gave up to post there as I see just a waste of time against religious arguments. From what I have been following, Go's community thinks everyone should distribute packages as source code with source control paths as import statements. Thus binding the packages to specific source control repositories. With no way of specifying versions and forcing developers to store source code of all dependencies, while doing search-and-replace to change import paths. Not to mention static linking as only means, which leaves out licenses like LGPL. If the naysayer win, I see a hard time for Go to gain any traction in the majority of corporations. Dub was a very good decision. -- Paulo
Mar 22 2014
prev sibling next sibling parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 3/22/14, 7:36 AM, Russel Winder wrote:
 There has been a long running thread on the Go list about needing a
 package manager, the nay sayers claim there is need for one as Go source
 can import packages from Git (also Mercurial, and also Bazaar)
 repositories. Someone posting this about Rust just to keep the
 discussion going I think.

 The news does validate putting effort into Dub for D codes.

Totally agree! -- Andrei
Mar 22 2014
prev sibling next sibling parent "Messenger" <dont shoot.me> writes:
On Saturday, 22 March 2014 at 16:23:31 UTC, Paulo Pinto wrote:
 Dub was a very good decision.

The logo is... unfortunate. As in, OGC-level unfortunate. https://www.google.com/search?safe=off&site=&tbm=isch&source=hp&q=OGC Cannot unsee.
Mar 23 2014
prev sibling next sibling parent "Meta" <jared771 gmail.com> writes:
On Sunday, 23 March 2014 at 10:01:32 UTC, Messenger wrote:
 On Saturday, 22 March 2014 at 16:23:31 UTC, Paulo Pinto wrote:
 Dub was a very good decision.

The logo is... unfortunate. As in, OGC-level unfortunate. https://www.google.com/search?safe=off&site=&tbm=isch&source=hp&q=OGC Cannot unsee.

I was perfectly fine not noticing that. Now I can't help but notice it.
Mar 23 2014
prev sibling next sibling parent reply Bruno Medeiros <bruno.do.medeiros+dng gmail.com> writes:
On 22/03/2014 14:36, Russel Winder wrote:
 There has been a long running thread on the Go list about needing a
 package manager, the nay sayers claim there is need for one as Go source
 can import packages from Git (also Mercurial, and also Bazaar)
 repositories. Someone posting this about Rust just to keep the
 discussion going I think.

 The news does validate putting effort into Dub for D codes.

Very interesting stuff! In particular, note this quote from one of the Rust guys, from the Rust package manager announcement: "I'm really glad that Mozilla and the Rust team are prioritizing package management. An open source language ecosystem really lives or dies based on how easy it is to share code, and writing a world-class package manager (as brson put it) takes time, especially when you account for the inevitable and important iteration that comes from real-world usage." It's dead right! Contrast this the apparently pedestrian (as Andrei likes to say) attitude of the Go guys... Why do they reject a package manager? I can understand not prioritizing that task very much, but to downright say "there is need for one"? Even if Go source can import packages for VCSs, I can't say that is sophisticated enough to count as a package manager (no version dependencies, etc.). There is also the problem of only allowing open-source dependencies, as was mentioned. But perhaps that limitation might be purposefully intended? If there are influential Free-Software zealots in the Go community (are there?), they might actively favor a "package management" system that prevents or discourages non-open-source software. In that case, there might not be lack of technical vision at play, but rather just a political agenda. (Note: I'm basing this on what has been said here regarding Go... I haven't checked the Go discussions myself, so that's why I wonder what their motivation is) -- Bruno Medeiros https://twitter.com/brunodomedeiros
Mar 29 2014
next sibling parent reply Paulo Pinto <pjmlp progtools.org> writes:
Am 29.03.2014 20:24, schrieb Bruno Medeiros:
 On 22/03/2014 14:36, Russel Winder wrote:
 There has been a long running thread on the Go list about needing a
 ...

(Note: I'm basing this on what has been said here regarding Go... I haven't checked the Go discussions myself, so that's why I wonder what their motivation is)

They are quite interesting to follow, given some of the more opinionated long time community members. Sometimes I wonder if anyone would care, if the language wasn't sponsored by Google. -- Paulo
Mar 30 2014
next sibling parent Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
On 3/30/2014 10:01 AM, Paulo Pinto wrote:
 Sometimes I wonder if anyone would care, if the language wasn't
 sponsored by Google.

Isn't that pretty much the main reason it ever got any attention in the first place? Not to be snide, just that that's been my observation.
Mar 30 2014
prev sibling parent reply Paulo Pinto <pjmlp progtools.org> writes:
Am 31.03.2014 11:17, schrieb Russel Winder:
 On Sun, 2014-03-30 at 16:01 +0200, Paulo Pinto wrote:
 […]

 Whether Rust turns into a "disturbance in the C/C++/D/Go force", we
 shall see.

Actually as a ML fan I follow Rust development closely and think it could get a piece of the systems pie. The more the merrier, as long as we eventually get rid of C and C++, even if takes a few generations more of developers. -- Paulo
Mar 31 2014
parent Paulo Pinto <pjmlp progtools.org> writes:
Am 31.03.2014 18:49, schrieb Russel Winder:
 On Mon, 2014-03-31 at 17:26 +0200, Paulo Pinto wrote:
 […]
 Actually as a ML fan I follow Rust development closely and think it
 could get a piece of the systems pie.

I too am following Rust development (*): never a day goes by without me having to rewrite my codes due to all the changes ;-)

hehe :)
 The more the merrier, as long as we eventually get rid of C and C++,
 even if takes a few generations more of developers.

Or C++ evolves into a reasonable language, C already is a reasonable language as long as you use it only for appropriate systems, of which there are a few, but only a few.

C++ can be quite good, except for compile times, if used as modern C++ alongside automatic memory management idioms. However it requires skilful developers for it, and most ones I have met outside CERN teams shouldn't been doing C++ in first place. This is the main problem with the language. As for C, for me it was that C++ subset I was obliged to use every time my teachers required me to do so. As Turbo Pascal refugee, plain C never pleased me, neither by lack of safety nor by available set of abstractions.
 (*) I just wish the compiler compiled a bit quicker. Whilst it isn't in
 g++ scales, it does take ages compared to Go.

Yeah, I miss native languages with fast AOT compilers like Turbo Pascal and Delphi. D is also pretty good, but I cannot use it at work. :( -- Paulo
Mar 31 2014
prev sibling parent Bruno Medeiros <bruno.do.medeiros+dng gmail.com> writes:
On 30/03/2014 12:58, Rikki Cattermole wrote:
 On Sunday, 30 March 2014 at 11:49:43 UTC, logicchains wrote:
 Interesting project: write a Go package manager in D. The reaction
 would be hilarious, if nothing else.

For an added bonus extend dub to support it. And in doing so make it so you can D->Go and Go->D. Because why not, must be doable! (okay okay maybe only Linux right now)

The original comment might have been said in jest, but it would be interesting and useful that a package manager would be written in a generic way that would allow it to be adapted to different languages. It's just good architecture, since a chunk of the functionality of the package manager is language independent anyways (version and dependency management). -- Bruno Medeiros https://twitter.com/brunodomedeiros
Apr 08 2014
prev sibling next sibling parent "logicchains" <jonathan.t.barnard gmail.com> writes:
Interesting project: write a Go package manager in D. The 
reaction would be hilarious, if nothing else.
Mar 30 2014
prev sibling next sibling parent "Rikki Cattermole" <alphaglosined gmail.com> writes:
On Sunday, 30 March 2014 at 11:49:43 UTC, logicchains wrote:
 Interesting project: write a Go package manager in D. The 
 reaction would be hilarious, if nothing else.

For an added bonus extend dub to support it. And in doing so make it so you can D->Go and Go->D. Because why not, must be doable! (okay okay maybe only Linux right now)
Mar 30 2014
prev sibling next sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Sunday, 30 March 2014 at 20:54:54 UTC, Nick Sabalausky wrote:
 On 3/30/2014 10:01 AM, Paulo Pinto wrote:
 Sometimes I wonder if anyone would care, if the language wasn't
 sponsored by Google.

Isn't that pretty much the main reason it ever got any attention in the first place? Not to be snide, just that that's been my observation.

I would say yes. The first features that caught my eye was the Pascal influence in type declarations and Oberon-2's influence in package format and how methods are attached to types. Not surprising given that Robert Griesemer has studied at ETHZ. Then as language archeologist that I am, I delved into Limbo's documentation, the system language for Inferno, Plan9 successor. A project where Rob Pike, Ken Thomson and Dennis Ritchie were also involved. It is quite interesting to see how Go is basically a lifting of Limbo with a bit of Oberon-2 on the side. Both languages failed in the market at large and except for archeologists like myself no one cares about them, most likely by not having such heavy height behind them. -- Paulo
Mar 31 2014
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
On Sun, 2014-03-30 at 16:01 +0200, Paulo Pinto wrote:
[…]
 They are quite interesting to follow, given some of the more opinionated 
 long time community members.

For those not following golang-nuts, the above is a wonderfully understated comment. This is very much the English/Stephen Fry use of the term "quite interesting" :-)
 Sometimes I wonder if anyone would care, if the language wasn't 
 sponsored by Google.

Actually yes. Though perhaps it would not have been so widely, nor would the traction have been so high and so fast. The point here is that Rob Pike has been working on message passing languages for decades: Newsqueak, Alef, Limbo,… and Go is the breakthrough of this sequence into the mainstream. For those of us who have been working on message passing systems, Go represents a very important language since it brings processes and channels based message passing to the masses (of programmers). It is abundantly clear that shared-memory multi-threading is an operating system and infrastructure technique along with locks, monitors, semaphores, etc. and has been since the 1970s. The Java community are just beginning to wake up to this, pushed by Scala folk and the fact that Doug Lea, Brian Goetz and a host of others' work is finally getting proper recognition, not least in Java 8. Actors have sort of become a bit popular as an asynchronous process and message passing technique, but it is just one of many concurrency and parallelism architectures, the two most obvious of which are dataflow and Communicating Sequential Processes (CSP) – Go's system is a kind of variation on CSP. And then there is data parallelism. D sort of has actors. D's data parallelism is unsophisticated compared to that of Java 8. Go, PyCSP, Python-CSP, JCSP and GroovyCSP are the only even part-way known about CSP implementations. DataRush and Groovy are the only part way known about dataflow systems. I pushed Anthony Williams to get an actors and dataflow library for C++, and this is progressing nicely, albeit a bit slowly. Hopefully it will get into Boost. The question for D is whether Go has already beaten D simply because of goroutines. Sadly I have to say yes. As do Google and Canonical, though they are probably not sad about it, they are just getting on with implementing lots of systems in Go. Whether Rust turns into a "disturbance in the C/C++/D/Go force", we shall see. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Mar 31 2014
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
On Sun, 2014-03-30 at 16:54 -0400, Nick Sabalausky wrote:
 On 3/30/2014 10:01 AM, Paulo Pinto wrote:
 Sometimes I wonder if anyone would care, if the language wasn't
 sponsored by Google.

Isn't that pretty much the main reason it ever got any attention in the first place? Not to be snide, just that that's been my observation.

I think there is an element of "very few would have noticed if it wasn't a Google project". On the other hand it is CSP in disguise and this is good. If it takes Google and Go to get CSP in the mainstream of programming, then I am all for it. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Mar 31 2014
prev sibling next sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Monday, 31 March 2014 at 09:18:08 UTC, Russel Winder wrote:
 On Sun, 2014-03-30 at 16:01 +0200, Paulo Pinto wrote:
 […]
 They are quite interesting to follow, given some of the more 
 opinionated long time community members.

For those not following golang-nuts, the above is a wonderfully understated comment. This is very much the English/Stephen Fry use of the term "quite interesting" :-)
 Sometimes I wonder if anyone would care, if the language 
 wasn't sponsored by Google.

Actually yes. Though perhaps it would not have been so widely, nor would the traction have been so high and so fast. The point here is that Rob Pike has been working on message passing languages for decades: Newsqueak, Alef, Limbo,… and Go is the breakthrough of this sequence into the mainstream. For those of us who have been working on message passing systems, Go represents a very important language since it brings processes and channels based message passing to the masses (of programmers). It is abundantly clear that shared-memory multi-threading is an operating system and infrastructure technique along with locks, monitors, semaphores, etc. and has been since the 1970s. The Java community are just beginning to wake up to this, pushed by Scala folk and the fact that Doug Lea, Brian Goetz and a host of others' work is finally getting proper recognition, not least in Java 8. Actors have sort of become a bit popular as an asynchronous process and message passing technique, but it is just one of many concurrency and parallelism architectures, the two most obvious of which are dataflow and Communicating Sequential Processes (CSP) – Go's system is a kind of variation on CSP. And then there is data parallelism. D sort of has actors. D's data parallelism is unsophisticated compared to that of Java 8. Go, PyCSP, Python-CSP, JCSP and GroovyCSP are the only even part-way known about CSP implementations. DataRush and Groovy are the only part way known about dataflow systems. I pushed Anthony Williams to get an actors and dataflow library for C++, and this is progressing nicely, albeit a bit slowly. Hopefully it will get into Boost. The question for D is whether Go has already beaten D simply because of goroutines. Sadly I have to say yes. As do Google and Canonical, though they are probably not sad about it, they are just getting on with implementing lots of systems in Go. Whether Rust turns into a "disturbance in the C/C++/D/Go force", we shall see.

Syntax notwithstanding, do you see any reason why goroutine-style CSP couldn't be implemented as a library in D? I know little about this area but at a brief glance it doesn't seem a particularly difficult problem.
Mar 31 2014
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
On Mon, 2014-03-31 at 13:01 +0000, John Colvin wrote:
[…]
 Syntax notwithstanding, do you see any reason why goroutine-style 
 CSP couldn't be implemented as a library in D?
 
 I know little about this area but at a brief glance it doesn't 
 seem a particularly difficult problem.

Syntactically the issue is to create an intuitive and easy to use syntax. Go has chosen one that works reasonably well – as has Python-CSP. Semantically, the various framework proof obligations can be encoded as tests, which makes that straightforward. So yes, it can be done, no it is a difficult problem, well once you get beyond the brief glance anyway ;-) -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Mar 31 2014
prev sibling next sibling parent "Kagamin" <spam here.lot> writes:
On Monday, 31 March 2014 at 09:18:08 UTC, Russel Winder wrote:
 Communicating Sequential Processes (CSP)

"a formal language for describing patterns of interaction in concurrent systems"?
Mar 31 2014
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
On Mon, 2014-03-31 at 14:42 +0000, Kagamin wrote:
 On Monday, 31 March 2014 at 09:18:08 UTC, Russel Winder wrote:
 Communicating Sequential Processes (CSP)

"a formal language for describing patterns of interaction in concurrent systems"?

Which is why a framework realizing CSP for real programs has a proof obligation: proof that the rules of CSP are actually implemented by the components of the framework. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Mar 31 2014
prev sibling parent Russel Winder <russel winder.org.uk> writes:
On Mon, 2014-03-31 at 17:26 +0200, Paulo Pinto wrote:
[…]
 Actually as a ML fan I follow Rust development closely and think it 
 could get a piece of the systems pie.

I too am following Rust development (*): never a day goes by without me having to rewrite my codes due to all the changes ;-)
 The more the merrier, as long as we eventually get rid of C and C++, 
 even if takes a few generations more of developers.

Or C++ evolves into a reasonable language, C already is a reasonable language as long as you use it only for appropriate systems, of which there are a few, but only a few. (*) I just wish the compiler compiled a bit quicker. Whilst it isn't in g++ scales, it does take ages compared to Go. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Mar 31 2014