I'm in the position that I actually find npm / yarn the best ecosystem. Whenever I use something else I always end up stubbing my toe into something thats missing / feels wrong.

Ex. Cargo seems to neither have a concept of devDependencies nor peerDependencies.

@zkat__ I also can't understand why it wouldn't have an "add" command to add a new dependency. And I'm no fan of Toml, json is greate (easy to parse and build tooling around), and the better option in my opinion would be json5.
@zkat__ C / C++ seems to just not have language package managers. The linux / bsd crowd seem to have decided that the system package manager also should be the language package manager. Which might have been fine if every Linux distro used the same system package manager.
@zkat__ Instead we end up with a N x M problem. Where we have a bunch of different operating systems and they all support multiple system package managers. So there's no easy way of distributing, referencing and updating C / C++ packages.
@zkat__ It is also my opinion that the compiler / runtime should be a package dependency. I don't like Rust's split between rustup and cargo (they should have been one tool). Similarly it would be better if you added Node as a dependency to package.json, that way we wouldn't need NVM.
@zkat__ Lock-files are great, but I'm always surprised that they aren't built in a way so that Git can more easily automatically resolve merge conflicts. Maybe package managers could supply a Git hook for fixing merge conflicts in lock-files?
@zkat__ I'm not to happy that Cargo doesn't have a dedicated command for downloading dependencies. I don't want it to download all its dependencies when I run the build, I would want to do that beforehand as its own step. How else am I to cache the dependencies in buildpipelines / Docker
@zkat__ I still don't know how Go handles its dependencies. Whatever they did with requiring a GOPATH when it first came out was horrible. I feel like any new programming language that comes out should solve their package management first before releasing something into the public.
@zkat__ In fact I feel like any new programming language should be built around package management! Semver is okay, but not great. There should be no reason to manually have to set version numbers. But that would mean that the compiler would have to come up with a version number.
@zkat__ That should be possible if the language was built around supporting it.
@zkat__ I feel like every package manager should have a command to output their dependency tree as a graphviz Dot file, so that you could easily graph it. Especially if you have a monorepo with multiple workspaces.
@zkat__ And why don't package managers come with petter tooling around reviewing and upgrading dependencies? Let me easily get a list of dependencies and filesize. Give me a linter to ensure that packages gets updated.
@zkat__ Let me set max size for libraries so that I can ensure that I don't pull in to big libraries.
@zkat__ Yarn Berry's idea of committing the yarn executable to the Git repo so that it to is versioned (and therefor is versioned between developers / CI servers) is a great idea! How well it works in practice I have yet to see.
@zkat__ I'm not a fan of Yarn keeping a single lock file for all of it's workspaces in a monorepo. It makes building things inside docker a bit weird, it creates more opportunities for merge conflicts. I feel like there should be a better solution for this.
@zkat__ Lock-files in general feel like they store to much information. There should be an algorithm to reduce what information is needed, and to find a minimal set. I remember seeing a project that supposedly fixed this in another ecosystem.
@zkat__ This came out as a bit of a rant, I'm afraid that I could keep going for quite a while. Feel free to hit me up if you'd like to talk more about this. Then again you probably have know a lot more than me about all this having worked with building this kind of stuff.
@zkat__ @UnrollHelper

More from Tech

The 12 most important pieces of information and concepts I wish I knew about equity, as a software engineer.

A thread.

1. Equity is something Big Tech and high-growth companies award to software engineers at all levels. The more senior you are, the bigger the ratio can be:


2. Vesting, cliffs, refreshers, and sign-on clawbacks.

If you get awarded equity, you'll want to understand vesting and cliffs. A 1-year cliff is pretty common in most places that award equity.

Read more in this blog post I wrote:
https://t.co/WxQ9pQh2mY


3. Stock options / ESOPs.

The most common form of equity compensation at early-stage startups that are high-growth.

And there are *so* many pitfalls you'll want to be aware of. You need to do your research on this: I can't do justice in a tweet.

