在快速开发方面,是什么使其他语言比Java更快? - java

Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        已关闭8年。
                    
                
        

许多人说,用Python,Ruby,PHP ... etc开发比Java快得多。

问题是,为什么?在编码,IDE,可用库...等方面。还是仅制作第一个原型的速度快?

我对长期从事Java和长期从事其他语言工作的人们的回答感兴趣。

注意:我是在Java之前为.Net开发的,是的,制作一些应用程序的速度更快,但是从长远来看(大型Web项目),它将变得像Java。

参考方案

我认为快速开发语言的主要优点是动态类型化,在这种情况下,您不必花任何精力处理静态类型,例如在Java的

public List<Tree<N extends Iterator, E super Interface1 & Interface2>> 
  = new ArrayList<Tree<N extends Iterator, E super Interface1 & Interface2>>();

...然后再考虑类型擦除。

使用动态类型语言时,您不必担心,但是可以快速回避。这样速度更快,并且通常会导致代码更具可读性(类型信息/噪声更少,请参见上面的示例)。但是,您确实需要彻底的测试,但是通过TDD和通过测试的文档,如今通常无论如何都编写它们。

现在来看一些有关静态类型和动态类型的语言的历史示例;)

随着对C ++的不满情绪增加,动态类型化语言Smalltalk变得越来越流行。但是后来Java出现了。尽管Smalltalk已经具有良好的测试技术(xUnit诞生于Smalltalk领域),但是彻底的测试直到后来才流行起来。我认为这就是现在动态语言兴起的原因。您确实需要在这里进行非常彻底的测试,因为仅在运行时检测到消息调用中的简单错字。

但是也许现在类型推论变得更好了,我们将再次遇到类似的情况,Scala将阻止动态语言的第二次崛起;)

更新:我找到了关于静态类型和动态类型的完整的programmers.stackexchange post。它列出了许多要阅读的论文,还考虑了生产率。

Java:找到特定字符并获取子字符串 - java

我有一个字符串4.9.14_05_29_16_21,我只需要获取4.9。数字各不相同,所以我不能简单地获得此char数组的前三个元素。我必须找到最正确的.并将其子字符串化直到那里。我来自Python,因此我将展示Python的实现方法。def foobar(some_string): location = some_string.rfind('.&…

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

Java:BigInteger,如何通过OutputStream编写它 - java

我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…

Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…

Java:从类中查找项目名称 - java

仅通过类的实例,如何使用Java反射或类似方法查找项目名称?如果不是,项目名称(我真正想要的是)可以找到程序包名称吗? 参考方案 项目只是IDE使用的简单组织工具,因此项目名称不是类或JVM中包含的信息。要获取软件包,请使用Class#getPackage()。然后,可以调用Package#getName()将包作为您在代码的包声明中看到的String来获取…