I always joke to our team that our tools need to be so easy that Zarko (Co-CEO of Telerik) and I can build an application by pressing the “RAD Make My Application" button. A while ago some of you also voiced the need to have “RadDoEverythingForMeForTheRestOfMyLife”. While we are hard at work to provide more and more value with every release for all of our current product lines (and the new ones in development), we are always on the lookout for tools and technologies that would help us deliver the “RAD Make My Application Button”.
The good news is that we, and the evolution of technology, will make it a reality at some point. Today it’s just simple prototypes but I’m pretty excited for the future and what 5GL languages will bring. While fourth-generation programming languages are designed to build specific programs, fifth-generation languages are designed to make the computer solve a given problem without the programmer. While you can argue whether the new Microsoft Oslo platform and M language can be considered a 5GL environment, they definitely do make things easier and allows developers to model the intent of users more closely. What’s even better, Oslo is a new model driven development paradigm and allows the model to be executable by a runtime, as opposed to a static Visio diagram, CASE diagram, or drawing.
Microsoft has been adding to the Oslo SDK some exciting stuff. For example, you can create a domain specific language (DSL) for XAML/WPF with Oslo. In fact someone at Microsoft did that already, so I can type in plain English the following:
Give me a Window
whose Name is W
which has a StackPanel
whose Name is Sp
which has a TextBox
whose Name is tb.
Sp has a Button
which has a Binding
whose Path is Text
and ElementName is tb.
Sp has a TextBox whose Text is "Hello Oslo".
tb's Width is 400 and Height is 300.
tb's Background is LightGreen.
And get this XAML:
<?xml version="1.0" encoding="utf-16"?>
<wpf:Window x:Name="W" xmlns:n0="http://schemas.microsoft.com/winfx/2006/xaml/composite-font" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<wpf:TextBox x:Name="tb" Width="400" Height="300" Background="LightGreen" />
<wpf:Binding Path="Text" ElementName="tb" />
<wpf:TextBox Text="Hello Oslo" />
<n0:LinearGradientBrush x:Name="l" StartPoint="0,0" EndPoint="1,1">
<n0:GradientStop Color="Yellow" Offset="0.0" />
<n0:GradientStop Color="Red" Offset="0.25" />
<n0:GradientStop Color="Blue" Offset="0.75" />
<n0:GradientStop Color="LimeGreen" Offset="1.0" />
Pretty cool, right? One step closer to a 5GL and the "RAD Make My Application" button!
Since Microsoft has released Oslo, our engineers have been busy on their spare time (just weekends, they work nights as well to bring you the great tools!) building some tools that we would like to share with the community. They are both live on Telerik Labs as community tools that you can play with and work with.
The first one is a LINQ to M implementation. The Telerik LINQ to M implementation allows the developer to use pure LINQ statements with blocks of M values, pure text or the results of a transformed DSL.
The second is a Telerik Oslo Comparison and Migration tool. The Telerik Oslo Comparison and Migration Tool allows developers using “May CTP” to compare two M source code files (or groups of files) and view the differences with a Visual Diff. Once a developer sees the differences they can determine if their new code will break their existing applications and choose to merge the files or discard the changes. Developers can also compare M in the Microsoft Oslo repository and perform the same visual diff and merge capabilities. A future version of this tool will also allow the developers to migrate one version of the repository to another.
Are we sure that Oslo is the next big thing? No. Is Oslo the cornerstone of Telerik’s future? Not yet. Are we excited by its capabilities? You bet. Go ahead and take Oslo out for a spin and when you do, remember that Telerik will be there to provide tools for you along the way. Just let us know what you think and share your opinion.
As Chief Innovation Officer at Progress, Vassil Terziev is responsible for identifying growth strategies and new market opportunities, as well as promoting internal innovation.