为什么要选择Java编程语言?

时间:2008-10-16 17:39:45

标签: java

为什么选择java而不是其他人?为什么选择java来编写应用程序?

请包含您使用java的内容(桌面应用程序/ Web应用程序/移动设备)。

16 个答案:

答案 0 :(得分:35)

  • 优秀的工具:IDE,CI等
  • 大量第三方图书馆。
  • 提供大量文件。
  • 提供大量开发人员。
  • 平台无处不在。
  • 出色的表现。
  • 优秀的规格。
  • 坚固的垃圾收集。
  • 管理内存。
  • 原生线程。
  • 选择 - 由多家供应商实施。

我用Java来构建各种中间件产品:库存管理; CMS;化学品注册;等

答案 1 :(得分:22)

Java的一个好处是每个人都知道它。当然,现在我已经说过了,我会从声称从未学过这门语言的人那里得到80条评论。尽管如此......

无论喜欢与否,Java是我们今天在行业中最接近通用语(成语意为“共同语言”)的东西。几乎每个人都在某个时候使用过Java,或者(更常见的)现在正在积极地使用Java。这种普遍存在对某些公司极具吸引力,特别是那些依赖顾问的公司。如果你用Java开始一个项目,你几乎可以保证能够找到人才来维持代码库多年。

另一方面,Java是开发跨平台桌面应用程序的优秀语言......只是没人知道。 Java的大部分优势都在服务器端,加上J2ME人群的一点爱。但是,如果您客观地考虑使用Java 6uN中的Swing,那么很难找到更好的工具。不要误解我的意思,我发现它有它的缺陷,但是在最近的版本中修复了很多这些缺陷。现在的大部分问题都是思想共享:每个人知道 Java是缓慢而丑陋的(两者都不再是严格正确的)。另一个问题是Swing是一个跨平台的UI工具包。这意味着在Swing中创建专业UI比在Cocoa甚至WinForms中创建专业UI要困难得多。

最后,选择Java(而不是.NET或Objective-C)的一个非常好的理由是生态系统。其他答案提到了图书馆,这些图书馆确实值得关注;但我正在考虑语言多样性的上升。如果您今天使用Java编写应用程序,则可以随时无缝地过渡到Scala。您还可以选择在Groovy或JRuby中编写脚本,更不用说利用Clojure中强大的并发抽象。由于其可移植性和高级性,JVM越来越成为语言编译器和解释器的首选目标(甚至超过CLR)。 Java确实处于这种联系的中心,并没有真正直接从庞大的语言云中受益,但它确实从所有互操作性,现在和未来中获得了价值。

答案 2 :(得分:7)

此时我更喜欢Java而不是其他编程语言的原因是:

  • 价格 - 它是免费的
  • 性能 - 由于HotSpot JIT编译器
  • ,这些天真的很快
  • 有效性 - 具有严格的功能,如类型安全,沙盒等等。
  • OOP能力
  • 非常好,经过深思熟虑的异常处理; C ++异常正好相反!
  • 可移植性 - 它几乎可以在所有内容上运行
  • 工具可用性 - 很棒的IDE,如Eclipse& NetBeans是免费的,像Tomcat和应用服务器(JBoss,Glassfish,Geronimo等)这样的Web服务器也是免费的。
  • 灵活性 - 图形,桌面GUI,Web用户界面 - 各种运行环境中的各种事物
  • aptness - 今天许多企业应用程序必须支持HTML,SQL和XML - Java对内置的所有应用程序都有很好的支持,你可以免费获得第三方库,这使得这更容易/更好
  • 得到良好的支持 - Sun不断添加改进并修复一两个版本的内容
  • 向前兼容性 - 与VB这样的东西不同,它在每个版本左右的语法中经历了痛苦的变化,Java的语法和语义似乎从版本到版本向上兼容99.9%

我用Java编写程序已有十多年了,我对它非常满意。在此之前的几十年里,我使用过其他语言。因此,我并没有因为描述我所知道的一件事而有偏见 - 这是我熟悉的众多语言中的一种。

当升级到JDK / JRE时,我会查看文档以查看更改内容。 Sun很善于讲述/解释这一点。我从来没有一个非常艰难的时间从一个JDK移植到下一个JDK。

当我在家中或工作中从一个操作系统切换到另一个操作系统时,它对我编写的Java应用程序或我使用的工具一般没有造成问题。唯一的例外是Borland JBuilder,一些Borland营销或技术天才决定经常停止支持。 Eclipse和Netbeans在Mac上运行得非常糟糕,而且可能永远都会。我使用过Java:

  • MS-Windows 95,98,NT4,2000,XP
  • Sun Solaris / SunOS Unix
  • IBM AIX
  • Mac OS X
  • 的Linux
  • 摩托罗拉手机(MIDP,CLDC)
  • Palm Pilot PDA

Java VM(虚拟机)无处不在!他们在:

  • 网络浏览器
  • 手机
  • 的PDA
  • 台式电脑
  • 网络服务器
  • 应用程序服务器

我已经编写了所有这些程序。您所要做的就是使用正确的插件获取IDE,获取所需目标环境的API文档,然后开始编程。

我编写的GUI程序实际上看起来&在不同平台上正常工作!我不能告诉你其他供应商承诺要做多久以及他们失败多久。只是环顾四周,有些仍然存在。

Sun在Java 1.0中承诺了这一点,他们用AWT提供了它。但是,抽象窗口工具包使用本机GUI组件,这些组件之间的差异(根本没有统一标准)太大,无法在所有平台上获得相同/漂亮的外观/行为。

Sun在1998年12月推出Swing GUI API十年前,在这个便携式GUI承诺上表现得非常好。

答案 3 :(得分:6)

