Programming languages 我应该专注于桌面开发还是学习更多关于web应用程序开发的知识?

Programming languages 我应该专注于桌面开发还是学习更多关于web应用程序开发的知识?,programming-languages,Programming Languages,让我自我介绍一下 我有7年的C++(大多数MFC)经验,1年的C·.net和2年的java经验。 我对web应用程序知之甚少,我所做的和正在做的都是Windows桌面应用程序 在过去的半年里,我开始做一些(次要的)(自由职业者)兼职项目,主要使用C#,因为它比MFC更“快速”。但这个市场上的网络项目似乎比桌面项目多。只要我不懂网络开发,我就感觉不好 因此,我应该为自己接触新的web领域,还是只关注桌面应用程序,但了解更多,如Python,或框架/库,如Qt或Boost?我的直觉是,越来越多的人/

让我自我介绍一下

我有7年的C++(大多数MFC)经验,1年的C·.net和2年的java经验。
  • 我对web应用程序知之甚少,我所做的和正在做的都是Windows桌面应用程序
  • 在过去的半年里,我开始做一些(次要的)(自由职业者)兼职项目,主要使用C#,因为它比MFC更“快速”。但这个市场上的网络项目似乎比桌面项目多。只要我不懂网络开发,我就感觉不好


    因此,我应该为自己接触新的web领域,还是只关注桌面应用程序,但了解更多,如Python,或框架/库,如Qt或Boost?

    我的直觉是,越来越多的人/公司将他们的项目转移到web上。例如,我的公司自从我到那里以来,已经添加了许多web应用程序。这方面的另一个主要例子是微软(是的,甚至是他们)提供了基于网络的Office版本,这是他们的旗舰产品

    桌面应用程序总是有需求的,但我看到未来会有更多基于web的项目。无论如何,学习新东西总是好的


    编辑:哦,你不会因为意识到“基于桌面的”流程而失去任何东西。您可能正在进行更多的服务器端编程,即使它是基于web的。因此,换言之,继续扩大你在这一领域的知识并没有坏处。

    在未来的许多年里,桌面应用程序很可能仍有市场。然而,据我所见,web开发似乎已经占据了开发市场的很大份额。我建议你一定要熟悉网络开发,因为即使你从未停止编写桌面应用程序,增加你的技能也不会有什么坏处


    既然你有C语言的经验,你可以考虑做一些ASP.NET的工作。或者,如果你觉得需要学习一项新技术,那么不妨考虑一个像Ruby OnRails这样的框架。

    < P>我真的建议去看看Web开发——就像你说的,还有更多的Web应用项目——你已经知道了C .net和java,这两种语言都有很好的API开发框架。用于C#和Java servlet/JSP的ASP.NET

    我首先建议学习一些真正基本的HTML来学习如何呈现页面,然后尝试使用您选择的语言制作动态版本。然后,我将学习其他一些web技术,如CSS/Javascript/一些Javascript库,然后我将开始研究在您选择的语言的基础上构建的框架


    哦,还有一些进一步的建议——有些web框架是基于组件的,而不是基于请求的——您可能会想把它们作为web开发的捷径来学习,因为大多数人都声称在它们中开发类似于桌面开发。我真的不建议这样做——因为在实践中,您确实需要知道web如何在较低级别上工作,以开发自定义组件,包括框架不做的事情,或者在出现问题时调试它们,即使在使用这些框架时也是如此。如果你直接跳进去,你很快就会迷路/困惑

    我建议学习升降机框架。它与Rails一样易于使用,并且基于JVM的静态类型语言Scala。从你的背景来看,Scala应该是中等到易于学习的,而且你很可能对它感到舒服,而不是对动态语言


    在我看来,您有很好的机会快速学习它,了解许多web开发中的良好实践,甚至可以稍微扩展您的编程视野。

    MicrosoftOffice2010将有一个成功的机会。对我来说,这是Web应用程序的分水岭时刻。Office应用程序是一个重要的试金石,因为一旦你可以在Web上使用Office(谷歌文档已经使用了一段时间,但Office具有重要的象征意义),你就可以做大多数用户关心的大多数事情

    桌面应用不会消亡,但我肯定认为它们会越来越退居次要地位


    如果你还没有读过,我强烈建议你读一读。这篇文章特别令人惊讶的一点是,它是在2004年写的。

    我相信,在未来10年内,除了OSs和浏览器之外,一切都将成为一个web应用程序。话虽如此,让我澄清一下,我所说的一切都是指a)涉及某种UI和b)可以保证安全的一切

    用户接口的应用程序在某些时候总是需要一个后端,这在某种程度上要求代码不是由人接口的,也不是通过HTTP执行的。我总是提醒自己,Unix中的“cat”实际上是操作系统正在调用的程序,而不仅仅是操作系统内置的函数。据我所知,MySQL将不是一个web应用程序,而是一个支持web应用程序的应用程序。我们可能会达到这样一个地步:这些应用程序完全通过一个web界面开发,通过浏览器编写、审核、上传和调用,但在某种程度上,它仍然在幕后运行

    关于第二点,关于有保证的安全性,我可以很容易地想象一家大公司或政府办公室通过网络应用程序运行其95%的日常事务,但要求在与某种大型机直接接口的机器上执行某些高安全性操作,经过阴凉的门后,用视网膜扫描什么的。或者仅仅是因为他们不能冒险将某些关键应用程序转移到网络上,因为他们担心在这个过程中会破坏我们丢失的数据

    但撇开这两件事不谈,我相信一切都将是基于网络的。随着Web服务和XML的发展,不仅可以访问数据并与之交互,还可以将自定义应用程序插入到