Live data from Hacker News

Lost in Math?

cacm.acm.org

41–50 of 73 posts

Re: Lost in Math?

#41
post #32

Earlier quoted context omitted.

So, to summarize: the article criticizes researchers who focus only on worst-case complexity. While the theory is beautiful, we can point to many problems for which it does not accurately predict performance. I still don't get it, because it's okay for some people to be working on purely theoretical problems, motivated by mathematical curiosity and aesthetics. Is there a lack of people working on more concrete proble…

Let me clarify: average-case does not just mean "over the uniform distribution", though that is of course one distribution of inputs we can study (mostly with applications to cryptography). Average-case complexity can be studied over any family of distributions. Finding ways to characterize hardness and easiness in terms of underlying structure to those input distributions is exactly what average-case complexity trie…

This type of work could, eventually, directly inform practice.

Are there any problems taken directly from practice that complexity researchers are working on and using as context to define shortcomings in existing theory? Maybe that's what he's talking about, expanding on theory that "could, eventually, directly inform practice" and calling that "applied research" instead of tackling practical problems directly.

Re: Lost in Math?

#42

Earlier quoted context omitted.

Me too. Listened to a podcast recently where they were talking about things like, "once you know what a monoid is, you start seeing them everywhere". I've tried to express these benefits to coworkers recently. Leveraging ideas from math allows you to take advantage of many decades of research and provides a structural foundation that's substantially more robust than things you might find in the gang of four book or o…

I think it depends on what you are doing. If you are just doing API plumbing, the idea of introducing more rigor into the process may seem somewhat absurd. If you are doing real programming, however, Haskell allows you to elegantly structure and think about a problem. Certainly in parsing applications Haskell is a no brainier, Pandoc is written in Haskell for example. People are saying Rust is going to be the chosen…

I'm mostly in agreement with you with the caveat that I've seen lots of "throwaway code" turn into production code that folks end up depending on. These days, if something seems like it has even a remote chance of being adopted into a production system, I'll try to make sure that it's on a solid foundation.

Also, in terms of learning Haskell and its cousins, my advice is to start building stuff right away. It's easy to read about this stuff almost endlessly and never do anything productive with any of it. After learning Haskell, I got into Elm and then later PureScript. PureScript has really opened the door for me regarding getting some of these concepts out into the real world. It's really fun and feels rewarding to actually take advantage of some of the constructs that seemed pretty alien and abstract for a long time.

Re: Lost in Math?

#43

Earlier quoted context omitted.

Me too. Listened to a podcast recently where they were talking about things like, "once you know what a monoid is, you start seeing them everywhere". I've tried to express these benefits to coworkers recently. Leveraging ideas from math allows you to take advantage of many decades of research and provides a structural foundation that's substantially more robust than things you might find in the gang of four book or o…

I think it depends on what you are doing. If you are just doing API plumbing, the idea of introducing more rigor into the process may seem somewhat absurd. If you are doing real programming, however, Haskell allows you to elegantly structure and think about a problem. Certainly in parsing applications Haskell is a no brainier, Pandoc is written in Haskell for example. People are saying Rust is going to be the chosen…

Isn't the book you linked a bit dated?

Re: Lost in Math?

#44
post #41

Earlier quoted context omitted.

Let me clarify: average-case does not just mean "over the uniform distribution", though that is of course one distribution of inputs we can study (mostly with applications to cryptography). Average-case complexity can be studied over any family of distributions. Finding ways to characterize hardness and easiness in terms of underlying structure to those input distributions is exactly what average-case complexity trie…

This type of work could, eventually, directly inform practice. Are there any problems taken directly from practice that complexity researchers are working on and using as context to define shortcomings in existing theory? Maybe that's what he's talking about, expanding on theory that "could, eventually, directly inform practice" and calling that "applied research" instead of tackling practical problems directly.

Yeah, a lot of the work on average-case SAT is directly informed by what industrial benchmarks look like.

Further from "core complexity," a lot of the work on machine learning primitives is also directly informed by instances from practice. See the "manifold hypothesis" :

https://deepai.org/machine-learning-glossary-and-terms/manif...

Re: Lost in Math?

#45

If you count all the work in AI/ML then the criticism has been overwhelmingly in the other direction, i.e. to much "just trying stuff to see what happens" and not enough "really understanding what is going on". Always seemed like a weak criticism to me honestly. You can advance theory, or you can advance through experimental insight. Neither is the right or wrong path, just whichever seems like the best way to make p…

