And the majority of people don’t know how to code.
By 2x Python level, I mean, if we have a refined Haskell pedagogy, Haskell will be 2x as difficult to pick up as Python. Reading “Think Julia”, it looks like the Julians / Julliards got themselves to 1.5x Python level.
The approach I’m looking for is currently, well, read the intro programming books in all the languages, including Python, and take apart their pedagogy for reverse engineering.
I want to be able to both dumb-down and professionalize Haskell, because, in the following section, you’ll see the real audience I’m targeting with Haskell.
===
One of my main concerns is the psychological aspect of it, because I’m looking at Haskell as a marketing project. Taking a bit of my thread derail of HF Executive Director Christiansen’s selection thread, my idea is that, say, if 40% of the managers at a given firm were talked into taking a simplified practical Haskell course as a hobby, and were productive at the end of it, they’d end up pressuring IT to support Haskell so that when they put up their own code, IT would be able to clean it up and use it for production.
With Haskell, but not for many other languages, having middle management or senior management in non-IT positions or non-IT backgrounds be able to produce reusable code that IT can actually reprocess for their codebase is practical.
Hell, I think Barclays or was it Standard Chartered trained all their traders in their proprietary Haskell dialect Mu. This is a major potential selling point of Haskell; that Haskell makes it hard to code badly means that non-IT professionals should be able to produce near-professional or at least usable code, so in a corporate environment Haskell is now useful NOT because the IT department wants it, but because the rest of the staff has this massive Haskell hobby codebase and is begging IT to integrate it into their proper codebase.
If the CEO spent his weekend hobby-coding a prototype to extend the IT capability of his firm, is the CIO and IT department going to be able to say no to actually developing the prototype into something useful for the IT department? This is making a pointy-haired boss work for Haskell.
And if you don’t think executives code, I think Wang (formerly their CEO) at Computer Associates spent a few flights coding random crap. Yes, he’s an IT-er, but we should hopefully be able to get C-suiters and middle-management into programming with the right marketing and pedagogy. And yes, cleaning up your pointy-haired boss’s Haskell shitcode is not exactly a good Haskell job, but it’s still a Haskell job.
===
Basically, my view is that Haskell’s purportedly “good” features aren’t actually useful for IT, because IT has its own sociological problems. The high productivity of Haskell is actually a demerit, because if Haskell is so productive, having the IT staff switch to Haskell means that the IT department can now be made smaller. IT execs aren’t going to agree to nuke their own department by switching to Haskell, because while they’ll be able to reduce payrolls and save money, it also means they have a smaller department and that impacts the power and compensation of the IT executives, even if the IT execs are sociopathic enough not to care about firing their subordinates.
On the other hand, Haskell is highly productive and highly correct, which makes Haskell ideal for hobbyist use. The hobbyist role is what enables Haskell adoption by businesses; the ability for Haskellers who do not have IT in their job description to produce useful code is precisely what can drive Haskell adoption; you have a ton of Haskellers who do not do IT for a living produce easily-refactorable prototypes, now you have a job opening in IT for “shitcode cleaner”.
And it’s the way it should be, no? The entry-level Comp-Sciers / ITers are the guys working Java, C, Python. The management professionals and senior executives are the ones working Haskell because they simply do not have the time to work Java, C, and Python, and Java, C, and Python are simply not productive enough for them, because as the management bible The Effective Executive says, the most valuable resource of an executive is their time.
Yes, the executive / manager might simply tell IT to do the job for them and code up the prototype according to the specifications they’ve issued, but is the executive / manager going to be able to understand the prototype they produced? Or are they going to be constantly paranoid that IT pulled one over on them, while lacking the ability to read the code and certify IT isn’t half-assing?
I suppose we could do the same in Python, but Python is not as terse as Haskell, and whereas in Haskell, it’s easy to produce correct code, but hard to produce performant code, in Python, it’s substantially harder to produce correct code.