this post was submitted on 20 Jul 2024
115 points (96.7% liked)

Programming

17651 readers
327 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 5 months ago (1 children)

but unlike Python you can use third party dependencies,

In what sense does python not have third party dependencies?

[–] [email protected] 2 points 5 months ago (1 children)

It has them, but you can't use them from a single-file script. You have to set up a pyptoject.toml, create a venv and then pip install . in it. Quite a lot of faff. It also makes some things like linting in CI way harder than they should be because the linters have to do all that too.

With Deno a single .ts file can import third party dependencies (you can use any URL) and Deno itself will take care of downloading them and making them available to the script.

Some other languages have this feature to certain degrees. E.g. I think F# can do it, and people are working on it for Rust, but Deno is at the forefront.

[–] [email protected] 1 points 5 months ago (1 children)

Oh I see what you mean. Interesting.

As you allude to there are tools in python to help (I tried pex briefly once, for example). It hasn't really been a pain point for me but I can see why people would spend time on it. I imagine this strategy has its share of tradeoffs and gremlins.

[–] [email protected] 1 points 5 months ago (1 children)

there are tools in python to help

I haven't actually used pex but it doesn't look like it solves this - it's more of a way of distributing full programs. The .pex files aren't editable, which is something you need for this use case.

I imagine this strategy has its share of tradeoffs and gremlins.

As far as I know there are no downsides. It's basically win-win.

[–] [email protected] 1 points 5 months ago (1 children)

I found it in the docs https://docs.deno.com/runtime/manual/basics/modules/#importing-by-url

Not sure if that generates like a lockfile or how it handles peer deps. Intersting nonetheless.

[–] [email protected] 1 points 4 months ago

It can optionally use a lock file. Not sure about peer dependencies tbh.