Software development - finally into the 21st century?
<preramble>
Firstly there's the growing acceptance of so called scripting languages like Ruby and Perl as legitimate for application development. There is certainly a shift from pre-compiled to just-in-time compiled and also from static (aka. strong) to dynamic (aka. weak) typing (excellently discussed by Steve Yegge).
Secondly there is a move away from the previously accepted wisdom that it's better to pick a language and stick to it. Domain specific languages have been around for a long time (think SQL, awk, Excel macros) but are now being accepted in less traditional areas. Although some people are still confused about how to decide what language/environment to use, many are starting to see the wisdom in choosing a language that allows for the most natural description of the real world problem.
Vista Smalltalk
changes everything...
I have been enamoured with Smalltalk for some time. I have yet to use it in a commercial project for many reasons but one is the difficulty of deploying it to what users might call a "normal environment" (eg. Apache/Linux for web apps, Windows for gui apps).
The lack of integration with "modern" gui operating systems is particularly frustrating because when it comes to rapid gui app development, nothing comes close to Smalltalk. Not even Cocoa. It' not just the language or the frameworks, it's the entire environment. And that is the problem, because it's not immediately obvious how you can mess with the smalltalk os environment and not lose some of the power.
Vista Smalltalk changes everything. I've been following this guys blog for some time, but I think this is the first screenshot. Just look at those Vista native windows. A corporate PC user won't realise that he or she is using an application that finally realises the power of 1970s computing, but the developer will. And for hosted applications - just see how identical the in-browser application is - with no web specific application code.
I'm no Microsoft fan, but I will give them some advice. Give this guy money now. Lot's of it. If the libraries were shipped with Vista, this would beat Cocoa hand over fist (excluding multimedia, OpenGl... ok in a whole bunch of non-corporate areas).
Sheesh - I might even need to own my first ever Windows machine. At least I can dual boot a MacBook ;)
Update: As pointed out by a reader in the comments, Dolphin Smalltalk achieves the same sort of platform integration for existing windows versions. I must confess to being ignorant about Dolphin Smalltalk since I had previously avoided it because I traditionally avoid windows. I promise to investigate it and report back! Certainly products such as Cincom Smalltalk use their own widgets rather than native OS ones which is another (perceived at least) issue, but I'll hold judgement on Dolphin until I have checked it out.
Update 2: I've been taken to task for my admittedly "hand waving" statement that Smalltalk has been traditionally difficult to delploy. Without stating it, I was really combining technical issues with human issues. Human issues being your client or manager saying something like "that deployment procedure looks a bit wierd - and the widgets are non-native. You'll never be allowed to use that".
What I am excited about (and unashamedly hoping to promote) is that now is a time when we have the chance to promote uncommon thinking when it comes to software development. This is why I specifically linked the changes in attitude to scripting languages with this new Smalltalk framework.
I apologise that some of my reasoning was not clearly spelt (or thought) out and that some people may have taken away the thought that there has never been a Smalltalk implementation useful for traditional application deployment.
Thanks to the commenters in the comments and via email.
05:29 PM, 07 Sep 2006 by Mark Aufflick Permalink
Smalltalk - what difficulty?
1) Presumably you don't know that IBM Smalltalk (now known as VA Smalltalk) uses native widgets. http://safari.awprofessional.com/032142672X/ch04 2) What's the difficulty deploying Smalltalk with Linux/Apache? This discussion thread mentions FastCGI and other options http://groups.google.com/group/comp.lang.smalltalk/msg/3793d4e68cdc2d9a 3) As you seem to be a Mac user you presumably know about F-Script? http://www.fscript.org/index.htm
by Unregistered Visitor on 09/09/06
RE: Smalltalk - what difficulty?
With permission, here is an email correspondance that Isaac (above poster) had with me yesterday. My comments are quoted: > Heh - you're nailing me for being un-thorough with my blog posting! I think we all appreciate knowledgeable postings (irrespective of whether they say X is good or bad). When postings say there are difficulties with X in a vague hand-waving sort-of way, I think that is bad - the effect is just like malicious gossip and rumour - there's nothing specific that someone more knowledgeable can correct. > Yes I'm familiar with F-Script. It is targeting itself as an embedded > scripting language so while it is pretty equivalent to a full > smalltalk implementation I hadn't really considered it for > application development. If the application can be built with an embedded scripting language... > The cincom smalltalk documentation mentioned in the post you link to > basically talk about using IIS or Apache as a proxy in front of a > running smalltalk process. I have a lot of experience running > AOLServer based system ( http://openacs.org/ ) which is often run in > the same way. While AOLServer by itself is actually (IMO) a superior > web server to Apache or IIS it is very hard to sell because it > doesn't have the appearance of being popular and is therefore > considered suspect by many people. That is, I think, the same issue > that current smalltalk implementations have. They seem so niche that > it's hard to get clients or business people to approve their use. Seems like you are saying there isn't a technical difficulty deploying Smalltalk webapps with Apache but you think there might be a reluctance to deploy less familiar technology? Your blog posting reads as though you were saying there was a technical difficulty deploying Smalltalk webapps with Apache. -snip- > I didn't know that VA Smalltalk used native widgets. Over the years there have been many different Smalltalk implementations, each exploring different approaches to software development and deployment, so it's best to speak about the specific things we know to be true about a specific Smalltalk implementation. Here's a Smalltalk that wraps DirectX http://www.mvps.org/directx/smalltalk/articles/mt_intro.htm Here's a Smalltalk with a standalone machine code compiler and inline-C http://www.exept.de/exept//english/Smalltalk/frame_eigensch.html > I am also frankly surprised that poeple like VA and Cincom don't market their > products and Smalltalk itself more. I really think the current IT > environment is very open (finally) to the key concepts in > smalltalk. You can help their marketing effort ;-) > Do you mind if I post your followup comment? No problem.
by Mark Aufflick on 09/09/06
what difficulty?
the difficulty of deploying it to what users might call a "normal environment" (eg. Apache/Linux for web apps, Windows for gui apps).
What is difficult about deploying Dolphin Smalltalk MS Windows GUIs? (or Smalltalk MT, or VA Smalltalk, or ...)
by Unregistered Visitor on 09/08/06