Re: aliases, references & pointers (and the danger of dumbing things down)
johanatan <johanatan@gmail.com> wrote:
On Jan 22, 11:21?am, "Daniel T." <danie...@earthlink.net> wrote:
johanatan <johana...@gmail.com> wrote:
As to the three main points of the article:
"1. Mathematics requirements in CS programs are shrinking."
Alan Holub covered this issue well in his book "Enough Rope to Shoot
Yourself in the Foot". He said, in part:
? ?...skills in mathematics serve almost no purpose in computer
? ?programming. The sort of organizational skills and analytic ability
? ?needed for programming come entirely from the Humanities... The
? ?process used to design and write a computer program is almost
? ?identical to the process used to compose and write a book. The
? ?process of programming has no connection at all to the process used
? ?for solving mathematical equations.
That's quite a claim. I suppose we can all make claims like this.
But, where's the data to support it? How many non-technical majors
are programming full time (and successful at it)? Given two
programmers-- one that understands theory and one that does not
(but equal in other respects), then the one that knows theory will
win almost without exception. The same can be said of other fields
too.
Given any two programmers who are equal in all other respects, the one
who also "understands theory" will of course be the better man for the
job (even if only by a small degree.) How could anyone argue with that?
(Not that anyone has of course.)
However, when push comes to shove, programming is mostly about
communication, not solving complex mathematical formulae. Given two
programmers, one who knows calculus well but can't communicate well,
while the other communicates effectively, but has trouble with calculus,
the later person will be a much more effective programmer IMHO. (I
freely admit though that my personal bias might be showing, having never
even taken calculus... :-)
Sure, you can take some forms and slap them onto a database and let
people manipulate data, but that isn't really solving problems in
any sufficient complexity to be considered 'programming'.
And you can slap together a fortran program to solve some complex math
formula, but that isn't programming either.
"2. The development of programming skills in several languages is
giving way to cookbook approaches using large libraries and
special-purpose packages."
Isn't the above exactly what all the emphasis on software reuse
has been for?
... And, furthermore, there's always going to be a need for the
people who write the packages, or systems (would you suggest that
they too not know anything about mathematics?)
Last I checked, logic (IMO the single most important thing to understand
in programming,) is taught in the philosophy department as a Humanities
course... Would you suggest those programmers not know anything about
logic? Not know anything about how to organize their thoughts and
communicate them effectively to others? That's what the humanities are
all about... communication.
Of course there are some mathematically intense areas of interest in
programming (3D comes to mind,) but those are niches. The rest of us use
those "large libraries and special-purpose packages."
"It's interesting that the original work in language theory that made
compiler-writing possible was done by a linguist--Noam Chomsky at
M.I.T.--not by a mathematician." (Holub)
"3. The resulting set of skills is insufficient for todays
software industry (in particular for safety and security
purposes) and, unfortunately, matches well what the outsourcing
industry can offer. We are training easily replaceable
professionals."
Again, the ultimate goal is being achieved. Brooks said that
programmers weren't replaceable components no matter how badly
companies wanted them to be. Looks like he might have been
wrong...
Where's the data to support that?
Well, it's an assertion made by the writers of the article so you will
have to ask them that. I just found it odd that they were lamenting the
very situation that the executives in the industry have been hoping for
from the beginning... easily replaceable programmers...