什么是Java的一些突出的真实世界应用程序?

时间:2010-04-10 06:06:02

标签: java

我是一名初学程序员,我们学校的I& CS课程让我们开始学习Java。在我看来,C和它的分拆在现实世界中更为普遍。这是真的? 专家程序员如何使用Java进行工作?

更确切地说,我想知道程序员在什么情况下更喜欢使用Java而不是其他语言。 OpenOffice绝对是Java的一个突出例子,但它不能用其他任何东西编码吗?

12 个答案:

答案 0 :(得分:14)

除非您正在编写游戏,嵌入式设备软件,维护传统软件或编写高性能并行计算软件(例如CUDA),否则您现在可以获得比C / C ++更多的Java。 C#实际上比C派生的更多是Java派生的,尽管有这个名字,如果你想到的话(很多人认为它比Java好,包括我自己)。

“Java比C / C ++慢”的说法缓慢而稳定地成为一个神话(例如参见this benchmark)。它当然对程序员更友好,并且正在迅速出现越来越多的企业级解决方案,专门处理Java,其开发以及在现实世界中的部署。

特别是在服务器应用程序中,您会发现Java正在获得巨大的成功。在目前的大多数领域,它是否真的在使用中是第二位的C / C ++是值得商榷的。

答案 1 :(得分:9)

您对“真实世界”的看法可能并不准确,因为许多(大多数?)大型Java应用程序并非“可见”。当然,有桌面Java应用程序,但在我看来,它的服务器端Java使它如此受欢迎,特别是在异构企业环境中(可移植性带来供应商独立性),几乎所有行业都使用Java。因为你问了一个例子,我的是GMail。这够大吗?

答案 2 :(得分:8)

Java非常普遍。将其流行程度与“C及其衍生产品”进行比较真的很难,因为没有人能够统计每个问题解决了多少“现实世界”的问题。然而,Java很受欢迎。您可以在自己的桌面计算机上安装和使用的一些Java应用程序:

Java也可以在许多手机和网络服务器上运行。

就你的第二个问题而言 - 专家程序员倾向于使用Java来完成任务。 (就像C,C ++,perl,Lua,python,Javascript,ruby,Clojure,Pascal,SQL,COBOL和任何其他编程语言一样。)作为初学程序员,不要担心Java的真实适用性。如果您的学校教授它,请使用它来学习计算机科学概念,这些概念将以您最终用于解决流行现实世界计划的任何语言为您服务。

答案 3 :(得分:6)

我一直是C / C ++程序员,但我最近开始使用Java,因为我使用非常酷的Google Web Toolkit(GWT)编写Web应用程序。这个小宝石会将您的Java代码编译为Javascript,如果您也用Java编写服务器代码,它可以从根本上简化客户端 - 服务器通信。我之前用PHP和Python编写过webapps,使用原始的javascript或jQuery,但对我来说GWT + Java组合是一个更加愉快的解决方案。

当然,它不是Java最流行的用法,但我认为您可能有兴趣了解该语言的其他用途。

答案 4 :(得分:4)

Java可能是第二个使用更接近基于C语言的地方,但它足够接近我不太担心它的适用性。更一般地说,我不会太担心你学习的第一语言的适用性 - 那里有很多语言,每个语言都有自己的特定领域。专注于学习概念,您将不会很难切换到适合当前任务的任何语言。

关于Java的问题域:
Java通常用于具有图形用户界面的跨平台应用程序,用于手机应用程序,以及用于生成网页的服务器。在这些领域中已经用Java编写的代码使得它对这些领域的未来项目具有吸引力 - 但是没有问题域明确属于一种语言。

获得一点技术:
Java是静态类型垃圾收集语言。这意味着偶然发生不安全事情会稍微困难一些,而集成开发环境(如Eclipse)可以为程序员提供更多帮助,因此Java可能更适合于更大的项目或项目。可能让程序员不熟悉代码库。

作为垃圾收集语言,Java可能不太适合具有严格资源限制或速度要求的程序(通常首选C)。作为一种静态类型语言,它不太适合快速应用程序开发(通常首选动态类型语言,如Python,Ruby和PHP)。

更广泛地说,Java也是一种命令式语言,因此它的风格对于大多数程序员来说更为熟悉,并且最好告诉计算机确切地知道如何做某事,而不是例如,函数式语言(如Haskell),它可能更好地描述需要做什么,以便计算机可以根据需要划分工作(但不善于处理事物改变,就像屏幕上的内容一样。)

