Hacker News new | past | comments | ask | show | jobs | submit login

in Computer Science we have things like: "Quick Sort", "Merge Sort", "Map", "Hashtable", "LRU", etc...

Those are trivial concepts though. The article brings up "perfectoid spaces", as if to suggest their superiority to "Scholze spaces", yet neither name gives any clue as to what they are:

In mathematics, perfectoid spaces are adic spaces of special kind, which occur in the study of problems of "mixed characteristic", such as local fields of characteristic zero which have residue fields of characteristic prime p.

A perfectoid field is a complete topological field K whose topology is induced by a nondiscrete valuation of rank 1, such that the Frobenius endomorphism Φ is surjective on K°/p where K° denotes the ring of power-bounded elements. [1]

Oh, okay. See, the problem is that modern mathematical structures are built on top of centuries of prior work. Computer science, on the other hand, is still in its infancy as a field.

I hope Computer Science divorces from Math, and takes its own path to more logical naming of things and less useless symbols used in it.

That's silly. Computer science is a subfield of math. All computer scientists working in research are mathematicians by training. You won't get anywhere at all if you try to enter the field without a mathematical background.

[1] https://en.wikipedia.org/wiki/Perfectoid_space




Well, CS is more like an extension of a very tiny corner of maths. And practically speaking, most computer scientists and 99% of programmers are terrible at math, to the point that they don’t even genuinely understand basic undergraduate concepts from linear algebra.


Working computer scientists (academics) are definitely not terrible at math. There are a great deal of complicated proofs involved in areas such as complexity theory, algorithms, and data structures. Their jobs are not altogether different from those of mathematicians.


It might be complicated, but as far as I’ve seen, not in a mathematical sense. Perhaps you have some examples?


The tight performance bounds for Union-Find data structures are ridiculously complicated to prove given how simple the algorithm is, even in a mathematical sense.

There isn't a lot of theory-building in algorithms, compared to the more traditional fields of maths, but the combinatorics are formidable.


Computer science is not a subfield of math. Theoretical computer science is, but there is a lot more to cs than just tcs, for example: operating systems, programming languages, human computer interaction, etc.

I agree on your first point though, I think the concepts named after people are usually so abstract that the hard part is to really understand the concepts, not to remember the name.


> Computer science is not a subfield of math.

I wonder what Alan Turing would say about this.

On more serious note... Most people confuse software engineering with computer science.

Computer science is a branch of mathematics, software engineering might not be.

Oh and by the way, there's a bunch of mathematics and logic (again, a branch or mathematics) into language recognition and compilers...

Edit: think that many prominent computer scientists were/are mathematicians: think of Donald Knuth or Claude Shannon, for example. They laid the ground for other stuff to happen.


Dijkstra wrote extensively on how mathematically illiteracy among working programmers is why software is generally of such poor quality.

He grew up in a world where he could only beg an hour a week of compute time off the Americans so his community put a remarkably high emphasis on software quality and clear semantics.

And that’s really what advanced mathematics is all about: clearly communicating otherwise intractably complex ideas by letting the symbols do the work.


> And that’s really what advanced mathematics is all about: clearly communicating otherwise intractably complex ideas by letting the symbols do the work.

I agree, and I think you nailed the point perfectly.

The point that the article misses completely.

Thank you.


> mathematically illiteracy

I rather enjoyed that!

I think there's truth to it though, even at as high a level of situations where you have logic that leaves you thinking 'ok, this works... but it doesn't actually make sense' where something's hard to understand or debug because it's got tangled up into a functional but illegible mess.


All of the important ideas in all of the fields that you mentioned have an absolute foundation in math. Just because we are able to work without using math everyday does not reduce the relevance of math to programming at all.

Programming is math. I’m not sure why this bothers people so much. When you cross a bridge and it’s able to keep standing, you don’t feel gratitude to math? When you write any program, you should feel the same gratitude.


Is baseball also a subfield of math? The problem of swinging the bat can be reduced to physiology, which can be reduced to physics, and then to math. (Sorry for the snarkiness -- reductio ad absurdum just seems like the easiest way to argue this point.)


Baseball's development had nothing to do with math.

Engineering is not a subfield of math either, it merely uses math as a tool. As a field, engineering evolved in parallel with math, only borrowing mathematical methods when their suitable applications were discovered.

Computer Science is a subfield of math because it was developed by mathematicians as a direct descendent of algebra and the study of algorithms, which date back to the ancient Babylonian and Greek methods for division, computing the GCD of two numbers, finding square roots, etc.


It seems kind of strange to me to draw the lines based on anthropology. If there was alternate universe in which a philospher with no mathematical training invented Turing machines and so forth, would you consider CS a subfield of math in one universe but not the other?

Your classification seems as reasonable as any, but the lines seem fairly arbitrary to me.


You can’t invent a Turing machine without math, so your question doesn’t make sense.


As so often happens: https://xkcd.com/435/


for example: operating systems, programming languages, human computer interaction, etc.

Those topics might seem to have nothing to do with math but all of their components have mathematical underpinnings. Algorithms, data structures, complexity theory, and even the physics of end-to-end latency, colour perception, etc.

There probably are some people out there, working in these fields with only a high school math background, but I'd imagine they're exceedingly rare. Anyone who's completed a CS degree has done their fair share of math.


Everyone who completed a physics degree has done at least as much math as a CS degree holder, is physics a subfield of math?

(I think there is a discussion to be had about making the distinction "CS" vs "theoretical CS" as the GP comment does, or if it should be "CS" vs some other term ("computing"? feels a bit general))


Physics is not a subfield of math. It has entirely non-mathematical origins (see Aristotelian physics [1]).

