Craig Mattson (Personal Website)
Home - Blog, News, About MePrograms - C#.Net, Java, VB6MusicWebsites

Viewing News Article

VB6 --> VB.Net and J#.Net --> VB.Net and C#.Net --> VB.Net, C#.N (20/12/2009 09:58:56 PM)

Turns out I haven't posted about this one - unless you've been stuck under a rock for the last 12 months in the development industry, you've probably already heard of Microsoft's new introduction to the .NET Framework - F# (pronounced F-Sharp) - which is a multi-paradigm programming language (that is; a language built on incorporating flexibility in programming styles and code constructs). Ideally, those familiar with Object Oriented Programming and Functional Programming concepts are said to be able to adapt easily to F# to write logic the way they see fit to perform a function quicker than in, say, VB or C#.

The idea of incorporating multiple languages into one framework is supposed to mean that if we were to take a complex project such as a corporate website with heavy business logic, the classes could be written in one language, data access layers in another language (or a combination) and finally - the webpage could be written in one or more languages. Introducing F# is supposedly a way to allow more people write code to achieve a task. The fundamental idea is that you could effecitvely have a VB.Net developer write some source code, and a C#.Net developer could interface the object(s) writing equivalent C# code.Example of a VB Class.

Public Class Person

  Public Name as String
  Public Address as String
  Public DateOfBirth as DateTime

  Public Function GetAge()
    ' Calculate Age as age
    GetAge = (DateTime.Days / 365.24)
  End Sub

End Class

Example of a C# Class handling a Person object:

public class PersonDriver
{
    static void main(String[] args)
    {
        Person person = new Person();

        person.Name = "Craig";

        Console.WriteLine(person.GetAge());
    }
}

Now whilst a good developer who understands logic can understand just about any language by reading the source code, effectively in a larger project where you may be maintaining a module (particularly when a product reaches end of useful life), you need to understand all languages in use. This isn't particularly useful where as a developer - one now has to understand both languages anyway!

So with the introduction of F#  - are we going to see a similar trend with VB.Net and C#.Net? I understand that Visual Basic in many ways is an easier language to learn (semantics closer to English than C# is useful for many people starting out). C#.Net introduced a standard very close to Java which for me allowed me to design better applications and objects quicker. F# I'm not so sure where I place it yet. Obviously time will tell over the next few years with how well adoption of the new language will be, but seriously - a language built around flexibility of managing your own code which is effectively encouraged will have massive implications on developers in the near future. I could be wrong and it may supercede C# (given the similarities to F#).

I'm certainly not looking forward to have to maintain reasonable knowledge in VB.Net and F#.Net which distracts from my primary languages (which at the moment include Javascript, Classic ASP and ASP.Net (predominantly C#)).

Cheers,
Craig Mattson.

[Print View]