您的公司是否正在考虑从Java过渡到另一种技术?[关闭]


9

每个Java开发人员都知道,Oracle收购了Sun,而Java未来似乎还不清楚,特别是因为Oracle希望通过 JVM 获利。在过去的几年中,Java作为一种语言也已经过时了,不包含闭包就是一个例子(它可能包含在Java 1.8中)。与此同时,正在使用一些新技术,例如Ruby,Scala和Groovy提供复杂的网站。

我想知道是否有公司或组织正在谈论,大刀阔斧或开始使用其他技术,以停止在新领域中使用Java的想法,就像15年前公司从C ++迁移到Perl一样和其他Java技术。我也想知道这种情况的印象,例如:计划在2年内迁移到其他技术。

明确地说,我并不是在问哪种技术更好。我在问您的组织是否正在考虑将Java用于其他技术。


1
Groovy和Scala不依赖JVM吗?如果是这样,Oracle也希望通过JVM获利。
POSIX_ME_HARDER 2011年

你是对的。这将对希望使用商用jvm而不是开放jvm的公司采用Scala,Groovy或JRUby产生影响。我将保留最初的问题,因为我认为有些公司可能会乐于为商业JVM付费以便使用其他语言
Augusto

作为Java开发人员,我对您的“每个Java开发人员都知道”的声明表示怀疑。我认为Java的未来既是a)透明又是b)明亮。我敢肯定,有些人可能想为Oracle的“高级”支持软件包支付更多的费用,但是对于那些只打算坚持使用免费的开放源代码Java版本(并不会消失的人)的人来说,那就是有点无关紧要。
mikera 2011年

Mikera,您提到的是开放源代码,但是一些曾经领导开放源代码项目的有影响力的Java开发人员现在正在以其他语言领导项目,因此他们的“精力”被转移到Java之外。检查所有适用于Scala,Groovy或Ruby的出色框架。我没有数字来支持这一点,但是检查有多少“代码行”已承诺以不同的主流语言和趋势在开放源代码存储库中使用,可能会很有趣。
奥古斯托

Answers:


9

完全没有-实际上,我在公司(作为开发用于数据挖掘的SaaS应用程序和工具的创业公司)的平台上对Java进行了大量投资。

原因如下:

  • 选择Java作为平台并不意味着您必须使用Java作为语言。我们使用Clojure作为主要的应用程序开发语言,有时会在需要时加入Java。但是其他JVM语言(例如Scala和Groovy)也很棒。

  • 我个人并不担心Oracle。Java的主要实现几乎肯定会继续是开源(OpenJDK)并免费提供。如果Oracle做任何愚蠢的事情,那么其他大公司(特别是IBM和Google)都在Java上投入了太多资金,以至于无法摆脱它,在没有Oracle的帮助下,他们可以轻松地继续开发Java。

  • JVM是一个伟大的执行环境。跨平台,非常高性能,非常好的优化JIT技术。它足够接近本机速度,因此我不在乎它比C / C ++慢的几分之一,而且此开销还可以通过适当的垃圾回收和托管的字节码执行环境等得到补偿。

  • Java具有强大的开源库生态系统。实际上,我想说它是所有语言中最好的生态系统。这意味着在基础设施方面,大多数“繁重的工作”已经完成,并且质量很高。而且,您所需要的大多数东西都是开源的,这意味着您无需花费任何费用(从金钱和管理时间上)。

  • Eclipse是一款出色的IDE,它为强大的企业应用程序开发提供了出色的工具链。我们使用Maven,JUnit,Git / SVN集成以及作为Eclipse插件可用的许多其他工具。一切都“可行”。

最后,还有哪些其他选择?

  • .NET是唯一具有可比功能的平台,我个人喜欢C#,但它使您无法使用Microsoft技术(比Oracle / IBM IMHO更糟糕),并且没有相同范围的开源生态系统。适用于Microsoft商店,但如果您想控制自己的技术命运,则不行。是的,Mono很可爱,但是我无法将自己的业务押注在一个平台上,该平台可能会或可能无法维持与.NET主流的兼容性。

  • 然后还有其他所有出色的语言都擅长于它们的工作(例如Ruby,Python,PHP,Javascript),但没有提供与Java平台完全一样的引人注目的全面功能。风险在于,您必须开始将一些东西融合到一个稍微不那么漂亮的架构中。建立网站,快速又肮脏的应用程序不是问题,但长期产品开发的吸引力较小。

  • C / C ++非常适合用于系统编程和游戏,但是对于现代Web应用程序开发而言,它过于复杂/昂贵/缺乏灵活性。

  • 还有像Haskell这样的我喜欢的美丽语言,从学术角度来看,这是很棒的,但是没有使它们成为可靠平台选择所必需的行业采用/生态系统。通过在JVM上运行Clojure,我也可以获得现代函数式编程的大部分好处。

是的,这是一个复杂的决定。但是,经过大量的研究和考虑,我在所有其他选项之上都做出了Java决定。我今天仍然会做出相同的决定。

更新

