Microsoft TechMela
Just attended the sensational TechMela organized by Microsoft at Renaissance, Powai, Mumbai. Was sort of a gathering of people from diverse fields - UI, embedded, project management, process management, data (base) management and stuff alike. It was a MIX and quite well managed, keeping out the chaos and confusion part.
MS guys kept repeating all the 3 days - "8 tracks 150 sessions and tonnes of labs". But poor me, for one who has switched domains from compilers -> banking -> 3D graphics -> application development -> data storage and protection, not much was relevant considering the current domain. Just mentioning few of the topics that were interesting,
C# future
MS is steaming ahead with its plans to make C# an all pervasive language from applications development to embedded systems programming. New features in C# 3.0 supported by .NET 3.5 framework will empower the language with features which were hitherto only available in classic languages such as LISP and HASKELL. Came to know that there are just a handful of Haskell programmers around the world! Ok, so you got it, its got to do with functional programming. C# already has 'delegate' functions which have been further strengthened to support functional programming constructs / lamda expressions. This makes C# a strongly typed language with flexibility of lazy evaluation entrenched in the functional programming domain. Given that the function is stateless, when compiled to IL and executed on multi-core processors, .NET framework / CLR should be able to deploy such functions on separate processor cores, thereby introducing parallelism into otherwise sequential executional model. Now how does that help? Hint is what DSPs do today and is desired in parallel processing platforms / FPGAs. Other interesting keyword that I picked up (yea am outta date with current technology) - yield return (C# 2.0), have to read more on this.
Programs do what? Number crunching and data processing!? Though most of the applications are data processing applications, there is quite an interdependence between logic and data. Fine for input driven / data driven systems. However there are systems in which logic quite independent of the data - stream processing in graphics, voice applications, etc. The data passes through a logic pipeline in which each data element is symmetrically processed. I guess this is what Microsoft is looking towards by introducing functional programming aspects in C#.
http://en.wikipedia.org/wiki/C_Sharp
LINQ - Language integrated Query
This is something that directly leverages new functional programming aspects of C# - lamda expressions and extension methods. C++ provides STL for_each construct for iterating over containers using a function object to process the data elements. However there were times when I wished if I could query a vector to pull out those objects which satisfied my criteria. LINQ is the solution! With plain old SQL semantics, one can just query any stream which supports IEnumerable. That could be a C# generic, SQL recordset, XML data stream. LINQ does eliminate requirement of looping constructs, conditionals and the processing logic to be attached onto the data stream in various dispositions. Want more information, visit this place - http://en.wikipedia.org/wiki/Language_Integrated_Query.
Virtualization
NOW this surely is a buzz word that is catching up everyone's attention. Many organizations today have dedicated servers which are sub-optimally used and still hog energy throughout the entire uptime, making them energy inefficient. Nice article from AMD -
http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8796_14287,00.html.
You use desktop / laptop to do personal data processing, but there are times when the machine is quite idle and does nothing except hog energy. Put all the desktops / laptops together and idle time accumulation reaches huge proportions. How about putting all these desktops and laptops on a single machine and accessing them remotely. This is all made possible with the huge network bandwidths slowly becoming available (IPV6 and stuff etc). So save energy is the motto. Put all machines in one virtual place and cut down on the energy costs.
IT industry and IT revolution is already blamed for the electronic waste it generates. With global warming 'sword' looming close on heads, this is surely a selling point. Wake up third world countries. Cut down on your emissions or you will be denied access to computing technology. Why? Because you do not have infrastructure that supports high speed high bandwidth connections and you will not be allowed to have 1 person 1 desktop privilege for it may soon become a cause of concern in UNSC!!!
That apart, it seems that Microsoft is gonna fully leverage the AMD's processor level virtualization support in its upcoming Longhorn OS. VMware ... howz u?
Expressions - Silverlight
That's the revolutionary concept being introduced by Microsoft. Essentially draws a quite clear line between responsibilities of a developer and UI designer, thereby separating them out into distinct accountable activities. . No more would a developer need to be bothered about the UI design and vice versa. XAML is fully leveraged. Silverlight - cross browser, cross platform plug-in - tugs on the parallel tracks. Cross browser = IE, firefox, etc. That's fine, but cross platform - Mac and Win OS ... oops did I hear it wrong again ... just two and still it becomes cross platform
http://en.wikipedia.org/wiki/Microsoft_Silverlight
There were other tracks on embedded systems for Mobile devices. Seemed to be interesting but I could not split myself into multiples and sit through in each room.
There was more in the TechMela. For me, it was truly an immersing EXPERIENCE in fathoming the Microsoft's EXPRESSIONS of new planned future for the IT industry.
Labels: C#, LINQ, silverlight, techmela, virtualization
