FizzyOrange

joined 2 years ago

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.

[–] FizzyOrange@programming.dev 1 points 2 days 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 2 days 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 4 days 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 4 days 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 5 days ago* (last edited 5 days 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 5 days ago (1 children)

Not buggier than Python is a really low bar.

[–] FizzyOrange@programming.dev 2 points 5 days 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 5 days 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 1 week 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 1 week 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 1 week 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.

25
submitted 8 months ago* (last edited 8 months ago) by FizzyOrange@programming.dev to c/linux@programming.dev
 

Edit: rootless in this context means the remote windows appear like local windows; not in a big "desktop" window. It's nothing to do with the root account. Sorry, I didn't come up with that confusing term. If anyone can think of a better term let's use that!

This should be a simple task. I ssh to a remote server. I run a GUI command. It appears on my screen (and isn't laggy as hell).

Yet I've never found a solution that really works well in Linux. Here are some that I've tried over the years:

  • Remote X: this is just unusably slow, except maybe over a local network.
  • VNC: almost as slow as remote X and not rootless.
  • NX: IIRC this did perform well but I remember it being a pain to set up and it's proprietary.
  • Waypipe: I haven't actually tried this but based on the description it has the right UX. Unfortunately it only works with Wayland native apps and I'm not sure about the performance. Since it's just forwarding Wayland messages, similar to X forwarding, and not e.g. using a video codec I assume it will have similar performance issues (though maybe not as bad?).

I recently discovered wprs which sounds interesting but I haven't tried it.

Does anyone know if there is a good solution to this decades-old apparently unsolved problem?

I literally just want to ssh <server> xeyes and have xeyes (or whatever) appear on my screen, rootless, without lag, without complicated setup. Is that too much to ask?

 

Does anyone know of a website that will show you a graph of open/closed issues and PRs for a GitHub repo? This seems like such an obvious basic feature but GitHub only has a useless "insights" page which doesn't really show you anything.

 

Very impressive IDE integration for Dart macros. Something to aspire to.

view more: next ›