Simple answer - the vast majority programmers rarely see more than rudimentary math on most projects, unless those projects are specifically math orientated (actual sciences, for example). The rest of us working on our sites, platforms, apps and what-have-you usually only see anything resembling math when dealing with things like UI and Interaction models, or typically soft-math areas like rating systems and segmenta…
Why do most programmers work so hard at pretending that they’re not doing math?
41–50 of 74 posts
Re: Why do most programmers work so hard at pretending that they’re not doing math?
#42Simple answer - the vast majority programmers rarely see more than rudimentary math on most projects, unless those projects are specifically math orientated (actual sciences, for example). The rest of us working on our sites, platforms, apps and what-have-you usually only see anything resembling math when dealing with things like UI and Interaction models, or typically soft-math areas like rating systems and segmenta…
In my experience, this is a regional thing. For my first ten years in the industry (on the east coast), I never met another programmer who called herself an engineer. We were "analysts," "developers," or "programmers." Then I took a job with a local company with a tech office in SV, and everybody, including some of the testers, were "engineers" (hey, even I'm an engineer now!).
Re: Why do most programmers work so hard at pretending that they’re not doing math?
#43"This is also why programmers who use typed functional languages frequently brag about their low bug count yet eschew methodologies like test driven development: tests pale in comparison to the power of actual models." I've written complex systems. Games. Graphics modelling tools. Network game engines. I've seen a lot of code. I've never seen anything that complex written in a functional language. Why? My hunch is th…
I think the hunch of the original article is that few programmers understand the correlation between math and software, hence the lack of use.
Re: Why do most programmers work so hard at pretending that they’re not doing math?
#44"This is also why programmers who use typed functional languages frequently brag about their low bug count yet eschew methodologies like test driven development: tests pale in comparison to the power of actual models." I've written complex systems. Games. Graphics modelling tools. Network game engines. I've seen a lot of code. I've never seen anything that complex written in a functional language. Why? My hunch is th…
Other cases I can think of are systems where high-throughput or low latency are major requirements but there aren't many of those. Most of what we do is about getting more users or making more profit - good engineering performance and decisions are not directly related to these.
Re: Why do most programmers work so hard at pretending that they’re not doing math?
#45"This is also why programmers who use typed functional languages frequently brag about their low bug count yet eschew methodologies like test driven development: tests pale in comparison to the power of actual models." I've written complex systems. Games. Graphics modelling tools. Network game engines. I've seen a lot of code. I've never seen anything that complex written in a functional language. Why? My hunch is th…
I disagree. Generally I see this problem when trying to program in a functional languaged with an imperative thinking. This is not a weakness of the language, but of the developer. I think the hunch of the original article is that few programmers understand the correlation between math and software, hence the lack of use.
Also, can you define "this problem" because I'm not sure which one you are referring to.
Re: Why do most programmers work so hard at pretending that they’re not doing math?
#46Earlier quoted context omitted.
"poor system design" Agree, bur if you don't know how that relatest to math, then you will not discover how math fixes "poor system design" and, as a side effect "incorrect requirements"
gathering requirements has more in common with psychology, sociology and communication skills than mathematics. to make good software, you need to know what it needs to do much better than your customer, unless it's a really small thing.
Math is not just arithmetic or geometry. Is also a way of thinking and a way to sort and structure your analysis. Which helps you to know how to use psychology to ask the right questions, which leads to understand what needs to be done better than the customer.
Re: Why do most programmers work so hard at pretending that they’re not doing math?
#47Simple answer - the vast majority programmers rarely see more than rudimentary math on most projects, unless those projects are specifically math orientated (actual sciences, for example). The rest of us working on our sites, platforms, apps and what-have-you usually only see anything resembling math when dealing with things like UI and Interaction models, or typically soft-math areas like rating systems and segmenta…
Most programmers know about SQL statements... But rarely identify it with set theory and that difference has a big impact on how you design and program databases. Being able to get by without that understanding is no excuse.
SQL in practice is not a purely mathematical construct: you have to know how to make use of spinning platters, indices, caches, locks, network connections, intricacies of data types and bunch of quirks and bugs of the RDBMS.
I've learned SQL before learning set theory properly. It turned out that I did understand (SQL-related parts of) it, I just didn't know it was called set theory :)
Re: Why do most programmers work so hard at pretending that they’re not doing math?
#48"This is also why programmers who use typed functional languages frequently brag about their low bug count yet eschew methodologies like test driven development: tests pale in comparison to the power of actual models." I've written complex systems. Games. Graphics modelling tools. Network game engines. I've seen a lot of code. I've never seen anything that complex written in a functional language. Why? My hunch is th…
I think the point is that there's something intrinsically verifiable about a mathematical model since you're dealing with quantifiable output. Other cases I can think of are systems where high-throughput or low latency are major requirements but there aren't many of those. Most of what we do is about getting more users or making more profit - good engineering performance and decisions are not directly related to thes…
Re: Why do most programmers work so hard at pretending that they’re not doing math?
#49A seductive idea, but ultimately of stunningly limited use in software engineering. By far the most costly defects in software creation are due to incorrect requirements or poor systems design. Knowing with mathematical certainty that your software component does exactly what you have specified it to do helps little when what it does is still the wrong thing. And that doesn't even touch on the fact that crafting comp…
Absolutely. Most of the code being produced around me is of the "When button X is clicked, send an XML message to service Y letting it know the contents of textbox Z." I'm sure this can be modelled mathematically, but I'm not convinced this would help.
And you know what? It was like a revelation to me. It is incredibly helpful. And, by the way, it make me laughing inside each time I query MySQL (because MySQL is sadly /not/ a correct implementation, while PostgreSQL is). The "dots connecting" between set theory and SQL made also much clearer to me the NULL "mess" and why it has to be like that.
So, on this part I'd push the same way as the author, and would go as far as saying that doing correctly a "button X pushed -> notify API Y + persist the action to Z" simple glue code thing /is/ requiring a mental activity that (probably) uses the same parts of your brain as any mathematics and the use them the same way.
However I don't get why the author seem to be ranting against Test Driven Development. In my experience it is unrelated to how you model you data and interactions, except TDD will do exactly as the author is advocating: it will force you to write stateless atomic functions, to make them testable.
NB: From all I have read about mathematics on HN, it seems to me possible that we are not talking about the same thing. Maybe you and many other refer to some "sin a + sin b = cos sin ..." memorization exercise, and some multiple choice questions one have to check as fast as possible in order to get some good enough ranking.
I am talking about a teacher spending around 20 hours a week during several years in front of young people, telling them step by step how the world can be described, analyzed, understood with their brain. It started with: first predicate, there is something, at least one thing. Let's take this thing in your hand, and nothing else: you have a set. In your other hand let's take nothing: you hold now another set, the empty one. Then you have two different things. And on this the teacher built the set theory. (I was educated in France, when math were still on their pedestal).
Re: Why do most programmers work so hard at pretending that they’re not doing math?
#50Earlier quoted context omitted.
I disagree. Generally I see this problem when trying to program in a functional languaged with an imperative thinking. This is not a weakness of the language, but of the developer. I think the hunch of the original article is that few programmers understand the correlation between math and software, hence the lack of use.
Then show me a counter example and by that I mean name a specific, complex, in-production project written in a functional language. Also, can you define "this problem" because I'm not sure which one you are referring to.
Javascript. It is closer to functional programming than to object oriented. But most developers don't see this and believe that since they can get by shoehorning "classes" into a prototype then they are back to what is familiar. Prototypes are templates, no classes. Once you develop in javascript with a functional mentality, boy it becomes easy and elegant.
Sql and set theory is another example.
On the more abstracted side... Requirements modeling and calculus. Calculus classes should change the way that you percive