Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Discussions

Andrew Davey Andrew Davey www.​aboutcode.​net
  • Asynchronous Programming using LINQ Syntax

    After reading http://blogs.msdn.com/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx
    I created a program that enables creating multiple web requests asynchronously. Even the response streams are read using non-blocking IO!

    var requests = new[]
    {
        WebRequest.Create("
    http://www.google.com/"),
        WebRequest.Create("
    http://www.yahoo.com/"),
        WebRequest.Create("
    http://channel9.msdn.com/")
    };

    var pages =
        from request in requests select
    // essentially we are defining the computation here 
    // it does NOT run here
            from response in request.GetResponseAsync()
            let stream = response.GetResponseStream()
            from html in stream.ReadToEndAsync()
            select new { html, response };

    foreach (var page in pages)
    {
        page(d => // do this when the page data is ready
        {
            Console.WriteLine(d.response.ResponseUri.ToString());
            Console.WriteLine(d.html.Substring(0, 40));
            Console.WriteLine();
        });
    } // for loop kicks off the calls and does NOT block the main thread.

    Console.ReadKey();

    The code reads like it is synchronous, but it's really not! You get the benefit of easy to read and write code that is also uses non-blocking IO. So it's not using up threads waiting for each request to return.

    Check out my blog post for the code that implements the Continuation Monad and provides the methods required to enable the LINQ syntax.
    There is no explicit thread at all in my code. It uses the BeginXXX/EndXXX async methods.

    I think it's amazing how LINQ can be leveraged to things other than querying data - All thanks to its monadic under-pinings.

  • Boo now running on Java, coding in Eclipse

    I wonder how the number of users of F# compare to users of Boo?

  • Boo now running on Java, coding in Eclipse

    Like I said: "hired people to work on IronPython"
    Smiley

    Hehe yea I love how that whole endeavour worked out!

  • Boo now running on Java, coding in Eclipse

    wkempf wrote:
    If they don't care to, then that's their choice and why should anyone care?  And if you do care, why don't you do the effort?


    Implementing full Visual Studio integration is a LOT of work, so I wouldn't be able to do it on my own Smiley
    If Microsoft could reach out the Boo community and offer direct assistance perhaps that would help things?

    Boo adds great value to the .NET platform. It would be awesome to see Microsoft endorse it! Smiley

  • Boo now running on Java, coding in Eclipse

    Microsoft had no connection with Ruby or Python either originally.
    They hired people to work on IronPython and create IronRuby too.

    What annoys me is that Boo is a very innovative language (more so than Python I'd say). It may be that Ruby has more hype at the moment, so it's a good marketing decision to implement it on .NET.

    So in a way I'm trying to make sure people at Microsoft know that Boo is loved by a lot of developers. Therefore it deserves the love that Python and Ruby are getting.

  • Boo now running on Java, coding in Eclipse

    From: http://blogs.codehaus.org/people/bamboo/archives/001623_introducing_boojay.html

    UPDATE: Just in case it's not clear, the generated class files DO NOT require IKVM in any way and can be executed in any compliant JVM.

  • Boo now running on Java, coding in Eclipse

    Links:
    http://blogs.codehaus.org/people/bamboo/archives/001623_introducing_boojay.html


    http://blogs.codehaus.org/people/bamboo/archives/001629_boojay_does_eclipse.html


    Good job Microsoft Dev Div people - You seemed to have ignored Boo enough to mean the developers of it are now heading in the JVM direction!

    Whilst I'm all for Boo running on the JVM and .NET, what sucks is that I prefer .NET (BCL and runtime) way more than Java offerings.
    The real kicker is that Eclipse integration for Boo means there is now a great IDE for it (sorry but SharpDevelop doesn't cut it).

    Boo is a great language. If people want to start playing with it then they will probably go for the nicest experience i.e. Eclipse.
    This means they'll be targeting Java. So we will have lost an amazing .NET language to Java!

    Sad times. Sad

    For goodness sake get someone thinking about bringing Boo into the warm and fuzzy world of Visual Studio. PLEASE!

  • F# is now the real deal: We've made it an official .NET language

    JChung2006 wrote:
    
    That sounds like Lisp to me!


    Yup! It sure does! Big Smile

  • F# is now the real deal: We've made it an official .NET language

    JChung2006 wrote:
    
    Andrew Davey wrote:
    However, can someone at Microsoft help to give Boo and Nemerle the same love F# got?

    What do Boo and Nemerle do that F# and IronPython can't?


    Nemerle is functional, but doesn't force that "flavor" unless you want it. This means you can write imperative code that looks a lot like C#. However, as you learn more about functional programming you can improve your coding style.

    Boo is awesome. It has the right mix of static typing with optional dynamic typing. The syntax is super-lightweight, making it ideal for teaching programming to students. In addition, making domain specific languages is easy.

    Both have a syntactic macro systems, enabling even higher level meta-programming (think DSLs again). (I know F# has macros of some form too.)

    Both have super smart programmers innovating on their development and rich communities.
    I'm not saying don't use F# or IronPython. I'm saying please take a good look at Boo and Nemerle as well.

  • F# is now the real deal: We've made it an official .NET language

    This is great news.

    However, can someone at Microsoft help to give Boo and Nemerle the same love F# got?

    Whilst these are not MS developed languages, they are fantastic. Boo especially has an excellent developer community. The language has so many powerful features and is super easy to learn - better then VB.NET I'd say!

    We need to get these into VS.NET!