Leaders in Computing
eBook - ePub

Leaders in Computing

Changing the digital world

Share book
  1. 75 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Leaders in Computing

Changing the digital world

Book details
Book preview
Table of contents
Citations

About This Book

This collection of exclusive interviews provides a fascinating insight into the thoughts and ideas of influential figures from the world of IT and computing, including Sir Tim Berners-Lee, Donald Knuth, Linus Torvalds, Jimmy Wales, Grady Booch, Steve Wozniak, Vint Cerf, Karen SpƤrck Jones and Dame Stephanie Shirley.With representatives from areas as diverse as programming, development, hardware, networks, interface, internet and applications, this collection also provides an excellent overview of important developments in this diverse field over recent years.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on ā€œCancel Subscriptionā€ - itā€™s as simple as that. After you cancel, your membership will stay active for the remainder of the time youā€™ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlegoā€™s features. The only differences are the price and subscription period: With the annual plan youā€™ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, weā€™ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Leaders in Computing an online PDF/ePUB?
Yes, you can access Leaders in Computing by in PDF and/or ePUB format, as well as other popular books in Computer Science & Computer Science General. We have over one million books available in our catalogue for you to explore.
1 THE ART OF COMPUTER PROGRAMMING
Donald Knuth, June 2011
While he was over in the UK for a book tour and lecture series, Professor Donald Knuth, the author of the hugely respected The Art of Computer Programming book series, made time to talk to BCS editor Justin Richards about his life and works.
Youā€™re probably best known for your book series The Art of Computer Programming. In 1999, these books were named among the best 12 physical-science monographs of the century by American Scientist. How did these books originally come about and how do you feel about the American Scientist distinction?
The books came about because, in the 60s, when I began, everyone was starting to rediscover things because there was no one good source of what was known and I had enjoyed writing all the time. I was involved in newspapers at school and magazines and thought of myself as a writer and I realised there was a need for someone to get down all the good ideas that had been published and that we were already forgetting.
This was back in the earliest days, when the number of people actually studying computing was probably less than a thousand. I didnā€™t see it as affecting the world, but I still thought it was pretty cool stuff and ought to be organised.
Then I thought about who else could write such a book and everyone I thought of I thought theyā€™d probably only mention their own stuff and I was the only guy I knew who hadnā€™t invented anything himself, so I figured I could be neutral and I could be a spokesman for the other people. And really that was the original motivation.
I started writing the book and, naturally, because I was trying to combine the ideas of many different people, I would see where one person had analysed his method in one way while another, for a competing method, had analysed it another way. So I had to analyse method A according to author B and method B according to author A.
Therefore I ended up creating an original work just by analysing these things and pretty soon I realised there were a whole bunch of interesting scientific approaches here that hadnā€™t been part of my own education that were really coming together. Over and over again I was really seeing this way of thinking as necessary in order to get the story right.
So, to make a long story short, pretty soon I had my own axe to grind too; I started discovering things too and I couldnā€™t be an unbiased writer anymore.
However, I still kept to the original idea of trying to summarise everybodyā€™s ideas in the fairest, most reasonable way I could.
Now, to be put into that category of one of the best books of the century, thatā€™s a little bit embarrassing as they rank me with Einstein and Feynman. Iā€™m not in that league really, I just didnā€™t have as much competition. They had to have a token person in computer science! But still, I worked hard and I think it was necessary to comment on the research so far, but itā€™s a bit like comparing apples to oranges when they chose me to represent computing.
What is it about computer science that drew you to it?
I was born to be a computer scientist ā€“ I have a way of organising stuff in my head that just seems to make me a good programmer. I think everybody can learn to use computers, but only about 1 person in every 50 is a geek in the same way as I am. That means we can push the envelope and can resonate with the computer. The way we think helps to make it easier for us to know how to construct a machine.
Why do you think computer science is so important?
Computer scientists are important because of the way they affect communication and, Iā€™m sorry to say it, also finances. Unfortunately, the world measures what my colleagues and I do by how much our work affects Wall Street. Iā€™m jealous of astronomers, for example, because people respect astronomers for doing astronomy because itā€™s interesting just for its own sake. I studied computer science because itā€™s interesting to study computer science.
The term IT doesnā€™t resonate with me so much ā€“ itā€™s the science that interests me. To me the IT is very nice, but itā€™s not something that Iā€™m particularly good at. My wife can figure out what these icons mean and what to click before I can, but there are so many scientific challenges in order to get machines to do complicated, sophisticated things. The ideas are subtle, the questions are fascinating. There are many questions I never thought Iā€™d know the answer to, but gradually weā€™ve learned how to solve them. For me I would do it even if there was no money in it.
So you have a passion for it?
Yeah, itā€™s like I wake up in the morning thinking Iā€™ve got to write a program.
Do you have a muse?
Yeah, well some days she talks to me more than others. There was a period when I almost thought there was a muse dictating to me.
In your opinion, what do you think is your greatest achievement in the field of computer sciences?
I guess the first thing I did well at was when I worked on the theory that goes on behind how compilers work. I worked on the theory that underlies algebraic languages, and, as I was writing The Art of Computing book (Chapter 10), I was describing what everyone else had done, but then I realised that there was a way to bring these things together. I didnā€™t know how to explain that in a book, it was too far out, so I published that theory in a paper and other people figured out what I meant and this became the theory of parsing thatā€™s used in all algebraic compilers now.
But I feel the biggest thing that I developed was the mathematical approach to compare algorithms in order to find out how good a method was. I worked out quantitative ways you could say that one program is going to be, say, 2.3 times better than another one and the mathematics that goes with it and itā€™s called the analysis of algorithms. Itā€™s what Iā€™m most proud of ā€“ in developing an academic subject ā€“ but itā€™s key to the successful use of the machine.
When I came up with this approach, I said to my publishers ā€˜letā€™s rename the book and call it The Analysis of Algorithmsā€™ and they said ā€˜we canā€™t, it will never sell!ā€™ But thatā€™s really what my book is about ā€“ it summarises the work of all these people, but it also helps us decide, in a quantitative manner, how good each method is.
Youā€™ve said on your website, in response to the question ā€˜why donā€™t you do email?ā€™ ā€“ ā€˜Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things.ā€™ Can you explain your stance on email and what you meant about being on the bottom of things?
Someone has not to be tweeting all the time, someone has to be thinking about things which need a long attention span and trying to organise material and build up strong foundations instead of rushing off across the frontier. It takes a long time to put out something that has the right style; I have to really think about it and if Iā€™m going to do it right I have to spend a lot of time focused on it. And I was being treated like an oracle, lots of people from around the world were asking my opinion about whatever, so after 15 years of email I decided that was a lifetimeā€™s worth.
A previous Turing Lecture speaker, Grady Booch, was very much an advocate of making coding simpler and, according to a blurb regarding your winning the BBVA Foundation Frontiers of Knowledge Award in the Information and Communication Technologies category, you are too. Can you explain why you think code should be kept simple, compact and intuitively understandable?
I guess you have to go back to Einstein who said ā€˜keep it as simple as possible, but no simplerā€™. Itā€™s an illusion to think thereā€™s going to be some sort of ā€˜royal roadā€™ and everything is going to be easy to understand, but almost never do I find something that canā€™t be simplified if you have the chance to rethink it again. So every once in a while people have to say ā€˜well, letā€™s chuck everything we have and start over again, in view of what we know nowā€™.
Thereā€™s a project at Stanford that started a few years ago called the Clean Slate Project that said ā€˜letā€™s figure out a better way to do the internetā€™. Things just keep getting added on and accumulate and you realise that thereā€™s plenty of baggage which thereā€™s no reason to have anymore.
Itā€™s like the appendix in the human body, there was probably some purpose for it at one time, but not now. So I think thereā€™s the potential, although I think maybe itā€™s not possible because the world is so dependent on it, for someone to come along and say ā€˜letā€™s start again with the way programs are loaded into machinesā€™. Itā€™s like when Linux came out ā€“ that was an attempt at the simplification of operating systems.
Another ideology that you share with Grady Booch is that you have both said that you can appreciate the beauty within coding and programming ā€“ what do you mean by that?
Iā€™m thinking of it in several senses of the word ā€˜artā€™, but in general the word ā€˜artā€™ means something that is done by human beings and is not a part of nature. But then there is fine art, which brings aesthetics into it as well.
In many ways beauty is in the eye of the beholder, but you do something because itā€™s elegant and hangs together and is a pleasure to read as well as to write or to see someone elseā€™s work; you feel that youā€™ve got it and you can take pride in it having achieved certain criteria.
Maybe Grady and I donā€™t agree on the criteria. I mean no two people agree on whatā€™s the best kind of music in the world, but musicians certainly know what they like and what they donā€™t like and they know when theyā€™ve done something well and thatā€™s the way I look at a program.
I guess itā€™s down to personal opinion at the end of the day?
Yes, indeed. Thereā€™s no algorithm that you feed in and say ā€˜isnā€™t this beautiful or what?ā€™ Although people did try ā€“ there was a book that came out in the 1930s by one of Americaā€™s greatest mathematicians, George [David] Birkhoff, called Aesthetic Measure and it was filled with all kinds of formulas and there was a page filled with all kinds of Greek urns and next to each one would be a number which would say how beautiful the urn was.
He classified a whole bunch of different design systems; itā€™s kind of interesting as number two or three in his list of 100 was the swastika ā€“ he was a kind of Nazi sympathiser. I guess it has a greater religious significance in Hindu, if itā€™s reflected left-to-right. I donā€™t believe thereā€™s a way to measure it, but he did and some people have tried.
So no one has written a program to work out the beauty of a program yet?
No, not really, although thereā€™s software engineering that tries to do this because they have to measure something ā€“ I donā€™t really know. You know that, as a writer/reporter, you just have to find quantitative numbers to accompany the text ā€“ X number of people have died in Cairo, you have to know whether itā€™s 300 or 315, thatā€™s part of the news story. Qualifying things adds quality. I try to find reason for numbers too, but software engineers are trying to measure how good a programmer is; their bosses know better!
I think numbers are there so people can do a mental comparison and think 20 people have died in that event and 50 in that event so, by contrast the latter event must have been worse. But itā€™s like comparing apples with oranges, because when you do something to a number then you can start to play games and make the number high even though the thing isnā€™t right.
You can take education and an educated student and think, well, how are they going to do on this test and out come the books on how to pass this test rather than how to learn science. Itā€™s all about how to get a good score on a science test. And thatā€™s the problem with these numerical things; they donā€™t always capture the essence of it. Once you have a way to quantify something then, if your goal is to cheat, youā€™ll figure out a way to cheat, when the goal really is to learn.
Youā€™ve said in the past your work is basically about finding a way to sort out the things that are going to last a long time (in computer science) instead of changing rapidly. What do you mean by that?
Every day I get about one journal in the mail, not including ITNOW (laughs), but including The Computer Journal. About eight of them arrive in my mailbox every week. So thereā€™s an enormous amount of material out there and itā€™s good stuff. So how am I going to decide what to put into The Art of Computer Programming?
I try to avoid the stuff thatā€™s quickly going to become obsolete and concentrate on the stuff thatā€™s going to have lots of applications. I try to find the facts that arenā€™t too hard to learn, that are going to be useful for everybodyā€™s toolkit. What should all programmers of the next generation remember? I donā€™t pretend that Iā€™m right about everything, but I try to sort out the ones that stand out to me, that are unforgettable and that our children should remember.
So I guess the building blocks of computer science and not so much all the more transient add-ons which tend to follow?
Yes, but there are still thousands of add-ons that are describable in a couple of paragraphs, and learnable. If something takes 10 pages to describe, then itā€™s very hard to get it into my book. But if something only takes three pages, is intrinsically useful and I can see how it physi...

Table of contents