I think we need better programming language support for components, rather than having separate composition languages, but that's just me.
Still, keep in mind that the best tools we have to specify behaviour are inside expressive programming languages. Specifically, the best tool for the job is a good type system, that allows you to specify important logical properties. Indeed, isn't this the reason why functional programming matters?
Posted to Software-Eng by Ehud Lamm on 11/20/02; 12:42:23 PM
programming language support for components Having recently read Towards a New Model of Abstraction in Software Engineering, Gregor Kiczales, I'm struck by how Smalltalk white-box reuse evades the "basic discrepancy between our existing view of abstraction and the reality of day-to-day programming." How do other programming languages provide for both black-box reuse and open implementation?
Also, to me that paper by John Hughes suggests that what matters is higher order functions and lazy evaluation, not fancy type systems :-)
John Hughes suggests that what matters is higher order functions and lazy evaluation
Sure. But if we want safety and h.o.f, we need fancy type systems.
The open-closed principle and careful use of inheritance is supposed to help. In my experience (and most papers I read agree) inheritance all to often causes more trouble than it solves.
Although I expressed myself badly with black-box / white-box, the Evolving Frameworks pattern was a nice refresher. (But visual builders can become part of the problem - if they hinder automation.)
Maybe I just need to catch-up with ideas about static typing? Moving from passive type-checking to active manipulation of types as data at compile time. In-other-words, "a parametric type system offers a limited functional programming language for manipulating static types at compile time" Kris De Volder.
There's more, of course, I'm still thinking in terms of what an abstraction provides without thinking about what it requires - Three Concepts of System Architecture.
I recall publishing this observation in 2001