Archives for posts with tag: Programming Languages

With the recent release of Visual Studio 2010 and .NET 4/Silverlight 4 (Managed 4), I figured it was time to learn a thing or two about some new native functionality, specifically in the STL (Standard Template Library) that ships with VS 2010.

Who better to dig into some STL internals than the great Stephan T. Lavavej? Stephan spends most of his time maintaining the STL (along with the core producers of the library, who last I heard work from a remote location in Hawaii…). Stephan is no stranger to those of us who spend time in the native programming world (and use C++, specifically, to compose), and you’ve already met Stephan a few times on C9.

As always, this conversation just happened. Stephan and I didn’t draft up some highly structured and scripted plan. Spontaneity is always our goal, and we met that goal here! So, if you are interested in STL internals and C++ in general, then this is for you.

Thank you, Stephan, for another great lesson.

Enjoy!

Computer Scientists and MSR Researchers Wolfram Schulte, Herman VenterNikolai Tillmann, and Manuel Fahndrich join Erik Meijer for an Expert to Expert deep dive into the theory and implementation strategies inside of SPUR, a research Tracing Just-In-Time (TJIT) compiler for Microsoft’s Common Intermediate Language CIL (the target language of C#, VB.NET, F#, and many other .NET languages).  

Tracing just-in-time compilers (TJITs) determine frequently executed traces (hot paths and loops) in running programs and focus their optimization effort by emitting optimized machine code specialized to these traces. Prior work has established this strategy to be especially beneficial for dynamic languages such as JavaScript, where the TJIT interfaces with the interpreter and produces machine code from the JavaScript trace. 

In order to validate that the performance gains of a TJIT for interpreted languages like JavaScript do not depend on specific idioms of the language, the SPUR team produces a performance evaluation of a JavaScript runtime that translates JavaScript to CIL and then runs on top of SPUR.

Read the SPUR research paper.

Senior Vice President S. Somasegar (aka Soma) joins us for a chat about Visual Studio 2010 RTM, which is available today. Visual Studio 2010 and .NET Framework 4 offer an unprecedented level of support for Microsoft’s platforms, including Windows, Windows Server, Office, SharePoint, Windows Phone, SQL, and Windows Azure. Here we get Soma’s perspective on this release, Microsoft’s broadest developer tooling offering ever, including several enhancements and new capabilities for both managed and native developers alike.

MSDN customers will be able to download VS 2010 and .NET Framework 4.

Tune in!
 

/* Life Runs on Code */

Anders Hejlsberg opens the developer keynote at TechDays 2010 in Belgium with: ‘Trends and future directions in programming languages’, on March 31st 2010. In this keynote Anders discusses the paradigms and future directions in programming languages.

About Anders Hejlsberg:

Anders Hejlsberg is a Technical Fellow in the Developer Division. He is an influential creator of development tools and programming languages. He is the chief designer of the C# programming language and a key participant in the development of the Microsoft .NET framework. Since its initial release in 2000, the C# programming language has been widely adopted and is now standardized by ECMA and ISO. Before his work on C# and the .NET framework, Hejlsberg was an architect for Visual J++ development and the Windows Foundation classes.  Before joining Microsoft in 1996, Hejlsberg was one of the first employees of Borland International Inc. As principal engineer, he was the original author of Turbo Pascal, a revolutionary integrated development environment, and chief architect of its successor, Delphi.  Hejlsberg co-authored “The C# Programming Language”, published by Addison Wesley, and has received numerous software patents. In 2001, he was the recipient of the prestigious Dr. Dobbs Excellence in Programming Award.  He studied engineering at the Technical University of Denmark.

JavaScript is the most widely used programming language on the web. As the great Douglas Crockford likes to say, JavaScript is both the world’s most popular programming language and the world’s least popular programming language at the same time.

In this episode of Expert to Expert (to Expert), Erik Meijer joins MSR research scientists Ben Livshits and Ben Zorn to talk about JavaScript, project JSMeter and today’s trends in web programming.

Dr. Zorn and Dr. Livshits have been doing a significant amount of research on how JavaScript is used in the real world by analyzing JS execution on large-scale (JS-heavy) commercial web sites. Their formal exploration of JS executing in the real world, Project JSMeter, has yielded results, which seem to indicate that current JS performance test suites are at best suspect in terms of how JavaScript is actually running on the web, in production, on real sites, etc. But read the findings and make your own judgments, of course. 

Tune in. Enjoy.


Reactive Extensions for Javascript have arrived
. Hello RxJS!! 

You can now use Rx combinators in JavaScript. RxJS provides easy to use conversions from existing DOM, XmlHttpRequest and jQuery events to Rx push-collections, allowing users to seamlessly plug Rx into their existing JavaScript-based web sites. Great. What does this mean, exactly? As you know by now, Rx is a library for composing asynchronous and event-based programs using observable collections.

Here, Rx developer Jeffrey Van Gogh explains (and demonstrates) what you can do with RxJS, how he ported Rx to JavaScript and more.

Be sure to check out Erik’s excellent session at MIX10

Tune in.

Over thousands of years, language has evolved in order to provide mankind a mechanism for making it easier to communicate with one another. Today, the world is filled with a wide variety of languages, some of which are radically different from one another, while others bear striking similarities. In addition to improving interpersonal communications, however, languages have evolved to facilitate the transfer of information, instructions, and intent between people and machines.

Understanding, designing, and evangelizing many of these languages, and democratizing the programming methodologies within them, is Erik Meijer. Erik is a legendary figure in the programming language design community and one of Niner Nation’s favorite personalities. Today, tune in and meet the man behind the code; some of Erik’s fascinating personal and professional histories may well surprise you. The great Robert Hess moderates this latest edition of Behind the Code.

Enjoy.

PS: Erik will be speaking at MIX10!

F# is Microsoft’s first functional programming language to be included as one of Visual Studio’s official set of languages. F# is a succinct, efficient, expressive functional/object-oriented programming language under joint development by Microsoft Developer Division and Microsoft Research.

In Part 3 of this 3-part lecture series, Dr. Don Syme elaborates further on:

Patterns
Object Basics
Imperative Programming

Part 1
Part 2

Get the slides for this lecture series here.
Read Don’s Blog

The F# Team says: We’re excited to announce that we have made available a new release of F# along with the Visual Studio 2010 RC and a matching February 2010 F# CTP for VS2008. 

F# is Microsoft’s first functional programming language to be included as one of Visual Studio’s official set of languages. F# is a succinct, efficient, expressive functional/object-oriented programming language under joint development by Microsoft Developer Division and Microsoft Research. During the course of Erik Meijer’s fantastic lecture series on functional programming fundamentals several of you asked for examples of specific topics in F#. Well, we listened.

Dr. Don Syme is a principal researcher in MSR Cambridge. He has a rich history in programming language research, design, and implementation (C# generics being one of his most recognized implementations), and is the principle creator of F#. Who better to lecture on the topic than Don? This three part series will serve as an introduction to F#, including insights into the rationale behind the history and creation of Microsoft’s newest language.

Get the slides for this lecture here.

Watch Part 1.

Read Don’s Blog.

Well, my friends, the day has arrived. For thirteen weeks, you have been provided all the conceptual tools to take the leap into the deep end of the functional programming pool and float safely. The great Dr. Erik Meijer has generously given his value time to teach us the fundamentals as delivered by Graham Hutton in his book Programming in Haskell. Of course, Erik merged his own extensive knowledge, unique perspective and experience into the educational weave: so, you got the best of two worlds. We hope you enjoyed this series, the first in a new a format of Channel 9 content (lectures).

The Channel 9 team and Niner nation thank our dear friend Erik for this stellar contribution to Channel 9 and programming education, generally. Of course, we also thank Graham Hutton for writing the book (and for guest lecturing Chapter 11) that Erik is both so fond of and which provided a basis for these lectures, which, by the way, were all done in true Channel 9 fashion: They were recorded in single takes with Erik doing a brilliant job articulating, contextualizing, expanding on the fundamentals and being, well, Erik, one of our favorite geniuses, all in real time.

In Chapter 13, Equational Reasoning (and also revealing why Erik says ‘uhm’ and ‘you know’ so often), the grand finale, Dr. Meijer digs into referential transparency and being able to replace equals by equals in all contexts. In some sense, the purity inherent in functional languages like Haskell makes it easy to express and implement equational reasoning. In Haskell, our old friend “=” means “is equal to by definition”. But what does equational reasoning mean? It is clear that propositional logic is too weak for many applications and that equational logic is a first step towards a more powerful system*. Is it? Dr. Meijer, please do explain.

Tune in. Enjoy.

* source: http://www.cs.cmu.edu/~cdm/pdf/EquLogic.pdf