InfoQ

News

Two New Microsoft Compilers Written in VB

Posted by Jonathan Allen on May 31, 2007 12:30 AM

Community
.NET
Topics
Silverlight
Tags
DLR

In the past there have been many complaints about Visual Basic being a second-class citizen to C# and that Microsoft never uses it internally. Those complaints are being addressed by SilverLight in numerous ways.

First of all, C# won't be fully supported in Silverlight. Unlike VB, Python, Ruby, and JavaScript, C# does not support the Dynamic Language Runtime and cannot be hosted for runtime compilation in Silverlight.

In more recent news, it was revealed that Visual Basic 10 would have a compiler written in Visual Basic. While Mono has a self-hosting compiler for VB, this is the first time in the history of Visual Basic that Microsoft released a VB compiler written in VB.

Even more interesting, the next version of Microsoft's JavaScript compiler, known by the brand name JScript, was also written in Visual Basic.

No C# on Silverlight? by Werner Schuster Posted May 31, 2007 10:29 AM
Re: No C# on Silverlight? by Jonathan Allen Posted May 31, 2007 11:49 AM
Re: No C# on Silverlight? by Werner Schuster Posted May 31, 2007 1:54 PM
  1. Back to top

    No C# on Silverlight?

    May 31, 2007 10:29 AM by Werner Schuster

    I'm not sure I understand this part about C# not being available on Silverlight... does that mean the C# compiler doesn't run on Silverlight? LINQ and other libs are available for Silverlight, so I'm a bit confused;

  2. Back to top

    Re: No C# on Silverlight?

    May 31, 2007 11:49 AM by Jonathan Allen

    Silverlight can certainly use libraries compiled with C#. What Silverlight cannot do is grab a block of C# source code and compile it in the browser at runtime using the DLR. How important this is remains to be seen, but if you are a fan of code that writes itself (e.g. LISP, JavaScript) it is a consideration.

  3. Back to top

    Re: No C# on Silverlight?

    May 31, 2007 1:54 PM by Werner Schuster

    OK, that clears that up. Thanks. Of course, as long as it ships with the CodeDOM (I think that's their name) libraries, then generating code is still possible (see http://vistasmalltalk.wordpress.com/ for an impressive example of that).

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.