thiagomajesk

thiagomajesk

PKGX, the blazingly fast, standalone, cross‐platform binary that runs anything

I came across this PKGX tool the other day, if anyone here is using it, could you share your experience?

I’m wondering how useful it would be to have Elixir bindings for PKGX… I know that some elixir libraries like esbuild and tailwind depend on those being packaged as a standalone binary, and it feels that PKGX could make running those tools a lot easier.

Most Liked

halostatue

halostatue

pkgx is an interesting idea, but there are IMO issues.

Aside from one of them, they are somewhat minor and technical (no support for fish shell; packages managed with pkgx must be relocatable, which may mean substantial maintenance or potential divergence from upstream).

The one that’s not minor is that it’s part of Max Howell’s tea token web3 project. (Related to this, they have raised at least US$17M for the web3-ification of open source development. They will have to make this money back somehow.)

dimitarvp

dimitarvp

I’ve spotted pkgx a while ago but found it very messy in terms of implementation and wasn’t sure it would treat my machine well (and whether it will leave a lot of traces and leftovers) – granted that was not a 100% informed opinion, it was based on reviewing random pieces of code over the course of 15 minutes max.

One thing is clear though, we need a much better way of finding / installing / running AND updating programs. Especially the updating part is sorely lacking in many ways, f.ex. if you want to track a latest Golang binary executable then you have to install tools like gup in order to be able to mass-update such binaries.

Same goes for the cargo install-update Rust tool. There are others as well.

And don’t get me started on the various zsh plugin managers, we have no less than 8 separate “plugin managers based on GIT” which are more or less just scripts that do git clone and then subsequently git reset --hard && git pull on a list of directories. Tragic.

But all this underlines how sorely lacking this area is. Of course this also shows how much do we need immutable OS-es where you can temporarily install tools and “lose” them on reboot (or manually; or choose to retain them and put them in the immutable image), and how badly do we need sandboxing as well.

…And none of that even touches on “transactions” on the file system that were needed like 40 years ago and are still not implemented in the mainstream kernels. The file system should be a database.

“Modern” OS-es are pretty primitive still.

/rant

thiagomajesk

thiagomajesk

Yes, and I think we are having a tooling renaissance with a big focus on DX after the industry neglected it for so much time. And companies know that people simply don’t have time to waste.

This is why people will choose the “easy” way over the “right” way because time and energy are limited resources (especially if the allegedly “right” doesn’t come with good DX). But also because technology is a Wicked Problem, so this purist sense of the “perfect” tool doesn’t exist in practice.

At this point in my life, I’m taking whatever makes my life easier and I’m glad other people are tackling those problems because I surely don’t have time to invest in fixing this BS myself :sweat_smile: haha.

dimitarvp

dimitarvp

Sincerest apologies, please rest assured it wasn’t meant that way, I’m getting older and often don’t want to put the soft gloves. :smiley:

My general stance is that our area never learns. By the time most of us are mature enough to contribute… we usually no longer want to, and then the “innovations” are left for the youngsters who make a whole huge bunch of new and exciting errors. Quite tragic.

Eh. I’m sure we’re forgiven if we do not take seriously people who judge by syntax.

At this point in my life and career I found out I can easily learn and work with most of the programming language syntaxes I ever stumbled upon – and that people’s misgivings about them are usually shallow. Syntax can get in the way of thinking about a problem and that’s a legitimate complaint but again, it’s the one that’s very rarely raised.

My only remark towards Erlang / Elixir is that we could use some more static strong typing but at the end of the day I’ll just use (or roll my own) runtime validation library and that’ll be me nailing my developer experience.

derek-zhou

derek-zhou

I meant they are or’ed together. Let me rephrase:

I can only adopt tools that are time tested, or does not depends on hype, or simple to understand. I don’t think PKGX check any of the boxes.

Where Next?

Popular in Discussions Top

New
bartblast
StackOverflow Survey results for 2025 have been published: Gleam - 2nd most admired language Elixir - 3rd most admired language Phoenix...
New
f0rest8
Hi everyone :waving_hand: Posting here to showcase and announce that Metamorphic is now officially live on a public-facing domain at htt...
New
stefannovak
Hi all, I’m going to be giving a little 20 minute tech talk at my company which uses .NET C# across all of our 100ish size IT team. I’m ...
New
arcanemachine
Just wondering what the community currently thinks, prefers, and/or recommends for working with UI components. (e.g. daisyUI, MishkaChele...
New
lessless
I wonder if it’s possible to mimic a simple “class reopening”/inhertinace-based SEAM in Elixir to alter a module’s behaviour without edit...
New
karlosmid
The |> operator appears in many languages, mostly in the functional world. F# has essentially the exact same operator, as does OCaml. ...
New
adam
I wonder if anyone in the community has started to use Github’s Codespaces for their team’s development? If so, what is there to learn? ...
New
AstonJ
Posting this as a separate thread as I’m sure lots of people will be curious - what will the (or the intended) differences be and when mi...
New
ScriptyScott
Hey Folks, I just spent the last couple of days doing a deep dive into using Swoosh with Amazon’s simple email service, check out this t...
New

Other popular topics Top

SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30048 115
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
myronmarston
The Elixir Typespec docs show the following syntax for keyword lists in typespecs: # ... | [key: type] # keyword lis...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New

We're in Beta

About us Mission Statement