Fork me on GitHub
Ben Sless04:07:43

There is interesting "lore" to the worse is better series. Did you know there were several articles responding to each other on the subject? They were published under different names By the same author


Thanks for sharing this! I didn't know anything about it before, and it was a fun rabbit hole to go down.

Ben Sless17:07:15

Have another one for free: Dijkstra didn't come up with the Considered Harmful title, the journal editor did

👍 2

Writing something and writing rebuttals to your own work under a pseudonym has got to be an amazing way to separate the chaff from the wheat.


It's kinda like the approach I took in school when I would have long drawn-out arguments on whatever theory with... myself. It's important to play both sides of the possible rebuttals so you're prepared with a strong stance, and you typically find amazing things out on both sides with whatever assumptions you begin.


I like the sound of "worse is better" much like I like the sound of "less is more." Worse is better, to me, can be two (maybe more) things: + slower code that is more readable is arguably worse and better. + faster code that is less readable is arguably worse and better.


another part of Worse is better is often "a 90% solution today is better than a 100% solution some day"


"Perfect is the enemy of good"

💯 8
😩 3

Yes, a suboptimal cake that is sloppy and offered is better than no cake at all.

🍰 3
Ben Sless07:07:18

Sorry if this comes off as depressing but all these intellectual titans are getting old, some of them already deceased. Is there anyone else doing work in the same caliber who picked up the torch?


Hah. I’ve had the same thought when listening to Eric Normands great podcast episodes going through old Turing award presentations, and also other older papers. There has been a lot of intelligent thinking done, and I’m wondering if we peaked some 30-40 years ago and since then just got stuck editing text files and worrying about deadlines.


@ben.sless To be even more depressing, Rich Hickey was asked about interesting papers to read in a podcast and he recommended papers from the early times of computer science and he described the current research as "just math". The people who pioneered systems in the early days had a higher level of practice and a systems approach whereas currently it's much more narrow. The last few minutes here:

☝️ 3
👌 2

I was on multiple local groups in Telegram about functiona programming. Left all of them, and currently I'm only at the Clojure one. The reason: they were all "just math". Lots of time, people discussed lots of theorems, proof concepts, etc, and nobody could even tell me how to parse a JSON in Haskell for example 😞

😄 12

On the other hand, even before what Rich mentions it was also just pure math. Well, mostly. A huge influx of money, talent, and a pressing need for computational power also made sure that that math resulted in something practical.

☝️ 2

It's a wonderful podcast btw and one of the few podcasts Rich appeared in. Kudos to@joy who, in contrast to #defnpodcast et al, actually got him to accept the invitation.

Ben Sless08:07:31

It is even more depressing, but he's right, and it's the same issue from another angle.

Ben Sless08:07:35

Kevlin Henny is a speaker I greatly enjoy and he has a habbit of digging up old papers, books and proceedings and showing ideas we treat as new today have been figured out, stated as obvious and forgotten 50 years ago


Kevlin's great! He's an old friend of mine and I got to know him back in the early '90s through his work on patterns and also his BSI C++ Committee stuff. I love watching him speak -- he's always so engaging and has great topics!


(and he flew over to the US to attend my wedding back in 2000 🙂 )

Ben Sless16:07:23

He has been a great influence on how I approach programming and I came across his talks right as I was starting. I think Mark Twain quipped that we don't learn from other's experience and do the same mistakes ourselves, but I think I managed to learn a few things in spite of that human tendency I owe him thanks and a beer if he ever visits Israel again

🍺 2

He's fascinating company to drink beers with 🙂


In his HOPL talk Rich Hickey also mentions that the tooling we have for Clojure is not as advanced as the tooling people had for Lisp or Smalltalk decades ago. Maybe in the future we will be back to where we were ;).


As an ex-Smalltalker, I am looking forward to that day. And because I practice wishful thinking, I wonder if REBL is some (very early) applied Rich-thinking to that future.


