为什么Java后端在创业企业中并不流行? -reddit

解道jdon 2021-05-04 16:49:17
java 后端 企业 创业 并不


我之前尝试过django,flask和rails,它们很好。但是在尝试spring之后,我坠入爱河。结构良好。易于测试。有这么多框架可以帮助您前进。网络上也有很多教程。

我喜欢python,但我也喜欢java和kotlin。我只是不明白在大多数创业公司中将java用作后端有什么问题。是因为它在大公司和银行中很受欢迎,而他们只是讨厌“企业”之类事情。

众说纷纭:

大多数初创公司选择开源项目来启动。大多数此类Web应用程序都是使用php构建的。

我去过使用Java / Spring Boot作为后端的两家创业公司。

我知道的所有初创公司都使用一些ME * N堆栈。

大多数初创公司并不是真的需要微服务。如果您是Netflix,Amazon,Facebook,则可能需要它。但是规模较小的创业公司却没有。

大多数创业公司都是由年轻人创办的。在他们看来,Java似乎是过去的。

我认为Golang在创业公司中非常受欢迎

Golang现在疯狂流行。我有一些在初创公司工作的朋友,在Golang工作了一段时间后,他们真的很想念Java。特别想念以前使用Java和统一框架(如Spring)时的工作效率。

从Java转到Go的每个人都会在一段时间后错过Java。Go是垃圾语言。如果不是Google产品,那就永远不会如此流行。

我知道或曾经工作过的几乎每个初创公司都是Java / Python。似乎这里的每个人都对Java有所抱怨,因为他们没有使用过Java,因为大多数人都是胡说八道。

事实并非如此,在柏林,近60-70%的初创公司正在使用Java / Kotlin进行微服务开发

我认为将Kotlin或Scala用于后端系统的最大缺点之一是,它们在许多市场中仍然缺乏招聘潜力。

在上一份工作中,我几乎专门与不同的早期创业公司合作。尽管Java并不是最受欢迎的技术堆栈,但并非闻所未闻。我们大多是Ruby on Rails和Express,但有些是Java,有些是.NET,有些是Python。

许多堆栈选择完全取决于谁构建了MVP或v2平台。

我曾在几个不同的初创公司工作过,根据我的经验,这是因为您在小型精益初创公司中需要的顶尖人才不想使用Java。我从事Scala项目已经有几年了,虽然这是一个愉快的开发经验,但出于多种原因,我永远不会选择Scala进行任何未来的项目。Groovy是我个人最喜欢的语言,但是我也永远不会选择将其用于生产代码。但是我遇到的每个Groovy开发人员都是一个了不起的开发人员。

有几个原因,大部分与成本有关。创业公司必须节俭:相信JS自上而下会使您最昂贵的成本(开发人员)更加便宜。新开发人员不会对OOP感到宾至如归,与其他语言相比,带有spring的Java占用了大量资源。这增加了托管成本,比较长的启动时间使诸如AWS lambda之类的选项无法启动。简短代码的普遍吸引力。Java的冗长性使其表现不佳。认为行数会影响开发时间。相比之下,Java不是一种很棒的函数语言。函数编程仍然处于高潮。

日本的行业就是这种情况,JD是完整的JS堆栈或Ruby on Rails。我有5年Java经验,仅此而已...

初创企业受员工成本支配,需要尽快上市Java开发人员并不便宜,上市时间也不是特别快。因此没有比较优势。

因为初创企业是由先动者优势经营的,而有些想法恰好可以更快地吸引风险投资。也就是说,无论先驱是谁,创始人工程师都是定义组织代码库的命运的人,如果碰巧是Java工程师,他们将使用Java。现在请记住,大多数在未开发项目上开始的工程师都利用这个机会尝试了另一种技术。这就是为什么您可能会认为Java失去了优势,但最终,当每个人遇到性能瓶颈时,他们都会选择Java,Go,Rust和C ++。

简而言之,用python或PHP框架建立MVP的速度(我有偏见)要比使用Java的速度快得多。我知道Spring是一个不错的Java框架,并且提供了许多样板内容。

大多数初创公司都是非常小的团队,这并不是Java真正的亮点。Java是一种冗长的语言,具有许多样板,并且缺少现代语言所具有的许多功能,因此其他语言构建快速原型通常效率更高。Java的优点可以弥补这些缺点,当您拥有大量的代码库和庞大的团队时,它们就会发挥作用。

