Spec-ulation Keynote - Rich Hickey

  Рет қаралды 126,299

ClojureTV

ClojureTV

Күн бұрын

Пікірлер: 31
@endogenic6913
@endogenic6913 8 жыл бұрын
Glad somebody prominent and influential is able to see and say this.
@rast4ndy
@rast4ndy 7 жыл бұрын
Many examples of decade+ compatibility: - Unix APIs - Java - HTML - Clojure - Emacs I added the notable example of Emacs just because ;-) Such a great talk from Rich! As always. Thank you man and thank you to the Clojure community as a whole! It's such a great pleasure and an honor to be in this community. I owe you so much!
@jansamohyl7983
@jansamohyl7983 6 жыл бұрын
Add IBM mainframe (and things like JCL, Cobol, CICS, IMS..) to the list.. compatibility for 30, 40, 50 years.
@wotwot6868
@wotwot6868 5 жыл бұрын
3 years and only 27 comments. Seems like the future will look at this video just like we look at old Lisp ideas that we adopt now (if statements, garbage collection).
@ChadStovern
@ChadStovern 8 жыл бұрын
An instant classic. Rich, always gives well designed (see what i did there) talks tackling big ideas related to things we as an industry aren't questioning and should be.
@JT-mr3db
@JT-mr3db 6 ай бұрын
1:06:40 What I don't quite understand is that versions of software is a way of letting someone continue to use `foo`. If your on 1.0.0 and I release 2.0.0, you can still enjoy your holiday in Bermuda right? Just update when you see fit.
@manandearth
@manandearth 6 жыл бұрын
1:07:52 - I am afraid of other people. Genius.
@6006133
@6006133 8 жыл бұрын
Changes in packages using Semantic Versioning don't cascade up as far as I can tell. Even when they are breaking they do not. In that case packages that use them _directly_ need to have a new release that specify they are also compatible with the new version if they want their users to be able to use that new version. Packages that depend indirectly do not need to care. (And if they do, they actually depend directly and should define themselves as such.) Hence no cascade. Even in case of breaking changes, which should be rare, the only packages that might want to update (don't need to) are those that directly use it.
@MartinClausen
@MartinClausen 8 жыл бұрын
Postel's law: "TCP implementations should follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others."
@weeheavy6672
@weeheavy6672 7 жыл бұрын
Just wow.
@Siftsta
@Siftsta Жыл бұрын
One thing I wonder about regarding maven central being immutable is: if a package is found to straight up malware, is it removed, making maven not immutable after all? More commonly a package is found to be insecure, and it seems like we keep providing it for backwards compatibility, maybe with a big warning. Then again nothing is perfectly secure I suppose.
@pohjoisenvanhus
@pohjoisenvanhus 4 жыл бұрын
Yep. I ran into the same problem as well. What if I have an app which has multiple REST and WebSocket APIs, and I'd need to change some of them? The only approach that seems to make sense is to give each separate API its own version number even if they operate on the same stuff in the backend. In the end for things to be uniform I'd have to version every thing which serves as a dependency. Perhaps the point is that each module or component that gets reused either via network as a library needs a version of its own even if that versioning doesn't imply what semver implies i.e., the level of risk of breakage when for upgrading. As far as treating a spec change as a completely new thing that's what the Go people are doing. Yes, they use semver but the point here is that a new major version is forced to have a different package name. That allows using multiple major versions in parallel for easier transitions and makes sure that the compile breaks too if you try to use the wrong version's interface.
@TerjeDahlT
@TerjeDahlT 8 жыл бұрын
Wow! An amazing talk. I will be watching it again. Very inspiring. Speaking of versioning,,, didn't Rich some time ago talk about version control at the function level? What happened to that?
@wmhilton-old
@wmhilton-old 7 жыл бұрын
Is there a name for this Accretion, Relaxation, Fixation paradigm? Like A.R.F. versioning or growth-based development?
@disconnectedkooten
@disconnectedkooten 7 жыл бұрын
What I don't understand is: there's adding, removing but what about altering the behavior within a function? The output becomes different due to the implementation? I feel like that has not been covered, and won't as easily covered by the system he imagines that would check dependencies automagically.
5 жыл бұрын
Maybe I understand wrong, but I think whats he's saying is that if you need to change a function (foo1), then you create a new funtion (foo2). Because if you change foo1 you break everything linked with it. So in this case there's a bunch of people using foo1 and foo2 at the same time and nothing breaks.
@wotwot6868
@wotwot6868 5 жыл бұрын
He did mention that Functional programming; and that means pure functions. You will have to understand what that means first. Also, you just have to think about Java libraries and how they don't break. Running java code you wrote 20 years ago will still run today with Java 8. They did not break the old methods; they only introduced new methods; either by new classes or new packages.
@WilkerLucio
@WilkerLucio 4 жыл бұрын
If you need alter, than you are removing the previous, that means you need a new function
@truefaceofevil
@truefaceofevil 4 жыл бұрын
Sorry for the necro, but that's one of the things he talks about, basically calling something different the same name.
Maybe Not - Rich Hickey
1:03:29
ClojureTV
Рет қаралды 163 М.
"Simple Made Easy" - Rich Hickey (2011)
1:01:39
ClojureTV
Рет қаралды 67 М.
Deadpool family by Tsuriki Show
00:12
Tsuriki Show
Рет қаралды 7 МЛН
VIP ACCESS
00:47
Natan por Aí
Рет қаралды 22 МЛН
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
How Many Balloons To Make A Store Fly?
00:22
MrBeast
Рет қаралды 194 МЛН
The Language of the System - Rich Hickey
1:02:50
ClojureTV
Рет қаралды 165 М.
Rails Conf 2012 Keynote: Simplicity Matters by Rich Hickey
36:53
"Design in Practice" by Rich Hickey
1:00:46
ClojureTV
Рет қаралды 43 М.
A History of Clojure by Rich Hickey with Q&A
1:07:02
Visas Meilas
Рет қаралды 31 М.
Raymond Hettinger, Keynote on Concurrency, PyBay 2017
1:13:53
SF Python
Рет қаралды 153 М.
TypeScript Origins: The Documentary
1:21:36
OfferZen Origins
Рет қаралды 297 М.
"Simple Made Easy" - Rich Hickey (2011)
1:01:39
Strange Loop Conference
Рет қаралды 102 М.
Effective Programs - 10 Years of Clojure - Rich Hickey
1:14:52
ClojureTV
Рет қаралды 164 М.
Patterns of Effective Teams • Dan North • GOTO 2017
51:04
GOTO Conferences
Рет қаралды 118 М.
Deadpool family by Tsuriki Show
00:12
Tsuriki Show
Рет қаралды 7 МЛН