Wednesday, December 19, 2007

Anders Hejlsberg, Herb Sutter, Erik Meijer, Brian Beckman: Software Composability and the Future of Languages

For sleepy programmers to refresh their minds: An interesting discussion about future of programming languages on the outstanding Channel 9 site.

Thursday, December 13, 2007

ASP.NET 3.5 Extensions -> ASP.NET MVC

I always thought and continue to think that ASP.NET model which merges together browser-based UI and server-based business logic in one class, trying to present distributed web page / Web server application as if it would be a desktop application is completely wrong. Traditional ASP / PHP, etc. are much better in this regard.

Also, for a long time I think that event-based model is very hard to manage. I remember a big struggle against MS Access front-end in a big multi-user Access / SQL Server protective gear distribution system we developed in Centech Group, Inc. I worked as a contractor there and developed major part of that application. As usual, it wasn't programmer's decision of what tools to use. Personally, I would use VB 6 as a front-end, not MS Access.
In VB applications I never used bound controls with their hard-to-predict events. It was much easier to manually write code to connect to a database, get data, and then save it back. Events are dangerous: you are never sure what fires first, what triggers another event when you respond to a first one, etc. But, as I said, it was quite easy to turn them off in VB front-end and to use similar approach in a classic ASP. In MS Access, however, you cannot turn off event handlers. A significant portion of development time was spent on workarounds eliminating harmful chains of events.

And now they are back... ASP.NET, SharePoint... old problems.

Apparently, people at Microsoft understand it as well. Otherwise, why they're now introducing in ASP.NET a long-known and proven MVC design pattern? Sure, they would present it as a big Microsoft's achievement, despite the fact other parties use it for a while...

Thursday, December 06, 2007

Upper Volta?

Noun 1. Upper Volta - a desperately poor landlocked country in western Africa; was formerly Upper Volta under French rule but gained independence in 1960

West German chancellor Helmut Schmidt liked to describe the Soviet Union of the 1980s as "Upper Volta with missiles", according to David Halberstam in an article published in Vanity Fair magazine dated August 2007. The phrase "Upper Volta with rockets" was also used to describe the Soviet Union (in quotes, but with no attribution) in a survey on the Soviet economy in The Economist on April 9, 1988. According to Perry Anderson, London Review of Books, Vol 29, No.2, 25 January 2007, the phrase was popular among foreign diplomats in the 1970s. He suggests the modern Russia might be "Saudi Arabia with Rockets".

December 5th, 2007
Microsoft is making available a first, publicly available test build of a developer toolset that allows programmers to write Web applications using existing .Net-based tools and languages.

Microsoft delivers a test build of its 'Volta' cloud-programming toolsetThe toolset — code-named "Volta" (and previously code-named "Tesla") — is the brainchild of Erik Meijer, a SQL Server architect whose new title is principal architect of Volta. Meijer has been talking up for the past couple of years the concept of "democratizing the cloud" via the programing of multi-tier, distributed applications...

You architect and build your application as a .NET client application, assigning the portions of the application that run on the server tier and client tier late in the development process. You can target either web browsers or the CLR as clients and Volta handles the complexities of tier-splitting. The compiler creates cross-browser JavaScript for the client tier, web services for the server tier, and all communication, serialization, synchronization, security, and other boilerplate code to tie the tiers together. In effect, Volta offers a best-effort experience in multiple environments without requiring tailoring of the application.