Live data from Hacker News

Spec-ulation – Rich Hickey [video]

youtube.com

51–60 of 74 posts

Re: Spec-ulation – Rich Hickey [video]

#51

Earlier quoted context omitted.

Read the release notes? Read the code diff? Try it?

So lots of manual work. And you still don't see the issue? Wouldn't it be good if there was some kind of automated way to know?

But without semver you'd need to do this manual work even more often! Semver makes you do less manual labor, because you know that PATCH and MINOR don't require your attention. You don't know such a thing in many other versioning schemes.

Would it be better to eliminate even more manual labor? Yes, of course. But then is semver bad because it reduces manual labor?

Re: Spec-ulation – Rich Hickey [video]

#52
post #17

I don't understand why he says semantic versioning does not work. In my experience (with NPM, not maven) it is very useful, adding meaning of intent by convention: Given a version number MAJOR.MINOR.PATCH, increment the: MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and PATCH version when you make backwards-compatible bug fixes. I got…

The JVM can't handle multiple versions of the same jar, as there is only one classpath.

A depends on B and C, which in turn depend on incompatible versions of D.

Congrats, you're screwed, unless you're running in an OSGi container.

The only reason this seldom a problem in Java land is because many popular core Java libs, including the whole frickin standard library and all the official extended specs like servlet maintain backwards compatibility, and the successful core libs do too (Guava, commons-whatever).

They do what he preaches. Bam, successful platform!

Re: Spec-ulation – Rich Hickey [video]

#54

I can't get any useful information from videos, it is so slowwwww. Even on 2x (the fastest I can watch), it is still 3 to 5 times slower than I read. Also, I can control my reading, skip the minutiae, or reread important parts or look up some reference — but I can't do that with videos or audiobooks or podcasts. I wonder how people even find it convenient. Unfortunately, Rich Hickey really loves videos for some reaso…

Hey, I usually take notes when reading or watching stuff. If you're willing to read through my semi-coherent org-mode notes, it summarizes the talk better than a full transcript.[0]

[0]http://pastebin.com/bmF0xc7y

Re: Spec-ulation – Rich Hickey [video]

#55
When I was listening to the part about breakage vs accretion, I kept thinking back to the Nix pkg manager from NixOS. It does a pretty good job of separating out the artifacts by indexing them by version number and a hash of the username (i.e. artifact-name = sha($user) + $project-name + $semver). There have to be other examples of pkg managers that do this kind of thing too...

Re: Spec-ulation – Rich Hickey [video]

#56
post #17

I don't understand why he says semantic versioning does not work. In my experience (with NPM, not maven) it is very useful, adding meaning of intent by convention: Given a version number MAJOR.MINOR.PATCH, increment the: MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and PATCH version when you make backwards-compatible bug fixes. I got…

The JVM can't handle multiple versions of the same jar, as there is only one classpath. A depends on B and C, which in turn depend on incompatible versions of D. Congrats, you're screwed, unless you're running in an OSGi container. The only reason this seldom a problem in Java land is because many popular core Java libs, including the whole frickin standard library and all the official extended specs like servlet mai…

Guava is actually a bad actor in this regard. To the point that it can sometimes teach people that "coding fearlessly" is an wonderful thing.

It certainly can be. Especially in monolith code bases where you can fix everything you broke.

As a platform, though, it is very frustrating.

Re: Spec-ulation – Rich Hickey [video]

#57

I can't get any useful information from videos, it is so slowwwww. Even on 2x (the fastest I can watch), it is still 3 to 5 times slower than I read. Also, I can control my reading, skip the minutiae, or reread important parts or look up some reference — but I can't do that with videos or audiobooks or podcasts. I wonder how people even find it convenient. Unfortunately, Rich Hickey really loves videos for some reaso…

Hey, I usually take notes when reading or watching stuff. If you're willing to read through my semi-coherent org-mode notes, it summarizes the talk better than a full transcript.[0] [0] http://pastebin.com/bmF0xc7y

Thanks!

Re: Spec-ulation – Rich Hickey [video]

#58

This is a very thick talk, one Rich's best ever IMHO. The first point is how we talk about 'change' in software, to center around what things 'provide' and 'require'. Breaking changes are changes that cause code to require more or provide less. Never do that, never need to do that. Good changes are in the realm of providing more or requiring less. There is a detailed discussion about the different 'levels' - from fun…

That's Postel's Law.

Re: Spec-ulation – Rich Hickey [video]

#59

Earlier quoted context omitted.

So lots of manual work. And you still don't see the issue? Wouldn't it be good if there was some kind of automated way to know?

But without semver you'd need to do this manual work even more often! Semver makes you do less manual labor, because you know that PATCH and MINOR don't require your attention. You don't know such a thing in many other versioning schemes. Would it be better to eliminate even more manual labor? Yes, of course. But then is semver bad because it reduces manual labor?

I get your overall point that it's better than nothing, but you'll have to admit semver makes promises that just don't hold up in reality:

> because you know that PATCH and MINOR don't require your attention

:)

In 99 % of cases, they don't. But you're never completely sure.

Re: Spec-ulation – Rich Hickey [video]

#60
post #10

> Logic systems don't have "And nothing else will ever be true!". Uuh. Closed world assumption? Everything that is not true is false. Most logic systems do have this. Prologs (not a logic system I know) cut operator even turns this statement into an operation. I feel like Rich really gets it wrong this time. His request to support all the abominations that you have ever written and keep them compatible with recent ch…

> His request to support all the abominations that you have ever written and keep them compatible with recent changes, might work if you have people pay for using your library and a company behind it This is generally his focus, on big professional software. I'm also a Clojure dev and I'm on the other side of the fence on this one as well so sometimes I'm disappointed in the enterprise focus but I knew what I was get…

> Am I crazy to think that maybe other lisps would have done better if they had demanded less purity?

People associate Common Lisp with many different things, but not purity.

Post reply on HN