What are some ways that clojure tools fall short of image based development? I'm not familiar with Smalltalk but I've seen a couple of Pharo videos and it looks like the big sell is being able to stop an application, look at objects on the stack, click through their fields, and change values. Also, to save the image and load it later. Is there anything else?


@UJHMA11DJ I'm not a Smalltalk expert either, but the thing is that everything is inside the "image" - the code you're running, the editor, the objects and methods, etc. In Smalltalk, if you try to eval something that don't exist, the editor knows that, and can suggest you to make a stub for it. That's indeed how TDD works in Smalltalk - you write a function, it fails, and the editor suggests to write the stub for you. You eval, run the test again, and done. If a server is running, it knows that this new object/method/message exists. No "stop/start" anything at all. I remember seeing a video where the person queried the full environment for live objects, ordered by memory usage, and was able to plot that somehow, so he knew which place he had to refactor to not allocate that much memory... when we look at the tools we have today that do this (VisualVM and its "mungled Clojure names" or Chrome Devtools that can't get the right line on a Javascript function) it does seem like a huge step backwards


I remember this podcast, was fun to listen to! Bret Victor somewhat addressed this in his talk the The Future of Programming. The gist of it was that we are in a very different state from the earlier days. There, everything seemed possible, building computers, languages, programs, interfaces all merged together into one malleable free medium. They didn’t have the same preconveived limitations, the inventions and ideas where much more radical. I think there are two competing forces and one is currently dominating. It reminds me of this quote by Voltairine de Cleyre: &gt; There are two spirits abroad in the world,—the spirit of Caution, the spirit of Dare, the spirit of Quiescence, the spirit of Unrest; the spirit of Immobility, the spirit of Change; the spirit of Hold-fast-to-that-which-you-have, the spirit of Let-go-and-fly-to-that-which-you-have-not; the spirit of the slow and steady builder, careful of its labors, loath to part with any of its achievements, wishful to keep, and unable to discriminate between what is worth keeping and what is better cast aside, and the spirit of the inspirational destroyer, fertile in creative fancies, volatile, careless in its luxuriance of effort, inclined to cast away the good together with the bad. Research itself has a lot to offer currently, but it is more focussed on AI, robotics, cloud computing, security, applied informatics, formal veryfication and so on. More about specific fields and less about holistic systems and new ways of thinking and modeling. I don’t think it is necessarily about a split between research and practice, although that is certainly a factor. I think software has become so big and mainstream that we are in the process of refining, stabilizing and evolving programming into a craft that can be relied on and understood.

Ben Sless10:07:45

There are two additional social problems tied to that One is I think we put a lot more emphasis on accreditation than we used to. You almost have to have a PhD, have published papers and talk somewhere in order to be taken seriously. The problem is that social circles tend to converge, so you'll soon find all the ideas coming out of academia looking kinda similar, which means you'll probably need an outsider to bring a new idea The second is that outsider inventors, the kind of guys who say "screw it all, it's time to rethink X" besides lacking formal accreditation, tend to also be weirdos who have weird ideas about other things. Their ideas are often disagreeable, and then they face a wholly different barrier to entry, they can't talk about their invention, because everyone wants to talk about their other weird ideas and why they're bad, and therefor the invention should be discarded (see the big thread a few days earlier about urbit, or go to Jonathan Blow's twitter) I wonder what that says about us in general


I’m a big fan of Blow’s work, but I avoid Twitter, partly because of the problem you described above. I care about how he thinks about game design and engineering and that’s it.


Also some of the smartest and most influential people have been nutjobs. They are just people. This is why in some circles there is a stronger separation of people and ideas. For example in anarchist philosophy there are concepts (organisational, philosophical etc.) and they tend not to be prefixed with the name of the person who discovered, framed, popularized them. I think that is useful.

Ben Sless12:07:22

I know that feeling

Ben Sless12:07:48

There are people who feel very strongly about it and don't think you can separate the idea from the person

Ben Sless12:07:33

But I don't see them rushing to abandon jet propulsion despite the original work of von Braun


I think it depends on the idea. If someone makes moral claims then I can’t take them seriously if they don’t follow them for example.


Yeah there are just too many example of these, so it doesn’t make sense to throw the baby out with the bathwater (if that saying is applicable)

Ben Sless12:07:08

I'm not sure it's applicable

Ben Sless12:07:25

for lack of a better word it feels religious (?)

Ben Sless12:07:46

"Do you renounce Satan, and all his works" vibes


sure, religion has a history of defining what is sacred truth and what isn’t and if you were not acting within that framework they would not accept what every you discovered or worked out.

Ben Sless12:07:00

And you can see it in discussions about works by people with socially unacceptable ideas all the time. You have to go through the kabuki theater of "off course I find X's ideas abhorrent"


but it goes deeper than that. it is in complete ignorance of what we as humans are primarily good about, which is collaboration. As individuals we have this or that strength or weakness (and with some of the biggest strengths sometimes come severe weaknesses), but this diversity lets us be stronger collaboratively.

Ben Sless12:07:50

Some sort of handshake protocol without which you can't discuss the idea. What gives?

Ben Sless12:07:44

An excellent example of this case you describe is Stallman, who isn't known for his social finesse


it took him decades to find a decent communication style

Ben Sless12:07:20

With him I also wonder if there's an aspect of cultural mismatch, besides the abrasive style, what if Finns communicate way more directly than Anglophones, for example?


My protocol is typically making a dumb joke or something like that.


Yeah that might be true as well.

Ben Sless12:07:36

Which is why I went with Stallman as an example. He's also very clearly less socially aware than Linus

Ben Sless12:07:03

So at some point I got to ask, is it just picking on the weird kid?


Yes it is.


But weird kids got to learn too how to be nice. Just yelling at them doesn’t really help.


Often it’s also just happenstance. Everyone has different contacts and social connections, so we’re more or less aware of a given nuance.


Just going to hop into this thread and say that because software systems are social systems, concerns about the moral assumptions and norms held by the creators of software systems are not merely "kabuki theater". Conway's law is a thing. The point you're trying to raise is that we should get out of a narrow view to try and see the system in its entirety, right? I don't see how trying to draw an artificial boundary between the technical and the social actually helps you do that, but :man-shrugging:

Ben Sless13:07:37

The problem is that this is your view of things and you're trying to force it on others • software systems are social systems: are they? Or is it at best an inversion of cause and effect, i.e. communication systems allow for different social expressions? • Conway's law is a thing: If you're going to refer to it, do it correctly - Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. This is completely an inversion of cause and effect. The law states that an organization's structure defines the system, not that the system will infect you with the bad ideas of the creator via daemonic possession • right? wrong. My point, if there is one at all, is that we completely failed on both openness + acceptance and on innovation • trying to draw an artificial boundary: try not to politicize everything and it won't be political. You'll find things are way more pleasant that way.

Ben Sless13:07:57

is it possible to have any discussion without having a categorical moral imperative shoved in?


There is an interesting discussion to be had about the modern role of shunning and the paradox of tolerance, however I would probably pick a different example than Richard Stallman, because people's criticisms of him go beyond "picking on the weird kid" to (IMO correctly) "saying that someone who thinks ephebophilia is no big deal is wrong"


> I don’t see how trying to draw an artificial boundary between the technical and the social actually helps you do that It’s not an arbitrary distinction to discriminate the person from the idea, or two different ideas from the same person that has demonstrated a different level of expertise fundamental to those ideas. I think it’s valuable.


Yes, but saying X said by P is wrong doesn’t imply that every W from said by P is wrong.


Maybe it’s a very good example because it is so uncomfortable.

Ben Sless14:07:26

Sure Conor, go ahead and condemn everything Foucault has every said and done, I'll wait


Loved his pendulum

Ben Sless14:07:36

I was talking about the Michel, not Leon, stop playing games

Ben Sless14:07:44

There is nothing stopping you from ignoring discussion you don't like instead of trolling it


I am not really interested in Foucault, or trolling you (the above comment was sincere, believe it or not). You seem a bit angry in general, hope everything is going OK in your life


I don’t think I understand what this discussion is about anymore.

Ben Sless14:07:02

This is the intended effect of trolling done right. Good job conor

Ben Sless14:07:21

Now you are concern trolling, nice

Ben Sless15:07:21

So if you would kindly lay off, and perhaps consider the relation between such behavior and the chilling effect it generates and the lack of innovation and breakthroughs which was the starting point of this discussion


Continuing, I also thing that Stallman is a good example. Sure, I disagree with him in lots of things both political and even in free and open source in general. It doesn't make him wrong though... I remember seeing some of his "bleak stories about the future" more than 20 years ago, and thinking "this man is crazy!" Turns out that not only he was right, some of the stories I read painted a future that's actually better than what we have today


And looking at the first message on the thread, I believe research became "too commercial" - how to make things sell better, target the right population, etc... I mean, it's crazy that my phone knows what I want to buy but can't even connect to the right WIFI network when I move around the house...

👍 4
Ben Sless19:07:10

And that you can't sanely install a different OS or unsigned binaries on your phone. It's not even yours!


Reading "Tools For Thought" by Howard Rheingold. Encountered a nice passage by Turing: > This process of constructing instruction tables [the modern term would be "programming"] should be very fascinating. > There is no real danger of it ever becoming a drudge, for any processes that are quite mechanical may be turned over to the machine itself.

☝️ 2
Martynas M13:07:05

Hey. Looking for a job. I want to ask whether it's appropriate to ask in the #remote-jobs if I'm looking myself. What is the best way to do it? 🙂 Based in LT, Vilnius.


I'm 95% sure it's appropriate. In addition, I remember seeing such posts there and I don't remember seeing them being removed.

Alex Miller (Clojure team)20:07:33

Given: a Windows machine with WSL2 Want: a text editor for writing Python code, in a UI (not terminal) that does as little as possible, preferably something that's on the box but otherwise something very easy to install Audience: middle school age kids what should I use?


Sublime text 4

Alex Miller (Clojure team)21:07:45

I’m looking to install as few things as possible, preferably 0 things


My favourite: VSCode as it has full WSL2 integration (Remotes to WSL2 - full interaction with no X-Server needed) Sadly thats something to install if its not there by default

👍 5

If it’s 0 things, then what about something like ? The only problem I’d have with that one is that it’s ad supported. But it has syntax highlighting, can execute in the page. Selecting “Save” will download your file locally, and selecting “Open” will upload a file from your local folder.


I suspect there are other others out there that don’t have the ad support

Ben Sless06:07:33

Jupyter notebooks, they also have a visual aspect which some can find helpful for learning


VSCode. If you do not install the recommended Python extensions, it will be very bare bones. It will have syntax highlighting, auto-indentation, code folding etc. and no IDE like features.


In my experience, tooling complexity is way more important when teaching kids than for professionals. I'd probably use either: 1. - no install at all, or 2. - if you want something local. It makes sense out of the box, and you don't really have to understand more than you see. I used Thonny for Teach Kids Code Oslo a few years back, and that worked out fine. What I would choose today would depend a bit on the goal. Easy deployment -> Learn to handle files -> thonny.


Google Colab. It’s focused on ML, but it can be perfectly fine for “regular” Python also. (I think you do need to be logged in with a free google account to use the basic version). I used it a bunch to train/test some basic ML models. Hands down the best of all notebook, install-free solutions. PyCharm is obviously a superior editor but Colab requires no setup and for a relatively small fee you get a ton of ML/GPU power also.


PyCharm apparently has a free community version


@alexmiller Probably code . with some Python plugin installed


it doesn't do as little as possible though, for that, probably use notepad.exe

Martynas M20:07:14

As I was starting everyone used notepad++. It has some syntax highlighting and if you're lucky maybe even for clojure.


@alexmiller python comes with IDLE. That's what I learned on early high school

😎 2