Computer science was developed by mathematicians as a study of algorithms, procedures for computing, and methods of abstraction. In the words of Hal Abelson, computer science is not a science and it's not really about computers in the same sense that geometry is not about surveying instruments [2].

[1] https://en.wikipedia.org/wiki/Aristotelian_physics

[2] https://www.youtube.com/watch?v=2Op3QLzMgSY


There is the Curry Howard Lambek Correspondence (or should I say: the Types, Logic, Cartesian Closed Category Correspondence). Curry Howard in particular, says the act of providing a term for a type is the same as providing the proof to a theorem (modulo a few details). Note that this isn't the same as saying writing a concrete computer program and proving a theorem in a type theory are the same type of activity.

Numerical methods and algorithms are fields of math as old as geometry, especially if we focus on the Babylonian or Chinese styles.

Hermann Grassmann sought to formalize arithmetic, not wishing to assume them as granted. In doing this, he also connects recursion, induction and the natural numbers (he would have known of recursion from its early application in the theory of combinatorics). Peano, Dedekind, Frege, Zermelo and many others would also work on the foundations and axiomatization of mathematics and deduction. Computing began as a side-effect of attempts to formalize just how far such an approach could be taken. The Turing Machine arose to tackle Hilbert's Entscheidungsproblem. The lambda calculus as an approach to the foundation of mathematics. Functional programming languages were originally part of tools meant to study formal mathematical objects while Logic programming sought to apply ideas from formal logic and the axiomatization of mathematics to automatically search for programs.

Dedekind said: "In speaking of arithmetic (algebra, analysis) as a part of logic I mean to imply that I consider the number-concept entirely independent of notions or intuitions of space and time, that I consider it an immediate result from the laws of thought."

What we find is computing reaches right to the foundations of mathematics. Whenever we try to systemize thought, we end up with ideas which seeming inevitably also lead to the foundation of computation.


I tried reading "the road to reality" and came to the conclusion that math is physics minus all the boring parts.

(Mostly joking. Mostly!)



It is like saying Chemistry is a subfield of math, because at some point they use numbers to describe things (mass and such)....

It is not. Applied Computer Science has as much common with math as Chemistry does with math.

I view theoretical computer science as mostly self-masturbatory, to the point that is very very divorced from real life applications and is benefiting very little to us.

Also the market has spoken as well. Someone with CS degree, and 5 years of experience can command a higher salary than someone that took 5 years to get his/her phd in CS. A phd degree is not seen as valuable, mostly because it is not seen as beneficial and it is very divorced to reality of applied computer engineering.


I wouldn’t use money as a measure of how useful something is. Useful for getting a job sure, but to society not so much.

The computer science that helps big companies get more control is the most useful by this metric. Oh look big data and AI are popular. Programming language theory to help create less buggy programs is less so.


You wouldn't have a compiler without someone having developed formal language theory. Or, at least, probably not one built on a solid theoretical foundation that actually happens to be helpful.

You wouldn't have complexity analysis of algorithms, with which most of us don't need to directly involve ourselves, but you do apply its results when choosing an algorithm based on the knowledge that was originally obtained through that analysis. Or if you're not choosing your algorithms, at the very least someone who chose them for your platform did.

You probably wouldn't have lossless data compression (and an understanding of it) at its present level without someone having done mathematically-based work on things like arithmetic coding [1] and range encoding [2]. Again, you probably don't write that code yourself (I haven't), but it's there.

The list goes on.

A PhD degree isn't really a good investment in terms of just salary in almost any field that I can think of. That just means work that's closer to (and directly applicable for) direct revenue streams tends to pay better than work that's further away from them. That doesn't directly mean work that's further away from revenue streams is less valuable down the road; it just means there's less certainty about its ability to help generate revenue, and that there are more steps, more interim work and a greater financial risk involved. While most businesses don't, and shouldn't, bother, that doesn't mean they might not benefit at some point if someone else does it. "The market has spoken" is a shortsighted way of looking at these kinds of things.

Sure, there are areas of theoretical computer science that are more similar to pure maths in terms of abstraction and applicability, and which are pretty much a pure intellectual pursuit. They are very far from engineering or applications. But theoretical work in CS is broader than that, and some of it underlies much of what we have in the practical world.

It's also true that most of software development and engineering work don't really require involvement with much of the theory, partially because someone else is already doing that work within the platform, and partially because most business software is actually theoretically more or less trivial.

Still doesn't mean the theoretical side is useless, because not all software is trivial.

[1] https://en.wikipedia.org/wiki/Arithmetic_coding

[2] https://en.wikipedia.org/wiki/Range_encoding


> You won’t get anywhere at all if you try to enter the field without a mathematical background.

Unnecessary gatekeeping. There’s a lot of engineering-oriented research that has nothing to do with math.


There is no research anywhere, in any field, that has nothing to do with math.


Now this is most certainly wrong. Example (search "history research"):

"Research in history involves developing an understanding of the past through the examination and interpretation of evidence. Evidence may exist in the form of texts, physical remains of historic sites, recorded data, pictures, maps, artifacts, and so on."


Taking a very obvious example, you can't do much in the way of historical research without at least trying to establish which things happened before which other things. It's a serious problem in ancient history.


but you can do that without any math background, for sure there are applications of math in history research but they are just applications


I'm pretty sure modern historians use a lot of mathematical tools: statistics, information science, digital archives, computer imaging, etc. It's very hard to search for this, though, because all of the results concern the history of mathematics. You have to examine the tools and methods used.

Pretty much every field in the social sciences and humanities requires their undergrads to take at least one course in statistics. Sure, these students may complain about it but they need to be trained to not make common statistical errors in their publications. Unfortunately, they still do, which highlights the importance of mathematical education even in these fields.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: