Computer science is embodied mathematics... It stands to reason that some trends would be reproduced.
The divide discussed in the article is definitely quite real. There's a fairly significant bunch of young mathematicians who develop software and do extensive computer exploration to identify interesting patterns and attack hard problems in combinatorics. But learning to be actually good at this requires a significant investment of time, meaning that our programming problem solvers are even further removed from the trendy world of algebraic geometry. Just yesterday I was hearing a story of an algebraic geometer who worked with the late, great Alain Lascoux. Lascoux did some interesting computations, which the geometer dropped in his talk without mention of where the numbers came from. He was quite resistant to think of the skill of actually computing these numbers as a real skill with merit...
There is a real need for problem solving; it can illuminate new directions when the combinatorics of combining existing theorems becomes exhausting. But it does seem to be rather undervalued in a world dominated by algebraic geometers and such.
Though more subtle, I'd say yes, there are both (1) people who enjoy software development regardless of its impact on the world, and (2) others with more utilitarian motives.
Personally, I'm split. Though I idealize that genuine curiosity of the pure mathematician, I often feel obligated to use my skills 'for good', whatever that means.
I think there are several different axes one can split programmer culture down (which may or may not be orthogonal).
Brian Beckman explained one such axis, as an aside, in "Don't fear the Monad" [1], about two differing views that born in the '70s and split two programmers into two camps:
The bottom-up people, and the top-down people:
- The bottom-up people start with the hardware and only add abstractions and trade performance where necessary (fortran, c, java)
- The top-down people started with perfect abstraction/logic and reduced/removed abstraction to get access to the hardware and performance where necessary (lisp, ml, haskell)
What is interesting these days, is that these two camps are trying to steal more and more ideas from each other [2]
Computer Science vs. Software Engineering; although usually the label "Computer Science" is applied to both.
Paraphrasing the PDF:
Loosely speaking, I mean the distinction between programmers who regard their central aim as being to solve problems, and those who are more concerned with building and
understanding theories... If you are unsure to
which class you belong, then consider the following two statements.
(i) The point of solving problems is to understand computation better.
(ii) The point of understanding computation is to become better able to solve problems.
Here (i) corresponds to Computer Science and (ii) to Software Engineering.
> If you are unsure to which class you belong, then consider the following two statements. (i) The point of solving problems is to understand computation better. (ii) The point of understanding computation is to become better able to solve problems.
Like the original statement in the article, your paraphrasing strikes me as being egg and chicken. I think most mathematicians and hackers would sit on the fence.