Windows 开发环境是否值得付出代价?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3038190/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Is the Windows dev environment worth the cost?
提问by MCS
I recently made the move from Linux development to Windows development. And as much of a Linux enthusiast that I am, I have to say - C# is a beautiful language, Visual Studio is terrific, and now that I've bought myself a trackballmy wrist has stopped hurting from using the mouse so much.
我最近从 Linux 开发转向了 Windows 开发。作为一个 Linux 爱好者,我不得不说 - C# 是一种美丽的语言,Visual Studio 非常棒,现在我给自己买了一个轨迹球,我的手腕不再因使用鼠标而受伤了。
But there's one thing I can't get past: the cost. Windows 7, Visual Studio, SQL Server, Expression Blend, ViEmu, Telerik, MSDN - we're talking thousands for each developer on the project! You're definitely getting something for your money - my question is, is it worth it? [Not every developer needs all the aforementioned tools - but have you ever heard of anyone writing C# code without Visual Studio? I've worked on pretty large software projects in Linux without having to pay for any development tool whatsoever.]
但有一件事我无法克服:成本。Windows 7、Visual Studio、SQL Server、Expression Blend、ViEmu、Telerik、MSDN - 我们正在为项目中的每个开发人员讨论数千个!您肯定会物有所值 - 我的问题是,值得吗?[并非每个开发人员都需要所有上述工具 - 但您是否听说过有人在没有 Visual Studio 的情况下编写 C# 代码?我曾在 Linux 中从事过相当大的软件项目,而无需为任何开发工具付费。]
Now obviously, if you're already a Windows shop, it doesn't pay to retrain all your developers. And if you're looking to develop a Windows desktop app, you just can't do that in Linux. But if you were starting a new web application project and could hire developers who are experts in whatever languages you want, would you still choose Windows as your development platform despite the high cost? And if yes, why?
现在很明显,如果您已经是一家 Windows 商店,那么重新培训您的所有开发人员是不划算的。如果您要开发 Windows 桌面应用程序,那么在 Linux 中是做不到的。但是,如果您正在开始一个新的 Web 应用程序项目,并且可以聘请您想要的任何语言专家的开发人员,那么尽管成本很高,您仍然会选择 Windows 作为您的开发平台吗?如果是,为什么?
UPDATE: I did not intend to start any arguments. And I gained some valuable insights from the answers/comments:
更新:我不打算开始任何争论。我从答案/评论中获得了一些宝贵的见解:
- The cost of setting up a dev environment in Windows does not have to be so great.
- The cost of the dev environment is really just a drop in the bucket when compared to the cost of the developers themselves. (This doesn't help a small startup or a freelance programmer, though).
- 在 Windows 中设置开发环境的成本不必那么大。
- 与开发人员本身的成本相比,开发环境的成本实际上只是杯水车薪。(不过,这对小型初创公司或自由程序员没有帮助)。
采纳答案by Jerry Coffin
The cost of the tools is tinycompared to what you spend on the developers themselves. For example, most of the tools you've mentioned are included in Visual Studio Professional with MSDN, which runs about $800/year.
与您花在开发人员身上的费用相比,这些工具的成本微乎其微。例如,您提到的大多数工具都包含在带有 MSDN 的 Visual Studio Professional 中,其运行费用约为 800 美元/年。
The real question, then, is whether you get any benefit from that cost. That's harder to answer, and I suspect depends on your developers and what kind(s) of software you develop. As such, it's impossible to give a blanket answer. Nonetheless, from the employer's viewpoint there's hardly enough difference between the two to notice.
那么,真正的问题是您是否从该成本中获得任何好处。这更难回答,我怀疑这取决于您的开发人员以及您开发的软件类型。因此,不可能给出一个笼统的答案。尽管如此,从雇主的角度来看,两者之间几乎没有足够的差异需要注意。
回答by Marius Schulz
Microsoft offers lots of express editions of Visual Studio and SQL Server that are free of charge and may even be used commercially. In programs like DreamSpark, students can download e.g. Visual Studio 2010 Professional (full edition!) for free, so it is not said that you need to pay hundreds of thousands to develop Windows applications.
Microsoft 提供了许多免费的 Visual Studio 和 SQL Server 快速版本,甚至可以用于商业用途。在DreamSpark这样的程序中,学生可以免费下载例如Visual Studio 2010 Professional(完整版!),所以并不是说开发Windows应用程序需要支付数十万。
Other IDEs like SharpDevelop are available for free, too, but they are not nearly as terrific as Visual Studio. However, even when using the express editions, one can be very productive.
SharpDevelop 等其他 IDE 也可以免费获得,但它们不如 Visual Studio 出色。但是,即使使用速成版,也可以非常高效。
The MSDN library is free of charge, too. I cannot say whether the Telerik controls justify their costs as I have never felt the need to use them.
MSDN 库也是免费的。我不能说 Telerik 控件是否证明它们的成本合理,因为我从来没有觉得有必要使用它们。
回答by Matthew Groves
回答by Adam Crossland
I have been a full-time .NET/C# developer of desktop and web applications since 2002, and of the pricey items that you list, the only one that I have ever paid money for as a professional deveoper is Visual Studio.
自 2002 年以来,我一直是桌面和 Web 应用程序的全职 .NET/C# 开发人员,在您列出的昂贵项目中,作为专业开发人员,我唯一花钱购买的项目是 Visual Studio。
The cost of a current version of Windows is virtually inseparable from the cost of a new PC. SQL Server Express is free and is absolutely sufficient for virtually all development-related database needs. Don't need or use Expression Blend. ViEmu? Not a chance I'd pay for something as awful as vi. I've been able to get by without every using anything from Telerik.
当前版本 Windows 的成本几乎与新 PC 的成本密不可分。SQL Server Express 是免费的,绝对足以满足几乎所有与开发相关的数据库需求。不需要或使用 Expression Blend。维埃姆?我没有机会为像 vi 这样糟糕的东西买单。我已经能够在不使用 Telerik 的任何东西的情况下度过难关。
Buying a copy of Visual Studio is far from an extraordinary investment in tools when one considers the productivity gains.
考虑到生产力的提高,购买 Visual Studio 的副本远不是对工具的非凡投资。
回答by Marcote
Taking Windows 7 cost a side, you can use Visual Studio Express, SQL Server Express to create your applications. Of course this version has less features than the "bigger" ones but has the compiler, IntelliSense and many other stuff that makes a solid option.
考虑到 Windows 7 成本,您可以使用 Visual Studio Express、SQL Server Express 来创建您的应用程序。当然,这个版本的功能比“大”的要少,但有编译器、IntelliSense 和许多其他东西,是一个可靠的选择。
Since you mentioned Blend, I think you are interested working with WPF, I don't think the Mono alternative is completely mature.
既然您提到了 Blend,我认为您对使用 WPF 感兴趣,我认为 Mono 替代方案并不完全成熟。
回答by technicalbloke
Well it always depends on your projects specifics but to the extent that it doesn't no, probably not for a web app. There's plenty of people out there who can code HTML/CSS, Javascript, SQL and at least one of PHP, Python or Perl so devs should be reasonably abundant. There's a whole bunch of frameworks, libraries and free code for each and you can use them all in any combination you like for no dollars down, no dollars per month.
好吧,它总是取决于您的项目细节,但在某种程度上它不是不,可能不适用于网络应用程序。有很多人可以编写 HTML/CSS、Javascript、SQL 以及 PHP、Python 或 Perl 中的至少一种,因此开发人员应该相当丰富。每个都有一大堆框架、库和免费代码,您可以以任何您喜欢的组合使用它们,无需花费任何费用,每月无需花费美元。
As far as IDEs go if you're considering hiring web and web app developers who are uncomfortable working outside an IDE you're probably looking in the wrong place for developers. If you can't live without an IDE then Eclipse is OK assuming you have some pretty well specced dev boxen but I have to say the best code ninjas I've encountered all use either emacs or vim!
就 IDE 而言,如果您正在考虑招聘不喜欢在 IDE 之外工作的 Web 和 Web 应用程序开发人员,那么您可能找错了开发人员的位置。如果你离不开 IDE,那么 Eclipse 也可以,假设你有一些非常好的开发工具箱,但我不得不说我遇到的最好的代码忍者都使用 emacs 或 vim!
Also it's nice to code on a system with unlimited virtual desktops and a proper command line. Having said that I hear MS have made some progress with these in the last couple of versions so they may be more aligned now. I'd be loath to start coding a big project on Windows without making sure there were good builds or equivalents of tail, grep, systemtap/dtrace etc available though.
此外,在具有无限虚拟桌面和适当命令行的系统上进行编码也很不错。话虽如此,我听说 MS 在最近几个版本中在这些方面取得了一些进展,因此它们现在可能更加一致。我不愿意开始在 Windows 上编码一个大项目,但不确保有良好的构建或等效的 tail、grep、systemtap/dtrace 等可用。
Funnily enough though the last web app I had to do was mostly in Windows as it was Flash based. The flash IDE was pure pain but thankfully most of the donkeywork was in the classes so I got to use the lovely Notepad++ for the bulk of that, anyway that's not really relevant to our discussion on the worth of the MS toolchain so I'll move along!...
有趣的是,虽然我必须做的最后一个 Web 应用程序主要是在 Windows 中,因为它是基于 Flash 的。Flash IDE 是纯粹的痛苦,但幸运的是,大部分工作都在课堂上,所以我必须使用可爱的 Notepad++ 来完成大部分工作,无论如何这与我们关于 MS 工具链价值的讨论并没有真正相关,所以我会搬家沿着!...
Top tip if you're developing on Windows after working on Linux make sure to install Kat-Mouse and an "Always-on-top" program like deskpins or you may quickly end up defenestrating your dev machine!
如果您在 Linux 上工作后在 Windows 上进行开发,请确保安装 Kat-Mouse 和“始终在线”程序(如桌面引脚),否则您可能很快就会破坏您的开发机器!
回答by Justin Niessner
You're mixing two questions here.
你在这里混淆了两个问题。
If I was spec'ing a new project (for myself), would I go with the Windows platform?
如果我正在指定一个新项目(为我自己),我会选择 Windows 平台吗?
As a target? Yes. As the development platoform? No.
作为目标?是的。作为开发平台?不。
If I was spec'ing a new project (for myself), would I choose C# as my language?
如果我正在规范一个新项目(为我自己),我会选择 C# 作为我的语言吗?
Yes. Most definitely. The Mono project has a great set of tools that you can use to build Desktop, Silverlight, and Web applications. The web apps run inside of Apache, so you get to stick with all the common Open Source tools.
是的。明确地。Mono 项目有一组很棒的工具,您可以使用它们来构建桌面、Silverlight 和 Web 应用程序。Web 应用程序在 Apache 内部运行,因此您可以坚持使用所有常见的开源工具。
If you do things right, you can even use Mono on Linux to target Windows clients for a Desktop application (using the available subset of Windows.Forms that Mono includes).
如果你做对了,你甚至可以在 Linux 上使用 Mono 来为桌面应用程序定位 Windows 客户端(使用 Mono 包含的 Windows.Forms 的可用子集)。
If I was spec'ing a new project (for a company) would I choose the Windows platform?
如果我正在指定一个新项目(为公司),我会选择 Windows 平台吗?
Yes. The productivity gained is worth the extra cost. Microsoft also has several programs like BizSparkthat are targeted at reducing the entry cost to development on the Windows platform.
是的。获得的生产力值得付出额外的代价。Microsoft 还拥有多个程序,例如BizSpark,旨在降低在 Windows 平台上进行开发的入门成本。
回答by Tim C
I think this is a great question! Mostly because you asked it without being judgmental. Here are some thoughts from me:
我认为这是一个很好的问题!主要是因为你在没有判断的情况下问了它。以下是我的一些想法:
Visual Studio and all of the tools are quite good. It is quite expensive but there are programs from Microsoft which can help with those costs. For example, in a smaller shop you might consider a TechNetsubscription. Or one of the many small business helper programs from Microsoft like BizSpark.
Visual Studio 和所有工具都非常好。这是相当昂贵的,但有来自 Microsoft 的程序可以帮助解决这些成本。例如,在较小的商店中,您可能会考虑订阅TechNet。或者来自 Microsoft 的众多小型企业帮助程序之一,例如BizSpark。
Many .Net developers you hire will ask for or require Visual Studio and for good reason! They have used it for years and they are comfortable with it. So be ready for that. Not everyone will be that way but most will be that way. They know their tools and they use their tools.
您雇用的许多 .Net 开发人员会要求或需要 Visual Studio,这是有充分理由的!他们已经使用它多年,并且对它感到满意。所以要为此做好准备。不是每个人都会这样,但大多数人都会这样。他们了解他们的工具并使用他们的工具。
That being said c# and .Net development is still just text :) I personally use VIM for my .Net development because I felt that a lot of the tools in Visual Studio just got in my way. I have had some bumps with that, I still use Visual Studio some of the time, because it has something I need. This is a great resource I use: c# with Vim Blog posts
话虽如此,c# 和 .Net 开发仍然只是文本 :) 我个人使用 VIM 进行我的 .Net 开发,因为我觉得 Visual Studio 中的很多工具都妨碍了我。我遇到了一些麻烦,有时我仍然使用 Visual Studio,因为它有我需要的东西。这是我使用的一个很好的资源:c# 和 Vim 博客文章
So I would say try it both ways and be open minded :) it's a great language and a lot of fun to try.
所以我想说两种方式都尝试一下,并保持开放的心态:) 这是一种很棒的语言,尝试起来很有趣。
回答by t0mm13b
To answer this question, which is a worthy +1 from me, in recent years the Microsoft developers stack has reduced in cost with the advent of the Express editions since after Visual Studio 2003, we're talking about Visual Studio 2005, this is where the Express editions started appearing to increase penetration of the Visual Studio to a wider audience, using a bare bones version which gave the wider audience a much bigger appreciation of learning the Visual Studio environment and reflected in the professional trade.
为了回答这个问题,这是我的一个值得 +1 的问题,自 Visual Studio 2003 之后,随着 Express 版本的出现,近年来 Microsoft 开发人员堆栈的成本降低了,我们谈论的是 Visual Studio 2005,这就是Express 版本开始增加 Visual Studio 对更广泛受众的渗透,使用裸机版本让更广泛的受众对学习 Visual Studio 环境有更大的了解,并反映在专业行业中。
Now you can subscribe to Dreamspark if you are a student and avail of the professional version provided your student id checks out. Likewise the same for businesses using the BizSpark programme for businesses who wants to roll out a Microsoft platform onto the internet.
现在,如果您是学生,则可以订阅 Dreamspark,并可以使用专业版,前提是您的学生证已结帐。对于希望在 Internet 上推出 Microsoft 平台的企业,使用 BizSpark 计划的企业也是如此。
Your question more or less focuses on the extras outside of Visual Studio, Note, I am not talking about MSDN(in fact, that is an extremely vital part to have as it is a gem of a minefield of knowledge, know hows etc - that is now freely available) which boils down to this - use only the tools to get the job done first! No point for a professional developer starting out on these extras as they hardly make a real difference, not alone that, hitting their wallet and bank account very hard which is all the more a futile exercise!
您的问题或多或少侧重于 Visual Studio 之外的附加功能,请注意,我不是在谈论 MSDN(事实上,这是一个非常重要的部分,因为它是知识雷区、诀窍等的瑰宝 - 那现在免费提供)归结为这一点 -只使用工具先完成工作!对于专业开发人员来说,开始使用这些附加功能毫无意义,因为它们几乎没有真正的区别,不仅如此,他们的钱包和银行账户都非常努力,这更是徒劳!
Those extras you're talking about here, those extras such as Telerik and so on, lets get one point straight, sure it may add a pretty face to your app, but who cares? As long as you use the Visual tools to draw up the interface, add event handlers, add logic, test it and debug it, you will realize that those extras are not really worth it, even the end-users are not going to care if it has a pretty eye candy of an interface, as long as the end-users gets the job done simply and efficiently.
您在这里谈论的那些附加功能,诸如 Telerik 之类的附加功能,让我们直截了当地说一说,肯定它可以为您的应用程序添加漂亮的面孔,但谁在乎呢?只要你使用可视化工具来绘制界面、添加事件处理程序、添加逻辑、测试和调试它,你就会发现那些额外的东西并不值得,即使最终用户也不会关心只要最终用户能够简单有效地完成工作,它的界面就很吸引人。
Now, over the last few years we have seen Mono's strength grow and conforming to the .NET 2 standards, I am not a preacher for Mono, have seen it and tried it, sure you can splice up an app to use Mono running on Linux, perhaps a back-end that communicates with MySQL, that relays results to a simple Windows forms, let me emphasize the words, you as a developer would have the choice and freedomto do so. Perhaps, work on that as a part-time thing outside of working hours, to investigate and learn. Sure, WinForms is somewhat reasonable on Linux, but just do not rely on Win API calls as that will produce undefined and unexpected behaviour in the context of a GUI application, if its a pure WinForms with no DllImports, the chances are good that it will work under Mono.
现在,在过去的几年里,我们看到 Mono 的实力在不断增长并符合 .NET 2 标准,我不是 Mono 的布道者,见过它并尝试过它,确定您可以拼接一个应用程序使用 Mono 在 Linux 上运行,也许是一个与 MySQL 通信的后端,将结果中继到一个简单的 Windows 表单,让我强调一下,作为开发人员的您将有选择和自由这样做。也许,把它作为工作时间之外的兼职工作,调查和学习。当然,WinForms 在 Linux 上有些合理,但是不要依赖 Win API 调用,因为这会在 GUI 应用程序的上下文中产生未定义和意外的行为,如果它是没有 DllImports 的纯 WinForms,那么它很有可能在 Mono 下工作。
Of course, you are not necessarily tied to the Visual Studio platform when there's SharpDevelop, MonoDevelop, Mono for Windows available at your disposal, you need to think long and hard and see if it's worth it at the end of it all, no harm, in using the Visual Studio Express edition to do so, or even use SharpDevelop either.
当然,当有 SharpDevelop、MonoDevelop、Mono for Windows 可供您使用时,您不一定会绑定到 Visual Studio 平台,您需要长时间认真地思考,看看它是否值得在这一切结束时,没有坏处,在使用 Visual Studio Express 版本时,或者甚至使用 SharpDevelop。
Put simply, investigate your choices as long as you use only the tools to get the job done!
简而言之,只要您仅使用工具来完成工作,就调查您的选择!
回答by socialmatchbox
I'm going to do my best to be objective here. Let's start off the with some background. I do some occasional VBA and VB Script work, but that is pretty rare. I haven't worked with the more recent MS dev stack, but worked with it a few years back. Since then I made the transition to working with PHP and Ruby on Rails primarily. I do it from Windows because that is what I am familiar with. I have talked to a TON of people who are doing stuff with Ruby on Rails and PHP over the last couple of years and one thing that strikes me as a pattern is the fact that it is rare that I encounter a C# or VB (.net) developers on the street. When I do it is usually someone who is not that good. Maybe this is a regional thing. Maybe .NET people live inside 9-5 developer caves and only come out at certain times of the year. I don't know why it is, but it is. The fact that .NET people, especially good ones, are hard to find is a cost that nobody on this thread has discussed yet. Someone did make mention to the fact that people who are dependent on IDE's for development might not be the best people out there which supports this somewhat random hypothesis.
我会尽我所能在这里保持客观。让我们从一些背景开始。我偶尔会做一些 VBA 和 VB Script 的工作,但这很少见。我没有使用过最近的 MS 开发堆栈,但几年前使用过它。从那时起,我主要过渡到使用 PHP 和 Ruby on Rails。我是在 Windows 上做的,因为那是我熟悉的。在过去的几年里,我与许多使用 Ruby on Rails 和 PHP 做事情的人交谈过,让我印象深刻的一件事是我很少遇到 C# 或 VB (.net ) 开发商在街上。当我这样做时,通常是一个不太好的人。也许这是一个地区性的事情。也许 .NET 人住在 9 到 5 个开发人员洞穴中,并且只在一年中的某些时候出来。我不 不知道为什么会这样,但确实如此。.NET 人员(尤其是优秀人员)很难找到这一事实是此线程中尚未有人讨论过的成本。有人确实提到过这样一个事实,即依赖 IDE 进行开发的人可能不是最好的人,这支持这种有点随机的假设。
Don't get me wrong - I'm not supporting PHP or Ruby on Rails as the end all be all. All I am saying here is that the people cost is a big one. If you are working with tools that are preferred by the people who are arguably not always the sharpest ones in town then the benefits of tools may be less relevant in general. If you have a larger team then the extra cost of the tool set might be better spent on a more competitive bonus or salary for people on the team. Again, this supports the idea that you want the best team you can get first.
不要误会我的意思 - 我不支持 PHP 或 Ruby on Rails,因为一切都结束了。我在这里要说的是,人员成本很高。如果您使用的工具是人们喜欢的工具,而这些人可能并不总是城里最敏锐的人,那么工具的好处一般来说可能就不那么重要了。如果你有一个更大的团队,那么工具集的额外成本可能更好地用于为团队中的人提供更具竞争力的奖金或薪水。同样,这支持了你想要最好的团队首先得到的想法。
All of this assumes you have a choice of what you are doing from the onset. If you don't then there are some really good tools put out there by the MS dev community that are very useful. There are also tools like VMWare Server that balance the Windows/Linux divide. A smart team armed with good tools will get the job done well.
所有这些都假设您从一开始就可以选择要做什么。如果您不这样做,那么 MS 开发社区提供了一些非常有用的非常好的工具。还有像 VMWare Server 这样的工具可以平衡 Windows/Linux 的鸿沟。一个拥有良好工具的聪明团队将把工作做好。