FizzyOrange

joined 2 years ago
[–] FizzyOrange@programming.dev 1 points 1 week ago

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.).

[–] FizzyOrange@programming.dev 2 points 1 week ago (2 children)

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:

  1. There's no way to use third party dependencies reliably from a single-file scripts. You're limited to the standard library, or setting up a whole pyproject.toml, venv and so on.
  2. You can't import files by relative file path like you can in Deno, Zig, and Rust (sort of; it's slightly hacky). That leads to people doing hacks to PYTHONPATH or importlib which completely breaks all tooling.
[–] FizzyOrange@programming.dev 2 points 1 week ago

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.

[–] FizzyOrange@programming.dev 1 points 1 week ago (2 children)

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.

[–] FizzyOrange@programming.dev 1 points 1 week ago* (last edited 1 week ago)

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.

[–] FizzyOrange@programming.dev 2 points 2 weeks ago (4 children)

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!

[–] FizzyOrange@programming.dev 1 points 2 weeks ago (4 children)

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!

[–] FizzyOrange@programming.dev 2 points 2 weeks ago

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.

[–] FizzyOrange@programming.dev 3 points 2 weeks ago

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.

[–] FizzyOrange@programming.dev 2 points 2 weeks ago

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.

[–] FizzyOrange@programming.dev 5 points 2 weeks ago

in the react-server package used by React Server Components (RSC).

[–] FizzyOrange@programming.dev 4 points 2 weeks ago

Is Deno not convenient and fast? I am also interested in knowing why I would want to use Bun over Deno.

view more: ‹ prev next ›