

Not necessarily - look at Starlark for example. (I’m also not a huge fan of that but it does demonstrate that you don’t have to have a weird functional language to avoid the issues of side effects.)


Not necessarily - look at Starlark for example. (I’m also not a huge fan of that but it does demonstrate that you don’t have to have a weird functional language to avoid the issues of side effects.)


Right, I’m not saying it isn’t simpler in terms of syntax. The point I was making is that the syntax is simpler but in a way that makes it worse because while it’s easier for computers to read, it’s harder for humans.
it was only later discovered that they can be compiled down to native code.
That sounds extremely unlikely. I think you’re misinterpreting this quote (which is fair enough; it’s not very clear):
Steve Russell said, look, why don’t I program this eval … and I said to him, ho, ho, you’re confusing theory with practice, this eval is intended for reading, not for computing. But he went ahead and did it. That is, he compiled the eval in my paper into IBM 704 machine code, fixing bugs, and then advertised this as a Lisp interpreter, which it certainly was. So at that point Lisp had essentially the form that it has today …
As far as I can tell Lisp was always intended to be compiled and executed. That quote is about compiling the eval() function (which was just meant to explain how Lisp is executed) into a binary and using that as an interpreter.
Also I skimmed the paper that is from, and in fact Lisp was intended to be targeted by AI (in the same way that we get AI to write and execute Python to solve problems), which explains a lot. It wasn’t designed for humans to write, so why bother with nice syntax; just have the machine write the AST directly!
(I expect that was only part of the motivation tbf, but still!)


This comment perfect captures why I don’t like Lisp. Essentially “it’s simple, this easy to read code transforms to this AST”. Lisp basically says “we can make parsing way easier if we force programmers to write the AST directly!” which is really stupid because computers can perfectly well parse syntax that is easy for humans to read and turn it into ASTs automatically.
It makes it easier to parse for computers at the cost of being much harder to parse for humans, which is really the wrong choice in most cases. (The exception is if you’re DIYing your compiler, e.g. if you’re teaching how to write a compiler then Lisp is a good target.)


I’m not a fan of Lisps either. But I also thing the Nix language is kind of awful… So maybe in comparison it’s ok?


The real costs are the ~$100m they spend a year on developing GitHub and providing it for free to most people - including free CI.
They charge 3x the cost price for runners so that they can actually make money. This change is so that they can’t get undercut by alternative hosted runner providers.
I do think they could have just explained that and it probably would have been more palettable than their “we’re making it cheaper!” lie, but I guess there are also a lot of people that still think the only moral pricing is cost plus.


I’m surprised there aren’t more companies offering managed Forgejo instances.
Best option is to switch to C++ and use QtWidgets. You don’t need to know much C++ for that - if you want to tediously micromanage strings you can still do that in your business part of the program.


It’s the language and the domain. They work pretty well for the web and major languages (like top 15).
As soon as you get away from that they get drastically worse.
But I agree they’re still unambiguously useful despite their occasional-to-regular bullshitting and mistakes. Especially for one-off scripts, and blank-page starts.


This is the first time I’ve heard of Deno, but I’m not sure that having to install a 110Mb JS VM + runtime is more convenient in my context than simply using Python which is already guaranteed to available on any system I use and does all I need.
I can assure you it is 100x more convenient. One command to install it that has worked every single time I’ve done it, vs the hell that is Python installation. It’s meme-level bad..
Granted that was written before uv existed, and UV makes things a lot better in general. One thing it still isn’t great at though is installing Python. E.g. the binary Python distributions it can install never look for SSL certificates in the right (read: different on every Linux distro) places, so HTTPS doesn’t work.
If you actually want to install the latest version of Python on Linux (so you can’t use distro packages), the official solution is to build it from source. Which mercifully is easy (very surprising given the rest of Python), but still!
Is Typescript a better language than Python?
Not uniformly (e.g. arbitrary precision integers are the right choice for ad-hoc scripting, and Python’s support for lists, dictionaries, and filter/map is arguably nicer). Overall though, absolutely.
I definitely wouldn’t use Rust - or any other compiled language - for scripting.
Why not? It’s really good for shell scripting type stuff (executing commands, manipulating files, etc.).


Surely you wouldn’t argue that Rust or C++ would be a more appropriate alternative in that kind of role because they’re statically typed.
Not C++. Rust hopefully, when cargo script is stabilised!
Until then I strongly prefer Deno (which is also statically typed) for ad-hoc scripting. Python is surprisingly bad for that use case despite it being super popular for it because:


did you even read it?
Yes I read and understood it. :-D
I probably shouldn’t reply since apparently you’re still working on learning how to copy text…
ruby is bad because python/js good
Yes indeed, if you actually read his text, Ruby isn’t bad because Python/JS are good. It’s bad because it has failed to add static type checking. Python and JS are simply examples of languages that didn’t fail in the same way.
matz is good but DHH is bad and so ruby is bad
That quote says absolutely nothing about Matz or DHH making Ruby bad.
ruby is bad because it’s old
No, the text says that Ruby persists despite its badness due to inertia and nostalgia.
How can you accuse me of not reading it when you’re pasting literal quotes that contradict you? Insane.


ruby is bad because python/js good
Nobody said that.
matz is good but DHH is bad and so ruby is bad
Nobody said that.
Twitter failed 14 years ago because ruby is bad and so ruby is still bad
I don’t think Ruby’s performance has significantly changed since then, so yes. Still bad.
ruby is bad because it’s old
Nobody said that.
ruby bad because it’s not used as much as python/js
Nobody said that.
More straw men than a scarecrow convention.


This mirrors my feelings about Ruby. Especially the lack of type hints. It’s a huge problem when trying to work on large Ruby codebases, e.g. Gitlab or Asciidoctor. Easily doubles the time it takes to get anything done. Sometimes I’ve tried to make a change to Gitlab but had to give up entirely simply because it’s impossible to follow the control flow.
That’s very rarely a problem with statically typed languages. (It can happen with excessive use of interfaces that are resolved at runtime but it’s much less common.)
So aside from Rails I can’t really see any reason to use it over even Python, let alone actually good languages like Rust, Go, Typescript, etc.


Not buggier than Python is a really low bar.


You forgot about the lack of static type hints. That’s a serious flaw.
If you ignore the performance and lack of static types, then I don’t think there’s too much wrong with Ruby but apart from Rails there isn’t really a compelling reason to use it over Python either. And that’s not saying much!


None of the points in the article about the flaws of Ruby are because of Rails. In fact the article says the exact opposite - the only reason Ruby is still relevant is because of Rails!
I would say it’s the other way around. The only reason monorepos aren’t used more is because the tooling for monorepos is inadequate, or because people don’t know how to use them.
I can’t deny that the tooling for multi-repos is crap too though.
They are simpler, but they do not scale.
I don’t think many of us need to worry about scaling beyond the size of Google or Microsoft.
a push to a repo doesn’t mean “deploy changes to everything” or “build everything” any more
What do you mean? I have yet to work for a company that’s organised and sophisticated enough to actually use a monorepo but my understanding is you’d set up something like Bazel so it only builds & tests (and I guess deploys) things that depend on your change.
Sounds like observability, proper load testing, etc. beat a system without that. Saying that spaghetti code beat clean code makes it sound like it won because it was spaghetti code.
I haven’t watched the video, nor am I going to with a clickbaity and apparently misleading title like that.