https://t.co/cudLn3ngqi


4. RSUs (Restricted Stock Units)

A common form of equity compensation for publicly traded companies and Big Tech. One of the easier types of equity to understand: https://t.co/a5xU1H9IHP

5. Double-trigger RSUs. Typically RSUs for pre-IPO companies. I got these at Uber.


6. ESPP: a (typically) amazing employee perk at publicly traded companies. There's always risk, but this plan can typically offer good upsides.

7. Phantom shares. An interesting setup similar to RSUs... but you don't own stocks. Not frequent, but e.g. Adyen goes with this plan.

You May Also Like

IMPORTANCE, ADVANTAGES AND CHARACTERISTICS OF BHAGWAT PURAN

It was Ved Vyas who edited the eighteen thousand shlokas of Bhagwat. This book destroys all your sins. It has twelve parts which are like kalpvraksh.

In the first skandh, the importance of Vedvyas


and characters of Pandavas are described by the dialogues between Suutji and Shaunakji. Then there is the story of Parikshit.
Next there is a Brahm Narad dialogue describing the avtaar of Bhagwan. Then the characteristics of Puraan are mentioned.

It also discusses the evolution of universe.(
https://t.co/2aK1AZSC79 )

Next is the portrayal of Vidur and his dialogue with Maitreyji. Then there is a mention of Creation of universe by Brahma and the preachings of Sankhya by Kapil Muni.


In the next section we find the portrayal of Sati, Dhruv, Pruthu, and the story of ancient King, Bahirshi.
In the next section we find the character of King Priyavrat and his sons, different types of loks in this universe, and description of Narak. ( https://t.co/gmDTkLktKS )


In the sixth part we find the portrayal of Ajaamil ( https://t.co/LdVSSNspa2 ), Daksh and the birth of Marudgans( https://t.co/tecNidVckj )

In the seventh section we find the story of Prahlad and the description of Varnashram dharma. This section is based on karma vaasna.
Great article from @AsheSchow. I lived thru the 'Satanic Panic' of the 1980's/early 1990's asking myself "Has eveyrbody lost their GODDAMN MINDS?!"


The 3 big things that made the 1980's/early 1990's surreal for me.

1) Satanic Panic - satanism in the day cares ahhhh!

2) "Repressed memory" syndrome

3) Facilitated Communication [FC]

All 3 led to massive abuse.

"Therapists" -and I use the term to describe these quacks loosely - would hypnotize people & convince they they were 'reliving' past memories of Mom & Dad killing babies in Satanic rituals in the basement while they were growing up.

Other 'therapists' would badger kids until they invented stories about watching alligators eat babies dropped into a lake from a hot air balloon. Kids would deny anything happened for hours until the therapist 'broke through' and 'found' the 'truth'.

FC was a movement that started with the claim severely handicapped individuals were able to 'type' legible sentences & communicate if a 'helper' guided their hands over a keyboard.
THIS.

Russia hasn't been a willing partner in this treaty for almost 3 decades. We should have ended the pretense long ago.

Naturally, Rand Paul is telling anyone who will listen to him that Trump is making a HUGE MISTAKE here.


Rand is just like his dad, Ron. 100% isolationist.

They've never grasped that 100% isolationist is not 'America First' when you examine it. It really means 'America Alone'.

The consistent grousing of pursuing military alliances with allies - like Trump is doing now with Saudi Arabia.

So of course Rand has also spent the last 2 days loudly calling for Trump to kill the arms deal with Saudi Arabia and end our alliance with them.

What Obama was engineering with his foreign policy was de facto isolationism: pull all the troops out of the ME, abandon the region to Iranian control as a client state of Russia.

Obama wasn't building an alliance with Iran; he was facilitating abandoning the ME to Iran.

Obama wouldn't even leave behind a token security force, so of course what happened was the rise of ISIS. He also pumped billions of dollars into the Iranian coffers, which the Mullah's used to fund destabilizing activity [wars/terrorism] & criminal enterprises all over the globe