9 ms·
Why does everyone hate Haskell, jazz, and pure math?
- 082349872349872 2y agoSometimes I wonder if my late-in-life recent appreciation for maths* be just a symptom of having failed to die {in a bizarre gardening accident, driving off Skyline Blvd} while my body could still handle following the childish dream of hex, bugs, and rock&roll. * https://www.theonion.com/aging-rock-musician-realizes-it-time-to-grow-up-and-get-1850313298 https://www.theonion.com/aging-rock-musician-realizes-it-tim... "Haskell? I was into those guys before they were cool. Miranda, man, that even had diagonal comprehensions... Have you heard of Hope? Kiff this, mec..." Lagniappe: https://www.youtube.com/watch?v=nSKp2StlS6s https://www.youtube.com/watch?v=nSKp2StlS6s
- defrost 2y agoI'd refer you to The Jazz Discharge Party Hats but We Are Not Alone: https://www.youtube.com/watch?v=mQAIxMyzGLc https://www.youtube.com/watch?v=mQAIxMyzGLc it has more actual Sax
- 082349872349872 2y agoWe are not alone; it takes at least two to murder foreign lyrics: https://www.youtube.com/watch?v=TRdgcsFkyGI https://www.youtube.com/watch?v=TRdgcsFkyGI (onsight, no beta!)
- defrost 2y agoHeh .. good effort for a first sight (hopeful no actual Finn's were murdered) .. but it's no Mariah Carey's Ken Lee :-) https://www.youtube.com/watch?v=zyPgb1WkDSA https://www.youtube.com/watch?v=zyPgb1WkDSA
- 082349872349872 2y agoNo actual Finns*, no. Sax and violins panders to a different audience. * especially not those with the new Smith and Wesson, the 408 Tactical with xenon projector slung under the barrel... [oddly enough, I am getting no hits for "venial Finns". (ok, one, but it was poorly OCR'ed ſ)]
- defrost 2y agoSmith and Wesson??! Sacrilege! Suojeluskuntain Ase- ja Konepaja Oy please. ( https://www.sako.global/ https://www.sako.global/ ) Incidently, you can see my house in the background here: https://youtu.be/W6KJM-MODME?t=139 https://youtu.be/W6KJM-MODME?t=139
- 082349872349872 2y agoYes, the manufacturing may be in FI, but the shares, the shares are in LU: https://berettaholding.com/en/interview-with-nzz-the-oldest-company-in-the-world-how-does-a-company-survive-500-years/ https://berettaholding.com/en/interview-with-nzz-the-oldest-... That video must've been shot around this time of year? Google Maps shows Greenhills as being distinctly brown[0], and while we hit the low 30s here recently (the combines have been out in force on the wheat fields) I suppose you all have a good six months yet before your season. 1'100m is a long shot. Locals tend to stick to almost 1/4 that[1], eg https://gr2026.ch/wp-content/uploads/2023/11/ESF-5.jpg https://gr2026.ch/wp-content/uploads/2023/11/ESF-5.jpg If the Dubrovniks ever remaster Audio Sonic Love Affair, SAKO has a cover illo for them: https://media.sako.global/image/upload/f_auto/q_auto/ar_1.8055555555555556,c_fill,g_auto:classic/f_auto/q_auto/c_scale,w_600/REI_HOANG_SAKO_TRG_4244_klehu0?_a=AJAUVWIA https://media.sako.global/image/upload/f_auto/q_auto/ar_1.80... [0] a landscape of "olive and gold" if we wish to wax poetic? [1] the iron sights on my wife's ca.1900 service rifle can in principle be adjusted out well past 1 km but I strongly suspect that was only meant for volley fire?
- defrost 2y ago1'100 m is getting warmed up for them. 4,593 m (5,023 yards (2.85 miles)) is their notion of a long shot: https://www.youtube.com/watch?v=7owwTz7Z0OE https://www.youtube.com/watch?v=7owwTz7Z0OE We were raised (farm shooting) to think 600 yard head shots were adequate and good was north of there. Our father was in Navy after being a farm boy and routinely won inter service 'friendlies' ( AU v US v UK v etc.) so that was probably a high 'low bar' in hindsight.
- Etheryte 2y agoI don't think the starting premise of the article holds at all. Both jazz and Haskell are hugely popular, by listener and practitioner, and user count respectively they've probably never seen better days. Pure math I wouldn't say is really hated either, but it's rather pretty irrelevant for most people. Even in software development, I would say it's pretty rare that you actually need advanced math in your day to day work.
- greener_grass 2y agoRelative to the overall population (programmers, listeners) both are tiny though!
- VyseofArcadia 2y agoWhat's with the AI generated image of musicians soaking their feet in a castle of beans?
- revskill 2y agoCatamorphism is a mind-blowing pattern to me. Practical and elegant at the same time.
- vouaobrasil 2y agoThis article is just about Haskell. Jazz and pure math are far from hated. Even if many people can't play jazz, they can enjoy it. And let's be honest, nobody even knows what pure math is. Ask anyone who hasn't actually done pure math, and they will have no idea what pure math is. I know because I am a pure mathematician, and I've never met a single person who knows what pure mathematicians actually do. Actually, let's be honest, there is hardly a soul that knows what Haskell is either. So hate is not really a great word for this title, nor is the use of jazz and pure math.
- eimrine 2y ago> they can enjoy it Even cows can enjoy music.
- bubblyworld 2y agoDuring my postgrad years in logic I eventually started describing pure maths as a journey into priesthood. It seemed to be a more relatable analogy for non-maths people - and put a stop to the incessant question of utility that pure mathematicians everywhere have to spin stories around! =P
- saaslave 2y agoPure maths is just practical research, for the knowledge we will need for technology in the year 2500.
- dguest 2y agoHow will number theory help us build spears and clubs?
- psychoslave 2y agoI have a wonderful proof that it actually will, but it won't hold in the narrow space of this comment.
- vouaobrasil 2y ago
- FrustratedMonky 2y agoOn the video. Showing C# concepts migrating to 'safe'. Where would F# fall, wouldn't it be hitting the sweet spot of 'Safe' and 'Useful'.
- netbioserror 2y agoDon't 'ate 'em, just don't like 'em. Joking aside, 80% of the benefit of functional programming in practice, in my experience, comes from referential transparency, expression-based programming, and sum types. It's even fine to allow for procedural code inside of these referentially transparent functions. The effects these features have on program structure, logic flow, and data structures are profound enough that the benefit of IO monads and other more pure features have diminishing returns for the extra elbow grease that needs to be put in. It's also fine to break the rules in a number of cases you can hopefully count on one hand; stateful code needs to be isolated and well-understood.
- eru 2y ago> Joking aside, 80% of the benefit of functional programming in practice, in my experience, comes from referential transparency, expression-based programming, and sum types. It's an interesting mix that you picked. Rust shows that sum types are useful even outside of functional programming. Just like Java (and others) have shown that garbage collection is useful even outside of functional programming; but functional programming was where GC was 'born'. Just like functional programming was where sum types were 'born'. Incidentally, garbage collection was born with Lisp. And Lisp is arguably a functional programming language (or family of languages), that for the longest time didn't have sum types. What we call functional programming is a grab bag of features and absence of some other features, but the exact contents vary over the decades. Even C++ got closures these days.. and that's how progress looks like!
- netbioserror 2y agoSorry, I take GC/RC as a given these days, but yes, the effect this alone has (not needing to write any memory semantic code the vast majority of the time) is revelatory. Especially for any language that compiles to a native executable. Huge performance for very easy-to-write and -maintain code.
- eru 2y agoOh, I agree. It's progress! Any new language these days either has to have automatic memory management (GC or RC), or have a good story for why what they are doing instead is different and worthwhile (like Rust). Or as a third possibility, your new language will get mercilessly mocked. We see similar developments for closures and support for first class functions in general. And my sincere hope is that in the future, other features like sum-types and pattern matching over them will go the same way. The functional programming community pioneered many of these features; but those features aren't restricted to that small corner of our industry. I hope that relations-as-datatypes will see widespread use in the future. SQL shows that relations are good for expressing business logic, and I used them in a Haskell dialect as an internal datatype (unconnected from any database), and the experience was great. There's no reason Python etc couldn't host relations as datatypes, the same way they already host dicts.
- CuriouslyC 2y agoI've never experienced jazz hate, but I know that jazz musicians often have a rep for being pretentious in musical circles.
- pmarreck 2y agoI wonder how they feel about Idris https://www.idris-lang.org/pages/example.html https://www.idris-lang.org/pages/example.html
- mynegation 2y agoAs a math major, programmer and musical snob (I do hate jazz though) I figured that there are people who love complexity and nuance and their brain lights up with sense of awe getting into Haskell, jazz, and pure math. And there are people who (1) do not necessarily enjoy complexity and nuance that much and just want to get the job done and (2) hate us, pesky snobs (we can be pretty annoying).
- bazoom42 2y agoMuch real-world software development is pretty complex, but experienced developers understands complexity is the beast to be tamed, not a goal to be achieved. Haskell fans seem to delight in making simple problems complex rather than complex problems simple.
- klodolph 2y ago> Haskell fans seem to delight in making simple problem complex rather than complex problems simple. That’s a reductive way of talking about a group of people. Is that from your personal experience with Haskell fans? My personal experience with Haskell fans doesn’t match that at all. The Haskell fans I meet tend to be reasonably pragmatic, but care more about correctness. There are some who do research, but they acknowledge that research doesn’t always yield practical advancements. The Haskell fans I know will acknowledge that Haskell is not most people’s first choice for a language, and that one of the main benefits of Haskell is to yield insights that can be ported to other languages.
- Jensson 2y agoThere used to be a lot of smug Haskell users here 10 years ago. Not sure what happened to those, you don't see it any longer as you say.
- klodolph 2y agoYou also get a different section of programmers on HN and Reddit. You might think of Rust users as annoying evangelists, if you base your assessment on HN comments. My interactions with Rust users in-person differs wildly from interactions online.
- timruffles 2y ago> nowadays every 16-year-old web-dev reaches for Array.map(x => <div>{x}</div>) when they write their pages in the most popular framework. These higher-order functions have now become part of the “hello world” It's just wrong to ascribe the popularisation of HOFs like `map` to Haskell. `map` was there in good old (practical) Lisp 1.5 back in the 1960s. Why ascribe this to Haskell (released 1990) rather than Lisp? Guido said Python v1 (1994) got HOFs "courtesy of (I believe) a Lisp hacker who missed them"[1], Ruby had blocks in V1 (1995). Haskell's research direction was not about very, very old news like HOFs, it was about non-strict evaluation, and cool type system stuff. [1] https://www.artima.com/weblogs/viewpost.jsp?thread=98196 https://www.artima.com/weblogs/viewpost.jsp?thread=98196
- roenxi 2y agoI would assume that most of the popular high-order functions came from the lisp world; 16 year web devs are using Javascript which took more than a bit of inspiration from the lisps. That said, to really squeeze the most out of HOFs the language probably needs a well developed type system. I've noticed with untyped code that at some point HOFs start becoming hard to write because the layers of abstraction get confusing in a way that static analysis would be helpful with. Although my lesson there is to not go overboard with HOFs - if I need static analysis to write working code it is probably too clever to understand by reading it! The Haskell community might succeed in proving that view wrong, but until then...
- techhazard 2y ago> I've noticed with untyped code that at some point HOFs start becoming hard to write because the layers of abstraction get confusing […] I have the same with Nix (from NixOS). It’s a really nice idea to have a functional language that compiles to a working linux installation, but those abstract functions can get really complicated, especially when I return to something I wrote six months ago. It makes me really miss Rust’s type system…
- bazoom42 2y agoJavaScript almost certainly got map, filter, reduce, some, every, etc from Lisp. Scheme is specifically mentioned as an inspiration in the spec.
- BaculumMeumEst 2y ago$(lang) is an older language with lots of existing code. New users hate using $(lang) because it has horrible build tools & a lackluster library ecosystem. There is resistance for fixing $(lang)'s issues because maintainers don't want to break compatibility. Many languages fall into this tarpit and will never escape.
- supertofu 2y agoPure Math is often incredibly relevant to society about 300 years down the line.
- Jensson 2y ago300 years ago calculus was new, so there isn't much pure math that is 300 years or older.
- tim333 2y agoPythagoras and Euclid were around for a while. >“Geometry is knowledge of the eternally existent,” (“Sacred Mathematics”). This quotation by Plato, an Ancient Greek philosopher, demonstrates the importance of geometry to the foundations of the universe. To me that illustrates a depth to maths which is absent from Haskell and Jazz. Also from Wikipedia: >Evidence for more complex mathematics does not appear until around 3000 BC, when the Babylonians and Egyptians began using arithmetic, algebra, and geometry...
- rsynnott 2y agoThe thing about everyone hating jazz feels more meme than reality; I don’t think most people mind it, and of course virtually all modern music is in some way a _descendant_ of jazz. It’s not the most popular style of music today, but, well, it’s _old_; it’d be kind of weird if it was.
- aeonik 2y agoI really didn't like Jazz for the longest time. Many of my friends felt the same way. I had one friend who was musically gifted who loved it. I really think Jazz is something that you have pay fairly close attention to in order to enjoy it. Or at least have a long term relationship with music. It usually has too many moving parts for most people to causally enjoy. Of course, Jazz is such a large body of art, there are major exceptions to that generalization.
- dagw 2y agoThe thing about everyone hating jazz feels more meme than reality Yea, there's a reason why people like lounge pianists will often play jazz standards if they just want to create some pleasant background 'noise' and don't really want to draw attention to themselves. If a bar quietly has a "Best of Generic Jazz" playlist on, they're probably not driving away many customers. (Some) jazz is on the whole [1] probably one of the most inoffensive and generally accepted genre of music around. [1] Yes, I know that there is plenty of jazz that isn't like this. And this is where the music nerds can get into their what is 'real jazz' arguments
- simpaticoder 2y agoBecause everything, including appreciation, is normally distributed. In this case these elements share a requirement for other qualities, which are also normally distributed. Most (in the middle of the distribution) will hate a puzzle that is too difficult and it will be discarded with disgust. Some (on the left of the distribution) do not understand that it is a puzzle. Yet others (on the right of the distribution) become fascinated and may choose to dwell with the difficult puzzle over a lifetime.
- zarzavat 2y agoThe issue with Haskell is that it doesn’t live up to the promise. The promise is that you learn this difficult language and you gain a higher-level, cerebral understanding of software, and the type system protects you from bugs. The reality is that you realize that this language was designed by a merry bunch of category theorists who had little interest in software engineering. The effort put into different parts of the language is super unbalanced. GHC is an impressive feat of compiler engineering. But the other tooling is poor, and so is support for basic features such as records. Whatever extra bugs are caught by Haskell’s elaborate type system that wouldn’t be caught by a simple type system like Java’s, are replaced by bugs introduced by laziness. Jazz is a bit different. Non-musicians generally don’t enjoy it. The more knowledge you have of Jazz the more you appreciate it.
- jordigh 2y agoLaziness in Haskell is so hard for me to understand. I never have any idea what the runtime performance of something I write in Haskell will be. It's either blazingly fast or molasses slow, and I can never tell.
- argiopetech 2y agoAvoid String, use Text or ByteString. Avoid [] for data processing, prefer Vector. Avoid lazy IO, use Conduit (or similar). Prefer newtype to data, and make data fields strict where appropriate. Make sure you're building with -O2 (has to be explicit, none of the tooling enables it by default). These rules cut out 99% of space leaks. The profiling tools are a big help for the last 1%.
- rowanG077 2y agoI generally don't care about perf. And if I do care about perf I profile. Which... Is actually the same thing I do in any other language.
- vanjajaja1 2y agoMy theory on Jazz is that it is the coffee palette cleanser for people who work too much with regular music patterns. The appeal is that it is not appealing
- cladopa 2y agoNot really true. Almost no one hates those three topics because in order to hate something you need to know it, and most people don't know those as they are impopular. Popular music with 4 cords progressions, languages like python that people need or basic math are popular. People can hate python, or basic math or reggaeton because they are everywhere. I am a Lisper and Haskell programmer myself(along other languages) and I can tell you the proportion of people that I know that know what Lisp is is a minority, like 1% of the general population. I would say 10-20% of the population knows what Fortran or C is. "Their practicioners seem to be divorced from the real world. They don’t actually produce anything useful. Rather than working on practical things that everyone can enjoy, they seem to be caught up in silly exercises just to show off to other nerds." That is right. Most people in the Haskell community are totally divorced from reality. I would say more, they are not interested in reality at all. Do not tell them about engines or User Interfaces or databases. Not interested at all. They also love Pure Math problems. I don't see the problem with that. I see the problem when people that are not interested in reality want to rule reality like millionaire children's intellectuals(Engels and Marx, Trotsky, Lenin...) wanted to rule work without having worked in their entire lives. I see a problem if someone that told me he is not interested in how the User Interface of my app(or any user interface btw) works is telling me that I have to rewrite it in Haskell because it is perfect in his mind. I find Haskell ideas useful up to a level, but not further than that. While science comes from philosophy and philosophy comes from love to knowledge by itself, most people doing philosophy in the past was wealthy people whose wealth came from somewhere else, like commerce having a fertile land.
- bryanrasmussen 2y agoI suppose I am the target of this argument, but I would not phrase my dislike of these things in this way. I would instead say - I dislike Haskell because when I tried this book http://web.archive.org/web/20190705205338/https://www.cs.yale.edu/homes/hudak/SOE/ http://web.archive.org/web/20190705205338/https://www.cs.yal... about 20 years ago I thought it had been written in an effort to impress upon the reader how smart anyone using Haskell was, at the expense of me getting anything done. I like various forms of Jazz but I dislike a certain type of Jazz person who seems to be in to Jazz to let you know just how much better they are than you. I don't think I've ever had anything but enjoyment and admiration for pure math and pure mathematicians. I'm not sure I like this blog post though.
- tome 2y agoYou based your dislike of Haskell on a single book?
- bryanrasmussen 2y agoas I recall it was considered a real good and important book in the Haskell community at the time, but obviously I had to try to delve through Haskell documentation to try to figure out why things weren't working.
- iainctduncan 2y agoMusically mature jazz players don't like those people either. Even more so if those people are jazz players. :-)
- guitarlimeo 2y agoI like functional languages. I don't like imperative languages trying to do functional programming. Especially Javascript. It's just pain to debug a `.filter().map().reduce()` chain, you have to create a separate variable every time you want to insert a `console.log` there somewhere to figure it out. Also I don't like functional programming eating away the performance. You can sure write 3 O(n) loops easily, but you can't see the instant wins to optimize it the same way you can with imperative programming. Maybe the third loop wanted to reuse something that could be found in the first loop? With imperative programming: Great, put it in a variable outside of the first loop, and fill it. With functional programming: Change all the types in the loops to fit this new variable, and remember to return it through all these functions. EDIT: Also as jordigh pointed out here https://news.ycombinator.com/item?id=41160794 https://news.ycombinator.com/item?id=41160794 I don't like how functional programming obfuscates performance a bit. With imperative languages what you code is what you get. Functional languages do so much more behind the scenes, that it's hard to figure it out some times.
- samatman 2y agoFunctional programming as in map-filter-reduce? Lisp. Functional programming as in "strong static typing and algebraic data types"? ML. I try not to begrudge anyone their enjoyment of anything, and I like jazz, for the record. It's good that we have a language for people who want to do Haskell-y things, and y'know, Pandoc is nice. But this blog had an opportunity to make the case that Haskell innovations are trickling down into mere programming languages for squares (for the squares out there, if you don't like jazz, you're a square), and they offered two things which don't come from Haskell. So I put it to you, Hacker News: what did the author miss? Where are the great Haskell innovations us mere programmers now benefit from?
- b450 2y agoIt's hard to take too much issue with the general argument. Seems like there are loads of examples of theories developed out of "pure" intellectual pursuits that found practical applications later on. But I quibble with the broad inclusion of "jazz" in the list. I don't really like the idea that jazz is this never-ending process of avant-garde musical boundary pushing. There are these cults of personality around artists like Miles Davis and Coltrane, and at some point people decided that "easy-listening", "smooth jazz", and "elevator music" were the nadir of "cool", but those particular cultural trends don't necessarily define jazz as a whole. It's also reasonable to regard jazz as having a matured musical vocabulary that we can construct accessible tunes out of without pushing boundaries all the time. I suspect a lot more people do enjoy "lounge" jazz than would admit it.
- jancsika 2y ago> they seem to be caught up in silly exercises just to show off to other nerds. Jazz musicians literally so, and to a much more insidious degree than Haskellers or mathematicians. That is-- jazz musicians fall prey to the tendency to fill time with content pulled directly from the exercises they used to gain proficiency on their instrument. These can be simple iterations that step through a sequence of pitches, enumerating through the degrees of the pentatonic scale, compulsively sequencing through patterns in an octatonic scale, etc. Worse, this tendency can strike old timers just as easily as newcomers. Coltrane famously began to normalize his improvised lines to patterns he'd practice that were straight out of Slonimsky's book of exercise patterns. To get a sense of how annoying this can be even to jazz insiders-- imagine a math paper written by five researches. They read the paper aloud at a conference, and when one of them gets to the summation symbol, they immediately explain to the audience: "So for example, here you'd add one, two, three, four, five, six, seven, eight, nine, and so forth..." As each researcher reads their section of the paper, they do this, incessantly, for every symbol that can possibly be explained with sequences of numbers.
- giovannibonetti 2y agoThose interested in a (much, much) simpler alternative to Haskell that catches a lot of bugs during compile time might want to look at Gleam [1]. It has excellent tooling with great developer experience and a growing community. It is a bit like a high level version of Rust, targeted at building web applications, handling concurrency by replacing the borrow checker with Erlang's processes – since it runs in the Erlang's virtual machine. [1] https://gleam.run/ https://gleam.run/
- el_jay 2y agoHave spent too little time with Haskell, and am fairly indifferent to pure maths beyond forcible conversion to applied maths against pure mathematicians’ will - but I have an enduring love for jazz. It is freedom incarnate, and the most perfect musical metaphor for life yet known to me.
- rbanffy 2y agoLearning Haskell has its challenges but once you stop thinking of time as a sequence of events and realise it’s actually a directed acyclic graph of causal nodes, everything becomes crystal clear.
- xedrac 2y agoNot all problems are well suited to graph theory though. Try implementing the super trivial Sieve of Eratosthenes as a DAG. No doubt it's possible, but I'm willing to bet the complexity of said solution is going to make it hard to read and understand.
- rbanffy 2y agoAnd then you are enlightened.
- pyinstallwoes 2y ago> Whitehead explains how Machael Faraday discovered the laws of induction between currents and magnets back in 1831-32. “What is the use of this discovery?” someone asked. “What’s the use of child—it grows to be a man,” he responded. To quote Whitehead, “Faraday’s child has grown to be a man and is now the basis of all the modern applications of electricity.” There's a difference between working on something because it is interesting and fun, essentially "hacker mentality" and it turning into something special vs pure theory and it never having use. One tinkers with the world building things, the other just adds complexity to abstract ideas with no utility. tl;dr Faraday was a tinkerer, pure theory are fiction world builders.
- sterlind 2y agoI guess I'm an outlier, but I love Haskell's syntax. It's so intuitive and matches how my brain works. most of the type system feels natural, as well. I just wish for a dialect with strict evaluation, and side effects instead of the IO monad.
- ethagnawl 2y agoI just wish I could get people to pay me to write it. I've had the same issue with Elm, although I've actually shipped a number of projects written in Elm since it can be easier to integrate. The crux of my issue is that I often write software which will be passed onto others for maintenance. Nobody is interested in taking ownership of projects written in esoteric languages. As the old saying goes, no one ever got fired for choosing Python.
- deleted 2y ago[deleted]
- tim333 2y agoI dispute pure math! It's kind of cool. I mean see this for example https://www.quora.com/How-do-you-find-the-positive-integer-solutions-to-frac-x-y+z-+-frac-y-z+x-+-frac-z-x+y-4 https://www.quora.com/How-do-you-find-the-positive-integer-s... (solve frac{x}{y+z}+ \frac{y}{z+x}+\frac{z}{x+y} = 4)
- ethagnawl 2y agoHate? No. Intimidated by, perhaps.