
Is Uncle Bob wrong about TDD? - tempodox
http://typeinference.com/languages/2017/01/12/deeply-typed-programming-languages.html
======
mpweiher
No.

The straw man: "to tell everyone else all these static type checks are
useless."

The actual (from Uncle Bob's article):

"Now I don’t want you to think that I’m opposed to statically typed languages.
I’m not. There are _definite advantages_ to both dynamic and static languages;
and I happily use both kinds"

"useless" vs. "definite advantages"

Reading helps.

Oh, and obligatory reference to The Refactoring Browser[1] for the common
fallacy repeated in the linked article that static typing is necessary for
refactoring:

"We originally thought that the lack of static type-checking would make it
hard to build a refactoring browser for Smalltalk. Lack of type information is
a disadvantage, but the advantages of Smalltalk made it a lot easier to make a
refactoring browser for Smalltalk than it would have have been for C++ or
Java."

The first automated refactoring tool was created in a language without static
type information, and it certainly was and maybe still is the gold standard
for such tools.

Knowing your history also helps.

[1]
[http://wiki.c2.com/?RefactoringBrowser](http://wiki.c2.com/?RefactoringBrowser)

------
dpc_pw
Uncle Bob's original article was full of ideas that are just plain wrong.
After reading it, I would not bother reading anything written by that author
again.

Stuff like:

> Whose job is it to manage the nulls. The language? Or the programmer?

is essentially like asking "Who's job is to provide instructions for the CPU"
or "Who's job is to decide about how to allocate registers during software
execution".

The responsibility of a programmer (or rather software engineer) is to provide
as good as possible solution to a problem. It's definitely not required to do
every piece of that solution manually. If there's a way to efficiently offload
any job to a computer it should be used. It can be debatable if a given way is
convenient, provides good enough results etc. but "who's job is it to (...)"
is just silly argument.

People with the attitude like "when men where men and took care of their own
NULLs manually" are just backward minded, and ignore the fact that NULL is a
nasty hack, and even its creator regrets it.

~~~
axlprose
> I would not bother reading anything written by that author again.

I have to question just how much you've read from Uncle Bob to begin with,
because he's by no means the NULL fan you're making him out to be. He's a
proponent of immutable/functional languages like clojure for crying out loud.

Stop propping up strawmen and spreading fud about authors if you don't
actually take the time to understand their perspectives.

~~~
blub
He's probably not a NULL fan, but he is like a broken clock always showing
TDD. At least if one recommended a "testing strategy", with multiple types of
tests, checkpoints, etc it would be somewhat acceptable.

Quality assurance is a process consisting of several parts, among them
compilers with powerful type systems, static and dynamic verifiers, coding
standards and code reviews, model-based code generation and yes, multiple
types of testing. How can all that be replaced with TDD?

Anyone working on anything that _has_ to be high quality would know it's
ridiculous.

------
bdcravens
Did the article change its title, or did you strongly editorialize your
submission? Sound very click-baity. At the very least it should be something
like "Is Uncle Bob wrong about TDD subverting need for strong typing?" to
properly summarize the article. (still editorializing though, but a bit more
accurate)

------
hersorhis
"there is no reason to have the programmer and his.." I automatically discount
the word "professional" from anyone who can't speak or write in gender neutral
language.

~~~
pdpi
Author is spanish, and gender rules in spanish are quite different from what
they are in english.

I'd advice against disregarding somebody's technical skills because of their
foreign language skills.

------
rhapsodic
The answer to just about every question that begins with "Is Uncle Bob wrong
about..." is yes.

