Have you tried using them? Installing packages is way, way faster. Here’s an example of how this is meaningful to an organization, and I’ve personally experienced the same exact thing at my last 2 jobs.
To list some projects and companies that aren’t on NPM: Prettier, Next.js/Vercel, Cloudflare, Hono, Zod, Expo, Tamagui, Tailwind, the list goes on. I actually had trouble finding any major JS projects that are on NPM. These are serious, widely used packages, and they chose non-standard tooling for a reason.
There are so many examples of large companies and open source projects that have moved off of npm that I just don’t think this is true anymore. PNPM and bun are fast enough that the increase in development velocity is worth the occasional rough edge IMO.
The moat comment depends on the company, not all or even most businesses depend on actual innovation as their moat.
Also, I think we’re agreeing here, but there are a huge set of things that you may need to build an application that aren’t the core value prop of your company. Buying into a more mature ecosystem makes it more likely that you don’t have to build those things and can spend more time on the moat stuff.
I doubt the reservation is with the language/runtime itself, especially with elixir and the BEAM. More likely, it’s with the maturity of the community. Especially at a small startup, building on elixir even today might still mean having to build things in house you may not in Django/Rails/JS.
All of those problems and solutions are not unique to either tech choice. You can use OpenApi for documentation, a variety of libraries like React-query for caching, and N+1 issues exist (and are arguably more complicated to solve) in graphql.
Coming back to this after the other thread cooled down a bit lol - to me, unknown actually implies that the function doesn’t care about the values more than any, as the compiler will enforce that they’re unused.
And in any case, I’d almost always lean towards the option with stronger type safety guarantees. Especially in a team environment when someone else may be modifying your code later. As a convention, I almost never use any.
The problem with that is that when consuming of the dictionary, “doesn’t know” is actually more appropriate. If you then access Object.values(foo) in your method you are given an iterable of anys which is unsafe.
Miryoku does the same thing but the orientation is flipped vertically with the 0 below the center column, which is how it’s done on a full sized keyboard as well.
Are you seriously implying that the few 10’s of thousands of people laid off in big tech is some kind of conspiracy? Do you know how little impact that has on the nation’s overall unemployment numbers?
Typically people refer to those by the opposite naming convention - unit tests just test one thing and mock any dependencies, while integration tests integrate multiple things and generally involve less mocking