Live data from Hacker News

The Mathematical Hacker

evanmiller.org

71–80 of 135 posts

Re: The Mathematical Hacker

#71

I'm in the Yegge school, so far as I think that the mathematical ignorance and, more generally, anti-intellectualism of our industry is its downfall. We see it in the lack of design sense and the awful code that is produced. VisitorFactory nonsense is something that was invented by people who hated math and wanted to tear programming away from its mathematical/problem-solving roots with a bunch of junk complexity tha…

There aren't enough humans that can do math, and there are more openings for jobs than intellectuals. Programming is not necessarily a job for intellectuals, any more than painting or automotive repair is reserved for intellectuals. Have you heard of the balmer peak? This stuff we call code ain't that hard. I don't like your complexity argument. If you are a gear in a watch you do not deal with complexity. You are we…

I'm confused about what you mean. A programmer should not attempt to deal with the complexity inherent in his/her company?

Is that not what you are paid to do to some degree? To use software to model business process etc?

Re: The Mathematical Hacker

#73
Mathematics, Programming, Logic: We are looking at, like with the philosophical beginnings of the 20th century a question found in Hilbert, Russell, et al. Is mathematics reducible to a base system of logic. Today, we might see the cleanest expression of a theoretical framework answering to this question: free logic.

At the same time, programming itself, like mathematics, is not a world of numbers or any of this, and is in fact the expression of complexity: the complexity of the sign as written or drafted by the mathematician, itself expressed in a non-denumerable set. Programming itself depends on the conventional expressions and idioms of programmers who write actual code.

As Wittgenstein might say “Mathematics consists of calculations, not of propositions.”

Like so: "Programming consists of executions, not of functions."

Re: The Mathematical Hacker

#75

Earlier quoted context omitted.

There aren't enough humans that can do math, and there are more openings for jobs than intellectuals. Programming is not necessarily a job for intellectuals, any more than painting or automotive repair is reserved for intellectuals. Have you heard of the balmer peak? This stuff we call code ain't that hard. I don't like your complexity argument. If you are a gear in a watch you do not deal with complexity. You are we…

>There aren't enough humans that can do math On what basis do you make that assertion? "Lots of people program who didn't bother to learn maths" doesn't mean they aren't able to learn maths. >This stuff we call code ain't that hard. Then why do we so consistently fuck it up horribly?

> Then why do we so consistently fuck it up horribly?

This is the crux of it. Coding these days "ain't that hard" because the current generation of programmers sneer at formal methods. They believe providing even semi-rigorous proofs that their code works is not worth their effort.

The result? Testing code with arbitrary input is the best practice; even semi-rigorous proofs are a "luxury". Would your high school geometry teacher accept "well, here's three triangles whose angles sum to 180 degrees. QED."? Then why are we so content as professionals to provide similar "proofs" of correctness?

Unfortunately, there's a strong feedback method here. Formal methods receive little treatment because there is little enthusiasm for their application. There is little enthusiasm for their application because the tools aren't advanced enough. The core problem is still the same though: programmers don't take math seriously.

Re: The Mathematical Hacker

#76
Just as an aside, I dual-majored in both pure math and C.S. I found the types of thinking for both subjects to be very, very similar. In fact, finding a constructive proof for a math theorem was almost like writing code.

I started programming fairly young, about 12, so the "constructive" mathematical approach was the most natural to me. By my third year at university it had worn off and I was much more comfortable with things like existence proofs and thinking in terms of relations rather than constructions (a very vague description, but it will suffice for now), but programming always felt like it emphasized the constructive part of mathematical thinking. It was like I went to a math class and thought one way, then a C.S. class and emphasized a large subset of that thinking.

Re: The Mathematical Hacker

#77
i was amused by "calculus (the real kind)" to distinguish it from usages like "lambda calculus". don't think i've ever seen that one before, though it parallels usages like "a real doctor (not a phd)" and "anything with a science in its name isn't".

Re: The Mathematical Hacker

#78
post #40

Earlier quoted context omitted.

It's the same in France. But the language is not necessarily Java, it may also be C, OCaml, Scheme, Python… depending on your university.

To be fair, France is insanely biased towards maths. The typical curriculum if you want a correct career in CS outside of research is to go through an engineering school and the amount of maths (and physics) you need to enter and then to graduate is mostly equivalent to a BSc. I did an engineering degree in France and an MSc in the UK, I can compare. Globally, a French student leaving high school has done slightly mo…

Okay. I suspected that but I didn't know how much that is the case. Thanks.

Re: The Mathematical Hacker

#79
post #24

Picking on Fibonacci of all things? The goal of fibonacci and factorial examples are to teach recursion. Both fibonacci and factorial are good starting points for a beginner. It can be followed by discussions of dynamic programming where the student can be introduced to recurrence relations and solving them top-down and bottom-up. EDIT: Adding some background on dynamic programming For dynamic programming, the proble…

I think you sort of answered your own question. Fibonacci and factorial functions have closed forms that can be computed efficiently than implementing the recurrence relation both in terms of clock cycles and developer time. While there are a lot of dynamic programming problems that do not easily reduce to closed form expressions, there are a lot that do. Maybe there are better examples for students to learn that of similar difficultly, but lack closed form solutions. The Fibonacci one still seems useful since you might be on a system that doesn't provide the lgamma function. Now, you might say lgamma isn't obvious, but then, the author would have proved his point.

There are a lot more closed forms of recurrence relations in the math than the two we talked about above, and a good deal of us (me included) are ignorant/negligent of them (by negligent I mean lazy :P). However, this sort of knowledge is exactly the kind that, in large enough occurrences, leads to game changers and serious disruption in industries.

Re: The Mathematical Hacker

#80

I'm in the Yegge school, so far as I think that the mathematical ignorance and, more generally, anti-intellectualism of our industry is its downfall. We see it in the lack of design sense and the awful code that is produced. VisitorFactory nonsense is something that was invented by people who hated math and wanted to tear programming away from its mathematical/problem-solving roots with a bunch of junk complexity tha…

>anti-intellectualism of our industry is its downfall

I just curious to find out, what downfall are you talking about ? Isn't software eating the world and Silicon Valley making billions ?

Post reply on HN