woensdag 12 maart 2008

QCon Wednesday (2)

Still Bart:

What the hell is a DSL?
Programming languages are realy cool. With them, you can make your hardware actually do something, like visit a website, create spreadsheet with the latests sale-data or write on your book.
Most programming languages serve a general purpose: they are meant to be usable in all sorts of situation. Using Java, for example, you can a simple webbrowser for your iPhone or an offline dictionary that only runs on your specific machine. All these radically different kinds of problems can be solved using the same kind of solution: the processing power of a single programming language.
There are, however, situations in which you don't realy need all that processing power. Sometimes you just need to transform an xml-tree into another xml-tree, or make a more or less difficult formula in your spreadsheet. In these kind of situations, all the processing power of a general purpose language, and more specifically the vast number of functions, add-ons, quicks and possibilities that come with them, prove to be a burden for the programmer working on that specific domain. Hence the viability of Domain Specific Languages.
Though Domain Specific Languages do not have the general expression power of general purpose languages, in most cases they do actually have more expressive power within their domain, due in part to the fact that they serve a very specific goal. In general, they enable the programmer who has more or less extensive knowledge of the domain under consideration to automate simple task within that domain. Since the DSL is created to be using in that domain, it can use abbreviations and idioms that its users will be familiar with.
The borderline between general purpose language and DSL is, however, not as strict as some might be led to believe. For example, XSLT was initially conveived as a DSL that only transformed one xml-stream into another one. But through the years, this language has grown to include filesystem interaction and string-manipulation. On the other hand, Visual Basic for Applications (VBA) was conceived as a simple programming language that should enable users of Microsoft Office to create simple applications on top of for example Word and Excel. However, most uses of VBA nowaday is concentrated on automating specific tasks within these applications, thus rendering VBA more like an DSL than Microsoft would have liked.

Windows as a Web Platform
Eric Nelson
People who know me are aware of the fact that I do not particularly love graphical interfaces. I much rather have the power of the command-line directly at my finger-tips that all stuff tagged away behind obscure windows and drop-dopwn lists. On the other hand, I do know that GUI's do have their pros and that a lot of people could not live without them.
The Microsoft web server, IIS, has this kind of GUI, which enables the system administrator to administate the web-server. I have used the previous version of IIS, version 6, for some time for my work, and I thought it realy was a terible thing to use. Unclear views, obscure locations of specific settings and a need to restart after the most simple change. Therefore, I was very interested in what mister Nelson had to tell us about the new version of IIS, version 7.
Mister Nelson is a very driven spreaker who keeps interesting (and funny) contact with his audience, who does not try to demonstrate more than is actually interesting at that moment, and who can make his story up as he goed along (which proves that he knows what he is talking about).
IIS 7 provides a much clearer GUI which can be accustumed to the wants and needs of the sysadmin. But this new version is more than just window-dressing: the whole pipe-line has been refactored, which is spcifically usefull for those of us creating .net-applications. In previous versions, .net was just another extension of IIS, which entailed the need for code-duplication (e.g. for authentication) and all sorts of specific tweaking. Now it is more of less an integral part of the webserver, which means that the management of .net-applications is much easier.
Also, driven by the market, Microsoft has decided to be much more php-frienly than it was in previous versions of IIS. Using IIS7 you can invoke php directly via the cgi. It even comes with a friendly php-editor. This way, according to mister Nelson, after they have decided to use php, people do not automatically use mysql, apache and, ultimately, linux. They now have the very viable option to use php and mssql and IIS and windows. Who knows...
I was rather positive about the interface and posibilities of IIS7, but the best part is comes with a good command-line: CmdApp.

Building Rich Internet Applications
Mike Taulty - Microsoft
There are two words missing in the title of the this lecture, namely 'with' and 'Silverlight'. As you might or might not know, Microsoft is regarding the succes of Adobe (before: Macromedia) Flash with envious eyes, and is slowly, bur surely, trying to get some piece of the cake of rich internet applications. As is comman practice within the Redmond Company, instead of being innovative and trying out new stuff, they simply take some existing formats and ideas and pretend it's their own. The same applies for Silverlight, which is basically a new version of SVG (which they have called XAML) and some kind of new shell around Visual Studio. Voilà Silverlight 2.0.
But let us be fair. There are some cool things that one can do using Silverlight that are hard or even impossible to do with Flash. Dynamically creating xml-files, interpreting those at run-time as the description of a visual objects and doing all kind of stuff with them is kind of nifty. During the talk, however, I just couldn't stop thinking that people who would want to do this kind of stuff would no doubt already be using Flash for some time, so why would they switch to Silverlight at this moment?
As a matter of fact, the speaker gave me the impression that he more or less shared my views. The lecture can be seen as consisting of two parts: the first part filled with explaining XAML, the second part demonstrating the way in which the different technologies operate together to create richt internet applications. In the first part, Mike gave a lot of examples each of which he ended with the comment that it was not very stunning or interesting. The second part took far too long to remain interesting. I think it is a bit like Microsoft, to want to show everything on your first encounter.

Geen opmerkingen: