Over the course of centuries, Zen has branched out into different schools With individual methods, But the purpose is still the same- To point directly to the human mind.Yuan wu (1063-1135)
"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.
Nelson captures the absurdity...
I give the Bush campaign credit for their evil powers. There's a debate about the war record of Bush and Kerry. Whose service are we questioning? Are we talking about the Texas Air National Guardsman who flitted off to Alabama where no one can tell if he he really showed up for duty and he even lost his pilot qualification before leaving early to go back to school? No, we're debating the record of the the man who went to Vietnam and was awarded many medals for his leadership and service.To win an election, the first thing you have to do is control the terms of the debate.
Let go of all your previous imaginings, opinions, interpretations, worldly knowledge, intellectualism, egotism, and competitiveness; become like a dead tree, like cold ashes. When you reach the point where feelings are ended, views are gone, and your mind is clean and naked, you open up to Zen realization.After that it is also necessary to develop consistency, keeping the mind pure and free from adulteration at all times. If there is the slightest fluctuation, there is no hope of transcending the world. Cut through resolutely, and then your state will be peaceful. When you cannot be included in any stage, whether of sages or of ordinary people, then you are like a bird freed from its cage.
Yuan wu (1063-1135)
Do you want to know what software will be like in ten years? In twenty years? Learn Smalltalk.
Tuple-spaces represent an extreme in loose coupling.
A tuple space is an extremely flexible set of shared data structures (semi-structures?) with a simple pattern-based API for reading and writing that data.
The referenced DDJ article is about tuple spaces and grid computing, which is a match made in heaven.
I pointed out that the single most important productivity tool in modern languages is intellisense... without it, he can't hope to pull the language into the '90s.Intellisense?
What made me most productive in the 1980's was Lisp and Smalltalk. What made me most productive in the 1990's was Smalltalk. After the Java "revolution" (which made me less productive) what made me somewhat productive was the Internet search engine (Hotbot, then Google, IIRC).
How so? Javadocs. Looking up API information was faster on the net than on my hard drive once the spiders had indexed so many Javadocs.
I've used Intellisense-like features in Lisp environments since 1981. They *are* handy. I don't think I ever used anything like it in a Smalltalk tool. For one thing, Smalltalk uses keyword messages, which are in themselves descriptive. I think this reduces the need for Intellisense.
Frankly though the other aspects of Lisp and Smalltalk environments were more productive than Intellisense per se in a Java-like language. Primarily, the languages themselve are just simpler *and* more expressive. Secondarily, the source to the systems is present at the click of the mouse. (Or Meta-dot key stroke.) Thirdly, all the other sorts of browsers, workspaces, inspectors, debuggers.
Complexity: The Avalon API has a very large surface area. To get an idea, the Button class is number 11 on the inheritance chain with ButtonBase, ContentControl, Control, FrameworkElement, UIElement, RetainedVisual, Visual, DependencyObject, UIContextObject and Object as its base class.My prediction is that Avalon v1 will be a throw-away: it is not really the foundation on which you will build applications: V2 will likely not be backwards compatible, they will have to re-architect bits of it: which means that people will end up with two frameworks running side-by-side: Avalon V1 and Avalon V2.
I do not think I could have solved a problem of this magnitude, am sure the complexity is huge and the Microsoft folks are doing their best, but maybe a change in the way that features are interlocked and how those are delivered to users must be rethought.
Shoehorn := Longhorn - WinFS
I maintain, with more evidence, that WinFS is a bad idea.
The intention is good. The choice of delivery vehicle (i.e. a "file system") is not so good. Once again, the problem seems to call for a simplification of dynamic, semi-structured, shared databases rather than a shoehorning of these concepts into a future Longhorn file system.
The advantages of the database approach has engineering merit as well as marketing.
Perhaps there was marketing merit in moving O/R mapping and business domain frameworks into WinFS. I didn't see it, and I certainly don't see the engineering merit.
Will we see ObjectSpaces and MBF pulled back out into cross-MS-platform capabilities? Avalon has joined Indigo in this regard. Why not the rest?
MSFT should make WinFS a across-MS-platform-or-wider improvement on *databases* rather than file systems, and all the Longhorn components make engineering sense, probably marketing sense.
And MSFT should make this an opportunity (along with IronPython) to continue down the path of a post-modern approach to systems development.
I taught Extreme Programming for the first time in about four years. A couple weeks ago, the class was made up mostly of an intact team, about 15 people in all. The interaction was lively.
Last week there were 32 people mainly from three teams. That's the largest single class I've had. For one reason or another (many of them were embedded systems developers, for example) the first day the whole class participation had some skepticism and generally was just quiet. (The small group break-out discussions were lively.)
I went home concerned that first day. Fortunately the remaining days were primarily full of activities. The whole class discussions were more typically lively in spite of the class size.
And now here's the point of this post. I found an interesting on-line tool, Electronic XPlorations, which turned out to be a great device on the last day of the second class. I wanted the class to talk to each other in review. This tool is a simple Java applet for four teams playing "problem" cards and applying "solution cards" and "value cards" to collect points. (I hoped, intended, and realized the goal of making the awarding of points fun rather than competitive.)
The great aspect of the game is that for a team to win points, they must explain the play they're making to the other teams. The others may challenge the explanation, and eventually accept or deny it.
Martin Fowler discusses Courtesy Implementations in Java-like languages. (Oddly he uses Ruby, which is capable of the solution presented in Smalltalk below.) These are more easily done in languages that trust you to extend the "system" classes. Moreover...
What if the Box can contain other kinds of objects that don't inherit from Node?
Object>>elephantCount
"This is only installed in your boxed elephant application."
^0
Elephant>>elephantCount
^1
Box>>elephantCount
^children inject: 0 into: [ :count :child | count + child elephantCount]
A good deal more information on pycore, the Python implemented in VisualWorks Smalltalk. The good news is based on a fairly simple implementation, not on the performance-oriented ideas still in design. So is the race on for comparing the performance of pycore and IronPython? IronPython is more complete, but performance-wise, pycore is showing more potential at this point.
Quoting from the pycore item...
The interpreter is currently complete, except for 'exec'; the simple translator is substantially behind; and the optimized translator is only at the design stage. Nevertheless, some Python programs run faster even with the pycore simple translator than with CPython, for example:
And Bill is an enzyme, while I am water...
You are water. You're not really organic; you're
neither acidic nor basic, yet you're an acid
and a base at the same time. You're strong
willed and opinionated, but relaxed and ready
to flow. So while you often seem worthless,
without you, everything would just not work.
People should definitely drink more of you
every day.
Which Biological Molecule Are You?
brought to you by Quizilla
Blaine is 34% hippie, but with pride...
In an interview with the Associated Press, McCain called the ad "dishonest and dishonorable." Asked if the White House was behind it, McCain said: "I hope not, but I don't know. But I think the Bush campaign should specifically condemn the ad."
White House spokesman Scott McClellan declined to do so and instead criticized the financing of the ad, saying the president "deplores all the unregulated soft-money activity." McClellan said the Bush campaign had nothing to do with the ad or the group behind it. "We have not and we will not question Kerry's service in Vietnam," he said.
Jim Rassmann, an Army veteran who was saved by Kerry, said there were only six crewmates who served with Kerry on his boat. Five support his candidacy and one is deceased.
Another example of languages with special cases causing conflicts.
Another reason "constructors" should just be a regular message sent to a regular object. You already understand the simple, regular rules...
In the Smalltalk language, everything is an object. This includes not only numbers and all data structures, but even classes, methods, pieces of code within a method (blocks or closures), stack frames (contexts), etc. Even if and while structures are implemented as methods sent to particular objects.
The Eclipse IDE makes language choice irrelevant?
I'm dubious. I've not used Eclipse in depth, or in a year or so, but I think this may be overstated unless Eclipse is using Java as a target notation for a more expressive source language!
I am not exactly sure what Jon is asking for in his Showdown at the VM Corral.
What I think we need is a way to connect lightweight processes from multiple runtimes and distributed runtimes as easily (and simultaneously as *robustly*) as lightweight processes can be connected in Erlang.
We need to think less about the VM (and even less than that about the OS) and more about (sometimes distributed) interprocess communication. But we need to do this without the heavy burden of the WS-* ice field.
Bill lists the platforms Python runs on.
But Python is also at least embryonic on the PLT Scheme platform and Peter Deutsch, ACM Fellow and one of the best VM engineers on the planet, is leading the pycore effort to get Python running on VisualWorks Smalltalk and perhaps Squeak.
Apparently pycore has a small number of tests running significantly faster than CPython.