Hacker News new | ask | show | jobs
by ebola1717 3194 days ago
> I'm not even sure what "defining it as a tuple" is meant to imply

Yeah, in a computer science situation it's needlessly obfuscatory. It's literally just an interface with a "plus" method and an identity value.

2 comments

"interface", "method"... One man's obfuscatory is another man's revelatory. It heavily depends on the "axiom set" you first learned about computer science concepts on. I would contend that "interface" and "method" are objectively more obvious concepts.
If you keep talking like that, you'll start to lose sight of the mathematics upon which your field was founded. Like when someone comes out with a fantastic new theorem about posets or monoids, you're probably going to go around thinking it doesn't bear any meaningful impact on your job.

You learn both languages. You do it because the vast majority of human invention and ingenuity consists if acts of translation. Anyone serious about working with computers should understand that.

Monoids and posets have very little structure, so you really aren't gonna get deep useful theorems out of them. Maybe you can make some clever reductions, but those are hardly deep theorems.

I'm not arguing the underlying math isn't beautiful. I took grad level algebra and logic classes, so believe me when I say I know the math is awesome. But it just doesn't have any practical utility in programming, and more often than not just makes things more confusing.

edit: Also, since I majored in math, with a focus on logic, I don't think I'll have any trouble with losing sight of the foundations :)

Well, maybe not you personally then. :) But most programmers don't have a strong maths background, and yet it is a very relevant subject.
Sure. Convince me that the concepts are useful and I may be willing to invest the energy to learn the maths around it to extract more value out of it.

But I'm a professional, not a CS student. I'm already spending my free time honing my craft and looking into new techniques and developments in software engineering. I can't afford spending yet more time on mostly orthogonal higher mathematics based on the hearsay of some guy on the Internet arguing it will allow me to understand a point somewhere down the line that might make me a better developer.

This is exactly the same thing people say who come to programming from playing jazz music or artistic painting or figure skating. They all claim what they did before makes them a better programmer and they're probably even right. But that doesn't mean I should pick up figure skating as a hobby at this point.

There are many different fields related to software development that can directly improve your performance as a developer. Not all of them are equally to all tasks a software developer might have to perform. I think it helps to have a mix of them, especially at the level of teams. There are times where the UX zealot can save the day and there are times where it's the one with the Master's degree in Metamathemagics. I wouldn't want to miss either of them, even they're mostly oblivious to each other's specialisation.

>But I'm a professional, not a CS student.

"I get paid, I don't learn."

You want to get paid, get paid. I won't care if you fail.

I suppose Alan Turing and Charles Babbage are just shit programmers next to you.