尚未提及的事情:

  • 跨平台桌面应用程序,即使使用复杂的GUI
  • 一堆工具
  • 静态类型(请参阅GWT
  • 编译时的错误消息
  • 非常明确的错误消息

答案 4 :(得分:6)

1)非常好且免费的文件
2)非常好的开发商商业和免费工具
3)良好的认证和培训资源
4)良好的运行时间和免费工具
5)良好的分析和监测工具
6)来自不同公司的非常好的支持选项
7)非常好的开源社区,拥有大量的图书馆

答案 5 :(得分:5)

Java提供了一个非常丰富的API,开箱即用,由于几乎每个平台都有一个Java VM,因此可以实现最便携的应用程序。

BTW:自从我从事大学工作以来,我没有使用过Java,但是我想不出我在C#中可以用Java做的一件事,不管是不是企业应用程序,Web应用程序或桌面应用程序。

答案 6 :(得分:4)

可移植性是java的关键。我知道我正在编写的程序将在任何系统上运行,不需要为不同的OS创建不同的版本。 Java还提供内置安全性,使安全程序的编码更容易 Java速度很快,clean code java的基准测试范围与C ++相同。

C#是最常与java进行比较的语言。 C#不像java那样可移植,并且java的功能很少。这使得java更具吸引力,除非程序只能在单个操作系统上运行,在这种情况下我可能用C ++编写它。

答案 7 :(得分:3)

我从多年的C ++转向Java,因为我正在从事更高级别的工作,并且需要使用Java获得内存管理,反射和沙盒执行的好处。

我在九十年代后期尝试过COM而无法触及它。

.NET看起来很有前途,现在在很多方面比Java好得多。不幸的是,以窗口为中心对我来说是一个彻头彻尾的破坏者。

答案 8 :(得分:3)

另一个好处是可用的令人敬畏的静态分析工具,例如FindBugs。这些代码执行了大量的代码检查,超出了编译器执行的代码,并且可以在测试开始之前帮助识别错误和/或代码异味。

答案 9 :(得分:3)

已经提到了很多很好的理由。我想补充政治部分。我相信太阳的语言比微软的替代品更多。这不是因为我讨厌微软,只是因为Sun正朝着我真正喜欢的Java方向发展,微软正在向.net等方向发展我真正不喜欢的方向。

我知道这是非常主观的。但对我来说,似乎Sun真的想要创造一种优秀的语言,并尝试以某种方式赚钱。虽然微软似乎更感兴趣的是通过供应商锁定以及看起来很棒且感觉很棒的系统赚钱,但从长远来看可能不如它看起来那么好。

因此,微软现在处理它的方式,从技术上讲,我甚至不关心它的好坏。我不在乎,我不打算用它。

Java拥有我想要的所有这种编程语言,包括大多数人只是跳过的所有无聊的政治内容。我不知道有任何其他现有语言。

答案 10 :(得分:3)

我在大多数桌面应用程序项目中使用Java的主要原因是跨平台兼容性。让您的应用程序在OS X,Windows和Linux上运行并在所有平台上看起来很原生很容易。

答案 11 :(得分:2)

我在我们的BPM平台上使用Java,并且过去曾将Java用于企业Web应用程序。

这取决于你想做什么。考虑到语言功能,可用库和IDE体验,我个人会选择C#而不是Java。 C#3.0有许多Java缺乏的有用功能,例如LINQ,Lambda表达式等。有些人更喜欢Java可用的庞大库选择,但我认为有太多的方法可以做。像Eclipse和NetBeans这样的Java IDE正在变得越来越好,但我认为Visual Studio仍然更容易使用。

当然,如果您不使用Windows,那么除了选择Java之外,您没有太多选择。 Ruby和Python可以是实用程序和GUI(包括Web应用程序)之类的好选项,但对于不使用Windows的企业应用程序,Java几乎是唯一的选择。

答案 12 :(得分:1)

将其用于桌面应用程序。

优秀的IDE可用,精彩的API,“C风格”语法使其易于拾取。一旦JVM启动,性能就会很好。

答案 13 :(得分:1)

为什么我会选择Java?它现在是最流行的语言吗?如果没有,它必须非常接近,所以如果我正在构建一个产品,我可能会选择这个,因为它最容易雇佣开发人员。

为什么我选择Java - 因为这是我最了解的。

答案 14 :(得分:1)

请不要盲目跟随所有java-entousiasts。 Java有自己的缺陷。 Java非常适合快速开发,面向企业的东西和“高生产力”项目(有大量项目,社区......)。 如果一个人向我展示了一个基准,突出了如何将Java代码作为C代码最优,并不意味着完整的Java解决方案是快速而轻量级的。

Java永远不会在一些性能关键应用程序上找到它的方式,比如游戏,编解码器,Web浏览器。在Java中没有开发大型游戏软件,并不是因为开发人员无法编写与C或C ++具有相同速度的一段Java代码,这是因为该语言的局限性涉及性能和内存消耗将会永远不会达到一个好的C / C ++代码。采用VisualStudio和Eclipse。 Java非常适合一种东西(生产力,企业中间件),但如果你想编写编解码器,游戏,性能关键库,你最好尝试一下C。 但是,另一方面,你会更快更安全地编写java代码,使用C和C ++你会冒更大的风险(指针!),这通常需要更多的时间。

并且不要忘记“写一次,调试无处不在”的笑话,这其实是真的。您必须使用Java处理不同的JVM实现噩梦。

其他编程语言对他们感兴趣,bash / python脚本用于本地脚本(重复动作,快速和快速UI,......)。 Web应用程序的Php或ruby已经很好地部署并在Web上进行了记录。

答案 15 :(得分:0)

为什么选择Java?如果我碰巧有一个 replaceable code monkeys 开发团队,他们比其他任何事情都更了解Java,那可能就是我的目标。