Let me introduce myself a bit.
让我自我介绍一下。
- I have 7 years of C++ (most MFC) experience, 1 year C#.NET and 2 years Java experience.
- I know little about web application, what I did and am doing is Windows desktop applications.
我有7年的C ++(大多数MFC)经验,1年的C#.NET和2年的Java经验。
我对Web应用程序知之甚少,我所做的和我正在做的是Windows桌面应用程序。
I start to do some (minor) (freelance) side projects in the past half year and uses C# mostly as it's more "rapid" than MFC. But seems there's more web projects in this market than desktop projects. And I do not feel good as long as I do not know web development.
在过去的半年里,我开始做一些(小的)(*职业)辅助项目,并且主要使用C#,因为它比MFC更“快速”。但似乎这个市场上的网络项目比桌面项目更多。只要我不了解网站开发,我就感觉不舒服。
So, should I touch the new web filed for me or just stay focus in desktop application but learn more e.g Python, or Frameworks/Libraries such as Qt or Boost?
那么,我应该触摸为我提交的新网站,还是只关注桌面应用程序,还要了解更多信息,例如Python,或Qt或Boost等框架/库?
6 个解决方案
#1
My gut feeling is that more and more people/companies are moving their projects to the web. My company, for example, has added numerous web applications since I have been there. Another prime example of this is Microsoft (yes, even them) providing a web-based version of Office, their flagship product.
我的直觉是越来越多的人/公司正在将他们的项目转移到网上。例如,自从我去过那里以来,我的公司已经添加了许多Web应用程序。另一个主要的例子是微软(是的,甚至是他们)提供基于网络的Office版本,这是他们的旗舰产品。
There will always be a need for desktop applications, but I see more web-based projects in the future. It's always good to learn something new, anyway.
总是需要桌面应用程序,但我将来会看到更多基于Web的项目。无论如何,学习新东西总是好的。
EDIT: Oh, and you don't lose anything by being aware of "desktop-based" processes. You may be doing more server-side programming, even if it is web-based. So, in other words, it doesn't hurt to continue expanding your knowledge in that arena, as well.
编辑:哦,你不会因为意识到“基于桌面”的过程而失去任何东西。您可能正在进行更多的服务器端编程,即使它是基于Web的。所以,换句话说,继续扩大你在这个领域的知识也没有什么坏处。
#2
There will most likely still be a market for desktop applications for many years to come. However, web development seems to have taken over a large share of the development market from what I can see. I would recommend definitely getting familiar with web development as it definitely can't hurt to increase the number of skills you have even if you never stop writing desktop apps.
未来很多年,桌面应用程序很可能仍会存在市场。然而,从我所看到的,网络开发似乎占据了开发市场的很大一部分。我建议你一定要熟悉网页开发,因为即使你永远不会停止编写桌面应用程序,也不会增加你拥有的技能数量。
Since you have experience with C# you might want to consider doing some ASP.NET work. Or if you feel the need to learn a new technology then maybe consider a framework like Ruby on Rails.
由于您有使用C#的经验,因此您可能需要考虑做一些ASP.NET工作。或者如果您觉得需要学习新技术,那么可以考虑像Ruby on Rails这样的框架。
#3
I'd really suggest looking into web development - like you said, there are many more web application projects - and you already know C#.NET and Java, and both of those languages have really good API's / frameworks for web development. ASP.NET for C# and Java Servlets/JSPs.
我真的建议调查Web开发 - 就像你说的,还有更多的Web应用程序项目 - 你已经了解C#.NET和Java,这两种语言都有很好的用于Web开发的API /框架。 ASP.NET for C#和Java Servlets / JSP。
I'd first suggest learning some really basic HTML to learn how pages are rendered, then try to make dynamic versions using the language of your choice. Then I'd learn some other web technologies like CSS/Javascript/some Javascript libraries - then I'd start looking at frameworks that build on top of the basics in the language of your choice.
我首先建议学习一些非常基本的HTML来学习如何渲染页面,然后尝试使用您选择的语言制作动态版本。然后我会学习一些其他网络技术,比如CSS / Javascript /一些Javascript库 - 然后我会开始研究基于您选择的语言基础的框架。
Oh, and some further suggestions - there are web frameworks that are component-based rather than request-based - you may be tempted to learn these as a shortcut to web development since most claim that developing in them is similar to desktop development. I really wouldn't suggest this - as in practice you really do need to know how the web works at a lower level to develop custom components, include things that the framework doesn't do, or to debug them when things go wrong even when using these frameworks. If you jump right in you can get lost/confused pretty quickly.
哦,以及一些进一步的建议 - 有基于组件而不是基于请求的Web框架 - 您可能想要将它们作为Web开发的快捷方式来学习,因为大多数人声称在其中开发类似于桌面开发。我真的不建议这样做 - 在实践中你真的需要知道web如何在较低级别工作以开发自定义组件,包括框架不执行的操作,或者在出现问题时调试它们,即使在使用这些框架。如果你向右跳,你会很快迷失/困惑。
#4
Microsoft Office 2010 will have an online version. To me this is a watershed moment for Web applications. Office apps are an important litmus test as once you can do Office on the Web (which has been the case with Google Documents for some time but Office has important symbolic meaning) you can do most things that most users care about.
Microsoft Office 2010将具有在线版本。对我来说,这是Web应用程序的分水岭。 Office应用程序是一项重要的试金石,因为一旦您可以在Web上执行Office(Google文档的情况已有一段时间,但Office具有重要的符号意义),您可以执行大多数用户关心的大多数事情。
Desktop apps won't die but I definitely think they're going to take more and more of a backseat.
桌面应用程序不会死,但我绝对认为它们将会越来越多的后座。
I'd highly suggest you read How Microsoft Lost the API War if you haven't already. One of the things that's particularly amazing about this post is that it was written in 2004.
我强烈建议你阅读微软如何失去API战争,如果你还没有。关于这篇文章特别令人惊讶的事情之一是它写于2004年。
#5
I honestly believe that with maybe the exception of OSs and browsers, everything will be a web app within the next 10 years. Having said that, let me clarify that by everything I mean everything that a) involves a UI of some kind and b) can be guaranteed secure.
我真的相信,除了操作系统和浏览器之外,未来10年内一切都将成为一个网络应用程序。话虽如此,让我澄清一下,我所说的一切都意味着a)涉及某种形式的UI和b)可以保证安全。
User-interfaced apps will always at some point need a backend, which will at some level require code that is not being interfaced by humans and not being executed via HTTP. I am always reminding myself that things like 'cat' in Unix are actually programs that the OS is calling, not just a function built into the OS. MySQL won't be a web app (as far as I know), but app that powers web apps. We may get to a point where these apps are fully developed via a web interface, written, audited, uploaded and called all via a browser, but at some level its still running behind the scenes.
用户界面应用程序总是在某些时候需要后端,这在某种程度上要求代码不是由人类接口而不是通过HTTP执行。我一直在提醒自己,Unix中的'cat'实际上是操作系统调用的程序,而不仅仅是内置于操作系统中的函数。 MySQL不会是一个网络应用程序(据我所知),但它是支持Web应用程序的应用程序。我们可能会通过网络界面完全开发这些应用程序,通过浏览器编写,审核,上传和调用,但在某种程度上它仍然在幕后运行。
On that second point, about guaranteed security, I can very easily imagine a large corporation or government office running 95 percent of their daily routines via web apps, but mandating that certain high-security operations be done on a machine directly interfaced with some sort of mainframe, after passing through the cool doors with the retinal scans and what not. Or simply because they can't risk moving certain mission-critical apps over to the web, from fear of it breaking our losing data in the process.
关于第二点,关于保证安全性,我可以很容易地想象一个大型公司或*办公室通过网络应用程序运行95%的日常例程,但强制要求某些高安全性操作在直接与某种类型的接口连接的机器上完成主机,经过视网膜扫描的冷门后,什么不是。或者仅仅因为他们无法冒险将某些关键任务应用程序转移到网络上,因为担心它会破坏我们在此过程中丢失的数据。
But with those two things aside, I honestly believe everything will be web-based. With the advancement of Web Services and XML in general, it will be possible to not only access and interact with our data, but to plug our custom apps into another app and extend that interaction further and in any environment we want.
但抛开这两件事后,我真的相信一切都将基于网络。随着Web服务和XML的普遍发展,不仅可以访问我们的数据并与之交互,还可以将我们的自定义应用程序插入另一个应用程序,并在我们想要的任何环境中进一步扩展该交互。
It's like that Apple ad "There's an app for that." Except once people get the real picture, it won't be an app written for your iPhone, but a URL. "There's a site for that."
这就像Apple广告“有一个应用程序。”除非人们得到真实的图片,否则它不会是为您的iPhone编写的应用程序,而是URL。 “那里有一个网站。”
#6
I recommend learning the Lift framework. It's as easy to use as Rails, and it's based on a statically-typed language for the JVM, Scala. From the perspective of your background, Scala should be middling to easy to learn, and you'll be more likely to be comfortable with it than with a dynamic language.
我建议学习Lift框架。它与Rails一样易于使用,它基于JVM的静态类型语言Scala。从你的背景来看,Scala应该很容易学习,而且你比使用动态语言更能适应它。
In my opinion, you have a good chance of picking it up quickly, learn a lot about good practices in web development, and even expanding your programming horizons a bit.
在我看来,你很有可能快速学习它,学习很多关于web开发的良好实践,甚至扩展你的编程视野。
#1
My gut feeling is that more and more people/companies are moving their projects to the web. My company, for example, has added numerous web applications since I have been there. Another prime example of this is Microsoft (yes, even them) providing a web-based version of Office, their flagship product.
我的直觉是越来越多的人/公司正在将他们的项目转移到网上。例如,自从我去过那里以来,我的公司已经添加了许多Web应用程序。另一个主要的例子是微软(是的,甚至是他们)提供基于网络的Office版本,这是他们的旗舰产品。
There will always be a need for desktop applications, but I see more web-based projects in the future. It's always good to learn something new, anyway.
总是需要桌面应用程序,但我将来会看到更多基于Web的项目。无论如何,学习新东西总是好的。
EDIT: Oh, and you don't lose anything by being aware of "desktop-based" processes. You may be doing more server-side programming, even if it is web-based. So, in other words, it doesn't hurt to continue expanding your knowledge in that arena, as well.
编辑:哦,你不会因为意识到“基于桌面”的过程而失去任何东西。您可能正在进行更多的服务器端编程,即使它是基于Web的。所以,换句话说,继续扩大你在这个领域的知识也没有什么坏处。
#2
There will most likely still be a market for desktop applications for many years to come. However, web development seems to have taken over a large share of the development market from what I can see. I would recommend definitely getting familiar with web development as it definitely can't hurt to increase the number of skills you have even if you never stop writing desktop apps.
未来很多年,桌面应用程序很可能仍会存在市场。然而,从我所看到的,网络开发似乎占据了开发市场的很大一部分。我建议你一定要熟悉网页开发,因为即使你永远不会停止编写桌面应用程序,也不会增加你拥有的技能数量。
Since you have experience with C# you might want to consider doing some ASP.NET work. Or if you feel the need to learn a new technology then maybe consider a framework like Ruby on Rails.
由于您有使用C#的经验,因此您可能需要考虑做一些ASP.NET工作。或者如果您觉得需要学习新技术,那么可以考虑像Ruby on Rails这样的框架。
#3
I'd really suggest looking into web development - like you said, there are many more web application projects - and you already know C#.NET and Java, and both of those languages have really good API's / frameworks for web development. ASP.NET for C# and Java Servlets/JSPs.
我真的建议调查Web开发 - 就像你说的,还有更多的Web应用程序项目 - 你已经了解C#.NET和Java,这两种语言都有很好的用于Web开发的API /框架。 ASP.NET for C#和Java Servlets / JSP。
I'd first suggest learning some really basic HTML to learn how pages are rendered, then try to make dynamic versions using the language of your choice. Then I'd learn some other web technologies like CSS/Javascript/some Javascript libraries - then I'd start looking at frameworks that build on top of the basics in the language of your choice.
我首先建议学习一些非常基本的HTML来学习如何渲染页面,然后尝试使用您选择的语言制作动态版本。然后我会学习一些其他网络技术,比如CSS / Javascript /一些Javascript库 - 然后我会开始研究基于您选择的语言基础的框架。
Oh, and some further suggestions - there are web frameworks that are component-based rather than request-based - you may be tempted to learn these as a shortcut to web development since most claim that developing in them is similar to desktop development. I really wouldn't suggest this - as in practice you really do need to know how the web works at a lower level to develop custom components, include things that the framework doesn't do, or to debug them when things go wrong even when using these frameworks. If you jump right in you can get lost/confused pretty quickly.
哦,以及一些进一步的建议 - 有基于组件而不是基于请求的Web框架 - 您可能想要将它们作为Web开发的快捷方式来学习,因为大多数人声称在其中开发类似于桌面开发。我真的不建议这样做 - 在实践中你真的需要知道web如何在较低级别工作以开发自定义组件,包括框架不执行的操作,或者在出现问题时调试它们,即使在使用这些框架。如果你向右跳,你会很快迷失/困惑。
#4
Microsoft Office 2010 will have an online version. To me this is a watershed moment for Web applications. Office apps are an important litmus test as once you can do Office on the Web (which has been the case with Google Documents for some time but Office has important symbolic meaning) you can do most things that most users care about.
Microsoft Office 2010将具有在线版本。对我来说,这是Web应用程序的分水岭。 Office应用程序是一项重要的试金石,因为一旦您可以在Web上执行Office(Google文档的情况已有一段时间,但Office具有重要的符号意义),您可以执行大多数用户关心的大多数事情。
Desktop apps won't die but I definitely think they're going to take more and more of a backseat.
桌面应用程序不会死,但我绝对认为它们将会越来越多的后座。
I'd highly suggest you read How Microsoft Lost the API War if you haven't already. One of the things that's particularly amazing about this post is that it was written in 2004.
我强烈建议你阅读微软如何失去API战争,如果你还没有。关于这篇文章特别令人惊讶的事情之一是它写于2004年。
#5
I honestly believe that with maybe the exception of OSs and browsers, everything will be a web app within the next 10 years. Having said that, let me clarify that by everything I mean everything that a) involves a UI of some kind and b) can be guaranteed secure.
我真的相信,除了操作系统和浏览器之外,未来10年内一切都将成为一个网络应用程序。话虽如此,让我澄清一下,我所说的一切都意味着a)涉及某种形式的UI和b)可以保证安全。
User-interfaced apps will always at some point need a backend, which will at some level require code that is not being interfaced by humans and not being executed via HTTP. I am always reminding myself that things like 'cat' in Unix are actually programs that the OS is calling, not just a function built into the OS. MySQL won't be a web app (as far as I know), but app that powers web apps. We may get to a point where these apps are fully developed via a web interface, written, audited, uploaded and called all via a browser, but at some level its still running behind the scenes.
用户界面应用程序总是在某些时候需要后端,这在某种程度上要求代码不是由人类接口而不是通过HTTP执行。我一直在提醒自己,Unix中的'cat'实际上是操作系统调用的程序,而不仅仅是内置于操作系统中的函数。 MySQL不会是一个网络应用程序(据我所知),但它是支持Web应用程序的应用程序。我们可能会通过网络界面完全开发这些应用程序,通过浏览器编写,审核,上传和调用,但在某种程度上它仍然在幕后运行。
On that second point, about guaranteed security, I can very easily imagine a large corporation or government office running 95 percent of their daily routines via web apps, but mandating that certain high-security operations be done on a machine directly interfaced with some sort of mainframe, after passing through the cool doors with the retinal scans and what not. Or simply because they can't risk moving certain mission-critical apps over to the web, from fear of it breaking our losing data in the process.
关于第二点,关于保证安全性,我可以很容易地想象一个大型公司或*办公室通过网络应用程序运行95%的日常例程,但强制要求某些高安全性操作在直接与某种类型的接口连接的机器上完成主机,经过视网膜扫描的冷门后,什么不是。或者仅仅因为他们无法冒险将某些关键任务应用程序转移到网络上,因为担心它会破坏我们在此过程中丢失的数据。
But with those two things aside, I honestly believe everything will be web-based. With the advancement of Web Services and XML in general, it will be possible to not only access and interact with our data, but to plug our custom apps into another app and extend that interaction further and in any environment we want.
但抛开这两件事后,我真的相信一切都将基于网络。随着Web服务和XML的普遍发展,不仅可以访问我们的数据并与之交互,还可以将我们的自定义应用程序插入另一个应用程序,并在我们想要的任何环境中进一步扩展该交互。
It's like that Apple ad "There's an app for that." Except once people get the real picture, it won't be an app written for your iPhone, but a URL. "There's a site for that."
这就像Apple广告“有一个应用程序。”除非人们得到真实的图片,否则它不会是为您的iPhone编写的应用程序,而是URL。 “那里有一个网站。”
#6
I recommend learning the Lift framework. It's as easy to use as Rails, and it's based on a statically-typed language for the JVM, Scala. From the perspective of your background, Scala should be middling to easy to learn, and you'll be more likely to be comfortable with it than with a dynamic language.
我建议学习Lift框架。它与Rails一样易于使用,它基于JVM的静态类型语言Scala。从你的背景来看,Scala应该很容易学习,而且你比使用动态语言更能适应它。
In my opinion, you have a good chance of picking it up quickly, learn a lot about good practices in web development, and even expanding your programming horizons a bit.
在我看来,你很有可能快速学习它,学习很多关于web开发的良好实践,甚至扩展你的编程视野。