Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What's the package management story with Janet? I've had my eye on it, but I'm not willing to manually download a bunch of source repos and mess around with configuration in order to use other people's code. Life is too short for that stuff.


Using JPM (Janet Package Manager) has been really easy, in my experience. Add a list of dependencies to your project.janet file and you're good to go.


What languages do you use, and how is that heuristic going for you? I find package managers help for some time after they're introduced, and then life sucks once again as they enable people to add lots of dependencies. It's kinda like how building more roads never seems to fully eliminate traffic jams.


My main "professional" language is Python, but I have written at least toy programs (100-1000 LoC) in R, Javascript, Typescript, Ruby, Perl, Lua, Go, Crystal, C, Common Lisp, Racket, Guile, Idris 2, Haskell, Zsh, Bash, and POSIX-ish Sh, as well as written non-trivial AWK, Sed, and Jq scripts. Also Hy and Fennel to the extent that those count as separate languages.

Having a package manager means I can easily reuse other people's code. Not having a package manager means I can't.

Note that my use cases almost universally involve either "scripting" or developing low-volume server applications that are deployed in container of some kind, or on a VPS that I control.

I have only developed nontrivial standalone "libraries" in Python, and I only use Lua/Fennel for Neovim plugins (where I am not alone in bemoaning the lack of a standardized way to declare dependencies [1]).

In almost every program I have written, my priority has been on rapid development/prototyping. I want to be able to do things like parse JSON, make HTTP requests, perform lookups in tables/mappings/dictionary-like structures, and manipulate text.

I also have a day job, an amazing life partner, and more interests/hobbies than I have time left in my life to spend on them. For me, time spent fussing with manually copying source trees and reading through dense manpages is time I could be spending on other things.

I also come from the worlds of statistics and data science, where it is often said that "nobody cares about your code." Time spent reinventing tools is time not spent cleaning/exploring data, revising a report, building a dashboard to accompany said report, or trying out some new techniques.

So to answer the 2nd part of the question: it's going great!

[1]: https://neovim.discourse.group/t/plugin-metadata-formats-wha...


Ok, that makes sense. I see now how package managers are an unalloyed good for someone who's mostly or entirely doing prototyping work and doesn't have to do the work to constantly keep them up to date. When you're prototyping, it makes sense to be profligate with dependencies.


JPM is a tool distributed alongside Janet that will download deps for you with `jpm deps`.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: