Open source and quality
A recent SD Times column by Allen Holub questions the quality and customer focus of Tomcat specifically and open source projects in general. The picture painted there is pretty bleak:
- Spotty documentation
- Condescending attitude toward non-expert users -- "arrogance, elitism, and general contempt"
- Half-implemented features
- Poor code quality -- "poorly structured, poorly documented and poorly written"
This is exactly the opposite of the direction that Visual Studio and .NET are going. We have a number of efforts underway to significantly improve the quality of the product that we ship. In my group, we've made some good strides in the Whidbey product cycle. Some of these are engineering changes -- taking time to write tools that improve how we test the product, improving the robustness of tests so that we can spend our testers' time on higher value-add activities, etc.
Our community work is also a part of this -- the more closely connected we are with customers, the more likely it is that we will deliver software that they love, that fits like a hand in a glove. We are by no means done, but my hope is that we get better at this every milestone and every product cycle.
What parts of the Visual C# product do you love? Perhaps we can do more of those, or more things in the same vein, in future product cycles. What parts do you tolerate, dislike, or hate? We'd love to fix those pain points. It all starts with your feedback. Feel free to post here or email me privately.
Happy C# coding!
--Scott
Comments
- Anonymous
January 18, 2005
<quote>
This is exactly the opposite of the direction that Visual Studio and .NET are going
</quote>
And you're probably paid for your work, too. :)
<quote>
What parts do you tolerate, dislike, or hate?
</quote>
The part of the IDE that auto-hides until you mouse hover over them. Seems like a good idea at the time, I'm sure, but I've mistakenly activate this feature SO many time. It may not be so bad if for the majority of the time, VS freezes momentarily before popping out the Solution Explorer, Dynamic Help, etc...
Don't get me wrong, I love the auto-hide. But I won't mind having to click to bring the tab back out. With the above mentioned "feature", I find myself having to purposefully avoid those tabs -- they scare me now! Software shouldn't scare people (except DOOM III). - Anonymous
January 18, 2005
A man writes a article about his issues with tomcat and the community that fosters around it and makes a attempt to say all open source applications are like tomcat. Then a microsoft employee picks up that article and uses it as a selling point for Microsoft's product. I dont know which is sadder your post or his fuzzy logic. - Anonymous
January 18, 2005
The comment has been removed - Anonymous
January 18, 2005
- Deployment project (vs 2003)
Why I can't create setup that install framework and MSDE? Why I must use external tools to create such setup? And please don't fix it by just adding MSDE option - I want to include my other setups also.
2) dtq files - query for Database project (vs 2003)
Why VS open dtq files as text files when they are not in database project? I can't understand reason for saving questions for all this queries if it's opened like text file.
If I already have query in database project with more then one table and open it again after close, all relations in Diagram Pane are losed and they are present only in Grid Pane as a criteria.
Anonymous
January 18, 2005
Ahh and one more thing.
I can't understand why VS 2005 Beta are only available to MSDN subscribers.
In my firm I try to convience my co-workers to asp.net and the whole .NET platform as a tool which allows us develop much faster. So I thougt I show them also the direction it drive. But then, whoow, no MSDN no game.
And don't tell me about express version, it's too poor for our needs.
I hope that there will be some trial version when it will be complete product.Anonymous
January 18, 2005
> We have a number of efforts underway to
> significantly improve the quality of the
> product that we ship
I hope this starts with using Visual Studio yourselves. If I shipped a product with as many bugs as the VS IDE, I'd be looking for work...Anonymous
January 18, 2005
The comment has been removedAnonymous
January 19, 2005
There's a comment above about beta releases only being available to MSDN subscribers. There are several SKU's, with varying levels quality assurance, available for general download.
Specifically, the Express SKU's are available at beta quality (Beta, http://lab.msdn.microsoft.com/express) and a more recent version is available as CTP (CTP, http://lab.msdn.microsoft.com/vs2005/downloads/default.aspx)
More generally, here is a page that lists all of the pre-release versions that are available:
http://lab.msdn.microsoft.com/vs2005/get/default.aspxAnonymous
January 19, 2005
Thomas, what issues do you have with "switch"? Thanks.Anonymous
January 19, 2005
I'd like to see covariant and contravariant return/parameter types. I am very excited about class diagrams in VS2005 and future "whitehorse" stuff (if I understand where it is going correctly). Right now I use Visio to get a "visual" of a design and then try to import that code. A couple of problems: I'm not a huge Visio fan and the UML diagrams aren't nearly as nice to work with as the class diagrams in VS, then try to keep everything updated. In C#, I'm loving the syntax for working with nullable types and generics.Anonymous
January 19, 2005
Two things with the switch:
1. Fall-through is not allowed, still C# demands the no-op break statement. It does nothing, but you can't compile without it.
2. Scoping. In my mental model, each case statement is a block and should have its own scope. Instead they share the same scope as the whole switch block. I know you can embrace each case in curly braces, but that's not obvious and not the same.
A comment on the comment on constructor names: The point is not how long it takes to rename them, but that you have to. And you can't refer to those names, so they really don't mean anything. Whenever you rename them, you are doing something which interrupts your flow.
A comment on the comment on hostile attitude: I am sorry about that, not my intention to be hostile. And I use MS tools every day and have done so since VB3, so I am not the regular MS basher. My general feeling is that C# is moving in the wrong direction as it gets more and more keywords. It also focus too much on strictness and too less on productivity. I have also "upgraded" my VS 2005 beta 1 refresh to the beta2 dec ctp, which I feel as a downgrade. It's slower and has a poorer user experience.
I guess that, and the general arrogant feedback from the C# team in the past has caused some of the unintended hostileness.
By "arrogant" I mean everytime they say: "Yes, we thought about that, but decided not to do it".Anonymous
January 19, 2005
But there is more...
The += convention on event handlers. Not so much the syntax, but the behaviour. You can do a += as often as you like, but when you do a -= enough times, the event handler is suddenly null.
How can a subtract operation set something to null? How logical is that? How many other places can you do that?
The result is that you have to check if the handler is null, but you have never created nor destructed it. I thought one of the key ideas with events was that you know you can have listeners, but you don't know how many, if any. And why should you care?
Why can't I always invoke an event, even when there are no listeners? It makes no sense that I should check if some external actor is observing or not. The event mechanism should do that.Anonymous
January 19, 2005
One final thing about the switch. Why do the case argument have to be constant? Being a former VB coder, i see the switch as a cleaner if-else-if. Not a big deal, as I try to avoid the switch.
And I have more about constructors. You can't inherit them, which is something you sometimes want. It would be nice if VS had an option to stub them.
The calling convention to base constructors. Perhaps it's just me, but I never get comfortable with the : base () syntax. There should at least be a cleaner way to just call the base contructor if that's all you want. Empty constructors just feels wrong. I should be able to do something like this:
public MyClass() : base (DateTime.Today);
The calling order. In general it makes sense to first call the base constructor, then the derived constructor. Sometimes you want it the other way around, but you can't change the order. I can agree that such situations suffer a bad design, but sometimes that's what you got, with no options.Anonymous
January 19, 2005
Minh-- you can turn off the auto-hide by using the little push-pin on the upper right of the window. When you hover over it, it will say "Auto Hide".
It sounds like you are also giving some usability and performance feedback here as well, that the tolerances on the UI piece are not quite right (e.g., perhaps the target is too big for it to "feel" right"), or that the performance of the item is too slow.
Please try pinning the windows and let me know if you have further feedback on this. I would be happy to pass it on to the people who work on this area.
Also, if you have tried this in VS 2005, it would be interesting to know if any of your feedback is different from VS 2003.Anonymous
January 19, 2005
The comment has been removedAnonymous
January 19, 2005
" Wow, a guy asks for feedback to help make the product better its just a bunch of typical MS-bashing nonsense. "
Unfortunately Scott was basically asking for it in the way he joined two unrelated topics. If he wanted to critise his (perceived?) lack of quality in open-source, then feel free, but the response is be rather predictable.
If, as you say, the topic really is improving the quality of Microsoft's software then there was really no point in mentioning open-source at all. A more humble approach of for example, talking about MS quality issues from the past would likely gain a far less hostile response.Anonymous
January 19, 2005
seer,
re. your question about dtq files...
In Whidbey too dtq files can only be opened in the query designer. The reason is that the designer is pretty closely tied to the db project system. We had considered allowing them in any project, or even without projects, but that didn't make the cut.
With reference to your other question: (The joins disappear) This may be the effect of a feature called "join migration". The query designer modifies the query to a form that's most effective, but preserves the semantics.
Hope that helps!
Milind Lele
PM, VS DataAnonymous
January 20, 2005
[quote]
Please try pinning the windows and let me know if you have further feedback on this. I would be happy to pass it on to the people who work on this area.
Also, if you have tried this in VS 2005, it would be interesting to know if any of your feedback is different from VS 2003.
[/quote]
Hi Scott, Auto-Hide is an absolute must-have feature for me, I guess the "Auto-Show" is the problem, with usability issues, definitely w/ VS 2003. Maybe it's a personal preference, but the indetermine-ness of accidentally hover over a tab is bad for me.
BTW, I'm trying out Visual C# and things are MUCH improved, UI-wise. Though some IDE quirks 'cuz it's a beta. Is there a forum to report bugs & stuff?Anonymous
January 20, 2005
The comment has been removedAnonymous
January 20, 2005
2003 was my first year using Visual Studio (the original VS.NET), and IDEs in general for programming. Until that point my IDE usually consisted of some combination vi, make, perl scripts, and shell. Visual Studio was a huge shift in the way I work.
* I'm still not entirely comfortable with the build process. In make, everything was laid out right there before my eyes and I knew what was going to happen. In VS each project, each solution, has squirrelled away many config details in lots of different places which affect the build. A compilation error (due to config, not code) can send me scurrying through a half dozen twisty little screens, all alike.
* The keyboard-for-navigation model is severely broken in most of those twisty little screens. For example, the project properties panel you must use the mouse to move through and use the datagrid-looking UI for changing project options. My RSI hates this.
* I still do C programming. It's what we do, where I work. To add a new C project I have to lie and add a C++ project, and then change much of it to be a suitable C project.
* The general default layout of the UI I like, and it works for me. Intellisense usually works, the debugging integration is generally good, and navigation through large multi-project solutions is pretty easy.
* When I have several projects in a solution, the tree is easier to navigate if it's collaped. When I close a tab (with code) that's open to one of those projects, it re-expands the project's node in the tree. Cleanup after a debugging session involves: close window (x), close window (x)..ad nauseam, collapse tree, collapse tree, collapse tree. This is annoying. I'm closing the code window, I really don't need its project node expanded especially if I haven't made any changes.
* The product seems very stable. If I start-stop-start a C# GUI program over and over again (hundreds of times over several days) I have had spurious "out of memory" errors during compilation. The DevPartner Profiler is notorious for crashing it as well. If I stay away from those, I'm copacetic.
Like BG said, "Don't get me wrong, I love the product..."Anonymous
January 26, 2005
The Getting Started with C++ section gives advice about learning C++. Learn from our C++
tutorials, or test your programming knowledge with the C++ MegaQuiz. You can subscribe to Code Journal, a free biweekly programming newsletter.Anonymous
May 28, 2009
PingBack from http://paidsurveyshub.info/story.php?title=scott-wiltamuth-s-visual-studio-blog-open-source-and-qualityAnonymous
June 16, 2009
PingBack from http://topalternativedating.info/story.php?id=9812Anonymous
June 19, 2009
PingBack from http://edebtsettlementprogram.info/story.php?id=22135