21st Century Smalltalk

April 30, 2007

MIX07 Silverlight Announcements

Filed under: .Net Architecture, Apollo, Internet Evolution, Vista Smalltalk — pfisk @ 9:02 pm

There were some exciting announcements today at MIX07.

  • Silverlight 1.1 supports the CLR (Common Language Runtime)
  • open source Dynamic Language Runtime (DLR)
  • new language IronRuby
  • Silverlight streaming deployment service

Congratulations to Microsoft on taking some bold initiatives - I sincerely hope that this marks the beginning of a new and more exciting era of online applications. And the inclusion of “cool” languages like Ruby will likely attract a host of new developers.

For my work, two things are of importance:

  • the release of a CTP of the Silverlight CLR will finally allow me to examine its capabilities and limitations, so that I can proceed with porting Vista Smalltalk to Silverlight
  • the DLR should allow me to build a much higher performance version of Vista Smalltalk

Over the next several weeks, I will be preparing a new release of Vst/.Net to integrate with the DLR and be better synchronized with the Flash version (Vst/Flash). Hopefully, I can reach a point where scripts can be run with minimal modifications across Flash/Apollo/Silverlight/Vista.

I have tried to base my architecture on sound design principles originating in Lisp/Smalltalk and I expect that it will easily adapt to any emerging requirements in the RIA space. Some key characteristics are that my languages are totally dynamic with no dependencies on external tools (Visual Studio, FlexBuilder, etc). This should enable them to be used in embedded application scripting roles.

In any case, let the new age begin. Maybe Microsoft isn’t quite so dead after all.

Rich Network Applications – 1982

Filed under: General, Internet Evolution — pfisk @ 6:27 pm

There has recently been a lot of excitement about “Rich Internet Applications” and all of the changes that they are likely to bring. However, long before the Internet was widely used, there were other large scale networks that had similar client/server architectures.

In 1982, I was working for a financial services company in downtown Toronto that had branch offices across Canada and whose lines of business included insurance brokering, payroll services, pension administration and management consulting. We used an IBM mainframe connected via an SNA network to terminals and RJE workstations  in each of the offices.

In the corporate and larger regional offices, we also had minicomputers which were used mostly for entering sales and accounting data, and then sending validated batches of input to the central machine. At the time, the IBM PC had just been introduced but was only available with floppy disks – the minicomputers would normally have 4-6 operators on a shared machine.

Technology has advanced considerably in the last 25 years with the biggest effect being the enormous difference in cost between then and now – processing power, memory, disk storage and communications.

However, for some things, there has been surprisingly little change.

For example, the way we fill out HTML forms and then send the content to a central server for processing. This is almost exactly the same way that CICS processed data from terminals in the 1980’s. In those days, it was necessary since a computer terminal typically only had about 4kb of memory (just enough for the data) and couldn’t run programs. Today, we do the same thing on PC’s with hundreds of megabytes of memory and fast processors. Of course, AJAX and RIA’s are slowly beginning to change that.

Another similarity is the debate over central/distributed for programs/data. Regional managers used to tell me that they “wanted control over their data”. My answer was that they would have to be responsible for backups, operator training, software installation, versioning, and recovery procedures. And without exception, they decided it was easier to have the central office handle it. Today, some people “don’t trust Google (or whoever)” with their data – and then they lose their laptop at the airport with all of their company’s data. Likewise, surprisingly few private PC’s have current versions of system patches, browsers, applications, or anti-virus tools – most people don’t enjoy system administration.

Finally, languages like C# are starting to be used in both server-side and client-side (XBAP) roles. In 1982, I was deploying a subset of mainframe COBOL over the network to three different models of minicomputer with very few problems; and in fact, one of the language vendors is still doing a thriving business. Downloading runtimes to client machines has been around for quite a while.

Making applications that have both centralized and distributed components can be difficult to get right. There are no simple, universal solutions. 

The emergence of the “rich client” architecture is an exciting development in Internet evolution. But, exploiting its potential will require changes to the whole application architecture, including the server.

April 3, 2007

Croquet – A Vision of the Future

Filed under: Animation, Internet Evolution — pfisk @ 5:57 pm
croquet croquet
croquet croquet

Above are images from the The Croquet Consortium website.

Croquet is a powerful open source software development environment for the creation and large-scale distributed deployment of multi-user virtual 3D applications and metaverses that are (1) persistent (2) deeply collaborative, (3) interconnected and (4) interoperable. The Croquet architecture supports synchronous communication, collaboration, resource sharing and computation among large numbers of users on multiple platforms and multiple devices.

The Croquet Project is based upon Squeak and was started by (surprise!) Alan Kay, who also invented the Smalltalk language in the 1970’s.

I think that Croquet (like Smalltalk did before it) is showing us the future of human-computer interaction – but, I don’t think that hundreds of millions of people are going to install Squeak on their computers.

