James Gosling on visualizing software
designs and understanding large-scale distributed systems!!
Artima has an intersting interview with
James Gosling,
( his weblog)where he
talks about how visualizing a problem helps in solving that problem.
My fav quotes are:
One of the hard problems is exactly what you were just asking
about concerning distributed systems. You've got a reference to a
remote resource. What happens if that remote resource moves? Should
you keep the backtracking information? How do you keep the
backtracking information? Solving that problem is really, really,
really hard. Lots of people went running at that brick wall over, and
over, and over again, trying to find a way to make these large scale
distributed references really work. In the computer science academic
world, it was generally considered that an internet link just wasn't
of any value unless it could handle resource moving and renaming and
issues like that.
In some sense, the brilliant thing that Tim Berners-Lee did was
simply to say, "I don't care." For 20 years people had been
failing to solve these problems in any large-scale way. Berners-Lee
decided to just do the simple obvious thing that solves the problem
he needed, namely, getting ahold of a resource. And that's actually
an easy problem. Coming up with those names, URLs, is a relatively
straightforward thing. He did that, and that enabled a lot of what
the Web is today. But the Web has all these problems. What happens if
a Web page moves or gets deleted? That is exactly the problem of
maintaining or managing the configuration of any large scale
distributed system. On the one hand, the URL design has made the Web
somewhat fragile. Broken links are all over the place. On the other
hand, if they had tried to really solve that problem, the Web never
would have happened, because the problem is just too hard.
Interesting read!!!!!!!!
n
btw, this interview is 3rd in a series, the second one is
also good which talks about exceptions and exception handling, also
contrasts the approaches taken by Java and C# when it comes to
exceptions.