I definitely don’t have the expertise to make any real judgment, but as an outsider knowing very little, it is hard for me to accept that fighting techniques which were used successfully for fighting real battles where the goal was to kill are less effective at killing then the techniques that are used to spar for fun and entertainment.
I recognize I might be wrong about what actual techniques were used historically to kill, and maybe those are what all MMA makes use of, but for someone to claim that a tried and proven technique that was used for the real deal is not as good as some newer technique that was never really tried for the real deal, and only used in toy projects or experiments, that’s just hard for me to believe.
And I think that leads well to the discussion on Clojure. I think if Clojure was just this new shiny language, with a large number of small toy projects, but no real world usage for big multi-tier, multi-dev, large scale systems, I might say that no matter how good it is at those toy projects, it could be a fake “language” that won’t be able to handle the additional messiness and challenges and surprises of real world use cases. But I think at this point it has shown to deliver and be resilient to such use case.
I don’t think so. I use Clojure for all my use cases now. I write scripts in Clojure, I write back-end services in Clojure, I write front-ends in Clojure, I perform data visualizations in Clojure. That’s all I have used it for, and it worked quite well for all of those. There are still some contexts I haven’t tried yet, but I’d imagine it would fair well for a few more, but maybe not all.
Well, another thing my MMA roommate used to tell me is, if you’re just stronger, faster, bigger, more agile and more flexible, you’ll probably win no matter the martial art. That’s why they have weight categories in MMA, it be really hard for a 130lb 4.6" fighter to beat a 250lb 6.5" one.
This is only true in the average though. When you get to the tail end, like the best feather weight can beat the worst heavyweight. Some woman could beat some man, some kids could beat some adults.
I think this is true for programming as well. The good thing is, I think genetics don’t play as much a role for programming. The equivalent of strength and size and agility I think would be fundamental understanding of computer-science and engineering.
Something I have found about Clojure is that, its practitioners tend to have really good fundamentals. In fact, most of the empirical studies I’ve seen, where Clojure normally does pretty well, always point out that they can’t really isolate the language, because the set of practitioners and problems compared varies.
I think for me, Clojure has forced me to deepen my fundamentals actually. I tell some people Clojure is both lower level and higher level then what they are used too. I think this duality helps strengten one’s fundamentals.
About the rest of Clojure, I think something to maybe think about is that Clojure might be closer to MMA itself, in that it really is a mix of all paradigms and styles. Its Lisp heritage and its hosted nature gives it this power to incorporate all good ideas from other places into itself, and still be coherent. Isn’t that what MMA is all about? Take the best ideas from everywhere and combine them to create the ultimate martial art? What language other then Clojure would best embody this mantra?