3 ms·
My estimate is that Python & Ruby are about 4 to 5 times more productive than Java for the case of web/API development. The benefit grows with the size of the c
by tschellenbach 10y ago
My estimate is that Python & Ruby are about 4 to 5 times more productive than Java for the case of web/API development. The benefit grows with the size of the codebase as Python & Ruby are also easier to read and maintain.
The point the author raises about types is only partially true. Both in Java and Python you should be unit testing your code. If you have good test coverage and CI than it really doesn't matter that Ruby and Python don't check your types.
So blue is my color :)
- tschellenbach 10y agoIn Java's defense.. For certain use cases like data processing and other CPU intensive workloads it runs circles around Python and Ruby. So I guess it depends.
- twblalock 10y agoJava is faster than Python and Ruby for almost every use case.
- twblalock 10y ago> If you have good test coverage and CI than it really doesn't matter that Ruby and Python don't check your types. People say this a lot, but it's not true unless you have 100% coverage, 100% control over the data that gets input into your program, and you can think of every possible test case that covers every possible situation that can occur. Many of the tests you have to write for programs in dynamic languages are simply not necessary for strongly typed languages. Furthermore, compilers for static languages catch (or warn about) a lot of problems that would otherwise have to be reproduced by the kinds of test cases nobody is likely to think of -- this results in bugs making it to production when you use dynamic languages.
- deleted 10y ago[deleted]
- winstonewert 10y ago> People say this a lot, but it's not true unless you have 100% coverage, 100% control over the data that gets input into your program, and you can think of every possible test case that covers every possible situation that can occur. This is different from static typing, how? > Many of the tests you have to write for programs in dynamic languages are simply not necessary for strongly typed languages. Actually, dynamic typing users write very few additional tests. Users of static typing seem to imagine a lot of additional tests being needed, but dynamic typing users don't write them. They are usually for scenarios that are important enough to test. > Furthermore, compilers for static languages catch (or warn about) a lot of problems that would otherwise have to be reproduced by the kinds of test cases nobody is likely to think of -- this results in bugs making it to production when you use dynamic languages. Not my experience. Almost all bugs caught by static compilers are ones that a single execution of the relevant code would also catch.
- twblalock 10y agoYour experience must be limited.
- winstonewert 10y agoSure, instead of answering my questions or points try to dismiss me as not having experience. As a matter of fact, I have developed applications in Python, C++, Java, Javascript, GWT, Javascript, and Coffeescript, for myself, at small companies, and at Google. I don't think you can simply dismiss me as having limited experience unless you've got more extensive experience shipping apps written in both dynamic and static languages. Now, I'm not saying that dynamic typing is better: there are tradeoffs to either approach. But I am saying that your original post gives an overly simplistic appraisal. The pros and cons of static and dynamic typing and much more complicated then that.
- deleted 10y ago[deleted]