Re: [Haskell-cafe] Haskell-Cafe Digest, Vol 217, Issue 22

"I don't remember learning being as difficult as the claims on this thread. (Memory can deceive, I guess.)" Yes, it can. What really matters for that question is quantification. How hard was it for other people a decade ago? How hard is it now? What kinds of people were learning a decade ago? What kinds of people are learning now? Without measures, you're just offering anecdotal evidence. You say that Haskell is having problems because it wasn't true to the faith of "Avoid success at all costs". I always thought that was supposed to be a wryly paradoxical statement of strategy, not an "objective"; it was an impishly witty design-methodology heuristic, not a hymn. Perhaps I'm misreading the community spirit at Haskell Foundation, but it seems the tune shifted a while back. You feel that the wrong kinds of people are learning Haskell now, that it's "adopting" too many problem children. Thank you for your generous offer to help me dig myself out of the hole you said I dug for myself, though I can't understand why. After all, you've made it clear that you think I'm a problem child. How else to explain why you distorted what I've said elsewhere, in your summary of my positions, when you could have just linked to my actual words, in archives, and let them speak for themselves? "This juvenile delinquent has got Haskell all wrong -- stop him before he vandalizes again!" But I suppose it's just in your humanitarian nature to help even us juvenile delinquents. Still, are you sure you don't have things upside down? I'm afraid I can't offer much to you, from the way I feel the direction of gravity.
From where I am, I think the only thing I can send downward to you is a shovel full of dirt.
Is GHC part of the problem? I'm pretty sure of that. Are lots of
people getting Haskell wrong? That's symptomatic, at least. Has
Haskell gotten too big. I wouldn't be surprised. Should more
mathematical approaches be emphasized? I'm not against it, as long as
there's emphasis where it's due -- for some Haskellers coming up, it
may be better to bring in the math later, when they are already
feeling certain patterns in coding but don't quite know how they can
be concisely and rigorously expressed, and applied.
But over and above all that, you can't learn Haskell by sitting with a
reference manual, and trying things out in GHCI. Nor can you learn it
very easily by studying relatively mature code. And if "avoiding
success" means a book is giving examples that don't work anymore,
that's more frustration for readers who are already feeling the
steepness of the learning curve. People who want to learn need better
things to read.
What's "better"? It'll vary according to the reader. I'm a reader who
doesn't need another sermon about, say, the virtues of static types --
I converted to that religion long ago. I'm a reader who keeps the
machine level in mind, because I've been on projects where a new
release of a product that used to be fast enough is suddenly extremely
slow on startup initialization -- e.g., someone rewrote an SQL query
in the ORM to be "more elegant" but unfortunately also as if disk-head
seeks, platter rotations, and block reads were as virtually
instantaneous as, say, a line fetch from L3 cache.
The problem isn't overpopulation, it isn't like all those Irish that
Reverend Malthus thought should starve to death because, well, they'll
just breed out of control otherwise. It's the problem of
professionalization, which software has always had.
Entry is cheap and easy. Hardly a month goes by that we don't hear of
some (supposed) miracle of modern software science from some senior in
high school who started a software company. Turnover is high. This
means a lot of internal treadmills to retain knowledge of how the code
works. Lots of people burn out in ten years -- a ten years that, in
other engineering professions, is the point at which you're considered
fully seasoned, ready to hit your stride.
Why the continuing immaturity? Software hasn't killed a lot of people
(yet, he says, scanning the sky nervously for drones.) As long as most
software was mostly in corporate information systems, the casualties
tended to be only corporate-political. If you were such a casualty, it
was a bit like being a player in an MMPORG. You could get
"reincarnated" in another division, or another corporation, no matter
how ignominious your failure. Not much karmic justice either. Even if
you perpetrated fraud, which most financial firms prefer to cover up
than prosecute, sending you on, because it would be bad PR to send
your case to trial and have customers discover that the firm is not as
good about internal security threats as it claims.
To some extent, it's the very softness of software that has kept the
field so immature. Mistakes are made, but unlike a shifty bridge or a
shaky plane, they can be corrected cheaply and (for now) safely -- or
at least, any new bugs that your patch introduced are subtler, less
frequently manifested, easier to blame on someone else. Or maybe you
jumped to another company by the time your code became a problem.
Never have to grow up, not me!
But one sign of maturity in an engineering profession is that it stops
being a priesthood/guild and starts being a public responsibility. And
that starts with clear communication, within and beyond the
profession. Better tools are nice, of course. But if they are
effectively impenetrable to those outside the guild, you're not really
solving the problem. A firmer grounding in theory is also very
important. But if it's hermetic incantations and thumping of
mathematical bibles, that's also not good, clear communication, within
and beyond the profession.
Haskell has survived what is, for programming languages, a truly
staggering infant mortality rate. But what stage of life is it in,
now? Who are the models of maturity, for use of Haskell
professionally? How can they be elevated to influence, both within and
beyond Haskell programmer subculture? Bishops and guild masters were
ultimately answerable to feudal lords, and modern institutions that
fund software development are significantly feudal, both internally
and in their interactions with other institutions. Professionalism
confers an advantage: You can speak with the authority of backing from
your own institution, its own ethics and values, its own standards --
as long as that profession has proven that it's motivated from a sense
of public responsibility. But your profession has to speak clearly, as
clearly as possible, on all levels, to maintain itself as an
institution, to remain influential -- i.e., from a stance of being IN
these feudal mini-worlds but not OF them. This is because, in a way,
apart from the brains of its members, clear communication is the only
real asset a professional institution has. And that's where better
writing comes in.
Regards,
Michael Turner
Executive Director
Project Persephone
1-25-33 Takadanobaba
Shinjuku-ku Tokyo 169-0075
Mobile: +81 (90) 5203-8682
turner@projectpersephone.org
Understand - http://www.projectpersephone.org/
Join - http://www.facebook.com/groups/ProjectPersephone/
Donate - http://www.patreon.com/ProjectPersephone
Volunteer - https://github.com/ProjectPersephone
"Love does not consist in gazing at each other, but in looking outward
together in the same direction." -- Antoine de Saint-Exupéry
On Sat, Sep 18, 2021 at 12:40 PM
Send Haskell-Cafe mailing list submissions to haskell-cafe@haskell.org
To subscribe or unsubscribe via the World Wide Web, visit http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe or, via email, send a message with subject or body 'help' to haskell-cafe-request@haskell.org
You can reach the person managing the list at haskell-cafe-owner@haskell.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of Haskell-Cafe digest..."
Today's Topics:
1. Re: Numerics (was: Re: Trouble with asinh) (Jerzy Karczmarczuk) 2. On finding the right exposition... (Viktor Dukhovni) 3. Re: On finding the right exposition... (Tom Ellis) 4. Re: On finding the right exposition... (Monads) (Joachim Durchholz) 5. Re: On finding the right exposition... (Viktor Dukhovni) 6. Re: On finding the right exposition... (Monads) (Brandon Allbery) 7. Re: On finding the right exposition... (Monads) (Viktor Dukhovni) 8. Re: On finding the right exposition... (David Feuer) 9. Re: On finding the right exposition... (Tom Ellis) 10. Re: Numerics (was: Re: Trouble with asinh) (Barak A. Pearlmutter) 11. Re: On finding the right exposition... (Chris Smith) 12. Re: On finding the right exposition... (Albert Y. C. Lai) 13. Re: Haskell reference documentation, laws first or laws last? (Keith) 14. Re: Haskell's "historical futurism" needs better writing, not better tools (Douglas McIlroy) 15. Better writing about Haskell through multi-metaphor learning (Michael Turner) 16. Re: Haskell-Cafe Digest, Vol 217, Issue 16 (Anthony Clayden)
----------------------------------------------------------------------
Message: 1 Date: Fri, 17 Sep 2021 20:31:24 +0200 From: Jerzy Karczmarczuk
To: haskell-cafe@haskell.org Subject: Re: [Haskell-cafe] Numerics (was: Re: Trouble with asinh) Message-ID: <32be9982-6be3-c136-c0b4-7622f3d88404@unicaen.fr> Content-Type: text/plain; charset="utf-8"; Format="flowed" Le 17/09/2021 à 19:16, Carter Schonwald a écrit :
Hey Barak, is Common Lisp the only extant language to take those issues seriously or are there other examples or better ones?
// tan / atan troubles cited by Barak.
Common Lisp??
But even the ugly Python reacts better to such examples:
rr, ii = 1.0e-20+0j, 1.0e-20j
*>>> from numpy import * *
*>>> tan(rr),arctan(rr) ((1e-20+0j), (1e-20+0j))
tan(ii),arctan(ii) (1e-20j, 1e-20j)*
*==*
This works also with cmath (with arctan as atan). **
Jerzy Karczmarczuk
-- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
participants (1)
-
Michael Turner