raganwald
(This is a snapshot of my old weblog. New posts and selected republished essays can be found at raganwald.com.)

Wednesday, November 21, 2007
  I brag about being open-minded, so...


…I really ought to have no objection to proving it by linking to something that disagrees with my words and paints me as narrow-minded and describes me as ignoring some people who are obviously fairly bright, and

I’m sure you get the idea. There’re good points in this post. But I have a clear conflict of interest: it characterizes me in a way I find unflattering, yet it discusses issues I find very interesting and well worth saying “hmmm…”
All static typing—and unit testing, for that matter—do is help ensure the program does when I mean. That’s all. But that’s important, because the more time we the programmers have to spend making sure the program does what we mean, the less time we have to spend on figuring out what it is we want the computer to do. What means we’re more likely to get to the “does what we want (and what we mean)” nirvana, and more likely to get there faster.
What are you trying to prove? on Enfranchised Mind
 

Comments on “I brag about being open-minded, so...:
I agree with your comment on the post: His characterization of you is a classic example of dichotomous thinking, which is the best way to perpetuate the static/dynamic idiocy.
 
I read the post from Enfranchised Mind this morning and could not figure out where he is coming from. Nothing I have ever read on Haacked has given me the impression that Phil Haack dislikes static typing, least of all that post. There have been a couple of posts there on Duck Typing in .Net -- one on the foreach construct specifically, and another on other places that use Duck Typing.

Neither have I seen you rail against static typing. I had the impression that dynamic typing simply suited your needs better than static typing, not that static typing was terrible.

Further more, I have read your post and the linked one several times each now, and I cannot determine where yours says anything in the slightest about type systems. If he hadn't included the quotes, I would have thought he linked to the wrong post.

Anyway, I enjoy your blog. Keep it up, and don't take the criticism personally. I have a feeling, or at least hope, Brian Hurt will re-read your post and realize that he misunderstood it.
 
Reg! Your blog had me look into Scheme and ML. I was flabbergasted when I learnt about ML's static typing and type pattern matching.

When I thought static typing I used to think Java with all it's explicit types and type casting, but now I see that's not the case.

I'm trying to figure out why these ideas aren't mainstream. It always seems one step forward two steps back, no?

I'm now bent on learning enough to use ML in a production setting.

Keep talking keep talking!
 
Absolutists seem to presume that everyone is as much an absolutist as they are, especially those who dare to not agree with them absolutely. It's sad that this kind of personality has had to find its way into the discussion of static vs. dynamic typing and program proof vs. testing, both choices of which in both cases have their of which have their pros and cons, cases in which they are useful and ways in which they fall short. But it seems like if you express an opinion of static typing and/or program proof that is short of that that are the Messiah and all programmers should be forced to use them explicitly forthwith, several pointy-headed academics will pop out of nowhere acting like you need to be shipped to a reeducation camp, and furthermore, just insulted their grandma. I wish it didn't have to come to that so consistently, but maybe that kind of absolutism just goes along with the mindset that favors, and believes unquestioningly in, notions like absolute type safety and absolute program correctness.
 




<< Home
Reg Braithwaite


Recent Writing
Homoiconic Technical Writing / raganwald.posterous.com

Books
What I‘ve Learned From Failure / Kestrels, Quirky Birds, and Hopeless Egocentricity

Share
rewrite_rails / andand / unfold.rb / string_to_proc.rb / dsl_and_let.rb / comprehension.rb / lazy_lists.rb

Beauty
IS-STRICTLY-EQUIVALENT-TO-A / Spaghetti-Western Coding / Golf is a good program spoiled / Programming conventions as signals / Not all functions should be object methods

The Not So Big Software Design / Writing programs for people to read / Why Why Functional Programming Matters Matters / But Y would I want to do a thing like this?

Work
The single most important thing you must do to improve your programming career / The Naïve Approach to Hiring People / No Disrespect / Take control of your interview / Three tips for getting a job through a recruiter / My favourite interview question

Management
Exception Handling in Software Development / What if powerful languages and idioms only work for small teams? / Bricks / Which theory fits the evidence? / Still failing, still learning / What I’ve learned from failure

Notation
The unary ampersand in Ruby / (1..100).inject(&:+) / The challenge of teaching yourself a programming language / The significance of the meta-circular interpreter / Block-Structured Javascript / Haskell, Ruby and Infinity / Closures and Higher-Order Functions

Opinion
Why Apple is more expensive than Amazon / Why we are the biggest obstacles to our own growth / Is software the documentation of business process mistakes? / We have lost control of the apparatus / What I’ve Learned From Sales I, II, III

Whimsey
The Narcissism of Small Code Differences / Billy Martin’s Technique for Managing his Manager / Three stories about The Tao / Programming Language Stories / Why You Need a Degree to Work For BigCo

History
06/04 / 07/04 / 08/04 / 09/04 / 10/04 / 11/04 / 12/04 / 01/05 / 02/05 / 03/05 / 04/05 / 06/05 / 07/05 / 08/05 / 09/05 / 10/05 / 11/05 / 01/06 / 02/06 / 03/06 / 04/06 / 05/06 / 06/06 / 07/06 / 08/06 / 09/06 / 10/06 / 11/06 / 12/06 / 01/07 / 02/07 / 03/07 / 04/07 / 05/07 / 06/07 / 07/07 / 08/07 / 09/07 / 10/07 / 11/07 / 12/07 / 01/08 / 02/08 / 03/08 / 04/08 / 05/08 / 06/08 / 07/08 /