Slashdot Mirror


First Look At Visual Studio 2010 Beta 1

snydeq writes "InfoWorld's Martin Heller takes VS2010 Beta 1 for a test drive and finds the upgrade promising, particularly with regard to improved thread debugging and a revamped UI. But the biggest enhancements have to do with parallel programming, Heller writes. 'I'm not sure that I've completely grasped the power of the new .Net Framework and native C++ support for task and data parallelism in VS2010, but what I've seen so far is impressive.' Heller points to intriguing parallel programming samples posted to CodePlex and offers numerous screenshots of VS2010 Beta 1 functionality. He also notes that the beta still lacks support for ASP.Net MVC, smart devices, and the .Net Micro Framework."

2 of 236 comments (clear)

  1. Not just parallel by shutdown+-p+now · · Score: 5, Interesting

    ParallelFX is definitely interesting, but I'd say that another very major addition is Visual F# - to the best of my knowledge, this is the first time a primarily functional language goes mainstream, and gets documentation, tooling (IDE/debugging/profiling), and general support on par with the likes of C# and VB. It's not Haskell (read: no typeclasses), and it's not quite OCaml either (no functors), even though the core language is recognizably ML. But it's got most of the nice FP bits OCaml has to offer, some syntactic sugar on top of that (e.g. ability to declare locals as mutable when needed, and arithmetic operators overloaded for all numeric types), and it's got direct and full access to one of the largest class libraries on the market today.

    (I'm sure someone will remind me of Scala, which is in many ways similar to F#. It's definitely comparable, but its tooling support is lagging behind, and, most importantly, it's not backed by any of the "big players" in Java land - not Sun, not Google, not IBM - or indeed, any other company.)

    The second, smaller, but still interesting bit is improved language interop. It seems that, as new core (i.e. MS-supported) .NET languages are added to the batch, the framework itself is extended as needed to provide primitives for them where more than one language uses them. For example, both F# and IronPython work with tuples, but they have previously each defined their own type for that - and so .NET 4 introduces the standard System.Tuple type, and all languages are changed to use that. So now you can actually make a tuple in IronPython, and pattern-match it in F# - nice.

    Another bit along the same lines is C# 4 dynamic type - which is nothing but opt-in duck typing - and the associated DLR framework for exposing runtime dynamic type information in a common way. This means that static/dynamic language interop on .NET is now two-way - previously, you could easily call C# class methods from IronPython/IronRuby, but there was no easy way to call methods on IronPython/IronRuby objects in C# - but now you can do the latter just as easily.

  2. Re:Yay! by bertok · · Score: 4, Interesting

    Screw it, I second this. Visual Studio has the best code completion implementation ever written. I can type lines like obj.GetSomething().Append(item) in about four keystrokes.

    Have you tried IntelliJ IDEA? It's Java-only, but I found its code completion to be many, MANY times better than VS. For one, instead of showing you every symbol that matches a prefix, it narrows down to the appropriate type.

    For example, in VS, if you create two methods with similar names ("int Test1()", "string Test2()"), and try and tab complete something like string "foo = T", it'll show you Test1() first, even though Test2() is a far better match.

    Note that I use VS 2008 daily, and I've got 2010 installed as well. I just tested that in VS 2010, and it still shows you every single identifier available, including class names. I know that technically, the intention may have been to reference a static, but in practice, they could go to some lengths to select a "most likely" set and an "alphabetical" set, and show the most likely first, and only show the complete set if you try to complete twice, or something.

    It's a great IDE, but it could be a lot better. Microsoft really needs to get over their "not invented here" attitude, install a competing IDE at least ONCE, try it, and learn that other people sometimes do things better.