First Look At Visual Studio 2010 Beta 1 236
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."
More security? (Score:3, Interesting)
Look at that fourth screenshot. What possible harm could loading a project do, I wonder? Does it already (partially?) execute even when it is just sitting there in the development environment? Is this an attempt to banish evil compilers from accidentally compiling source?
And why is the answer always "make the user choose" even though there is absolutely no way to make an informed choice (same problem as with UAC or sudo: I don't want to hand over the keys to the kingdom, I only want to give out narrow and specific permissions, based on useful information, rather than some nebulous feeling of 'trust')?
Re: (Score:2)
Visual Studio picks through whatever classes you write and adds support for them to Intellisense. Maybe they've observed security issues with that in the past?
Re: (Score:2, Insightful)
Re:More security? (Score:5, Informative)
Look at that fourth screenshot. What possible harm could loading a project do, I wonder? Does it already (partially?) execute even when it is just sitting there in the development environment? Is this an attempt to banish evil compilers from accidentally compiling source?
As it says right there in the screenshot, the possible harm is from custom build steps.
Unix developers are already used to this, because makefiles have the same risks: if you untar an untrusted project and type "make", you might find that one of the build steps erases your home directory.
Re:More security? (Score:5, Informative)
As it says right there in the screenshot, the possible harm is from custom build steps.
To clarify (since it may not be obvious to those who haven't used VS, and, in fact, even to many who did) - Visual Studio projects are nothing more but MSBuild [microsoft.com] makefiles, which has roughly the same expressive power and extensibility as, say, Apache Ant. In particular, the build steps can include file system operations, and execution of arbitrary shell commands. By default, VS-created projects have nothing like this, and so the verifier lets them load without asking. But if the file was hand-edited to include any such things, you'll see the dialog such as one on the screenshot.
Re:More security? (Score:5, Informative)
Does it already (partially?) execute even when it is just sitting there in the development environment
Actually, it kind-of does execute. Most controls, even user-created ones, have "design mode." That's a special view that gets rendered while you're designing pages or forms. I never thought about it, but it is just code that executes. I don't know if there's anything that prevents you from opening up an FTP connection or calling "del /f /s /q C:\*" from a control in design mode.
Re: (Score:2)
If the projects have custom build steps set up they can execute any program they like before / after / to compile.
That's all it's warning about.
Anyone even using VS 2008 yet? (Score:4, Informative)
Heck no one I've worked with has even upgraded to 2008 yet, it's been either VS 2005 or 2003.
Re: (Score:2)
I'm using 2008. Do I get a cookie?
Re: (Score:3, Funny)
Re:Anyone even using VS 2008 yet? (Score:4, Funny)
No, but you do get an add-in for FireFox... no questions asked!
Re:Anyone even using VS 2008 yet? (Score:4, Informative)
Re: (Score:2, Funny)
Re: (Score:2)
Re:Anyone even using VS 2008 yet? (Score:4, Informative)
We run it at work. It is pretty much the same as VS 2005.
If you use it for C++ development, then the C++ compiler in 2008 has better standard compliance, and some nasty bugs [microsoft.com] in the libraries are fixed. Also, VS2008 SP1 adds C++ TR1 stuff.
Re: (Score:2)
Re: (Score:2)
Visual C++ hasn't changed much since VS 2002. In fact it looks abandoned compared to .NET languages, it has worse Intellisense, debugging and code formatting. And no refactoring or decent GUI toolkit. Both MFC and Win32 API are incredibly difficult to code.
2008 has a lot of nice features, but only for .NET.
Re:Anyone even using VS 2008 yet? (Score:5, Informative)
Visual C++ hasn't changed much since VS 2002.
Eh? It's got C++/CLI since then, for starters. It has become much closer to ISO C++ (before 2003 it was a total joke, it didn't even get the scope of the for loop right - and 2003 was only so-so). It's got checked STL containers & iterators in 2005, and C++TR1 in 2008. And it is getting significantly improved code completion [msdn.com], and on-the-fly error checking [msdn.com] in 2010. Doesn't sound "abandoned" to me.
On the language front, Visual C++ in 2010 gets a bunch of C++0x features: lambdas, type inference (auto), static_assert [msdn.com], rvalue references (&&) [msdn.com], and decltype [msdn.com]. This is quite a lot, and lambdas are especially nice since they actually let you use STL algorithms as God intended without writing tons of boilerplate code for function objects.
Then also there's Parallel Patterns Library [microsoft.com], which provides STL-like algorithms with automatic parallelization.
And no refactoring
This one is interesting. I do not know of any C++ IDE or plugin that would provide working C++ refactoring, for very simple reason - it is extremely hard to properly parse C++, taking into account all templates and template specializations, and other context-dependent things. Heck, something like a<b>c can be parsed either as expression (a < b) > c, or as a variable declaration a<b> c, depending on the context - and that context, again, includes template instantiations, which form a Turing-complete language that has to be interpreted correctly to produce matching results. I once wrote a C++ program, for fun, which had in it a piece of code as described above, which was parsed and compiled either as expression or as variable declaration depending on whether char type was signed or unsigned was for a given compiler - so you could play with compiler options and get different results. How can IDE possibly handle this?
You can say that it does it for code completion, but the truth is that a lot of it is guessing and heuristics. And there's the catch - when it guesses wrong, at worst, you get a wrong code completion list, or no list at all. But when you do a refactoring like, say, "rename class", and it fails to correctly determine that the class is referenced at some line of code, and doesn't rename it there, then your program no longer compiles...
That said, VS2010 IDE C++ parser (used for code completion and "Go to definition") is EDG-based, so it should be much more accurate - so hopefully we'll get reliable C++ refactoring eventually. Just not in this release.
... decent GUI toolkit. Both MFC and Win32 API are incredibly difficult to code.
I agree with that, but there are many good third-party libraries out there - most notably, Qt.
Re:Anyone even using VS 2008 yet? (Score:4, Interesting)
Eclipse does C++ refactoring, I think Netbeans can do it too. I've used Eclipse for renaming values, implementing methods and generating getters/setters, it didn't ever break anything and showed all code that was about to be changed before doing something irreversible. Even if it breaks something, there's Local History which acts as a simple version control server, committing code on every save operation.
If a compiler can parse the code, the IDE should be capable of doing that.
Re: (Score:3, Insightful)
Eclipse does C++ refactoring, I think Netbeans can do it too. I've used Eclipse for renaming values, implementing methods and generating getters/setters, it didn't ever break anything
Did you use it with more-or-less advanced templates (e.g. anything that actively uses STL or Boost)?
If a compiler can parse the code, the IDE should be capable of doing that.
A compiler parses the code once. It doesn't have to reparse the code constantly as you keep typing or deleting lines, and to do it fast enough that the updates are near-realtime, and yet the user doesn't complain about the sluggishness.
Still waiting for Eclipse to load. (Score:2)
I'm not a big lover of Visual Studio for C++ development - my preferred environment was KDevelop before it was broken in the rush to KDE 4.0, so, I would love to agree with you about Eclipse being good for C++. I just wasn't all that impressed. Right now, a pretty good pair is Visual C++ and a plug-in that Microsoft lets you download that works pretty well.
Re: (Score:2)
Actually, I think the Eclipse CDT plugin provides some amount of C++ refactoring. I know it can at least do some simple variable renaming, since I did that the other day. Not sure how much it can do beyond that, though.
Other than that, yeah, automated refactoring is just going to be much harder for C++ than for most other languages.
Re: (Score:3, Insightful)
And it is getting significantly improved code completion [msdn.com], and on-the-fly error checking [msdn.com] in 2010.
If you read the comments in that post, it looks like C++/CLI isn't supported [msdn.com] by the new, improved intellisense.
Honestly, we took to calling it "Intellinonsense" at work, given the number of times it fails to complete; you can rate it by failures per second...
Doesn't sound "abandoned" to me.
On the language front, Visual C++ in 2010 gets a bunch of C++0x features: lambdas, type inference (auto), static_assert [msdn.com], rvalue references (&&) [msdn.com], and decltype [msdn.com]. This is quite a lot, and lambdas are especially nice since they actually let you use STL algorithms as God intended without writing tons of boilerplate code for function objects.
Then also there's Parallel Patterns Library [microsoft.com], which provides STL-like algorithms with automatic parallelization.
Yes, the actual c++ compiler and library support has definitely improved. But there seems to be no corresponding improvement in the IDE's functionality. When Visual Assist X becomes a requirement for working with any kind of productivity, it's a rather
Re: (Score:2)
How do these two compare?
Re: (Score:2)
I'm probably at the "feature abuse" level, but I'm in love with LINQ, the amount of help you get from the IDE for everything is great, and it saves time like nobody's business.
I've used Eclipse for university projects until I graduated a couple years ago, and while it was good, VS 2008 blows it away (to be fair I should compare the current version of Eclipse though).
On to the dark side of the framewo
Re: (Score:2)
Yes, it has much better intellisense which is the most glaring feature because it's the one that you encounter every second whilst programming.
Makes writing code a breeze, as a fairly fast touch typist, not having to type the full variable never ever because the intellisense is generally good enough to get the right variable/function name the first time (due to the fact it narrows down not just by name, but by context) I can churn out code like no tommorrow. You can put together a full, fairly complex line
Anybody writing plugins for 3ds Max 2010... (Score:2)
Anybody writing plugins for 3ds Max 2010 will have upgraded to 2008, as you practically need 2008 to compile your code into plugins compatible with that release of 3ds Max.
That's a small market, but it serves as a demonstration that there's probably more people using 2008 - maybe not altogether by choice, as in this case - than you'd think.
Re: (Score:2)
It's funny you should bring up Maya. That's another another one that I'd haven't seen upgraded. Maya 8.0 or 8.5 is the latest we're using. There's much to be said for the "if it ain't broke, don't fix it mentality" when it comes to software upgrades. If it works fine and you've been using it for years and don't want or need the latest version, why upgrade?
Re: (Score:2, Informative)
I have all three installed - 2008, 2005, and 2003, though I mainly use 2008 these days (just have the other ones around just in case). I don't get what people like about Visual Studio. I personally like Eclipse much much better, and like using Emacs even better than that. Maybe I'm just scarred from having to use Visual Studio's awful Winforms designer. But they could do so much more for C# editing. Intellisense is good and all, but they should look at Eclipse's quick fixes and try pressing CTRL-1 and
Themes (Score:2, Interesting)
Whenever MS apps get themes, Office 2k7 for example, they get slower. I'll admit VS 2k10 does look nicer, it really does, but even my Core i7 with cheetah blood thermal compound sits there drawing slow UI. MS, please use native widgets, allow us to disable theming, or whatever it takes to make it go as fast as 2k8.
Re:Themes (Score:5, Informative)
Yes, it is slower. However, being able to put form designer on one monitor and code-view on another makes it all worth while.
Re: (Score:2)
Re: (Score:2)
Yes - you can now drag any document tab out of Visual Studio main window, just as you could to with toolwindows in earlier versions. You can also dock them to window edges, etc.
Re: (Score:3, Interesting)
Yup, but you can't dock things onto both monitors. Which is a shame, because if you could configure everything with docking and then save the settings per task it'd rock.
Imagine being able to configure the IDE for the following function with full docking:
a) Form design. Form designer with toolbox on one screen. Codebehind with solution explorer and the build/fault box on the other.
b) Object orientated development. Code window on one screen, vertically orientated widescreen, book style. Class and Soluti
Re: (Score:2)
Yup, but you can't dock things onto both monitors.
Can you clarify what you mean by "docking things onto a monitor"? Do you mean docking to screen edges?
Not just parallel (Score:5, Interesting)
ParallelFX is definitely interesting, but I'd say that another very major addition is Visual F# [wikipedia.org] - 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 [wikipedia.org] - 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.
Re: (Score:2)
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.
a) Being included in VS != mainstream. We'll see if it actually gets used by anyone (I'm betting not, but who knows, I could be wrong), and
b) Erlang, a functional language, has had quite advanced tooling (fancy IDE, GUI builder, debugger, etc) for some time now (and it wouldn't surprise me if other languages did, as well).
Bah, failboat. (Score:2)
So totally wrong on point b. As usually, I'm convolving Eiffel, the OOP language with a fancy IDE, with Erlang, the functional programming language that's focused on parallel programming... *sigh*
I stand by my first point, though. :)
Re: (Score:2)
It's already being used by some companies. The fact that you do not know about it doesn't mean that it doesn't happen - and I apologize that I can't be more specific... :)
Hah, I believe you mean *a* company. ;)
Again, we'll see... to be quite frank, I'm firmly convinced that functional programming is just far too confusing for most people, and so it'll never truly go mainstream (I can definitely see niche penetration, but that's not mainstream is it? :), regardless of the tooling and vendor support available
Re:Not just parallel (Score:4, Insightful)
Again, we'll see... to be quite frank, I'm firmly convinced that functional programming is just far too confusing for most people, and so it'll never truly go mainstream (I can definitely see niche penetration, but that's not mainstream is it? :), regardless of the tooling and vendor support available. But, hey, I could be wrong.
You're probably right regarding full-fledged FP, but FP techniques have certainly been making inroads in the last 10 years or so. First-class functions have gone from an arcane concept to something every mainstream language today has in one way or another (even Java has a castrated version of it in form of anonymous inner classes). Python, Ruby, and now C# programmers happily use map/filter/fold (or whatever it's called in their libraries) as opposed to hand-coding loops. And so on.
To that extent, it should be noted that F# is not a pure functional language a la Haskell - it has mutable locals and fields, it has strictly imperative constructs such as loops or if-without-else, it is eager and not lazy, and it has well-defined evaluation order. In practice, it can just as easily be used as "advanced C#" - exploiting its better type inference, using pattern matching as a glorified typeswitch, and simply enjoying the little bits like inline array/list/sequence generators or anonymous objects - and ignore the traditional FP patterns and approaches. When used that way, it gets really close to Scala. And, in fact, I suspect that it's how most people on .NET will use it in the end.
As an aside, F# does have one huge advantage going for it: the ability to very easily incorporate it as a component in a larger project that *is* implemented in a mainstream language. So you can write most of your app in nice, friendly C#, and use F# where its advantages really shine.
That is very true, and the F# team has stated many times that it is indeed the intended goal. It's why VS2010 doesn't come with visual UI designers for F#, for example - it can be done, but what's the point? But if I need to e.g. write a parser for my .NET project, I would very strongly consider using F# + FParsec [quanttec.com] for it - it's just so much concise, easier, and more powerful than all available C# solutions.
Re: (Score:2)
Yeah, I can definitely agree with that. But that's hardly mainstream, at least as I define it. That is, accepted by developers as a language to do primary development in (similarly, assembly isn't mainstream, even though it's sometimes integrated into larger projects written in another language (eg, C)).
Re: (Score:3, Informative)
Knowing that F# came out of Microsoft Research and that some other .NET code has been released as free software by Microsoft in the past, I was hoping that the F# compiler would be free software too. Sadly this is not the case - at least as far as the licence in fsharp.zip here is concerned; it's distributable for non-commercial use only. So while F# looks very interesting, for now it's something of a Microsoft lock-in, and I won't be adopting it because it removes the possibility of porting to Mono.
Don Syme said [gmane.org], and more recently confirmed [hubfs.net], that F# will be released under MS-PL [opensource.org] (effectively a BSDL with patent clause) for the VS2010 release - it's only "shared source" currently because it is still in beta.
Regarding C++ (Score:5, Informative)
Compatibility and conformance with standards (TR1), also going that extra step forward and implementing some of the upcoming 0x features I can truly say that since VS05 MS has gone a long way. WRT Language/IDE/Debug integration nothing comes close in the OSS world for the C++ language (and please don't say CDT, I've tried using 5 and it can't even do the simple C++ syntax properly let alone templates or even simple metaprograms).
Disappointing/sad thing with VS10 is that a lot of the interesting source code metric/analysis stuff is only available for C++\CLI. For pure C++ code metrics I've been pinning my hopes for the past 5 years on someone getting around to implementing to-do #6 of doxygen.
Fix the D@mn Help Files (Score:2)
The VS.NET help files have been Crap from the very beginning, and at least through 2008 have remained Crap to try to read and understand compared to their VS 6 predecessors. Whatever "genius" they hired to revamp the system into something more trendy should be stripped naked, dusted with itching powder, and hung out to rot!
Nice, yes, but perf issues... (Score:2)
I tried out VS2010 and found it to have some nice improvements; though nothing earth-shattering for me personally, it has some little things that are nice-to-have, and I can see how those things would improve productivity. But I had such severe performance problems I had to give up using it.
In a solution with 12 C# projects and 3 C++ projects, compiling takes around 5 minutes (took under a minute with VS2008) and hangs the UI completely for nearly the entire time. It also seems to not honor dependencies q
Anyone still using Visual Studio 6? (Score:3, Interesting)
VC6, to me, is the '57 Chevy of IDEs; it's out of date, lacking in features, isn't to everyone's tastes, but just keeps on runnin' with a strange magic that Microsoft has never been able to reproduce in its later versions. I've used every VS version since 2, and all the versions after 6 were plagued by bugginess, general slowness, and, here's the real subjective part, a feeling of fragility that I never experienced with VC6. I have used VS8 quite a bit and while I appreciate having a more up-to-date compiler (stupid BS "security warnings" aside), VC6 still, for whatever reason, remains the IDE I want to use if I have to write Windows-specific C++.
Frankly, I don't *want* to use VC6, just like I don't want to put a bottle of lead-substitute into my gas tank every time I fill up, it's just that it has that perfect mix of speed, usefulness, and the ability to get out of my way that none of the .net versions have been able to capture.
Re: (Score:2)
I don't have any particular feelings about that tool... Just as I don't have about any other. I always use whatever fits the task, what I know the best, what I'm comfortable with. It's usually Emacs nowadays... It was VS6 back in the day because I was a clueless newbie, that is what I had at hand, and what has worked for me.
Re: (Score:2)
VC6, to me, is the '57 Chevy of IDEs; it's out of date, lacking in features, isn't to everyone's tastes, but just keeps on runnin' with a strange magic that Microsoft has never been able to reproduce in its later versions.
Sufficiently advanced magic is not easily reproducible, even by those who have originally made it. ~
Re: (Score:2)
Where I work we have 2 small file processing apps that were written in VB6. They are slated to be converted/upgraded/made obsolete at some point, but new features keep taking precedence over changing the 2 working apps.
Re: (Score:2)
Doesn't impress me... (Score:2)
I gave VS 2010 a try on several machines.
If you have an SSD, it's fine, if a little sluggish, especially the more complex designers like the Entity Framework stuff.
On a harddrive, it's almost unusable, it just churns and churns and churns for what seems like hours. Previously, serious developers needed a big monitor and lots of RAM. Now it's a big monitor, lots of RAM, and an SSD.
Still, the new WPF editor has promise, I like the subtle gradient shading and transparency effects. I think it's a beta issue, bu
Re: (Score:2)
If you have an SSD, it's fine, if a little sluggish, especially the more complex designers like the Entity Framework stuff.
On a harddrive, it's almost unusable, it just churns and churns and churns for what seems like hours. Previously, serious developers needed a big monitor and lots of RAM. Now it's a big monitor, lots of RAM, and an SSD.
No trying to be a troll or something, but i think a ssd its a hard drive...
Re: (Score:2)
I think the technical term is 'mass storage device', which encompasses both hard drives and SSDs. Even the term "Solid State Drive" is a bit silly, as there is no "drive" (motor). It's really a Solid State Mass Storage Device, but I guess SSMSD just doesn't roll off the tongue. 8)
Did they fix that bug (Score:2)
native ANSI C/C++ support .... (Score:5, Insightful)
Doesn't exist in Visual Studio anymore without some tweaks. If your program targets multiple platforms beyond Microsoft your in for a few headaches.
I wonder if Martin Heller used the VS10 compiler for cross platform Wx/Gtk/Qt development (Check Audacity out). I (or someone) should do this in a future slasdot review.
The OpenWatcom, g++, and Intel compilers are a much better solution if your targeting multiple platforms (ARM, Mac, Power5, Mainframes, cellphones etc.) I use VS6 and GCC, but your mileage may vary.
I appreciate the fact that Microsoft is pushing for VS studio C#/.Net acceptance. As of today, that solution is just as slow and portable as Java is/was ten years ago. For some strange reason I refuse to write a program that takes twenty to thirty megabytes of RAM to run when it should only take two. Why? Because that RAM belongs to the user and the other programs they may be running, not me. Waste not, want not. If you can do it faster and for less RAM in a different language then you owe your users to do so.
And no, I've never written a C/C++ program that was un-secure (yet), thanks for asking. And yes, I like C#/Java programming, I just have deployment issues that I've never recovered from.
My opinion or experiences may not be yours.
Enjoy,
Does it work for C++? (Score:2)
I tried it out with one of the smaller C++ projects we've got at work, and I couldn't get it either to compile or put out useful error messages. I had a similar problem with a C# project. I'm particularly interested in C++. Has anybody gotten it to work converting a VS 2008 project?
One blogger noted that it wouldn't compile the standard "Hello, world!" program without fiddling with the properties. Apparently, it didn't like having a main() function, and wanted something like _tmain(). That should be
Re: (Score:2)
One blogger noted that it wouldn't compile the standard "Hello, world!" program without fiddling with the properties. Apparently, it didn't like having a main() function, and wanted something like _tmain(). That should be fixed by the next available version.
Probably, since this doesn't happen in the 2008 version. It can be fixed by making an empty project instead of a Win32 Console one, I think.
Re: (Score:3, Funny)
So what does it do then, exactly??
But the biggest enhancements have to do with parallel programming,
It means: developers, developers, developers, developers.
Re:oh (Score:5, Funny)
No, like this:
developers
developers
developers
developers
deverlopee
elsdeverlpr
opesdeveos
Or something like that. Threading is hard! :)
Re: (Score:2)
It's not THAT hard:
developers! developers! developers! developers!
developers! developers! developers! developers!
developers! developers! developers! developers!
developers! developers! developers! developers!
developers! developers! developers! developers!
developers! developers! developers! developers!
See? You can easily split that between four cores.
Re: (Score:2)
Traditional non-web programming for the desktop/laptop (that is, not a resource-constrained mobile device or embedded system) environment?
Re: (Score:2)
It can also do web development using "standard asp.net", just not using the MVC framework which was new in .Net 3.5.
Top 3 features (Score:5, Informative)
Quite a bit actually. Personally for me, the top 3 features are:
Apart from the above it includes a completely new intellisense [msdn.com] for C++, using the EDG frontend. All this in addition to the usual .Net stuff.
Re:Top 3 features (Score:4, Informative)
I personally would have liked Haskell though :(
I'm sure it's possible to get Haskell running on .NET (in fact, rumor it is that it's what they were trying to do before switching to F#). The problem is that if you implement it using the existing CLR, you'll have to build your own framework for Haskell genericity and typeclasses, since CLR is not powerful enough on its own - and then your Haskell code will only be usable from other Haskell code. On the other hand, F# has the advantage that all its constructs are reasonably accessible from other .NET languages.
That said, typeclasses on CLR level sure would be cool. And I recall Don Syme said something about them being a possible addition to F# 2.0, so who knows...
Re:Yay! (Score:5, Insightful)
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.
This makes me warm and fuzzy inside.
Re: (Score:2, Insightful)
obj.GetSomething().Append(item) in about four keystrokes.
I believe that should be:
System.Csharp.Adding.Namespace.Collections.Stuff.Object.Manipulation obj;
obj.GetSomething().Append(item);
You *need* an IDE that allows code completion, or no-one be able to write more than 7 lines of code a day.
Re: (Score:2)
Re: (Score:3, Insightful)
If someone hasn't gotten the hang of the 'using' keyword, then they probably shouldn't be writing more than 7 lines of code a day.
Re: (Score:2)
Not only that, in his example, you'd probably be able to type "Manipulation obj;" on the first line, and Visual Studio will ask you if you want to add a "using System.Csharp.Adding.Namespace.Collections.Stuff.Object" line up top, or if you want to prepend "System.Csharp.Adding.Namespace.Collections.Stuff.Object." to "Manipulation".
Re: (Score:2)
No, that's just vanilla VS2008 for C#.
Re:Yay! (Score:5, Insightful)
No, what you need is a sane programming language/technique.
Re: (Score:3, Informative)
Apparently you need to go and read a book on namespaces.
You can use namespaces that horribly badly in other languages too including Java and C++ if you really want to, but any professional programmer should be at a level where they're not that bad at it.
Re:Yay! [Bloat-A-Matic] (Score:2)
No kidding. Something has happened to our programming languages to make them more verbose than COBOL even. We've simply automated the verbosity with auto-guess IDE's instead of simplifying our languages and libraries. It's as if we are paid in volume alone.
NORMAL
print(a + b);
BLOATED
am = new math.ArithmeticManager();
opA = new math.Operand((float) a);
opB = new math.Operand((float) b);
am.addOperand(opA);
am.addOperand(opB)
Re: (Score:2)
Ah, yes, the "Manager" un-pattern.
Used by programmers who what a thing that sort of, you know, manages, their code. Like an interface, or factory, or facade, or adapter, or something like that. You know, like a manager.
Re: (Score:2)
Insensitive Clod (Score:2)
Re: (Score:2)
And it's FAR more accurate in Visual C++ 2010 too.
This was earlier a problem with code complexity and the peculiarities of the C++ language, but the system has been rewritten and I believe is now based on what the compiler itself will have as its "impression" of the code.
Re:Yay! (Score:5, 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.
Re: (Score:3, Interesting)
I would concur that when it comes to code completion and refactoring, IntelliJ IDEA still beats everyone, and NetBeans and Eclipse generally beat VS when you compare apples to apples (i.e. Java to C#). You can get to roughly the same level if you add ReSharper (which isn't exactly surprising, as it's made by the same guys who make IDEA), but that's extra $$$ ...
On the other hand, Visual C++ still has the most reliable C++ code completion of all IDEs that I've seen, and it's got even better in VS2010.
Re: (Score:2)
I tried Resharper, but I think the VS add-in model wasn't really flexible enough to support the level of integration the IntelliJ guys were trying to achieve, so it was always flaky for me. It kept misbehaving, the graphics was sometimes glitchy, etc...
I doubt it's IntelliJ's fault, all of their products are top-notch.
I hope VS 2010 either improves massively in subsequent betas, or that it'll be flexible enough for a third-party plugin to fix all the gaps.
Re: (Score:2)
I hope VS 2010 either improves massively in subsequent betas, or that it'll be flexible enough for a third-party plugin to fix all the gaps.
The editor in VS2010 is brand new, and it has a much more sane and powerful extensibility model. I do not know enough about the details, so I couldn't say if it's good enough to "smooth out" Resharper, but there's definite hope.
Re: (Score:3, Informative)
I don't know what you're doing with it then, but as someone paid to write C++ all day every day with VS2008, I can hand on heart say that the C++ code completion in VS2008 is fucking awful. It kills my dual core CPU updating the intellisense database frequently (ok, I'm working on a large project made up of about 140 modules), then fails to find globals and class membe
Re: (Score:2)
Re: (Score:3, Informative)
try Resharper. It'll fix that code completion for you, and do tons of more useful stuff.
Re: (Score:2, Funny)
May I interest you in a truly advanced OS/Environment/Editor?
Or do you lack the skills necessary to make the machine obey your every whim?
oblig: http://xkcd.com/378/ [xkcd.com]
Re: (Score:2)
Could you also tell us how many other IDEs are you proficient with. Otherwise your statement doesn't mean much.
I often hear things like that from people who only ever used VS, and who would not be able to write the code without it to begin with. If you gave them plain text editor and asked them to write code to do something simple they would start crying, or leave immediately if you did that in an interview.
Re: (Score:2)
Re: (Score:2)
Yeah man, I'm also too cool to use Visual Studio. I write all my code using a sword. I'm a bad ass.
Re:Let me get this out of the way... (Score:4, Insightful)
If you think that writing software in Visual Studio consists of "point and click programming" then you haven't used it enough to have a valid opinion, or at all.
Re:I tried it, not impressed. (Score:5, Informative)
I heavily use both Visual Studio 2005 and 2008, so I was excited to use 2010. The thing I found most obnoxious about it was the the text in the code editor was blurry at normal font settings (Consolas 10pt). Let me restate that. The text in the primary window of the software that you will be staring at for hours daily... is blurry. How on earth did that get past QA?
Section 2.4.2.2 of the Readme [microsoft.com] describes why the code can appear blurry:
You can also take a look at this white paper [windowsclient.net] for more information on the issue.
The ClearType Tuner PowerToy [microsoft.com] can also help. If you are running Windows 7, it's built into the control panel.
Re:I tried it, not impressed. (Score:4, Informative)
Sadly the real problem is that it uses Windows Presentation Foundation, which renders text in an idealized grid rather than snapping glyphs to a pixel grid. In other words it renders the font exactly as it is supposed to look, and then blends this into the pixel grid, which makes it appear blurry. GDI, on the other hand, will deform the glyphs to fit them into the pixel grid thus offering better readability at the expense of accuracy.
WPF can't render aliased text either, which some people prefer, and also has a silly text animation system that will wait a second before doing the blending meaning (to prevent scrolling artifacts) so that if you scroll fast you'll initially get really blurry text that gradually turns somewhat clearer.
These are well-known problems with WPF, and has always been pushed as "by design" even though it results in horrible text. Microsoft seems to have changed their tune lately and will apparently be adressing the problem in .NET 4. I suspect the reason is because VS 2010 now uses it and the poor text quality was just not acceptable for an application like that.
Messing with the ClearType settings in Windows doesn't really help much, as WPF's renderer is completely separate.
WPF is just a big mess really, and far too complex. I'm all for a new GUI toolkit (even though it's .NET-based), but WPF just isn't it.
WPF is an abortion. (Score:2)
WPF being in .NET essentially means that native development on Windows is dead.
Re:I tried it, not impressed. (Score:5, Informative)
The ClearType Tuner PowerToy [microsoft.com] can also help.
It will not, since it only tunes Windows's built-in ClearType renderer. Visual Studio uses WPF, which has its own renderer. There isn't really anything you can do to make it better.
That said, the blurriness is recognized as a problem [microsoft.com], and will be fixed for 2010:
We are replacing WPF's text rendering stack in WPF 4.0, and this should allow you to render text with comparable sharpness to what you're used to with GDI. The reason the existing text stack in WPF looks blurrier than GDI's is that GDI text is typically rendered with Compatible Width Layout, whereas WPF's existing text stack always uses Ideal Width Layout. Compatible Width Layout snaps glyphs to pixel boundaries, Ideal Width does not, which is why WPF's text looks blurrier than GDI's. WPF's existing text stack also does not support use of the embedded bitmaps that are included in many fonts and are intended to be used when rendering at smaller sizes.
The new text stack in WPF 4.0 will allow Compatible Width Layout, and it will also support embedded font bitmaps. We believe this will solve all of our text blurriness issues.
Thanks!
-The WPF Graphics Team
It just didn't get into beta 1 yet.
Re:Whatever. (Score:5, Informative)
Re:Whatever. (Score:4, Informative)
And just to reiterate... it's been free (as in beer) for years!!!
Bill
Re: (Score:2, Informative)
Actually Visual Studio is one of top developer platforms and is used for just about anything you can imagine on a regular basis.
Re: (Score:2)
I find UNIX terminal is the best IDE and developer platform ever created and never duplicated
"UNIX terminal"? Like, using cat/sed/awk to edit files?
If you actually mean Vim or Emacs, then say so (because, among other things, they aren't tied to Unix shell - I can happily use Vim, even in console mode, together with PowerShell on Windows).
Re: (Score:2)
vi is considered standard UNIX tool. These days most UNIX flavors use VIM as standard vi.
But there is more to software development than just editing text files (even thought it's the one thing we spend most time doing).
But I'm talking about the integrated part of it. UNIX was designed by programmers for programmers. It does have a steep learning curve but in my opinion is worth it. Once you get proficient it's hard to match with anything else.
Re: (Score:2)
"worst than most of the ones that come free."
Such as?
Re: (Score:3, Funny)