答案 5 :(得分:3)

那里有大量的JAVA应用程序。在标准Windows桌面上可能没有那么多,但在大型机等上,Java的使用率非常高。此外,许多网站仍然使用jsp等.Java是一种非常相关的语言,并且可能仍然如此。 (即使个人而言,我宁愿使用.NET。)

在我们公司,我们使用Confluence作为文档的内容管理系统,MAXIMO作为资产跟踪软件......两者都在Java上运行。我们与大型机直接交互的大多数内部Web应用程序都在JSP上运行。对于桌面,可能最值得注意的Java应用程序是Open Office ...

此外,Java是学习面向对象编程的一种相对不错的语言。您在Java中学到的很多东西都可以很容易地转移到其他OO语言中(例如C#,VB.Net,C ++等)。这比C ++更容易学习,所以它是一种很好的“学习”语言。 (我仍然认为C#更容易,但这可能是个人偏见。)

答案 6 :(得分:3)

具体选择Java的原因:

  • 您的应用程序必须在多个操作系统上运行 - Java使其比大多数其他语言更容易
  • 您计划使用Java中可用的大量库中的一个
  • 您希望能够轻松找到适合您项目的开发人员

此外,您的问题还有两个误解:

  • Java 是C的衍生产品。它的语法和概念比大多数其他现代语言更接近C和C ++。
  • OpenOffice不是用Java完全编写的。一些小部分,但大多数是C ++

答案 7 :(得分:3)

许多商业企业使用Java(以及类似的高级语言)的原因在于它(它们)使编写复杂,强大且相对高效的应用程序变得更容易,这些应用程序可以长期维护。使用C或C ++,相同复杂程度的大规模应用程序需要更多的努力(开发人员年)。该软件也往往更脆弱,因为具有普通技能的程序员在C / C ++中犯的错误比在Java(等)中更多,并且这些错误往往更加隐蔽(例如缓冲区溢出)并且会产生更严重的后果。

声称C / C ++比Java和其他托管语言更有效。虽然这对于一些小型(代码行)应用程序来说是明显正确的,但是对于大型(例如100k + SLOC)应用程序来说很难进行演示......因为没有人将这样的应用程序写入多种语言的相同设计中。

此外,在大多数类型的软件中,应用程序的速度不那么重要比开发成本,维护成本,系统可靠性等等。通常,唯一的硬性能标准是软件运行速度足以容忍。许多年轻的程序员发现这很难掌握,也很难接受,但支付薪水的人会以不同的方式思考这些事情......

答案 8 :(得分:2)

我个人对Java的使用一直在手机上。我将应用程序移植到Android和BlackBerry。因此,对于真实世界公开可见的用法,那些操作系统及其无数的应用程序都是公平的例子。

我使用Java越多,我就越不喜欢它。这部分是开发人员工具(Eclipse),部分是目标平台,部分是语言本身。 Java是一种很好的第一语言,但在某些时候我希望你能尝试别人看看你缺少的东西。

答案 9 :(得分:1)

“C spin offs”并没有像你考虑商业世界那样多用(除非你认为Java是一个分拆,我认为你绝对应该这样做。)

如果你想在IT开发中获得高薪工作(查看工作发布),Java目前是要知道的语言(不是第二,甚至不是关闭,除非你将所有选择结合起来,但这意味着很少)。

J2EE(Web开发,服务器'中间层'开发)是Java占主导地位的地方。不幸的是,这不是你可能在大学里学到的东西 - 甚至是谈论的东西 - 大多数教授都不知道J2EE,无论如何。 Java在需要与某些技术,数据库或软件集成的情况下也表现良好。当然它是多平台(如果编码正确)。与大多数(如果不是全部)替代方案相比,它还为开发人员提供了更多选择(绝大多数)和支持。

J2EE应用程序“似乎”并不常见,因为它们通常隐藏在公司或政府内部网络中,或者用于您显然从未见过的Web服务器上。

答案 10 :(得分:-1)

如何?我打开我的编辑器,发誓Java是如此冗长和低级(但不像C级那样低级),然后开始输入。

除了步骤2中的细微变化外,对于我用于工作的所有语言来说几乎都是一样的。

答案 11 :(得分:-3)

您是指作为公众普通会员所面临的突出应用?没有多少,我只能想到一个Frostwire。并不意味着它的存在并不存在,在我开始我的编程生涯之前,我从未听说过Oracle,尽管现在它和可口可乐公司一样大。