>> ...and just turned 10, has been nagging me for ages to teach him Haskell...
I'm guessing you would have taught your human(?) kid some human languages first before he started nagging you (why you, he can read too, right?) to teach him Haskell. I think you had a dream or sumping...
I used to love the physical cabinet I had in the fifties. The sound of it opening, the actual rustle of the paper under your fingers - these _were_ your files, with real letters written on real paper, not some representation of them in a window on a screen. They don't make finders like that any more....
80% of the problems I had to deal with (in a live, real-life Clojure system that had to be maintained and supported, not a hobby-happy-slappy-project-thing) were caused by putting square pegs in a round hole. You're telling me I need to get a macro-based library and add :pre and :post conditions that check the structure of a map, as opposed to using a language with types?! Really??? Oh, and guess what, I am sure there is a Javascript library that does that too...
Oh, god, thanks for reminding me about the whole agent/atom/ref hell - another reason I'd rather erase the whole Clojure experience from my brain altogether...
Clojure is horribly unsafe. I spent a year writing Clojure and half the time we were fixing bugs where someone had wrapped a map in another map or changed the shape of a data structure. For all that's worth, I'd rather use Javascript. To add insult to injury (the amount of wasted time on something that could be easily checked by a compiler and a sane type system) there's all the bad habits you acquire and the general lack of confidence in your code, which took a good six months after that to cure. I'm sticking with types now, thank you very much...
Great, if you want to hire people who "can code", but have no social skills. I am personally done working in environments where people think they "can code" but have not enough of a social skill to at least empathise with your point of view on naming conventions.
Don't get me wrong, I can code, I'll write you anything you want, AND IT WILL WORK! and I'll still know there may be a better way but this is the way that works and I still think I don't have enough years to live to argue with social incompetents who think that fighting over tabs or spaces is a good idea and a pocket protector makes you sexy.
Most people will (rightfully) settle for money. Because people need love, and to demonstrate love you need to show that you care, that you're willing to give something up in a hard situation. And the only thing a company cares for is money. So, I want said company to give me money. More money than the 'manager'. Because I can do their job just as badly as they are doing it, but they can't do mine at all.
I don't want your stupid titles and shit - those are cheap. Cash is what will hurt you. Pay up if you care!
And when people realise they have to pay you or lose you, then you get respect. Priceless!!!
Yes, isUpper is a method on Char, _.isUpper is a lambda that is given to exists, which is a method on the trait TraversableOnce, which String happens to implement, along with many other things, such as Option and Future. Where's the OO and where's the functional? In the Clojure example in the OP does the author realise that all of those things are in effect Java objects? Does any of this make the code better or worse?
But that's not the point, the Scala code provided there is beyond ignorant, whoever wrote that has no right to be judgemental of the language or its founding paradigms.
Who decides that? What makes it objective? Can you dispute it if your boss happens to be a bitter idiot who is completely detached from reality? What happens if your boss and their boss have different views? What happens if you are a perfect employee, but you were a bit of dick at the last Christmas party? And what happens if you are very nice and social and everyone likes you, but you are not really much of a programmer?
This whole thing is BS. The only model that can possibly work is the scaffolder model - you get a worker for a job. If they're shit they get sacked the net day. If they're good, you have to pay them more to keep them from running away...
I'm guessing you would have taught your human(?) kid some human languages first before he started nagging you (why you, he can read too, right?) to teach him Haskell. I think you had a dream or sumping...