I think AI/ML has changed things.

I think Computer Science used to be more aligned with math, in the sense that the mathematics courses most people took in school were overwhelmingly symbol manipulation. Just like CS.

Now I think things are not only more data driven, any sort of "undertanding" might be prioritized away forever, unless some adversarial network requires it. :)

Re: Lost in Math?

#46

Earlier quoted context omitted.

I think it depends on what you are doing. If you are just doing API plumbing, the idea of introducing more rigor into the process may seem somewhat absurd. If you are doing real programming, however, Haskell allows you to elegantly structure and think about a problem. Certainly in parsing applications Haskell is a no brainier, Pandoc is written in Haskell for example. People are saying Rust is going to be the chosen…

Isn't the book you linked a bit dated?

LYAH is a bit dated, but since it focuses a lot more on conceptual stuff, instead of being directly pragmatic, it has aged a lot better than books like "Real World Haskell".

Re: Lost in Math?

#47

> About 10 years ago, in the wake of the 2008 financial crisis, the Nobel Laureate economist Paul Krugman made the same point with respect to economics and mathematics in an influential article titled "How Did Economists Get It So Wrong?" His main answer was: mistaking mathematical beauty for truth. "As I see it," wrote Krugman, "the economics profession went astray because economists, as a group, mistook beauty, cla…

I think Kurgman was talking about the economics profession rather than the finance profession when he said that. My understanding is that the DSGE models many economics grad students use do have some sophisticated math involved.

Maths doesn't have to be complex to be beautiful.

I haven't read the Krugman article cited but the context makes me think of all the stuff around perfect competition and efficient markets, which is beautiful imo. Unfortunately it doesn't describe reality very well.

Re: Lost in Math?

#48
post #3

I haven't been in the developer industry for too long, but excepting the haskell community, I would say that the way CS tends to treat math is as guardrails, as in, "you can't do that because of the halting theorem". "you might be butting up against computational complexity if you try doing it this way". "reconstruction of this data shard is impossible because you don't have enough points to determine the equation".…

The way development works, 95+%, yes math is simply guardrails. But it definitely isn’t always. I would actually say that we as the developer community have done a remarkable job of abstracting the hard math away from needing to be thought of by the average developer by bundling the math so invisibly into libraries.

I highly disagree regarding algorithms. No you don’t need to use the most modern Matrix multiplication algorithm ever but there are lots of situations (at least at large companies or people working with large amounts of data) where you do need to be aware of computational complexity.

Re: Lost in Math?

#49

Earlier quoted context omitted.

I think it depends on what you are doing. If you are just doing API plumbing, the idea of introducing more rigor into the process may seem somewhat absurd. If you are doing real programming, however, Haskell allows you to elegantly structure and think about a problem. Certainly in parsing applications Haskell is a no brainier, Pandoc is written in Haskell for example. People are saying Rust is going to be the chosen…

I'm mostly in agreement with you with the caveat that I've seen lots of "throwaway code" turn into production code that folks end up depending on. These days, if something seems like it has even a remote chance of being adopted into a production system, I'll try to make sure that it's on a solid foundation. Also, in terms of learning Haskell and its cousins, my advice is to start building stuff right away. It's easy…

It is actually quite important to read up on Haskell if you don't have a background in modern FP. It isn't like other languages where you just see what's different from what you already know. There's a lot of conceptual stuff that helps understand what's going on. I actually started by jumping in myself, so I just wrote programs that were quite bad in Haskell terms. I usually recommend jumping into a language right away too, but it really really helps to understand some Haskell concepts at a conceptual level that is hard to understand from just jumping into the code. If one wants to jump right in, they can just do that FP course which is all exercises and skip the book, but I assure you that most noobs will be completely lost. It's like starting someone off in calculus with derivatives, completely skipping over limits and the geometrical underpinnings.

Re: Lost in Math?

#50

Earlier quoted context omitted.

I think it depends on what you are doing. If you are just doing API plumbing, the idea of introducing more rigor into the process may seem somewhat absurd. If you are doing real programming, however, Haskell allows you to elegantly structure and think about a problem. Certainly in parsing applications Haskell is a no brainier, Pandoc is written in Haskell for example. People are saying Rust is going to be the chosen…

Isn't the book you linked a bit dated?

The main concepts are presented well, but people have complained about it being dated. What in particular do you find outdated?
Post reply on HN