"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Tuesday, August 02, 2005

In a Nutshell

As relayed by Blaine Buxton...

"Finally, the days where a novice programmer can know all of a language are gone, at least for the languages in widespread industrial use. Few people know "all of C" or "all of Java" either and none of those are novices. It follows that nobody should have to apologize for the fact that novices do not know all of C++. What you must do - in any language - is to pick a subset, get working writing code, and gradually learn more of the language, its libraries, and its tools."
-Bjarne Stroustrup from "Why is C++ So Big?"

"If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual."
-Dan Ingalls from Design Principles Behind Smalltalk


Florian said...

Perhaps the truth is somewhere between, out there.

Anonymous said...

I wonder if we can apply the Smalltalk principle to some other languages out there. A scripting language? Python, or Ruby perhaps? LISP? A brand new language like Factor? Or is Smalltalk an unique gem in this respect?

-- Giulio Piancastelli

Anonymous said...

It is very possible to hold all of R5RS Scheme in your head. This is because there is not much of it. It is totally possible to hold most of a real world Scheme and Common Lisp in your head and I've found that it's reasonably easy to use the in-system tools to figure out something that you're missing. Because I don't program in CL as much as I used to, I sometimes end up hitting the Hyperspec. This is not dissimilar to the state I am with Smalltalk, where I know most of the language and how to figure the libraries out and what some of them do.

It is possible, in fact quite easy to hold Python-the-language in your head, but Python-the-libraries grow by leaps and bounds every release and I have no idea what's in there now.

Patrick Logan said...

I would include Scheme, Common Lisp, Python, etc. But I am sure there are a number of areas of Common Lisp that I have forgotten or never knew.

I am fairly sure there are people who know nearly all of C++ and appreciate it as much as I appreciate, say, Common Lisp.

As florian said, where the truth is.

The interesting bit is the philosophy of expectations, the contrast between the two authors.

Anonymous said...

What does "all of" mean? Syntax? Libraries? Which version of Smalltalk? I doubt few people, if any know "all of" Squeak.

Isaac Gouy said...

As omitted by Blaine Buxton

Preceding those comments, in the same section, Stroustrup writes:

The programming world is far more complex today than it was 30 years ago, and modern programming languages reflect that.

The Dan Ingalls quote is 25 years old.

Patrick Logan said...

Isaac -- I think Dan (like Alan Kay) had amazing insight 25 years ago and his insight remains far ahead of most of the industry.

Of course these quotes are simply food for thought or fodder for... I guess I am getting the responses I had hoped for.

Isaac Gouy said...

Patrick -- tendentious selective quotations mostly tell use about the person who snipped the quote.

Isaac Gouy said...

How about some more recent comments:

"- The level of expression in today's programming is so low (really back around 1965 for most of it), and very few programmers today program even at the level of what was possible in LISP and/or Smalltalk in the 1970's.

- Smalltalk has not changed appreciably since it was released as Smalltalk-80 in the early 1980's, even though it contains its own metasystem and is thus very easy to improve.

So I would like to encourage the readers of this excellent book to not think of Smalltalk as a bunch of features from the vendor gods that must be adhered to, but as a system that is capable of great extension in all dimensions that will reward those who come up with better ways to program. At PARC we changed Smalltalk every few weeks, and in a major way every two years. Though it has hardly changed since then, please do and put those big changes out on the Internet for all of us to learn from and enjoy!"

Alan Kay, Forward, Squeak: Learn Programming with Robots

Patrick Logan said...

Re: More recent Kay comments.

I seriously doubt Kay is advocating for more complexity. I know he's not advocating for C++.

Re: tendentious selective quotes.

I don't doubt this at all. But at the same time don't assume any pair of tendentious selective quotes on my blog incorporate everything I ever thought or could think about the given topic.

Peace out.

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.