- Kotlin Blueprints
- Ashish Belagali Hardik Trivedi Akshay Chordiya
- 292字
- 2021-07-02 21:50:09
Why not other languages?
Many languages prior to Kotlin have tried to become a better Java. Let's see why they could never become one.
Every language attracts the programmer community by giving them an ability to do something that was cumbersome before. Their adoption is directly driven by how much value the promise has for them and how much faith the community can put into that promise.
All languages that claimed to be a better Java and offered something worthwhile beyond what Java offers, also took something back in turn. Here are a few examples:
- .NET has been the longtime rival of Java and has supported multiple languages from day one. Based on the lessons learnt from Java, the .NET designers came up with better language constructs. However, the biggest hurdle for .NET was that it was a proprietary technology, and that created an impediment to its adoption. Also, .NET was more aggressive in adding newer language constructs. While the language evolved quickly as a result of that, it broke its backwards compatibility many times.
- Ruby (and Python) offered shortened code, enticing programming constructs, and greater expressiveness as opposed to the boring Java; however, they took away static typing support (which helps to make robust programs) and made the programs slower.
- Scala offered shortened code and advanced programming constructs, without sacrificing typing safety. However, Scala is complex and has a substantially high learning curve. It supports multiple coding styles. So, there is a danger that Scala code written by one developer may not be understood easily by another. These are risk factors for any project that includes a team of developers and when the application is expected to be supported over a long period, which is true about most applications anyway.
推薦閱讀
- Advanced Machine Learning with Python
- 從零構(gòu)建知識(shí)圖譜:技術(shù)、方法與案例
- Delphi程序設(shè)計(jì)基礎(chǔ):教程、實(shí)驗(yàn)、習(xí)題
- Java面向?qū)ο笏枷肱c程序設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)(Python語言描述)(第2版)
- Mastering macOS Programming
- Java EE 7 Development with NetBeans 8
- Java設(shè)計(jì)模式及實(shí)踐
- 手把手教你學(xué)C語言
- Linux Device Drivers Development
- Getting Started with Greenplum for Big Data Analytics
- 全棧自動(dòng)化測(cè)試實(shí)戰(zhàn):基于TestNG、HttpClient、Selenium和Appium
- iOS開發(fā)實(shí)戰(zhàn):從入門到上架App Store(第2版) (移動(dòng)開發(fā)叢書)
- JSP程序設(shè)計(jì)實(shí)例教程(第2版)
- Struts 2.x權(quán)威指南