
Coders At Work 207
Vladimir Sedach writes "Aside from authoring narrowly focused technical books, teaching
university courses, or mentoring others in the workplace, programmers
don't often get a chance to pass on the knowledge of the practise of
programming as a profession. Peter
Seibel's Coders at Work takes fifteen world-class
programmers and distills their wisdom into a book of interviews with
each of them." Keep reading for Vladimir's review.
The list of coders interviewed includes some geek household names
like Donald Knuth and jwz, but also some not so well-known ones such
as Bernie Cosell (one of the programmers behind the ARPANET IMP, the
first Internet router) and Fran Allen (compiler pioneer). The full
list of people interviewed is available on the book's website. The eras
embodied by the interviewees range from the very beginnings of
software as we know it today, to the heyday of the Internet boom, when
people like Brad Fitzpatrick made their mark.
Coders at Work | |
author | Peter Seibel |
pages | 632 |
publisher | Apress |
rating | 8 |
reviewer | Vladimir Sedach |
ISBN | 978-1430219484 |
summary | How the best programmers in the world do their job |
Seibel himself is a coder and author (having the well-received Practical Common Lisp under his belt). It is then no surprise that the interviews are packed with technical details, which (with one exception, explained below) restricts the intended audience of the book to those already familiar with programming.
Coders at Work manages to communicate the wisdom of programmers of bygone eras, while simultaneously being heavily colored by very contemporary issues. JavaScript, its consequences and its discontents, is a topic recurring throughout the book. More than just a recounting of history, Coders at Work should inspire readers to learn about the wider context of their craft and stop the reinvention of the proverbial wheel decried by several of the interviewees in its pages.
Given the related subject matter, the people interviewed in Coders at Work who played a role in creating major programming languages (Armstrong, Eich, and Steele), and close publication dates of the two books, inevitable comparisons will be drawn between Coders at Work and Federico Biancuzzi and Shane Warden's Masterminds of Programming (I previously reviewed Masterminds of Programming on my blog). There is a lot of common ground between the two books in terms of technical areas covered, but Coders at Work clearly comes out on top.
Part of the reason has to do with the fact that Seibel's choice of interviewees is stellar. Masterminds of Programming's niche focus on programming language designers meant that its authors had a tougher job than Seibel, but details like the omission of Alan Kay (creator of Smalltalk and one of the most influential programming language designers in the field's history) from Masterminds are nothing short of dumbfounding.
Just as important to making Coders at Work a good book is the fact that Seibel is a great interviewer. Seibel's questions felt more open-ended than those in Masterminds, and the resulting interviews have a flow and narrative that makes them engrossing to read and gives the programmers interviewed a chance to explore details in-depth.
A refreshing aspect of Coders at Work are the interviewees who don't shy away from strong opinions or humor, as shown in this remark by Peter Deutsch, "I think Larry Wall has a lot of nerve talking about language design--Perl is an abomination as a language." One aspect where Coders unintentionally shines is as a guide to finding and hiring programming talent. Even non-technical managers will benefit greatly by reading those excerpts of the interviews concerned with hiring programmers.
Another unexpected aspect of the book is the breadth of topics discussed — everything from debugging machine code to women's issues in computing workplace and education.
One area where Coders could stand improvement is in its length. Not all of the coders interviewed possessed the gift of brevity, and many interview answers could have been edited to reduce their length without affecting the message.
In her interview, Fran Allen makes an interesting assertion — programming and computer science need to become more socially relevant. Other scientific and engineering fields are filled with well-known personalities, described in prominent interviews, biographies, and major Hollywood films. The only "software people" to appear in the public spotlight are the CEOs of major software firms. Ultimately, its role in helping programming assert its status as a socially relevant profession may be the most important contribution of Coders at Work.
You can purchase Coders at Work from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Microserfs (Score:5, Interesting)
Re:Microserfs (Score:5, Informative)
Nah, Death March by Yourdon. I re-read it frequently and it never loses its luster.
Re:Microserfs (Score:5, Insightful)
Re: (Score:2)
How much money do you think is spent despite knowing that it's an utter waste of time and resources, for the only reason to limit liability? All that matters is that you did what you could so you cannot be sued for neglect.
Re: (Score:2)
Re:Microserfs (Score:5, Insightful)
The look of disappointment on the faces of the major news anchors was priceless and underscored their severe lack of understanding of technology.
It was if someone had said that a bridge needs repairs (the experts can see the rot), the billions were spent fixing the bridge and when the first person crossed the bridge it did not collapse. Then they whine that there is no sensational story, that the bridge would not have fallen anyway and why was the money spent, what a waste?
I hate news people. I find them shallow, news bite hunting morons.
Re: (Score:2)
Re: (Score:2)
Women's issues in computing workplace (Score:5, Funny)
I know I am not alone in deploring the puerile comments and immature attitudes of male programmers.
In every computing workplace where I have worked, men have behaved like sex-crazed animals and women have *never* felt comfortable working topless.
Re:Women's issues in computing workplace (Score:5, Funny)
Curious: What employer asked/required you to work topless? ...and where might I submit my application?
Re: (Score:3, Funny)
Re: (Score:3, Funny)
My powers of repression and selective memory are pretty impressive. I've seen goatse, and still manage to live a pretty good semblance of a normal life.
Re: (Score:2)
Depends, Latte or black Americano?
Re: (Score:2)
women have *never* felt comfortable working topless.
But I thought it helps you concentrate when we can see your bewbs O.o
Re: (Score:2)
I'll grunt to that.
Now where are the topless pics?
Re: (Score:2)
women have *never* felt comfortable working topless.
Why would you? All I can think of is nudie bars, and no, the bartender doesn't write code.
Re: (Score:2)
I know I am not alone in deploring the puerile comments and immature attitudes of male programmers.
In every computing workplace where I have worked, men have behaved like sex-crazed animals and women have *never* felt comfortable working topless.
I'm male and I have the same issues. I best code pantless, but the team of female kernel hackers down the hall will harass me to no end when all I want is to fetch a cup of coffee and finish this damn script.
Coding philosophy book: Writing Solid Code (1993) (Score:4, Informative)
I found Writing Solid Code [amazon.com] (Maguire, 1993) worth the read. Sure, some of what's in there is dated but many of the concepts are timeless and part of today's conventional wisdom.
Things like coding for security, coding for readability/maintenance, etc. etc.
Granted, those concepts weren't new in 1993 either, but many in the generation of programmers that cut their teeth on Turbo Pascal and 8-bit-machine BASIC never learned the lessons from 1960s mainframe code jockeys.
Useless book. (Score:2)
Re: (Score:2)
Who the hell are you?
Re:Useless book. (Score:5, Funny)
Judging from the construction of his statement*, not Steven Colbert. That narrows it down a bit.
*My evidence? The use of the "or" conjunction, which in English is semantically equivalent to a logical XOR.
Re: (Score:2)
*My evidence? The use of the "or" conjunction, which in English is semantically equivalent to a logical XOR.
That would only narrow it down if Steven Colbert actually WAS mentioned in the book. Anyone got the book to check it out?
Re: (Score:2)
The use of the "or" conjunction, which in English is semantically equivalent to a logical XOR.
_Usually_ equivalent to XOR. Consider the following statement:
"It will rain today or tomorrow".
If, in fact, it rained today _and_ tomorrow, would you consider the statement false? Most people wouldn't. Therefore, in that particular case, English "or" is equivalent to logical OR not XOR.
Re: (Score:2)
Judging from the construction of his statement*, not Steven Colbert.
The fact that he spelled "Stephen" incorrectly might be a hint, too.
Re: (Score:2)
A reject from Digg.
Does this complement "Code Complete" (Score:2, Interesting)
How does the info in this book compare to Code Complete (2)?
Andy Hertzfeld... (Score:2)
... is not interviewed.
WTF?
Re: (Score:2, Informative)
You'll find him in "Programmers At Work" by Susan Lammers. That book was published by Microsoft Press back in 1986.
ah yes, anti-perl tirades are refreshing (Score:2, Interesting)
Yes, it must be refreshing all right, listening to aging Computer "Scientists" reciting crap that's been stale for years. It certainly is courageous for an ACM member to continue the smear campaign against perl. His friends in the gentleman's club wi
Re: (Score:3, Informative)
In general, I agree with you. To nitpick, though...
Proving things is the domain of math, not science. In science, you can only find models which aren't disproven in a particular domain or by the body of experimental data. You can't prove your model is correct.
And the only reason you can do it in math is because you get to choose the assumptions and assume they're absolutely true.
Re: (Score:2)
I was looking forward to reading this book based on the thread above. But you're right, Peter Deutsch's comment about perl is less refeshing than asinine. I'd love to see a thoughtful analysis of perl compared to other languages, because sometimes, even though it's the language I use most frequently, it drives me nuts. But calling it 'an abomination' doesn't quite qualify as thoughtful analysis. And it certainly doesn't consider that it must be doing something right to still be used in so much functioning c
Re: (Score:3, Interesting)
If the popularity of a programming language were a sign of it being a "good" language, then how come there is so much COBOL and FORTRAN? This reminds me of an old saying: "Eat shit, 10 billion flies can't be wrong!" I'd also like to point out that most programmers are hacks. I don't doubt that languages like Perl are useful for small scripts but I think it is not a language that scales up very well. Google for example uses C++ and Python and they try really hard to hire only the best programmers they ca
Re: (Score:2)
Fortran, as in am modern Fortran like Fortran 95, is [b]not[/b] a terrible programming language for physics problems.
For some of those problems, it's better than almost all alternatives. I like it much much better than perl.
It's suited to its domain at least as well, and is far less idiosyncratic.
Re: (Score:2)
But, using the popularity of anything as a measure of its quality is questionable.
Yes, but the popularity of something can absolutely be used as a measure of its utility.
The reason for something being popular may be nothing more than an accident of history, but because it's popular, it's useful in ways that something obscure cannot be.
Re: (Score:2)
It doesn't follow in EVERY case, it's just a general statement I made up and I think to be true in many cases.
For instance, some CS people might claim that Plan9 (or insert other favorite, but highly obscure and unpopular OS here) is the best OS in existence. Well, maybe technically it is, I don't know. However, if I want to do useful work on a computer, like buying something online, playing an MP3, desigining a PCB, or whatever, Plan9 may very well not allow me to do some or all of those because it simpl
Re:ah yes, anti-perl tirades are refreshing (Score:5, Insightful)
I come from a physics background and most physicists used to, and may still, program in FORTRAN, yet FORTRAN is a terrible programming language.
They use Fortran because the language is designed and optimized to be the best language at what physicists and other physical scientists most often need it do: crunch a whole lot of numbers. I wouldn't use Fortran to make a word processor or web browser, but if you need a program to spend two weeks doing a lot of math, you just can't beat it.
Re: (Score:2, Funny)
I come from a physics background and most physicists used to, and may still, program in FORTRAN, yet FORTRAN is a terrible programming language.
Ah yes, but in fairness most physicists are terrible programmers :) I'm not excluding myself either, but it stands to reason that someone who uses programming as just one of a multitude of tools to do their job won't be as good at it as someone who's job *is* programming.
Fortran has the virtue of being simple - certainly compared to C++, which has replaced it, at least in particle physics. It's thus less likely that a non-professional programmer will shoot themselves in the foot.
Re:ah yes, anti-perl tirades are refreshing (Score:5, Insightful)
Re: (Score:2)
It kinda reminds me of the English language.
Re: (Score:2)
If that purpose is making life difficult for programmers in general and obfuscation in particular, then I agree. If the purpose is doing something with /etc/passwd that you can't do with grep, I'm already less inclined to agree. Unless of course the word masterpiece was used in the sense that the atomic bomb is a masterpiece of physics and engineering, then I fully underwrite your sentiments.
Re:ah yes, anti-perl tirades are refreshing (Score:4, Insightful)
The thing is, from an application standpoint, I wouldn't consider perl a programming language. To me, it's an advanced scripting langauge. And it does that really, really well. But as a programming language, it isn't exactly the best.
Re: (Score:2)
Not trying to be sarcastic here but let me try to get straight what you are saying:
1)Application standpoint -> Perl's bad
2)Programming language -> Perl's bad
3)Advanced scripting language -> Perl does that really, really well.
So I assume that 1 and 2 are more or less the same. Programming languages are used for applications and Perl is not a real programming language and thus bad for building applications. Not trying to put words in your mouth here but just making sure I understand you.
On the other
Re: (Score:2)
(And if you want to take the line that the CS attitude is correct, how would you prove that it's correct? Writing working code is evidently not relevant. And if you can't prove it, then what does the "S" stand for in "CS"?)
Hal Abelson says Computer Science isn't really a Science [google.com], nor is it about Computers. It's more like magic!
As for Perl... Whether or not people have said bad things about Perl before, whether or not people do good work in Perl, I can't find fault in anyone who feels it's still worth mentioning that Perl is a horrible jumble of a computer language.
Re: (Score:2, Insightful)
As for Perl... Whether or not people have said bad things about Perl before, whether or not people do good work in Perl, I can't find fault in anyone who feels it's still worth mentioning that Perl is a horrible jumble of a computer language.
People do lots of good work in English too, including writing computer code (all the syntax, keywords, etc. are in English), doing aviation, and many other thing. But English is a horrible jumble of a language.
Re: (Score:2)
As for Perl... Whether or not people have said bad things about Perl before, whether or not people do good work in Perl, I can't find fault in anyone who feels it's still worth mentioning that Perl is a horrible jumble of a computer language.
People do lots of good work in English too, including writing computer code (all the syntax, keywords, etc. are in English), doing aviation, and many other thing. But English is a horrible jumble of a language.
See? That's exactly what I'm talking about. That there is a fair criticism.
Re: (Score:3, Insightful)
You might think that the obvious utility of perl, the fact that perl and perl derived languages remain tremendously popular with people writing actual code, might blunt the man's opinion that it's an "abomination".
Excuse me, but why can't it be both? It's nasty, but it works for a lot of things. That said, python does what perl does with easier syntax, so I'll be using that.
Re: (Score:2)
Re: (Score:2)
Calm down, Larry, it was a joke.
Re: (Score:2)
>(And if you want to take the line that the CS attitude is correct, how would you prove that it's correct? Writing working code is evidently not relevant. And if you can't prove it, then what does the "S" stand for in "CS"?)
Stuff: Computer Stuff. It's what we all do.
Have to agree with the sentiment above though, reminds me Steven Levy's hackers, where they spend so much time on deciding on what "The Right Thing" was, that it left little time for application to the real world. I'm not a fan of perl (cho
Socially relevent (Score:5, Insightful)
FTFS: "In her interview, Fran Allen makes an interesting assertion â" programming and computer science need to become more socially relevant."
How do you recognize the extroverted programmer? He's the one staring at *your* shoes.
Same goes for engineers. Name a well-known (outside of engineering) engineer. I'll wait ...
Since programming involves long hours alone staring at a computer screen, it's no surprise it tends to attract people who don't mind or even enjoy being alone, and for whom self-promotion is fairly low on the to-do list.
Re:Socially relevent (Score:5, Interesting)
Same goes for engineers. Name a well-known ... engineer. I'll wait ...
Rowan Atkinson has a Master's in Electrical Engineering.
Re: (Score:3)
He's not a well-known engineer.
He's a well-known actor/comedian that happens to have studied electrical engineering.
Re: (Score:2)
Re: (Score:2)
He's not a well-known engineer.
He's a well-known actor/comedian that happens to have studied electrical engineering.
No true engineer could be famous. Therefore, anyone who is famous is not a true engineer, no matter how much engineering they did.
So you've heard of this engineer before? You must be one of those engineering types, not "just folks". Anybody who knows about an engineer doesn't count...
It's a clever argument but it doesn't say much.
Re: (Score:2)
Re: (Score:3, Interesting)
Mahmoud Ahmadinejad (president of Iran), who has a doctorate in civil engineering and traffic transportation planning.
Re: (Score:2)
Not an engineer. Having a degree from decades back doesn't make you an engineer; you have to practice it as well.
That said, I wonder if he'd be any better at designing traffic systems than the idiotic "traffic engineers" we have here in the USA, who insist on setting traffic lights so there's no way to catch all green lights on a main boulevard, and intentionally time them so you have to get caught at every red light.
Re: (Score:2)
That said, I wonder if he'd be any better at designing traffic systems than the idiotic "traffic engineers" we have here in the USA, who insist on setting traffic lights so there's no way to catch all green lights on a main boulevard, and intentionally time them so you have to get caught at every red light.
Go ahead and time all the lights so that you get all greens. Now drive down the road in the opposite direction.
Re: (Score:3, Insightful)
Same goes for engineers. Name a well-known (outside of engineering) engineer. I'll wait ...
Imhotep - Ancient Egypt.
Leonardo DaVinci - Renaissance
David Fisher - Present (Dynamic rotating tower thing).
Come on now, You can't clump Engineers into the same group as computer scientists, they've been around for ages.
Re: (Score:3, Informative)
How about Hu Jintao, Paramount Leader of China, not to mention hydraulic engineer? I think there may be a few people in China who have heard of him.
Re: (Score:2)
In fact the majority of the current (fourth) generation of leaders in the PRC have an engineering background.
Re: (Score:2)
Hu?
Re: (Score:2)
Name a well-known (outside of engineering) engineer. I'll wait ...
Neil Armstrong? Alexander Graham Bell? Even Bill Gates, dammit.
Or my favourite, Isambard Kingdom Brunel [wikipedia.org]? He might not be very well known in America but he was voted #2 Greatest Britain in a BBC poll. A lot of his work still exists (he died in 1859) and is pretty damned impressive. The guy was a genius hacker and a great self-publicist.
Re: (Score:2)
Same goes for engineers. Name a well-known (outside of engineering) engineer. I'll wait ...
Sure, here you are, off the top of my head:
- Leonardo da Vinci [wikipedia.org]
- Alexander Graham Bell [wikipedia.org]
- Henry Ford [wikipedia.org]
- Ray Dolby [wikipedia.org]
- Gustave Eiffel [wikipedia.org]
- Neil Armstrong [wikipedia.org]
- Isambard Brunel [wikipedia.org]
- Rudolf Diesel [wikipedia.org]
- Graf von Zeppelin [wikipedia.org]
- Charles Babbage [wikipedia.org]
- Alexander Graham Bell [wikipedia.org]
- Lee DeForest [wikipedia.org]
- Neil Armstrong [wikipedia.org]
- Seymour Cray [wikipedia.org]
- Ray Dolby [wikipedia.org]
Re: (Score:2)
Re: (Score:2)
And what exactly did Jimmy do in the field of nuclear engineering? Seems to me he's known as being a politician, not an engineer.
Re: (Score:3, Informative)
And what exactly did Jimmy do in the field of nuclear engineering?
Jimmy Carter?
He was one of Americas first *ever* naval nuclear engineers wasn't he?
Biggest Gripe about coding .. shouldn't be coders (Score:5, Insightful)
I'm disguted, repeatedly, at what passes for applications these days. Back when I started we wrote tight, purposeful code and optimised for speed or size. But now I'm constantly encountering untested code, applications which have the most bombastic interfaces, layouts which seem more ad hoc than well planned and a dozen other gripes.
Can't be all the coders faults. Whatever happened to Q/A? Whatever happened to analysts who have a clue? I keep seeing people who have no background in IT making decisions and overruling experince wiht seat of the pants decisions. Even to the point of corrupting data and having no fall-back plan.
I feel I need to retire, but I'm many, many years from that.
I'd like a book which discusses the EPIC FAIL of present day standards and practices of software development.
Re:Biggest Gripe about coding .. shouldn't be code (Score:4, Funny)
I'm disguted, repeatedly. . .
Sounds painful. Hope you get over it soon.
Re:Biggest Gripe about coding .. shouldn't be code (Score:5, Insightful)
Bugs have been around forever. Q/A has been troublesome since the beginning - heck, many of the problems outlined in the Unix Hater's Handbook were the direct result of poor Q/A throughout the... erm... Unixverse. Bloated code? That's been around as long as there's been code - heck, INTERCAL was explicitly designed to produce it! People with no background in IT making decisions and overruling experience? That's also been happening for ages.
That said, I'll give you credit on one thing - yeah, your code was tight, purposeful and optimized for speed or size, at least as far as the machine was concerned. You didn't have a choice. Instead of focusing on maintainability or ease of understanding, programmers had to bend to the machine's thinking instead of the other way around since there just wasn't enough machine to tolerate human weakness. Eventually, though, computers became powerful enough where programming could stop focusing on getting every last clock cycle's worth by any means necessary and more on solving programming problems quickly and easily. Put another way, the programmer's time finally became more valuable than the machine's time. Once that happened, the rules changed - something which those some of those people with "no background in IT" figured out years ago (I hear it's because they had a background in some dark discipline called "accounting") and which a lot of IT people still can't wrap their minds around.
He's right! (Score:2, Interesting)
I can predict, fairly accurately, the outcome of a corporate development effort from the answer to these questions:
Is the business sponsor and the user team deeply involved in an Agile/Iterative way throughout the development effort?
I
"Agile" happened. (Score:5, Interesting)
Whatever happened to Q/A? Whatever happened to analysts who have a clue?
"Agile programming" happened. No need to figure out the requirements up front, they're going to change anyway. No need to architect the system, we'll just use a "framework" and add features.
This works OK for web sites in PHP, but don't try to do hard real time or database internals or secure software that way. Agile programming will give you a set of loosely coupled features, but for many user-facing applications, that's good enough.
Re: (Score:2)
Fail.
I guarantee not a single app that is labeled an abomination by the parent was done using Agile. Fact of the matter is that a miniscule number of shops use Agile. The most successful projects I've worked on from Contract work to Adserving to Accounting, were (both) Agile projects. The rest were "we're outta money/time, I guess that's what we've managed to finish".
With Agile, it's quite simple (Score:2)
When an Agile project fails, it's either because you're not following the rules or you're following the rules too closely.
Re: (Score:3, Funny)
I hear you. I remember when, back on my Apple II+, I could write new music on my sequencer (with fully sampled orchestral sounds - no external hardware needed), download new mp3s from Amazon.com, and chat in real-time with some friends, all at the same time. I remember how easy it was to stream real-time video wirelessly to my TV. Programming interfaces was a snap as well, with fully-featured APIs available for several different flavors of operating systems.
I remember how just about any information you c
Re: (Score:2)
Yeah, because the test of quality software is shiny graphics and multimedia. You're a non-technical manager, aren't you?
Re: (Score:2)
Yeah, because the test of quality software is shiny graphics and multimedia. You're a non-technical manager, aren't you?
I program video games for a living, and I compose music on the computer as a hobby. As such, I'm somewhat partial to shiny graphics and multimedia.
Re: (Score:2)
I'm surprised you think code quality has gotten worse.
Heck, even look at protocols. What about SMTP... the completely authenticantionLESS mail protocol! You wouldn't find that today.
I think this the 80s television syndrome. We all think TV was better back in the day. Probably because we only remember the good ones and we compare it to all the crap we have today (reality tv...). But we forget the good shows today (Lost, BSG, seinfled... whatever floats your boat).
let's not even get into how much more is
Re: (Score:2, Interesting)
This is one of those funny things about software. Software is so valuable, people are willing to use it even when it's buggy. No one wants to go back to the manual way once they are shown the automated way. It is often less work to workaround the defects than to go back to no software.
Combine that value proposition with the fact that software demand way outstrips supply, and you get a lot of marginal software.
Cars were like this once before too. MG owners know what I am talking about. Cars used to be f
Slashdot (Score:2)
Do good coders read Slashdot during company time?
(Like me and you)
Programmers at Work (1989) (Score:5, Informative)
Another similar book that is no longer in print is the semi-classic, Programmers at Work [amazon.com] subtitled Interviews With 19 Programmers Who Shaped the Computer Industry, (1986 /1989) by Susan Lammers [wordpress.com] which includes interviews with well-known or pioneer programmers such as Charles Simonyi (Microsoft), Bill Gates, Gary Kildall (Intergalactic Digital Research), Andy Hertzfield (Macintosh Operating System), John Warnock (Postscript) and C. Wayne Ratcliff (dBASE).
Re: (Score:2)
I've read it. To be honest I didn't find Gates contribution to be very inspiring, I think he has far more to say about business. I think Simonyi is way overrated.
This book sounds like an update to that work to some extent.
Re: (Score:3, Informative)
Simonyi is to blame for Hungarian notation. Sure, it turned into the opposite of all his recomendations, but he's still the mad scientist who created that monster.
Devaluation of software engineering (Score:2)
Is it just me or does anyone else also hate being described as a coder?
It seems to me that this label is just another devisive step in the general undermining of skilled Software Engineering.
Re: (Score:3, Interesting)
Real software developers code. Sure, they do other important work as well, but code is the work product. Every single person I've ever worked with who denied this was a crap coder who could write a clear design doc (but great at PowerPoint, or Project, or other busywork).
Re: (Score:2)
Software Engineering (to me, anyway) incorporates usability studies, doing a proper architecture, managing people, improving software development processes, testing, and a whole lot of other stuff that's NOT coding. To actually 'Engineer' a product/system takes a lot more than a couple of
Re: (Score:2)
To the same degree that electronic circuit design isn't engineering.
"Brilliant Programmers" (Score:3, Interesting)
I have mixed feelings towards the people cited as "all-time great programmers and computer scientists", at least the ones I know anything about.
Ken Thompson. The one, absolute no-brainer for inclusion, because he's the most influential programmer ever, without exception. His minimalistic approach to OS design and API specification has had a profound effect on how people think software platforms. I started to study programming before Unix became widely used, and the sheer baroqueness of pre-Unix OS's is far beyond what younger programmers can imagine. Even if you've never read anything this guy has written, you've been influenced by his ideas. We all owe him big time.
Donald Knuth. His contributions are pretty major. But the paradigms he uses to talk about programming are thoroughly obsolete. And I do not understand his obsession with finishing an unfinishable book.
Josh Bloch. I've had the pleasure of actually working with him. Brilliant dude, and certainly someone all programmers should listen to. (And he doesn't get enough credit for his contributions to the design of Java.) But calling him a programmer is a bit like calling Frank Lloyd Wright a "builder".
Jamie Zawinski. I don't know that much about the guy, but what I do know makes me unwilling to accept his opinion on anything. I'm informed mainly by the config files for early versions of Netscape Navigator. JWZ's comments in these files were the only documentation I could find for making the browser work with PC keyboards under Linux. These were short of useful information and long on rants about the supposed shortcomings of various hardware vendors. These would have been stupid and unprofessional, even if they hadn't been arrogant and poorly informed. (No Jamie, Alt and Meta are not the same thing.) And isn't his main claim to fame his contribution to the Netscape code base? Most of which was simply abandoned as unmaintainable when NS's projects got taken over by Mozilla and Sun.
Re: (Score:2, Funny)
by "work" they must mean reading slashdot all day.
Re:Coders that work? (Score:4, Insightful)
So, instead of writing a narrowly focused technical book, they wrote a narrowly focused technical book?
No offence (Score:2)
But why don't you convince your local library to buy the book? They will thank you for your recommendation.
Re:Why Donald Knuth? (Score:5, Informative)
That guy is a relic of another age, and certainly not a coder; he's purely an academic in theoretical computer science.
He's good at making algorithms, but certainly not at coding.
You're ignorant. Have you ever used TeX or METAFONT? Knuth wrote them. The CWEB compiler? Knuth again. How about the MMIX simulator and assembler for MMIX architecture that Knuth designed to go along with TAOCP? Yep, Knuth. Want some more? See:
http://www-cs-staff.stanford.edu/~uno/programs.html [stanford.edu]
Re: (Score:3, Interesting)
Interestingly, I do wonder how Knuth would be rated in these days of massive (have you seen Java recently?) APIs, agile, test-driven development ? One thing that seems in common with all these guys is that they have written code which is of the old-school low-level infrastructural variety. His algorithm code is awesome, but a little spartan on the variable naming conventions. This is coming from someone who has an autographed set of TaoCP (and attended his occasional rare seminars).
Does the book actually ha
The Well of Uncomfortable Truths (Score:5, Insightful)
LOL. From my perspective, all computer programming languages are abominations [blogspot.com]. They are ancient primitive relics of what I call the Babbage and Lovelace era. They should all be placed in the Smithsonian right next to the buggy whip and the slide rule. I live for the day when a constitutional amendment is passed to ban them all. :-D
So your solution is a concurrent language using diagrams in place of syntax?
I'm not about to tell you the COSA approach is a bad idea, and I'd hate to discourage someone who's obviously got a lot of interest in making a system that really is better... But I have my doubts about visual programming languages in general. Mainly because it bypasses the established mechanisms humans have developed for conveying complex ideas (i.e. writing) in favor of visual diagrams - you lose the capability to convey a large volume of information effectively in a reasonably small space - or at least it seems you would. At any rate I can't figure out how those node graphs work...
And your statements about reliability? In what sense can a logic circuit be "guaranteed" free of defects? Did Intel know about this method of quality assurance back when they were designing the Pentium? It seems to me that simple logic circuits can be guaranteed free of defects because the human mind can readily model the whole system and intuitively decide it is correct. When the system is complex, that is no longer true.
I donâ(TM)t want to know about how to implement loops, tree structures, search algorithms and all that other jazz. If I want my program to save an audio recording to a file, I donâ(TM)t want to learn about frequency ranges, formats, fidelity, file library interface, audio library interface and so forth. This stuff really gets in the way.
It seems as though you've just said you want someone else to solve your problems for you.
To a certain extent this is quite reasonable. If you want to save an audio recording, it's reasonable to expect someone else to have come up with a program that will make it easy for you. This is why we have "sound recorder" applications and the like.
But what if you're the first person to write such a program? Or what if, for whatever reason (i.e. licensing issues, etc.) you can't use the work that's already been done? Then it seems to me that there's no way around it: you simply must understand about audio formats and deal with them on their own terms.
Likewise, suppose you want a program that can calculate a route to drive from Baltimore to Chicago. Of course it's been done: you can go ask Google for the route... But what if you want your own program that does this? Like if you wanted to compete with Google and get in the computer-map business? Then you'd need one of those pesky algorithms to turn that big pile of data into a usable route. The problem's not practically solvable unless you approach it with the right kind of strategy, that's exactly what an algorithm is. It's not practical to expect that all the problems in the world have already been solved by whoever created your language toolkit - if it were, then I'd be out of a job.
Re: (Score:2)
You really find it that hard to program? I feel sorry for you. Good luck with your rainbows and unicorn giggles and "non-algorithmic programming". >
Re: (Score:2)
Yeah, I've heard that one about every 5 years for 20 years now. There's no escape from clearly structuring your thoughts on how to solve a problem, and thinking through all the corner cases and error conditions. Nevertheless, every 5 years or so, some genius thinks that the language is the hard part and goes off to solve that problem.
But "non algorithmic" is a good laugh. That's "not even wrong".
Re: (Score:2)
Engineers test their opinions against reality. You've made a testable prediction. Check reality in 5 years to see if there's an idiot in this thread. My own prediction: in 5 years you'll be on to some new thing that's going to replace programming, for sure this time, and will have forgotton about this one.
Re: (Score:2)
I see your points but I think you should read Parallel Computing: Why the Future is Compositional [blogspot.com]... and hierarchical... and non-algorithmic... and deterministic... etc.
And while you're at it, you might as well read How to Solve the Parallel Programming Crisis [blogspot.com]. Without multithreading, of course, since multithreading is the biggest and most hideous abomination of them all.
Parallel programming is a concept I can stand behind - I haven't done anything with it yet but I've learned a bit about Erlang and it seems like a good thing.
One of the things that bugs me about the way you apply parallel programming to your concept is that you appear to apply it to every level of the language design. Even the most trivial operations are parallel by default... That seems like a bad idea to me for any number of reasons. First off, the sequentiality of operations is useful for the programm
Re: (Score:2)
Visual programming is definitely not the answer to all problems, but it can help build simple variations on a theme. I can imaging that building simple database driven websites could be done with visual programming. Certain simulations can also done by visual programming, if you've got the right environment. Did you ever look into analog computing? That's a great example of visual programming (and totally esoteric!).
Any complex visual programming will introduce bugs. Different bugs than the ones we know, bu
Re: (Score:3, Insightful)
How would you handle loops or complicated algorithms with many conditional paths in such a language? Languages are designed to solve practical problems, not to just to look pretty.