The Artima Developer Community
Sponsored Link

News & Ideas Forum (Closed for new topic posts)
Shipping the Prototype

1 reply on 1 page. Most recent reply: Feb 18, 2003 1:42 PM by Joe Cheng

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 1 reply on 1 page
Bill Venners

Posts: 2284
Nickname: bv
Registered: Jan, 2002

Shipping the Prototype Posted: Feb 18, 2003 11:46 AM
Reply to this message Reply
Jon Udell asks, "In a world of distributed services in constant flux, when does exploration stop? Why would you ever want to switch from a codebase that is concise, malleable, and easily maintainable to one that isn't?"

Read Jon Udell's article:

Here's another excerpt:

Years ago, when the paint was barely dry on Visual Basic 3.0, a developer showed me a CD-ROM-burning application he'd written using that toolkit. The idea was to prototype the UI in Visual Basic, then rewrite in C++ for performance. But in the end, he admitted somewhat sheepishly, "we shipped the prototype." I saw nothing to be ashamed of. It was -- and is -- a brilliant strategy. My only regret is that it hasn't been adopted more widely.

What do you think of the author's comments?

Joe Cheng

Posts: 65
Nickname: jcheng
Registered: Oct, 2002

Re: Shipping the Prototype Posted: Feb 18, 2003 1:42 PM
Reply to this message Reply
"Why would you ever want to switch from a codebase that is concise, malleable, and easily maintainable to one that isn't?"

The answer to this particular question is, of course, that you would rarely want to. However, I for one do not build prototypes that are more malleable and more easily maintainable than my production code. For example, in the prototyping stage I have no problem with cutting and pasting code. I have no problem using massive if-then chains and switch statements where, say, a Strategy or Command pattern might be more appropriate.

What Mr. Udell assumes is that the conciseness of a language like Python automatically implies better malleability and maintainability. I disagree. IMO, once you learn to to embrace the compiler, to structure your code in such a way that you maximize the compiler's exposure to your application's semantics, the malleability and maintainability of your code can go up an order of magnitude. Furthermore, in my experience, developer tools for compiled languages can do much more for you than tools for scripting languages, which dramatically narrows the finger-typing gap that Mr. van Rossum talks about. (However, if there is a tool out there that can do for Perl what IntelliJ can do for Java, I'd love to hear about it!)

Anyway, almost all of the smart developers I've ever met fall on one side or the other of the static-vs.-dynamic fence, and in my experience, never the twain shall meet. Obviously a guy who is deeply into scripting languages (footnote 4: "Full disclosure: I am a member of ActiveState's Technical Advisory Board") is not going to see the point in porting a working Python app into Java. I guess this is just another one of those instances where smart people can and will disagree.

Flat View: This topic has 1 reply on 1 page
Topic: Taste and Aesthetics Previous Topic   Next Topic Topic: Refactoring the Business

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use