关于在JVM上选择Clojure作为语言选择的几句话。这样做的主要动机是:

  • 并发-Clojure有一个独特的并发故事,观看此视频介绍一些核心概念时,效果很好。通过使用软件事务存储,它可以可靠地扩展到大规模多核体系结构。而且它做到了这一点,而没有太多的开销(无锁!),这在工程上是一项了不起的壮举。
  • 函数式编程-Clojure是一种强调不变性和高阶函数的函数式语言。它不像Haskell那样纯粹地起作用,但是它首先是FP语言。有人说这可以帮助您编写更好的程序。
  • 程序员的生产力-Clojure获得了Lisp代码即数据哲学的所有生产力优势。在实践中,这意味着难以置信的强大宏功能以及简单但极其灵活的语法,可用于定义自己的DSL,以解决所遇到的任何问题。
  • 需要适合于快速开发和脚本编写的动态语言-Clojure可以在标准的“构建-测试-部署”周期中使用,但是使用REPL进行交互式开发,在运行时修改运行的代码环境实际上更为自然。例如,当我开发以查看批处理运行的结果时,我使用Incanter能够绘制图形并实时显示数据。
  • Java互操作性-Clojure的Java互操作性非常有效。Clojure对象是Java对象,反之亦然,因此在需要它们时调用Java API和库很简单。这为您提供了整个Java生态系统库和工具的所有好处。
  • 良好的社区-Clojure的社区很小,但充满活力,友好且发展迅速。已经有许多出色的开源项目,例如Incanter(统计计算)或Ring / Compojure(Web服务器框架)或逆时针(Eclipse IDE插件)

Mikera,这正是我要的。贵公司将Java用作应用程序开发的主要语言,而改为使用Clojure。我同意您的看法,即JVM 不会消失,特别是对于一些投资以JVM之上运行的其他语言的公司而言。您能否分享更多有关使用clojure作为主要开发语言的决定的背后信息?
奥古斯托

当然,我已经添加了一些注释,特别说明了为什么Clojure(我也认为Scala前景十分乐观,但Clojure因其
尖锐的感觉而以微弱优势获胜

感谢您对为什么您的公司决定使用clojure的解释!
Augusto

7

这一切都取决于客户。

Java总是会拥有自己的小众市场,人们会出于某种原因而倾向于Java,这与人们倾向于.php或.net的原因相同,但最终它取决于客户的要求和偏好。

如果客户说...我希望这个应用程序在Java中...我们要说不吗?可能不是...如果他们说我们不在乎......我们要用Java编写它吗?可能不是,但这只是猜测。

我们有使用Java编写的应用程序,这些应用程序已有很长的历史了,但是看来客户正在用Windows品牌精心替换所有内容。 NET的Java。

如果发生这种情况,那么是...除非有新客户进来,然后说嘿...我们希望用Java编写...我们将使用.net。


一家大型的美国汽车零售商正在做类似的事情,它开始用ruby而不是Java来构建大多数未开发的项目。
奥古斯托

1

首先前提是,我不在软件公司工作。

好的,我们使用Oracle作为我们的主要数据库,上面存储了我们所有的重要信息。因此,我们计划继续将Java用于与Oracle有关的任何事情。甲骨文对Sun的收购对我们继续将Java用于与甲骨文相关的任何事情都起到了推动作用。

但是,任何桌面应用程序都是用C#编写的,因为一切都基于Windows。


0

您的公司是否正在考虑从Java过渡到另一种技术?

要回答你的问题。没有。

每个Java开发人员都知道...

在任何规模的公司中,通常不是由开发人员来决定问题,例如公司是否应该从Java转向其他方面。对于做出这些决定的类型,除您列出的因素以外的其他因素也很重要。

... Java的未来似乎还不清楚,特别是因为Oracle希望通过JVM获利。

相反,我认为未来是明确的。Java的发展将以缓慢但稳定的速度继续进行,核心的SE和EE技术将继续免费。对我来说,唯一真正不确定的领域是甲骨文与谷歌的混战。但是,无论如何,我希望Android / Davlik能够代替Java ME繁荣起来……但仅适用于移动平台。

在过去的几年中,Java作为一种语言也已经过时了,不包含闭包就是一个例子(可能包含在Java 1.8中)。

这可能使开发人员感到很讨厌,但是“陈旧”实际上是Sun / Oracle注重业务需求的结果……一种具有长期稳定性的语言/平台。

同时,一些新技术(例如Ruby,Scala和Groovy)用于交付复杂站点。

同样,从管理层的角度来看,评审团将全面评估这些技术是否更好。

  • 从长远来看,宣称的生产率提高是否真的可以证明?
  • 现在有表演吗?可扩展性?第三方工具和库?
  • 他们可以招募经验丰富的员工吗?

公司级别的决定切换到一种新语言会带来巨大的成本和风险,尤其是如果存在大量“传统”语言的现有代码时,尤其如此。


@Augusto-我已经回答了你的问题;见第一句话。你现在高兴了?
Stephen C
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.