Java是丰田凯美瑞语言。当他们的妈妈,阿姨和叔叔已经开上这种车时,年轻人(又名初创企业)什么时候想要凯美瑞?

在瑞典开发人员小组中进行了一次非正式调查,而Kotlin在后端的表现似乎很强劲!由于Kotlin是Android上最受欢迎的语言,并且许多JDK停留在Java8上,因此Kotlin可能是JVM的未来。

当任何产品无法扩展时,公司便开始转向Java / JVM。

Java的问题在于很难掌握它的所有方面。

真正的初创企业如何选择不使用Java。因为硬件很贵。通过使用golang,512MB vps可以运行8个或更多应用,每个仅占用8MB内存,每个应用处理5W qps。Java需要超过128MB + 48MB(或更多您想要的)。

 

版权声明
本文为[解道jdon]所创,转载请带上原文链接,感谢
https://www.jdon.com/54517

  1. Realization of reactor Kafka through spring boot Webflux
  2. RPC框架设计----Socket与I/0模型
  3. Problems in upgrading from Java 8 to Java 11
  4. RPC framework design -- socket and I / 0 model
  5. RPC框架设计----I/0模型
  6. RPC framework design: I / 0 model
  7. RPC框架设计----NIO编程缓冲区Buffer
  8. RPC框架设计----NIO编程缓冲区Buffer
  9. RPC framework design -- NiO programming buffer
  10. RPC framework design -- NiO programming buffer
  11. Java多线程基础
  12. Java multithreading Foundation
  13. 码农飞升记-00-Java发展历程
  14. Development history of coder-00-java
  15. 码农飞升记-00-Java发展历程
  16. Development history of coder-00-java
  17. Spring and Autumn Moon
  18. Node.js与Spring Boot比较? - Ryan Gleason
  19. Spring WebFlux的明显陷阱 - ŁukaszKyć
  20. Spring创始人Rod大叔对YAML的真实想法
  21. Compare node.js with spring boot- Ryan Gleason
  22. Obvious pitfalls of spring Webflux- Ł ukaszKy ć
  23. Spring founder uncle rod's real thoughts on yaml
  24. 码农飞升记-02-OracleJDK是什么?OracleJDK的版本怎么选择?
  25. What is manong feisheng-02-oracle JDK? How to choose the version of Oracle JDK?
  26. Spring tide surging Xinanjiang
  27. Linux内核软中断
  28. Linux kernel soft interrupt
  29. Linux内核软中断
  30. Linux kernel soft interrupt
  31. Java multithreading Foundation
  32. The construction of Maven private library nexus
  33. I / O stream in Java
  34. JDK 16:Java 16的新功能 - InfoWorld
  35. 在Java中本地进行线程间数据传输的三种方式和源码展示
  36. jdon导致cpu 99%最后tomcat死掉---banq给予回复
  37. 用领域事件模拟AOP注入
  38. JDK 16: new function of Java 16 - InfoWorld
  39. Cartoon: from JVM lock to redis distributed lock
  40. Spring 3.1 终于加入了Cache支持
  41. Prototype与JQuery对比
  42. Three ways of data transmission between threads in Java and source code display
  43. Jdon causes 99% of CPU and Tomcat dies -- banq replies
  44. docker 原理之 user namespace(下)
  45. Simulating AOP injection with domain events
  46. Spring 3.1 finally adds cache support
  47. Comparison between prototype and jquery
  48. User namespace of docker principle (2)
  49. The way to learn java IO stream and XML
  50. Why does a seemingly correct code cause the Dubbo thread pool to be full
  51. 0 基础 Java 自学之路(2021年最新版)
  52. 0 basic Java self study road (latest version in 2021)
  53. c#—基础拾遗(1) 面向对象
  54. C - basic information (1) object oriented
  55. 技术分享|SQL和 NoSQL数据库之间的差异:MySQL(VS)MongoDB
  56. Technology sharing differences between SQL and NoSQL databases: MySQL (VS) mongodb
  57. PHP教程/面向对象-3~构造函数和析构函数
  58. Spring Cloud的Feign客户端入门
  59. 优化Spring Boot应用的Docker打包速度
  60. PHP tutorial / object oriented - 3 ~ constructor and destructor