Windows 7 is roaring ahead in acceptance, but look beyond the desktop and Microsoft's platform is not in great shape. Microsoft is losing to Apple, Google and RIM on mobile, in cloud computing Azure is only just getting started, Internet Explorer is down to a mere 61 per cent market share on browsers, and there's been a slow but …
Am I missing something?
"If you use multiple displays, the ability to float windows from one display to another is almost worth the upgrade in itself."
What exactly is so special about that? Can't you do that already? I can on Linux/Gnome anyway.
Or I parsing that sentence incorrectly?
Your question has merit, sir
I use multiple displays with vs2008 and I too can put windows anywhere I want. In fact my standard config has all but the editor on my second monitor. I've been doing that since vs2005 actually.
You can move most windows around in VS2008, but not the code windows. VS2010 lets you have two classes open side by side etc.
Multiple code windows
In VS2008 (or at least VC# Express Edition), switching Window Layout (Tools>Options>Environment>General) from "Tabbed documents" to "Multiple documents" lets you move the source code window and open additional ones, view the source code and form designer windows at the same time, etc...
So it WILL be possible to develop for mobile from it? Do you know when this feature might be available?
Re: Mobile Development
MS already give away Visual Studio 2010 Express for Windows Phone (or whatever it's called) for free with the Windows Phone 7 SDK and Emulator. What more do you want?
"If you use multiple displays, the ability to float windows from one display to another is almost worth the upgrade in itself."
Eh? I've just got VS2008 and I can undock all the palettes and move them around just like I do in NetBeans. Or do you mean the main code/form editor panels?
The real question though..
..is it still clunky and slow? Are various dialogs (such as build events) still not remembering the size you set them to? Are various drop-downs in C++ program options still not updating their history lists correctly?
In short - is the user experience still unpleasant?
Just because it's a developer tool doesn't mean that they are excused from basic user friendly ammenities.
Re: Is it chunky and slow?
In short: Yes.
I had to upgrade to a 6 GB RAM machine with quad core CPU and still it is somewhat sluggish. There's just so many features that it is bound to be. I'm using the ultimate edition. The WPF designer is as slow as fuck, in particular. Starting to think I will jump ship (back to Java) when it gets to version 7. MS managed to bloat their stuff so much that they are in parity right now.
"Microsoft is losing to Apple, Google and RIM on mobile, in cloud computing Azure is only just getting started, Internet Explorer is down to a mere 61 per cent market share on browsers, and there's been a slow but steady decline in web servers for Internet Information Server (IIS) from around 20 per cent of the million busiest sites in September 2008 to 17 per cent in March 2010.
In Rich Internet Applications, the Silverlight runtime has muscled its way onto over 50 per cent of web browsers but remains well behind Adobe Systems' Flash at over 96 per cent."
So tired of hearing things like this - it's 2010!!! There are hundreds more competitors in software markets - it is obvious Microsoft are going to lose market share!!
The rest of the article was good but i don't think journalists need to keep hi-lighting the fact that Microsoft aren't the complete global dominator they once were (although, they actually still are as long as the stats stay over 50% ;)
Microsoft Office is still a goldmine. 99.9% of new PCs ship with an MS O/S and companies (like Dell) only offer really low price reductions if you don't want an O/S. No large corporation I know of has abandoned MS Office for any other product (e.g. Open Office).
When I see one large organisation (apart from Apple) that doesn't have a PC with a Microsoft Windows O/S as the standard I'll agree that Microsoft are on a downward spiral.
F# - now that was interesting (and I thought it was just a research project, not for the mainstream)...
The inclusion of F# is in and of itself another interesting development that shows the pressure that's been building on MS. It's in functional programming that we find the fundamental concepts that made Google search so successful. If MS have picked up on this and begun to push in the same direction, then that's yet another good sign of how they might be moving out of their complacency and into the very nasty competitive mode that occasionally makes them produce wtfawxsome products…
And again no mention of code generation.
Amidst all the ooing and ahing over the newest eye candy, it would be nice to get at least the barest inkling of how this program does at its intended purpose: creation of Windows executables.
How big are the binaries relative to VS2008? Relative to VS2005? What instruction sets (remember those?) are supported by the compiler? Can post-SSE2 instructions be automatically generated in the binaries or are explicit intrinsic functions still needed? What is the relative performance of a VS2010 binary compared with the same C/C++ source compiled by VS2008 or VS2005?
Pffftt!! Some tech site.
RE: Code Gen
Surely that's a feature of the .NET 4.0 SDK and therefore completely irrelevant in a discussion about VS2010?
Not unless they've dropped C/C++ support
Not unless they've dropped C/C++ support completely...
@swsnyder: “Code gen”
I totally agree about the code generation. I think its part of a more general problem with their thinking and priorities. Microsoft are not focused on the core basic requirements of programming, they are too busy off dreaming of ever more shiny shiny bell and whistle features (all this eye candy you mention). They could (and should) make core basic functionally so much better than it is currently.
For example, one of the biggest jobs is simply writing and maintaining code. Therefore refactoring tools can give a huge productivity boost. (Refactoring tools for Java coding are a joy to use and its a real downer and sense of loss to have to go back to suffering poor refactoring tools when coding in C++ by comparison). (Most of my work has been in C++ so back before I experienced how good refactoring tools can be, I didn't know what I was missing. But since I learned the joys of refactoring I've waited years for Microsoft to catch up and they still don't).
Surely a primary research and development goal for Microsoft should be to make C++ refactoring so much better that programmers experience a huge productivity boost. Microsoft should be researching next generation refactoring tools, not dragging years behind in their support for it.
So in this regard VS2010 is a huge disappointment and another lost opportunity to make it so much better.
I haven't tried it yet but from the many many videos I have watched of VS, from PDC/MIX and various tutorials, it certainly seems to be a lot speedier.
They have also made the 'Add Reference' dialog asynchronous, so no more waiting 10 years for it to pick up every .Net and COM assembly on your machine before it will let you do anything. This has historically been my biggest bugbear with VS, so I am glad to see it finally sorted.
Yeah, I heard about the reference dialog improvement and that will certainly remove a significant headache.
But my problem with vs2008 (and its predecessor) is just that they are unpleasant to use. It often feels like someone (probably a VS expert) knocked up the dialog in order to give access to the functionality but didn't bother to run it through user testing. That leaves all sorts of pitfalls and gotchas for the less wary. Okay so they are rarely fatal but they can waste a lot of time in general 'faffing' around and cause stress that isn't directly related to the job in hand.
The analogy I often use is that of a racing driver. They spend weeks preparing for an event, studying the circuit, testing how the car responds, examining telemetry second by second and viewing hours of footage from previous events. On race day they approach the car all psyched up ready to grapple with the intricacies of the race - and discover that someone has forgotten to bring the seat.
It's that kind of pointless, time wasting idiocy that gets right up my nose with vs2008. Lots of silly loose ends that - IMO - the IDE should quietly and efficiently sort out for you. Instead it keeps dropping them in your path and tripping you up.
Where's the dissection?
This just seems to be a parsing of the marketing digest. i was hoping for some in-depth analysis of the features comparative to VS2008...
Developer productivity featurs?
What about navigation, code analysis and refactoring? Are they still awkward, slow and unreliable?
Did I really read that? Are you actually complaining that silverlight 4 isn't included despite the fact that you then go on to say that it's not available till the 14th...
How about the real basics, such as search? Have they caught up with Eclipse by allowing you to limit searches to declarations of methods/properties or writes of fields/variables/properties?
Does it still...
* ...crash 50% of the time when opening an XAML file?
* ...leak memory like a sieve?
* ...regularly corrupt the screen with random pixels?
* ...feel like molasses on a cold day when working?
Just a quick thought on XAML files:
Right Click -> Open With... and set Source Code (Text) Editor as the default.
Having spent the last 3 weeks writing a WPF app in VS2010 RC I've not had a single crash with XAML files, Memory has been known to be sucked up a bit (I had one VS2010 process on 650MB at one point) but overall it's been fine, much more pleasant to code in than its predecessors.
The most amusing part of the article would have to be:
"""Internet Explorer is down to a mere 61 per cent market share"""
"""Silverlight runtime has muscled its way onto over 50 per cent of web browsers"""
So MS hasn't even managed to get all of their own browsers running their own framework. Nifty.
"Nice package, shame about the platform"
Nice tagline. It's not like any of us need to be told again that Windows sucks.
What's wrong with the platform?
Windows 7 rocks. All of the people I know that have had problems with Windows 7 have been third party driver related. As for Eclipse vs. VS, no contest, VS wins hands down in some many other areas.
Windows 7 does rock
hmm never thought I'd say that. :-)
But Visual Studio wins over Eclipse in surprisingly few areas - the native debugger being one that comes immediately to mind. The MS Compiler is usually pretty tight with good compile times too.
Eclipse is such a mammoth project that it is a whole platform unto itself and a direct comparison with VS is kinda lame anyway. Eclipse gets a lot of somewhat justified stick for being a resource-hog and a bit slow, but if the betas of VS2010 were anything to go by, it's got some competition in that department.
Just for spite - VS loses out 100% to Eclipse in coding any language targeting anything but windows, from embedded systems up to big-iron. It even loses out ON windows for the likes of Adobe Flex, PHP, enterprise Java, etc.
How the heck does F# follow C#? This makes no sense!!
...Everyone knows the next one after C# is supposed to be G#.
Visual Studio 2008
..is clearly the best C++ IDE that mankind knows of. Only aliens might have something better.
Linux, Solaris and MacOS do not having anything comparable, at least for C++. And please don't tell me that Eclipse can do that for C++. C++ tooling feels like a rectal cancer check.
What I do not like is that MS apparently got infected by the Managed Language Disease and have decided to implement VS2010 in .Net.
Java and .Net are probably responsible for the operation of more than one Gigawatt-class power station, which could be spared by just using something more efficient. Like this:
It's BSD licensed and quite useable now. You have to break pointer cycles, though.
The Delphi-knockoff Lazarus (open source !) is also noteable.
Code::Blocks works very well for me on Linux - the feature set may not look like a phone book but is quite respectable and helps me get the job done without my wishing for more:
I am really tired of hearing people assert that VS is the best IDE ever. I have used it extensively to develop C++ libraries on Windows platforms and I still remember having to hack something into the code to get memory leak backtraces? Xcode does that better with Instruments. Another thing, does VS allow to use multiple cores to build several objects concurrently _without_ having to split the solution into several projects? Xcode will use 2 cores if you have 2 cpp files in a single project. Does VS integrate with SVN without external tools? Can I use LLVM with VS? What is the load time for a 200+ source file project compared to Xcode?
As much as I hate iPhone app development, Apple just gets things right, whether it's for the end user or the developer.
I now have 5 versions of the .Net Framework installed - 2.0 SP2, 3.0 SP2, 3.5 SP1, 4 Client Profile, 4 Extended. This is getting silly!
Aren't we missing something?
I click on an article about Visual Studio 2010 and there are no pictures of Dawn French?
Yeah, the trenchcoat's mine, fnar fnar.
...symbolizes the size requirements of VS2010. I like that.
"Linux, Solaris and MacOS do not having anything comparable, at least for C++. And please don't tell me that Eclipse can do that for C++. C++ tooling feels like a rectal cancer check."
Who needs Eclipse? vi, gdb and the command line have worked fine for me even when I was developing back end trading servers at banks, IDEs bring nothing to the table and just get in the way of what I want to do. If you're the sort of programmer who needs an IDE to be productive then you're a half witted moron who shouldn't be let within a mile of a compiler but just left in your playpen with a copy of VB6 to drool over.
It is just very productive to inspect a data structure recursively with VS2008. Much faster than gdb's print. Or navigate code with the right-click menu.
When the program does what I want I build it on Linux and just verify all is Ok.
But I guess real programmers like you never debug programs - you write correct stuff on the first attempt, right ?
..is also a great tool of Linux which I use after debugging some functionality on Windows. Using both Windows and Linux is probably the best approach to C development.
"When the program does what I want I build it on Linux and just verify all is Ok."
Yeah , sure. What programs do you write, variations on Hello World? Because any sophisticated C/C++ app will require a boatload of #ifdefs in the code to compile on the 2 separate platforms unless you're using some library like Boost to do everything for you , but even then its unlikely to be completely portable in all situations.
"Using both Windows and Linux is probably the best approach to C development."
Riiiight. So I want to code on linux using a multiprocess approach communicating via pipes or shared memory and utility exec'ing using master slave pty control. Then I need to port it to Windows. That'll be fun.
It is actually possible to write programs that easily port from Windows to POSIX and the other way around.
Just refrain from using something platform-specific or encapsulate that in a wrapper lib.
12k lines of code, a compiler/translator, very fast:
I concede that compilers are especially easy, but nearly everything else can be platform-agnostic, too. There are GUI libs around and shared memory can be wrapped in a library. Windows or Domain Sockets aren't required often, so you can use TCP sockets.
If you need them for some reason, build a wrapper around it.
Same with locking/multithreading.
Another approach is cygwin, but that probably does not nicely integrate with VS.
Nobody forces you to use platform-specific APIs directly !
"If you need them for some reason, build a wrapper around it."
Which brings us back to code with #ifdefs
"Nobody forces you to use platform-specific APIs directly "
You're missing the point - I want to use the Unix API. Its fast , doesn't rely on 3rd party libraries being installed and is usually more flexible.
Show me a portable version of fork() for starters. Even after 20 years Windows still can't do it properly.
I forgot to mention that I contributed to an Object Request Broker platform a couple of years ago which ran on WNT, Solaris, AIX, HPUX and even MVS/OE. Some guys privately made a BeOS port...
We had all in nice wrapper libs (for Sockets, Mutexes, Shared Mem, Files etc) that were properly tested. No big deal whatsoever. Just that compilers had different levels of strictness about minor issues. The MS compiler was normally better than gcc in its warnings.
We did not use SourceSafe, but CVS. A very good choice.
Currently I suggest:
* VS2008 as debugger/IDE
* subversion for source control
* valgrind as memory checker
* cygwin as the shell/file tools
Of course pure Win or pure POSIX setups can be used, too. But one can get portability at low cost, so if customers demand it, one can easily do that.
""If you need them for some reason, build a wrapper around it."
Which brings us back to code with #ifdefs"
Indeed you will have a small number of #ifdefs in those libraries. So for example, your File API Wrapper might introduce 10 #ifdefs. There is indeed *some* effort related to that. But you certainly do not look daily at those #ifdefs, because you have debugged your wrappers once and they are realiable now.
You do *not* have #ifdefs scattered around your "main" body of code. Instead you will use the Wrapper classes at lots of places.
Regarding fork() - this is an issue because Windows/NT and all of its descendants do not have a proper replacement for that functionality, as far as I know. No way to inherit file handles and so on.
But the modern way of application architecture uses threads, anyway. So this example is a bit of odd.
If you start with a new software design you can normally limit yourself to using the subset of features you can reliably use on several operating systems, including windows/NT-type, POSIX and probably also zOS and VMS.
Porting a legay POSIX app to Windows is probably a bad idea, though.
And I also stick to the idea that windows/VS2008 is a great debugging platform and Linux should be used for valgrind and svn server.
Our code base, which compiles cleanly at maximum warning levels, on both GCC and VS2005SP1 causes internal compiler errors on VS2010 in template code.
It also buggers up some of the properties macros ($OutDir at least) when you import old projects so you have to tweak them to get it to compile in the first place.
It may have lots of new wizz-bang features, but if it can't compile C++ code properly I think we'll be sticking with VS2005 for a while yet, so that's 100 licences they won't be selling here.
This was the release trial by the way, not the beta.
Besides saving license cost on VS2010, you will also save costs on new RAM or a completely new PC (Because it does not accept more RAM).
MS decided to go the .Net route this time, and that means highly inefficient RAM use.
VS2008 is pretty good, though. Still done in C++.
DLR is not a feature
Quick correction - Dynamic Language Runtime is not a feature, it's what's commonly referred to as 'a big mistake'. It's been introduced to allow for the porting over of IronPython and IronRuby but will only end up promoting worst practices. Anyone remember variants? :)
Author sums things up pretty well with this sentence: "There is no shortage of new features, so much so that Microsoft itself has done a poor job of communicating the extent of the changes. " (hence the want for babies...)
Something I used quite a bit in VS2008 is Refactor - Promote Local Variable to a Parameter. Sadly, that feature seems to have been dropped from VS2010.
I've sat in on a few Gold Partner sessions and found them a bit lacking. There's simply no practical examples of the new features. When the presenter starts talking about the Start page and how you can hide it then you really wonder why you're bothering sitting through the presentation.
Moving on, at times I think there's great ideas and developers at Redmond, they're just managed by complete idiots. After all, who else would withdraw free mobile development tools only to reinstate them due to the success of the iPhone.
That's why UNIX is a Windows programmers best friend. UNIX is a text processing environment. Windows - you need an inflexible GUI app for every little thing.