4 ms·
> Sneering at people who use different languages is both a bad look, and a bad way to convince people that you’re right. I'm pretty sure that this was a critic
by jhgb 5y ago
> Sneering at people who use different languages is both a bad look, and a bad way to convince people that you’re right.
I'm pretty sure that this was a criticism of NPM rather than of any language.
> Forget multithreading, think more about metrics, logs, configuration, A/B testing, retries/bulkheads/circuit-breakers, feature flags, and secrets management.
I could understand logs and secrets management (if it's what I think you mean by that), but how do the other things relate to the language? Except for retries which I would have thought were much better integrated into CL then they could be in Java, given resumable conditions.
> Configuring a Kafka reader in my app and seeing that it automatically discovered Micrometer on my class path and started emitting metrics is a lovely experience.
Is this a thing that something like asdf-system-connections would solve in Lisp? (IMO also much more elegantly than by "discovering X on my class path".)
- ashtonkem 5y ago> I'm pretty sure that this was a criticism of NPM rather than of any language. > You’re expected to know how to program if you use lisp. Why would they say this if they weren’t implying that NPM users can’t program? > I could understand logs and secrets management (if it's what I think you mean by that), but how do the other things relate to the language? They don’t, not directly. But it’s the community for that language that makes and supports these things, and comparisons between these communities (and the libraries they share) is a fair area of analysis. > Except for retries which I would have thought were much better integrated into CL then they could be in Java, given resumable conditions. They could, but they have not to my knowledge. In my opinion the language’s capability is far less important than a community that values creating and maintaining these libraries. (I also think functional programming aficionados drastically underrate how much Java has changed. There are still issues I personally whine about, but they’ve fixed a lot of warts since the 1.6 days) Retries in particular are one of those things that seem obviously standalone, but are not. Having my retries automatically expose micrometer counters has been a godsend for monitoring. I’d like to see them automatically expose opentracing information too, which is an obvious area of opportunity for r4j. > Is this a thing that something like asdf-system-connections would solve in Lisp? The technical ability to make libraries auto-configure together is meaningless if the community doesn’t have the will to take regular advantage of it. Frankly, Java the language is incredibly weak for this kind of stuff, yet the Java community is busy doing it anyways. I’ll remain unimpressed by interoperability improvements to CL so long as the culture of “roll your own libraries!” remains in place.
- jhgb 5y ago> Why would they say this if they weren’t implying that NPM users can’t program? I'm pretty sure that numerous Quicklisp users can't program either, but Quicklisp is manually curated while NPM (AFAIK?) isn't so their code won't end up in Quicklisp. > You tell me. I'm not sure what there is to say. The ASDF extension in question allows you to write systems that get loaded when a specific combination of other systems gets loaded, so when there's some room for collaboration of multiple systems, all such code naturally belongs into that autoloaded system. It can assume the presence of all required systems and hook them up together. Is this something like what you're describing? Except for the "discovered Micrometer on my class path" part of course since you're not concerning yourself with any paths here (that feels a bit brittle to me) but the notion of doing something special when combining specific multiple libraries is supported on system loading level.
- ashtonkem 5y ago> I'm pretty sure that numerous Quicklisp users can't program either, but Quicklisp is manually curated while NPM (AFAIK?) isn't so their code won't end up in Quicklisp. This interpretation of GP’s comments strains credulity. As for the rest, I edited and expanded my unnecessarily glib response. The technical ability you mentioned is nice, but I will remain unimpressed until it sees wider use. This is a shortcoming in the CL community, not a shortcoming in the CL language. I’ll change my opinion once I see evidence of the CL community coming together to value shared, reusable code to accomplish common tasks.
- jhgb 5y agoI guess I'm just a very credulous person, then. Regarding asdf-system-connections, it would probably help if this were core functionality of ASDF. I don't get why it isn't yet, since it perfectly fits Lisp's overarching concept of independently defined things cooperating (cf. classes and generic functions, or multimethods). I might want to ask some people about that.
- ashtonkem 5y ago