What will be available to a mass audience are Flash and/or WPF or WPF/e.

All three of these technologies have superb 3D capabilities – in fact, better than Croquet.

Of course, sessions will have to be connected – maybe by JSON encoded packages transmitted over a P2P network like Jabber.

Finally, you need scripting support that can describe 3-dimensional structures, similar to AutoLisp used in AutoCAD, and you need to send messages to objects – just like Smalltalk does.

Engineering is an art – it is the process of building what you want with the resources that are available.

Vista Smalltalk is an attempt to create an environment like Croquet using only widely deployed software components.

March 2, 2007

Google, Limbo, Inferno and Plan 9

Filed under: General, Internet Evolution — pfisk @ 5:23 pm

Let’s start with a definition of these terms:

And what ties all of these things together?

Well, to start with, Google is hosting a project called “inferno-os” to get developers involved with the the Inferno operating system.

Inferno® is a distributed operating system, originally developed at Bell Labs, but now developed and maintained by Vita Nuova®. Applications written in Inferno’s concurrent programming language, Limbo, are compiled to its portable virtual machine code (Dis), to run anywhere on a network in the portable environment that Inferno provides. Unusually, that environment looks and acts like a complete operating system.

The last sentence is interesting since Larry Page and Sergey Brin founded Google at Stanford University where another company, Sun Microsystems, was founded almost two decades earlier. Sun’s company name is derived from the initials for “Stanford University Network” and its motto is “The Network Is The Computer” -  I assume that both Larry and Sergey learned their computer skills in this highly “network-centric” culture at Stanford.

It is not unusual for Google to fund projects started by a bunch of hackers – except that in this case the original “hackers” on this project were Dennis Ritchie, who invented the C language, and Ken Thompson, who invented Unix (along with Ritchie). And since “Plan 9″ has been ongoing at Bell Labs since 1992, perhaps the code base is now stable enough to be deployed, which would justify the rumors of  “former Plan 9 engineers being on staff at Google”.

Google may be developing a GoogleOS (together with Inferno?) as part of their next business plan, if (or when) their current business model starts to falter. They have plenty of smart people, lots of money, and own one of the most powerful computing infrastrures on the planet - they have everything required to make network computing happen in a very big way.

The people at Microsoft may wake up one morning to find large portions of the Internet running as one huge (and MS unfriendly) computer – almost like it had been taken over by space aliens.

February 14, 2007

Yahoo Pipes

Filed under: Internet Evolution — pfisk @ 4:11 pm

Yahoo recently released a feed aggregator service called “Pipes”:

Pipes is a hosted service that lets you remix feeds and create new data mashups in a visual programming environment. The name of the service pays tribute to Unix pipes, which let programmers do astonishingly clever things by making it easy to chain simple utilities together on the command line.

There is a rapidly-growing body of well-structured data available online in the form of XML feeds. These feeds range from simple lists of blog entries and news stories to more structured, machine-generated data sources like the Yahoo! Maps Traffic RSS feed. Because of the dearth of tools for manipulating these data sources in meaningful ways, their use has so far largely been limited to feed readers.

More than a decade ago, I read a book on MIT’s “Media Lab”in which one of the predictions was that someday we would have “personalized newspapers” that would be tailored to our interests. In many respects, this is exactly the direction in which the Internet is evolving and “Pipes” is simply the latest manifestation of the trend.

As processing power, memory, storage and bandwidth have fallen in price, many ideas that were simply “interesting” in the past have now become practical realities. This week, Intel previewed its “Era of Tera” next generation architecture, and I have no idea what kind of applications that it will make possible – probably, it will be obvious in hindsight when they appear.

The Internet is still evolving, seemingly faster than ever.

January 31, 2007

Microsoft’s AJAX Library

Filed under: Internet Evolution — pfisk @ 3:39 pm

Microsoft has released version 1.0 of their AJAX JavaScript library – you can see examples of how it works here.

The downloads are free and source code is included. Although it is mainly designed to work with Microsoft’s ASP.net, there is also a version available for PHP.

It’s interesting how agressively Microsoft is moving into this space – they know that the future belongs to the Web rather than the desktop.

Java and Rich Internet Applications

Filed under: Internet Evolution — pfisk @ 3:18 pm

There is an interesting post this morning by Bruce Eckel on Java and RIA’s.

I liked these comments:

The Java backlash has been building up steam, and we’re starting to see some fundamental shifts because of it.

… what anyone who has tried to build real applications knows: the web is a mess. The building blocks (HTML, CSS and JavaScript) just weren’t intended to do what they’re doing now and while we’ve gotten a lot of mileage out of them, it’s quickly becoming more and more difficult for developers of those technologies to keep pace. Not impossible, but extremely difficult.

