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."
Visual Studio is the best!
Seriously.
The same thing all MS software does of course...
So then nothing!
So what does it do then, exactly??
But the biggest enhancements have to do with parallel programming,
It means: developers, developers, developers, developers.
Disclaimer: I am not god.
We may not be created equal
But we can be treated equal.
No, like this:
developers
developers
developers
developers
deverlopee
elsdeverlpr
opesdeveos
Or something like that. Threading is hard! :)
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')?
Traditional non-web programming for the desktop/laptop (that is, not a resource-constrained mobile device or embedded system) environment?
Heck no one I've worked with has even upgraded to 2008 yet, it's been either VS 2005 or 2003.
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?
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.
I have used Visual Studio and got bored with it. Point & Click programming isn't cool.
Where is my +1 gross button, cause that deserves it
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.
virgin
it is just needed like everything else.
I have used Slashdot and got bored with it. Cut and paste trolling isn't cool.
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.
Arash Partow's Philosophy: Be a person who knows what they don't know, and not a person who doesn't know.
For a living i've to code in .net & windows(well, there's some legacy in unix servers too but that's another story), and let me tell you: Visual Studio is awesome, i lets you develop some quick and dirty apps just easy, the intellisense feature and the forms designer are some of the best out there(yeah, i know, there's netbeans and qt designer, but francally, the netbeans designer, aka matisse has it's issues, the qt counterpart don't know much), but nothing that i know beats Vs.
Slashdot ya no es que lo era!
I wish they'd fix the d@mn VS help files. Visual Studio 5/6 had easy to read, easy to use help file system that reached its end with the MSDN Library of October 2001.
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!
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
I use it and I actually write code. Of course I happen to prefer a fun, eclectic mix of XSLT, jquery, and ASP.Net. To be honest, I get a little gleeful when I crack open a new XSL stylesheet.
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 quite right, because compiling a second time with changes in only one project without downstream dependencies still takes nearly as long.
I sincerely hope Microsoft invests some more effort in the performance side of things prior to RTM, if they do, I'll be happy to upgrade.
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.
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.
First Look?
Hello and welcome to 8 months ago.
Threading isn't actually that difficult. It's remarkably easy splitting a task up into bits that run in different threads, or even on different cores.
The challenge is in syncing the cores up afterwards. If one core has to wait, or finishes after an unpredictably long time, that can really mess things up, since then one or more cores may be waiting idle rather than doing anything...
The solution to that is to find a way to predict how long something will take. (One company did that with that extra RISC SLI chip on certain boards, which improves SLI efficiency)
The easiest(read: slacker) way to do it is just completely branch off separate tasks. (Ex: Run all sound or graphics processing on separate cores. The cores won't be taxed heavily, but since the tasks are usually unrelated, there's no syncing involved when they're done; they just sit idle, and when the pyshics or game logic is done being processed, they get a new frame/data to work with.) This is actually what Supreme Commander did. On a quad core, most of the cores are only loaded about 40%, with the main core loaded 100%. It tries to split pathfinding and physics up, but all the rendering is apparently still on the main core.
It can also do web development using "standard asp.net", just not using the MVC framework which was new in .Net 3.5.
Quite a bit actually. Personally for me, the top 3 features are:
Apart from the above it includes a completely new intellisense for C++, using the EDG frontend. All this in addition to the usual .Net stuff.
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.
Yeah man, I'm also too cool to use Visual Studio. I write all my code using a sword. I'm a bad ass.
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. :)
Allow me to introduce you too... http://www.microsoft.com/Express/ There will be VS2010 versions. It's not the high-end dev environment, but it does quite a bit.
Sorry about the mess.
right next to the "I'm a fag" button.
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.
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, but I did notice that when you switch to a new editor window, the text is blurred for about a tenth of a second, then jumps into focus. This is probably a bug in the pixel-snapping they're using, but for a while I thought my eyes were going.
I have seen demos that show that writing a plugin using C# and WPF is now incredibly trivial, so that's interesting, but won't be useful to 90% of the developers out there.
However, most of the rest of the changes appear to be cosmetic.
The new APIs in the 4.0 .NET framework don't impress me at all. The parallel library is a JOKE compared to the Oswego parallel programming library that SUN merged into Java. Microsoft has a bunch of webpages on how "multi core is the future", and "programmers have to start doing threads", but they won't do anything other than the absolute minimum to help the programmers with what is a VERY difficult task. Any decent parallel library is going to need a bag of tools like a "lock free queue", with various queuing styles such as FIFO, LIFO, priority, fixed-length, arbitrary length, and all of them have to have the same interface. Java has had this for YEARS now. Where's my abstract "Executor" interface with a bunch of standard implementations like "immediate, background-thread, thread-pool, asynchronous call, Dispatcher call, etc..."?
Microsoft talks a lot about 'functional' programming, but that's implemented in a half-assed way as well. For example, take the SortedDicitonary<T> class. Looks useful, right? Now try to enumerate all of the values in a certain key range, without having to enumerate the entire container. You can't, because Microsoft forgot that they need to provide a 'range query' method that takes a comparator function, something like:
IEnumerable<KeyValuePair<KeyT,ValueT>> RangeQuery(Func<int, keyT> rangeTest) ...
My biggest gripe is that the Entity Framework GUI designer is STILL a joke. It has a longer list of unsupported features than supported features. It's meant to be a time-saving feature, yet I have to write not one, but THREE mapping files, in XML, by hand, with no tab-complete. Can you FEEL the efficiency? I know I can! And it still doesn't support foreign keys with multiple columns. In general, it can't map to about 50% of the existing schemas out there because of some technical limitation or other.
I write code on sticky notes, tape them together, scan them in, OCR, email it to my machine with my dev environment and then use a hex editor to manual compile it. I WIN!!!
Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
And just to reiterate... it's been free (as in beer) for years!!!
Bill
It's my Sig and you can't have it. Mine! All Mine!
Actually Visual Studio is one of top developer platforms and is used for just about anything you can imagine on a regular basis.
"worst than most of the ones that come free."
Such as?
...where VS Rots the Mind?
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
I find UNIX terminal is the best IDE and developer platform ever created and never duplicated, widely used for just about anything on a regular basis.
As the island of our knowledge grows, so does the shore of our ignorance.
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,
It's just the normal noises in here.
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).
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.
This is my sig.
WPF being in .NET essentially means that native development on Windows is dead.
This is my sig.
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.
As the island of our knowledge grows, so does the shore of our ignorance.
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);
am.operator = new math.operators.Addition();
am.executeMathOperation();
system.io.output.print(am.mathOperationResult());
Table-ized A.I.
Emacs and Vim work best when paired with a real Unix environment, I know because I can't stand VS and use mingw/msys with Emacs and Console2 when I'm forced to develop in Windows.
US-UK-Israel: The real Axis of Evil
I also believe that VS2010 Beta doesn't support the Silverlight 3 or RIA Services release that is out just yet.
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 fixed by the next available version.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Java 7 will have something very similar, called the fork/join framework: http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-5515&yr=2008&track=javase Doug Lea also offers a preliminary package for Java 6 that can be downloaded from here: http://gee.cs.oswego.edu/dl/concurrency-interest/
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.
Main competitor KDevelop 4.0 Beta3 released! Read more at http://www.kdevelop.org/
Whoosh?
I recently downloaded the free Visual Studio developer package from Microsoft and found it did not even have "snprintf" - from C99.
It did have _snprintf and sprintf_s but ... will someone at Microsoft pull their head in and make writing compatible, portable, secure, software easy for everyone?
Does their latest offering have strlcpy() and friends? Or do they have their own variation (strcpy_s()) just because they're Microsoft and they can?
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.
-- Ed Avis ed@membled.com
If you think VS is "point and click" you've obviously never used it.
Personally for me, the top 3 features are: [F#, a library, C++0x]
Forgive me for being ignorant, but...
What is VS? I always thought of it as an IDE, which my devil's dictionary describes as "an editor with a compile button and delusions of grandeur."
So does VS now have syntax coloring and a compile button for F#? Or is VS something else, such as package containing {a compiler, an IDE}?
Then you start talking about libraries... so, VS is {IDE, compiler, libraries}? Does it have a VM for anything as well, or... ?
Exactly what is VS?
its not hard at all - slap a openmp pragma on your for loop and you're done. Of course, your loop has to fulfill some obvious requirements of simplicity like not being able to update a variable in one thread and also use it in a different thread (but you can have variables in each thread you combine at the end of the task, for example).
Schmidt349: managing to be wrong twice in a sentence with only 17 words.
/usr/bin/emacs is my login shell, you insensitive clod!
I know tobacco is bad for you, so I smoke weed with crack.
It's DevExpress Refactor! for C++. The link is there:
http://www.devexpress.com/Products/Visual_Studio_Add-in/RefactorCPP/
It's a free download and it works pretty well, I have to say.
This is my sig.