The vgo approach will encourage package managers to update their dependency versions to what they have actually tested with, which is very useful information for consumers of the package.
403 karma · joined August 14, 2017
The vgo approach will encourage package managers to update their dependency versions to what they have actually tested with, which is very useful information for consumers of the package.
If you just do plain vgo get, you will get 1.3.4, because of the minimum version approach.
In other words, we have node.js and not node.xxx because other languages at that time did not provide a suitable ecosystem for building asynchronous programs. Today most languages have much better async support, or they have features (like goroutines in golang) which achieve the same objective in a different way.
As far as front seats are concerned, why even have a front seat? Have people sit in a circle facing each other, with a table in the middle - so you can have a conversation. Not having a wheel allows us to reimagine the interiors of cars which are currently built around the driver.
And in any case are we now assigning global trademark rights to cities / countries for names used in their jurisdiction? To give an example, Budweiser would be subject to Czech jurisdiction, since it is named after a Czech town. This is not much of an argument.
You can then have the rest of your systems work as normal.
All this is easier said than done if you have a large investment in existing systems, but it is probably a design approach you can enforce from the beginning if you are a startup.
It is the caching where the discussion lies - effectively Google is providing a CDN for AMP pages and I agree this needs some improvements. But these should in the realm of technical discussions rather than looking for conspiracies.
Google does not do this out of altruism of course - their margins on web search are much higher than on mobile, and if more and more content exists only in mobile apps and walled gardens they will lose revenue.
Standards cannot become a strait-jacket. In many cases (such as HTTP/2) the standards have come much after the concept was proven. Though Dart and NaCl failed, they triggered improvements in Javascript and also led to WebAssembly.
AMP was created as a response to Facebook's Instant Articles. If anyone supports the open web, then it is hard to see how things become better if the web stays stuck as more content moves into walled gardens, or the web remains unusable on mobile phones in large parts of the world.
Maybe there is no controversy, because there is no need for one.
One of the issues which the vgo developers point out is that the "latest" behaviour has the perverse effect that a module A may declare a dependency of version 1.1 of a module B, and may have never been even tested on that version because the package manager always picked the latest.
In some sense, the vgo approach is saying that across hierarchy of module owners, each one should keep upgrading their manifest to the latest versions of their direct dependencies, and ensure that things keep working, rather than relying on the topmost module to pull in the latest of the entire tree of dependencies. This seems to be good for the entire ecosystem.
Not sure if i did it right, since the default template seems to be for a bug and not a new feature request.
edit : I can of course do it one by one explicitly for B and C. But it would be nice to qualify e.g. : vgo get -u -directonly
What would be nice would be a command to upgrade to latest of the direct dependencies - and then transitively pull in the latest version of packages they have been tested with.
AMP seems to be an attempt to keep the web relevant. In countries like India (where i live), most new users access the web via the mobile, and the experience can be far worse than in the west, and absent of initiatives such as AMP you will see a fall off in web usage in general. I am not sure how that helps the open web.
Definitely one of the threats to the open web would be the web platform falling behind "native" platforms such as mobile platforms. 10 years ago it seemed that native apps are dead, the web is going to win. And then the rise of smartphones has brought us back to a world where we are forever installing native applications. From what i can see, attempts to make the web faster (SPDY, AMP), safer (Certificate Transparency), more open (AV1) are all initiatives i can get behind. The question is : What are other companies doing to ensure the web retains its place as the premier open content / application development platform.
npm will pick the latest version of the dependencies compatible with the package.json of the packages (package-lock.json, is not published as part of the package). This means that with npm we may end up using a version of a transitive dependency which is much later than than the one that your direct dependency was tested with.
The proposal for vgo will take the minimum version compatible with the packages, and hence pick a version which is closer to the actually tested one.
So if Flutter hits 1.0 or beta sometime next year, you would have a way to develop mobile apps for today's platform which will require a smaller investment to run on an eventual Fuchsia platform.