| Potential Differences | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
About dynamic languages, Agile methodologies, OS X, whatever piques my interest!
Greg Vaughn
Subscribe
|
Wed, 27 Oct 2004 I didn’t take extensive notes during the talk, but here’s a transcription and elaboration of what I did take while it’s fresh on my mind. The title was First Courses in Computing Should be Child’s Play. Some of the notes I took down weren’t necessarily major points of his, but something that personally struck me. He explored the dichotomy of the terms “Computer Science” and “Software Engineering” as well as the times the terms were invented. He discussed the relative youth of the computing field compared to other endeavors. Compared the builidng of the Egyptian pyramids, to Medieval cathedrals, to the Empire State Building. He also brought up the humorous sidebar of “physics envy”: topics that want to be taken seriously so they put ‘science’ in their name (eg Political Science, Library Science) — even though none of physics, chemistry, and biology have ‘science’ in their names. Choice quote: “Our field is the next great 500 year goal after the printing press.” He discussed personality types. I’m not sure where his terminology came from, but I mentally mapped it to Myers-Briggs style, since that’s what I’m familiar with. It takes about two-thirds of the “normal people” (sensing extroverts) to be on the cusp of an idea for it to be truly accepted. It explains everything from wearing baseball caps backwards to bare midriffs. He demonstrated this sort of meme propogation with a simulation comparable to forest fires. There’s about 30 years for good ideas to be accepted by the mainstream — gave unix as an example. He hopes the good Xerox Parc technologies will soon be widespread since their 30 years are almost up. He did say that MS Windows is a terrible caricature of Parc technologies. He compared the Windows UI to a nuclear power plant control panel. That wasn’t the only disparaging remark about MS, but the most blatant. Other digs were against C++ and Java. He see’s a major problem in CS being our delight in complexity, and most is unnecessary. We need more of a joy of simplicity. A first college English course is not aimed at people who will become professional writers. Why is CS different? He went into his inspiration as a grad student when learning about Ivan Sutherland’s Sketchpad application. He showed a video of Sketchpad, and discussed the hardware it ran on and how advanced it was for it’s time. Not only could Sketchpad do engineering drawings, but with its constraints system it could even simulate bridges, surpassing Ivan’s expectations. He named Ivan Sutherland the Isaac Newton of CS — first graphic UI, first object oriented system, and a two handed UI (as they should all be). One of Ivan Sutherland’s points in his dissertation was that he hopes the system is surpassed in the future. Around the same time he learned of Simula. From these influences, and his background in molecular biology, the key insight for him was that messages are the central abstraction of OOP (which he pronounced like ‘oops’ minus the ’s’). From there he discussed a point made by one of his advisors (long name I couldn’t write quick enough) about learning styles. If you look at a two dimensional graph with Abilities along the X and Challenges along the Y, you find a state of “Flow” along the diagonal. We enjoy learning when the challenges we face are close to our abilities to overcome. Above and left of this diagonal is Anxiety. Below and to the right is Boredom. Safety features such as undo in UIs expand that flow stream into the anxiety area. Attention features such as an easy to use and engaging UI expand the flow stream down into the boredom area. No surprise, but his entire presentation was running out of a Squeak image. At this point he went into more of a demo of Squeak, focusing on how to engage students in that flow stream with it. He drew a car, animated it with scripts, then tied the script to a drawn steering wheel. He mentioned squeakland.org for more information on Squeak in education. From that he segued into a demo of Croquet. In there he built a bridge, then relaxed the spring constant and added wind gusts to simulate the Tacoma Narrows bridge. That then morphed into a Canadian flag for the climax of the talk. The bridge simulation tying back to Sketchpad was not lost on me, but was not a point he explicitly made. His final point was our responsibility to get kids interested in computing to further the development of our field. It ended with a standing ovation — a great talk, well orchestrated, expertly delivered. I’m privileged to have gotten to see it in person. It definitely got me thinking about Squeak as a way to introduce my 4 year old homeschooled daughter to computing. potential differences [/development] permalink Tue, 26 Oct 2004No, you didn’t miss the day 1 and 2 entries. I didn’t write any. Rather than trying to go through each particular session I attend, I’d rather give a general overview at nearly the halfway point. It’s subject to revision by the end of the conference though. It’s been my observation that OOPSLA is a great place to come to get a feel for where software development is going on a 5+ year horizon. I recall back at the 2000 OOPSLA in Minneapolis getting a hallway demo of AspectJ from Gregor Kiczales after a BoF. This year, AOP is much more prevalent and has progressed well beyond the typical logging example. I attended a tutorial by Ron Bodkin and Nick Lesiecki that focused on real enterprise applicability of Aspects. They had examples of using it to transition a system from EJB Entity Beans to Hibernate. I was intrigued by an example of adding JMX management to a system via Aspects. I do believe AOP is in the mainstream’s future. Another topic I’m seeing in various places, tutorials, practitioner reports, etc., is an analysis of what Architecture really is. One tongue in cheek definition given by Douglas Schmidt at a tutorial about the Forgotten Craft of Software Architecture is that architects are those people whose development skills are too oudated to still be developers, but don’t look good enough in suits to be managers. I’m following the thought that architects act as a bit of an O/R mapping layer. Their main job is to handle the impedence mismatch between customers and developers. They work at the highest layer of abstraction, and delegate much of the intra-component design to experienced developers. That brings up another point — I’ve heard the best definition of the difference between a component and an object here. A component can have more than one interface, while an object has only one. I like that. More later. Alan Kay’s Turing lecture is this evening. There’s also a BoF about Michael Feather’s Working Effectively with Legacy Code book that I plan to attend. Then there’s also a “party” celebrating the 10th anniversary of the GoF Design Patterns book. potential differences [/development] permalink |
|||||||||||||||||||||||||||||||||||||||||||||||||