So here’s my question. Allow for a moment the possibility that, after 10 years, Java is not going to take over the world of RIAs. Further allow that Ajax is just “how JavaScript was supposed to work in the first place,” but that the limitations imposed by browsers, HTML and CSS committees seem unlikely to let it expand beyond its current bounds. What are we going to use to build RIAs?

His answer is Flash. Of course, anyone who reads this blog knows that I have a different answer.

January 24, 2007

Some Thoughts on JavaScript

Filed under: Internet Evolution — pfisk @ 10:23 pm

JavaScript was created at Netscape under the name ”LiveScript” and was initially intended to provide ”live” communication between the Web browser and plug-in applications such as Java applets.

It’s rise in popluarity was probably due to several factors:
– easier to learn than Java
– corporate distrust of Java applets
– because JavaScript is physically located within a Web page, firewalls can’t screen it out
– a JavaScript interpreter was built into all browsers
– it became standardized as ECMA 262

Now, with the increasing use of “Ajax” style programming, many see JavaScript as the universal solution for “Rich Internet Applications”. But, since JavaScript was never designed as a fully capable application language, two solution paths are being pursued:
– build a large set of class libraries or “framework” to hide the weaknesses
– modify the language

There are dozens of JavaScript frameworks currently available, the latest being Microsoft’s Atlas Framework. And new versions of the language are appearing such as Adobe’s ActionScript which is based on the ECMAScript 4 Proposal (almost identical to the JavaScript 2.0 Proposal).

JavaScript became popular because it was simple and universal. However, it now seems to be evolving into a family of languages which are increasingly complex.

Which is why I have based Vista Smalltalk on two very powerful languages, Lisp and Smalltalk, that have been stable for decades.

December 11, 2006

A New Day is Dawning

Filed under: Internet Evolution — pfisk @ 2:43 pm

Here is a recent blog post about the new Microsoft technologies.

I feel that a fundamental shift is underway in the world of Information Technology and it is being lead by a company known better for their theft of existing technologies then their innovation and invention of new ones: Microsoft. For almost 20 years now, software interfaces have been built around the same principles and concepts, namely form driven layout. That is to say, our user interfaces, with a few exceptions (i.e. the web and Flash), don’t look all that different from those applications released with the first commercially available Graphic User Interfaces, the Mac and Windows 1.0 and the Xerox Alto built in 1975, 10 years before those systems where available.

That pretty much summarizes what I have been saying for a while. Near the end of the post, he mentions “C# 3.0, LINQ, and DSL Tools”. I have briefly talked about C# 3.0 in previous blogs. “LINQ” stands for “Language Integrated Query” and implements query logic over in-memory collections of objects. “DSL Tools” refers to research tools for creating “Domain Specific Languages”.

Microsoft consistently spends 7-8 billion dollars a year on research, but delays in the Vista project have caused a lot of other technology releases to be rescheduled. Now that Vista is back on track, I expect that there will be a stream of new technology from Microsoft over the next couple years.

December 10, 2006

Adobe Joins the Social Computing Revolution

Filed under: Internet Evolution — pfisk @ 3:26 am

Here is a link to a recent article about the new Adobe 8 reader.

Over the past few years, the Web has grown from a one-to-many medium, in which authors essentially published documents for the benefit of an unseen audience, into a tool for advanced one-to-one and group communication. Technologies such as social networking, media sharing, voice calling, and video conferencing have transformed the Internet into a locus for all things social, as exemplified by sites like MySpace, Flickr, Skype, Meetup, Upcoming.org, YouTube, and Dodgeball (see “Social Machines,” August 2005).

I’ve spent the past few days testing Acrobat 8 and an associated Web service, Acrobat Connect. I’m pleasantly surprised by the number of new features Adobe has provided to help people work together on documents over the Internet–even if those documents aren’t PDFs. When combined, Acrobat 8 and Acrobat Connect form a powerful (and potentially cheaper) alternative to established collaboration and presentation systems such as WebEx and Microsoft’s Live Meeting and Office Groove 2007.

I have commented in previous blogs that the Internet is becoming increasingly interactive, due both to better technology and more sophisticated user demands.

In designing Vista Smalltalk, I have made Internet communication the highest priority. For example, the interface is based 100% on WPF so that it will be able to run in IE7 and (hopefully) any WPF/e plug-in. And recently, I have successfully tested sending Designer generated interfaces between browser sessions.

Vista Smalltalk’s integrated GUI designer is built around the functionality of the “View” class, which is a subclass of a WPF “Canvas” pane. “View” contains methods for serializing and deserializing graphic elements on its surface, as well as methods for allowing users to edit selected elements.

In the coming weeks, I will be adding other capabilities such as the ability to synchronize objects over an Internet connection. The “View” class will then become a foundation for building distributed games and groupware applications.

Older Posts »

Blog at WordPress.com.