java常见_关于Java的常见误解

java常见

Java是世界上使用最广泛的语言(需要引用),每个人对此都有自己的见解。 由于它是主流,所以通常会嘲笑它,有时是对的,但有时批评并没有触及现实。 我将尝试解释我最喜欢的5个关于Java的误解。

  1. Java速度很慢 – Java 1.0可能确实如此,并且最初听起来似乎合乎逻辑,因为Java不是编译成二进制,而是编译成字节码,而字节码又被解释了。 但是,现代版本的JVM进行了非常非常优化(JVM优化不仅是一篇文章,而且是一整本书的主题),而且不再是遥不可及的了。 如此处所述在某些情况下 ,Java甚至可以与C ++媲美。 如果您是Ruby或PHP开发人员,那么开个关于Java变慢的笑话当然不是一个好主意。
  2. Java太冗长了 –在这里,我们需要将语言从SDK和其他库中分离出来。
    • JDK(例如java.io)中有一些冗长的细节,这是:1.用事实上的标准库(例如guava)轻松克服了2. 一件好事
    • 至于语言的冗长性,唯一合理的一点是匿名类。 在Java 8中,这些功能不再是问题。 Getters和setters, Foo foo = new Foo()而不是使用val (可能)是样板,但它并不冗长-不会在代码上增加概念上的重量。 不需要花费更多的时间来编写,阅读或理解。
    • 其他库–看到像AbstractCommonAsyncFacadeFactoryManagerImpl这样的类确实很吓人。 但这与Java无关。 可以说,有时这些长名称是有意义的,也可以说它们是如此复杂,因为底层的抽象不必要地复杂,但是无论哪种方式,这都是每个库做出的设计决定,而语言或语言都不是什么。 SDK本身就强加了。 看到过度设计的东西是很常见的,但是Java绝不会将您推向这个方向-可以使用任何语言以简单的方式完成东西。 您当然可以在Ruby中拥有AbstractCommonAsyncFacadeFactoryManagerImpl ,只是没有一个愚蠢的建筑师认为这是个好主意,并且使用Ruby。 如果“大型,认真,沉重”的公司都在使用Ruby,我敢打赌我们会看到相同的情况。
  3. 企业Java框架是过时的软件 –肯定在2002年使用EJB 2时(或者“已经”,我还太年轻,无法记住)确实如此。 而且,您仍然确实不需要一些过度设计和过时的应用程序服务器。 人们使用它们的事实是他们自己的问题。 您可以使用Spring,Guice甚至CDI之类的框架来完美,易读,易于配置和部署Web应用程序。 使用诸如Spring-MVC,Play,Wicket甚至最新的JSF之类的Web框架。 甚至没有任何框架,如果您不想重复使用通过真实世界使用的框架。 您可以使应用程序使用消息队列,NoSQL和SQL数据库,Amazon S3文件存储等,而不会带来任何意外的复杂性。 的确,人们仍然喜欢吃惊的东西,并在不需要的地方添加几层,但是框架为您提供这种功能的事实并不意味着他们会让您做到这一点。 例如, 这是一个应用程序 ,可对政府文档进行爬网,为其编制索引,并提供用于搜索和订阅的UI。 听起来有点简单,确实如此。 它是用Scala(非常用Java的方式)编写的,但是仅使用Java框架-spring,spring-mvc,lucene,jackson,guava。 我想您可以开始快速维护,因为它很简单。
  4. 您不能使用Java快速原型设计 -这与上一点有关-假定使用Java的速度很慢,这就是为什么如果您是初创公司或周末/黑客松项目,则应使用Ruby (使用Rails),Python,Node JS或其他任何可以让您快速原型化,保存和刷新,轻松进行迭代的东西。 好吧,那根本不是真的,而且我甚至都不知道它来自哪里。 可能是因为流程繁重的大公司使用Java,因此制作Java应用程序会花费更多时间。 而且“保存并刷新”对于初学者来说可能令人望而生畏,但是使用Java(针对Web)编程了一段时间的任何人都必须知道一种自动化方法(否则他是n00b,对吗?)。 我已经总结了可能的方法 ,并且大多数方法都可以。 这里的另一个示例(也可以用作上述示例)–我做了这个项目,用于验证周末+ 1天之内网站的安全密码存储,以解决晚上的问题。 包括安全性研究。 Spring-MVC,JSP模板,MongoDB。 再次-快速简便。
  5. 如果没有IDE ,您将无法在Java中执行任何操作 -当然可以,您可以使用notepad ++,vim和emacs。 您将只缺少重构,保存时编译,调用层次结构。 就像使用PHP或Python或javascript进行编程一样。 关于IDE与编辑器的争论漫长,但是您可以在没有IDE的情况下使用Java。 这样做没有任何意义,因为从IDE获得的收益远远超过从文本编辑器+命令行工具获得的收益。

您可能会说我能够快速编写出色而简单的Java应用程序,因为我拥有丰富的经验,我确切地知道要使用哪些工具(哪些不是),并且我是一些常识性的稀有开发人员。 尽管我对此感到很受宠若惊,但我与优秀的Ruby开发人员或Python专家没有什么不同。 只是Java太广泛了,以至于没有好的开发人员和工具。
如果有那么多人使用其他语言,那么可能会生成相同数量的糟糕代码。 (即使使用更少PHP,PHP也已经领先)。
我是最后一个不嘲笑Java的人,它当然不是灵丹妙药,但是如果人们因传闻证据或以前的不良经历而对误解的理解减少了,我会更高兴la“从我以前的公司开始,我就讨厌Java,因为该项目非常was肿”。 不仅是因为我不喜欢别人有偏见,而且因为您可能会以一种不起作用的语言开始下一个项目,只是因为您听说过“ Java不好”。

翻译自: https://www.javacodegeeks.com/2014/04/common-misconceptions-about-java.html

java常见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值