User loginNavigation |
CritiquesWhy API Design MattersMichi Henning, Why API Design Matters, Communications of the ACM, May 2009.
This is a rather accessible look at the consequences of bad API design. Interestingly enough, the main example revolves around the inappropriate use of side effects. The last section concludes with cultural changes the author feels is necessary to improve the situation. On Understanding Data Abstraction, RevisitedOne of the themes of Barbara Liskov's Turing Award lectue ("CS History 101") was that nobody has invented a better programming concept than abstract data types. William Cook wrote a paper for OOPSLA '09 that looks at how well PLT'ers understand their own vocabulary, in particular abstract data types and concepts that on the syntactical surface blend to all seem like ADTs. The paper is On Understanding Data Abstraction, Revisited.
The Introduction goes on to say:
Ergo, if the textbooks are wrong, then your Dinner Answer to (the) Cook is wrong! The rest of the paper explains how Cook makes computer scientists sing for their supper ;-)
By Z-Bo at 2009-11-02 15:48 | Critiques | History | Theory | 76 comments | other blogs | 210793 reads
Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph JohnsonLarry O'Brien recently interviewed three of the Gang of Four about their seminal work on patterns. Larry teased the interview's readers for awhile, but he eventually asked the pressing question that most language designers ask and debate about patterns ;) Here it is:
Note: At the end of the interview, Erich says that they tried refactoring the patterns into new categories in 2005. The draft breakdown he provides (accidentally???) takes out Memento, Chain of Responsibility, Bridge, Adapter, and Observer.
UPDATE: The Gang of Four have an accompanying article for the interview that they wrote as a group. See A Look Back: Why We Wrote Design Patterns: Elements of Reusable Object-Oriented Software. By Z-Bo at 2009-10-23 23:32 | Critiques | Misc Books | OOP | 25 comments | other blogs | 25374 reads
Phosphorous, The Popular LispJoseph F. Miklojcik III, Phosphorous, The Popular Lisp.
Introduces the concept of the Gosling Tarpit, and presents a novel method for having both a broken lexical scope (needed for popularity) and maintaining one's reputation as a language designer. (via Chris Neukirchen) A Computer-Generated Proof that P=NPDoron Zeilberger announced yesterday that he has proven that P=NP.
The paper is available here and his 98th Opinion is offered as commentary. By Leon P Smith at 2009-04-02 06:54 | Critiques | Fun | Theory | 12 comments | other blogs | 24386 reads
Scaling Type InferenceCoding Horror is a popular programming blog. A recent post concerns type inference in C#:
I think this post is interesting for a number of reasons, and the link to LtU is just the start. Now it appears the author is confused as to what “implicitly typed local variables” are, confusing local type inference (which they are) with dynamic typing (which they are not). Many commenters also suffer from this confusion. Other commenters rightly note that the inferred type is not always the type the programmers wants (particularly important in the presence of sub-typing). Furthermore, type inference harms readability. I'm reminded of recent discussion on the PLT Scheme mailing list on the merits of local and global type inference. The consensus there seems to be that while local type inference is useful, global inference is not. So, wise people, what is the future of type inference? How useful is it really, especially when we look at type systems that go beyond what H-M can handle? How are we going to get working programmers to use it, and understand it? Do we need better tool support? Do we have any hope of better education for the average programmer? program verification: the very ideaJames H. Fetzer's Program Verification: The Very Idea (1988) is one of the two most frequently cited position papers on the subject of program verification. The other one is Social Processes and Proofs by De Millo, Lipton, and Perlis (1979), previously discussed on LtU. Fetzer's paper generated a lot of heated discussion, both in the subsequent issues of CACM and on Usenet. It's not clear to me what all the fuss is about. Fetzer's main thesis seems pretty uncontroversial: The notion of program verification appears to trade upon an equivocation. Algorithms, as logical structures, are appropriate subjects for deductive verification. Programs, as causal models of those structures, are not. The success of program verification as a generally applicable and completely reliable method for guaranteeing program performance is not even a theoretical possibility. April 1st special: The War of the WorldsConrad Barski has posted a sneak peak from his upcoming Lisp textbook/comic: Land of Lisp. The first slides may seem unrelated, but boy does the message sting when you reach the ending... FPers will be quick to note, of course, that this being April Fools' Day the whole thing is a joke and we can all go back to Haskell... By Ehud Lamm at 2008-04-02 00:34 | Critiques | Fun | Functional | 32 comments | other blogs | 36264 reads
Social Processes and Proofs of Theorems and Programs
A paper that was mentioned in the discussion forum,
by Richard A. De Millo, Richard J. Lipton, Alan J. Perlis, 1979.
It is argued that formal verifications of programs, no matter how obtained, will not play the same key role in the development of computer science and software engineering as proofs do in mathematics. Furthermore, the absence of continuity, the inevitability of change, and the complexity of specification of significantly many real progarms make the formal verification process difficult to justify and manage. It is felt that ease of formal verification should not dominate program language deisgn. Good Ideas, Through the Looking GlassNiklaus Wirth. Good Ideas, Through the Looking Glass, IEEE Computer, Jan. 2006, pp. 56-68.
A personal look at some ideas, mostly from the field of programming languages. Some of Wirth's objections are amusing, some infuriating - and some I agree with...
LtU readers will obviously go directly to sections 4 (Programming Language Features) and 6 (Programming Paradigms). Here are a few choice quotes:
LtU readers are also going to "enjoy" what Wirth has to say about functional programming... (Thanks Tristram) |
Browse archives
Active forum topics |
Recent comments
22 weeks 6 days ago
22 weeks 6 days ago
22 weeks 6 days ago
45 weeks 17 hours ago
49 weeks 2 days ago
50 weeks 6 days ago
50 weeks 6 days ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago