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

adamu
When starting a new project, do you have any go-to libraries you pull in out of habit/preference? For example, Ash, Credo, Mox, ExMachin...
New
AstonJ
@Garrison’s comment in another thread reminded me of this post by Joe: With the big five exerting more control than ever, new (AI) play...
New
ryanrasti
Hey everyone – after coming off of 3 years building with Ecto, I’ve been working non-stop on Typegres, a new query builder that strongly ...
New
bartblast
This thread is dedicated to announcing updates to the Hologram documentation, as well as discussing any ideas for improvements and sugges...
New
axelson
Hi there! :wave: @frigidcode and I (but mostly him) have been running an Elixir Book club, we’re almost done with Designing Elixir Syste...
New
stevensonmt
Has anyone else ever wanted to merge two maps, but have the resulting map only include keys common to both maps? I think of it as analogo...
New
bartblast
I recently started a discussion about reactive patterns in Hologram, but I realized I need to step back and design the composability arch...
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
chrisliaw
Hi, I’m wondering is it my thinking process or this is the norm among the Elixir developer for the use of Struct and accessor functions ...
New
gushonorato
Hey everyone, I’ve been working with Elixir for over 5 years and I’m a big enthusiast of the language. However, when starting new projec...
New

Other popular topics Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
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
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 35421 110
New
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
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers' Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New

We're in Beta

About us Mission Statement