3 ms·
In my experience, people who ask questions like "why should I learn about X when I don't already see its practical applications" are just not people who learn a
by epgui 4y ago
In my experience, people who ask questions like "why should I learn about X when I don't already see its practical applications" are just not people who learn a lot of things, relatively and generally speaking. That's not a value judgment, just an observation.
I don't think it takes any special ability or particular intelligence to be drawn to a language like Haskell-- All you really need is real genuine curiosity, an inclination to learn something you don't already know, and that's something that "geniuses and academia" have a lot of.
- spion 4y agoThere are many things competing for people's time and attention. Why should I learn this is a valid question when you have several dozen other potential things you're looking at learning.
- epgui 4y agoWhile that's true, in practice I have not found that people tend to spend their time learning other unfamiliar things-- rather, they often either waste their time, or spend their time learning things they are already somewhat familiar with. There's nothing wrong with that, but going outside the comfort zone is how you maximize perspective. In other words, it's pretty much completely impossible to convince someone that it would be really worth their time to learn more maths (eg.: calculus, linear algebra, whatever)... The only way they'll see the practical value of doing so is if they actually do it.
- spion 4y agoYes, I think there is a culture in mathematics where people believe this to be the case, and I think its not correct. I can think of several ways to motivate software engineers to learn more category theory (e.g. "did you know that MapReduce is basically an application of monoids?" or "did you know you can solve fast document layout updates with monoids?"). One thing I wonder about though. You say "curiosity" - can you explain what this means to you? Why are you curious about a certain concept? There are thousands of things to learn in the world - are you curious about all of them?
- epgui 4y agoI think I use "curiosity" in the usual sense of the word, but perhaps what I mean by it is also coloured by my experience. There are a number of subjects I used to really have zero interest in when I was younger (chemistry, accounting, law, finance, economics...), and in each instance I eventually realized how valuable time spent learning the subject was. After this happened a few times, I began paying closer attention to when I felt disinterested by some academic topic. I don't think I've felt "uninterested" by any academic topic in years, so I suppose maybe I am curious about it all.
- Barrin92 4y agoI don't buy that observation. Asking for practicality means asking if a thing connects with the outside world and whether it spans across its own domain. Most programmers with wide skillsets and experience I know are inherently practically oriented people. Focusing on practical things means avoiding digging yourself into an ivory tower, it's important to remember that programming languages are human artifacts and it's very easy to get lost in inventions we made up. Practicality is a measure of outwardness, not of curiosity. Many geniuses are very prone to get stuck in their own sky castles. In fact that's funnily mirrored in Haskell itself. I/O in Haskell was only added after the fact, the language started out kind of solipsistic leading to monadic IO as a solution to the question of "wait, how do we actually talk to the outside world guys?"
- epgui 4y agoThe essence of my comment was meant to emphasize that going outside one's comfort zone very often requires some leap of faith. I'm not advocating learning only one thing and spending your life on that-- on the contrary, I'm saying if there's a subject you're not interested in (eg.: chemistry, accounting, actuarial science, invertebrate biology, whatever), it's probably because you don't know enough about it. The people who do know about topic X, do see its applications. There's almost always more to gain from learning a different thing than we tend to believe at the onset.
- cuuupid 4y agoA good principle to abide by in software is that if the majority of people are complaining about something being too difficult to use, it is probably too difficult to use. Someone who uses it every day and is heavily invested in the software is unlikely to (want to) understand this, but that doesn't make it less true. I could write an essay about everything wrong with Haskell but the fact of the matter is the community driving it fails to see the forest for the trees. The principles driving Haskell and functional language paradigms are fine by developers and they don't need to learn it either, nearly every developer is familiar with these. Case and point: the success of Elixir, Swift, Scala, etc.