Overview
The article discusses the evaluation of language adoption at scale, particularly focusing on Kotlin for Android development at LinkedIn. It highlights the technical analysis, considerations for compatibility, scalability, and the impact of language features on developer productivity.
What You'll Learn
1
How to evaluate programming languages for mobile development at scale
2
Why Kotlin was chosen over Java for Android development at LinkedIn
3
When to consider language features and compatibility in development
Prerequisites & Requirements
- Understanding of mobile development concepts
- Familiarity with Android development practices(optional)
Key Questions Answered
What factors should be considered when adopting a new programming language?
When adopting a new programming language, factors such as developer productivity, hiring costs, training expenses, and the impact on the product must be considered. An unbiased technical analysis helps in understanding the investment and return of adopting a specific language.
How does Kotlin's performance compare to Java in Android development?
Kotlin's performance in Android development shows overhead primarily due to its null-safety feature, which requires additional checks that Java does not. This can lead to performance implications, especially in large codebases, but Kotlin's features also enhance developer productivity.
What is the impact of Kotlin on app size?
The initial import of the Kotlin standard library increases application size by approximately 1 MB. As more Java code is converted to Kotlin, the app size may increase due to additional methods in the Kotlin bytecode, although ProGuard can help reduce unused methods.
What are the challenges of migrating to Kotlin from Java?
Migrating to Kotlin from Java involves challenges such as ensuring compatibility with existing codebases, managing build times, and addressing potential runtime performance issues. Careful planning and analysis are required to mitigate these risks during the transition.
Key Statistics & Figures
Increase in app size due to Kotlin standard library
approximately 1 MB
This increase occurs when the Kotlin standard library is first imported into an application.
Percentage of apps using Kotlin in Google Play in 2018
35%
This figure represents a significant increase from 9% in 2017, highlighting Kotlin's rapid adoption in the Android development community.
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Programming Language
Kotlin
Used for Android development at LinkedIn, offering modern features that enhance productivity.
Build System
Gradle
Used as the de-facto build system for Android and Java products, facilitating Kotlin integration.
IDE
Android Studio
Provides a development environment that supports Kotlin and offers tools for code refactoring and debugging.
Key Actionable Insights
1Conduct a comprehensive technical analysis before adopting a new programming language to understand its impact on productivity and app performance.This analysis should include evaluating language features, compatibility with existing systems, and potential scalability issues, which are crucial for making informed decisions in large-scale development environments.
2Monitor build times closely when transitioning to Kotlin, as the increase in build time can significantly affect development cycles.Using tools like Gradle Profiler can help identify bottlenecks in the build process, allowing teams to optimize their workflows and maintain efficiency during the transition.
3Leverage ProGuard to manage app size and method counts when converting Java code to Kotlin.ProGuard can effectively reduce the overhead introduced by Kotlin's additional methods, ensuring that the application's performance remains optimal as the codebase evolves.
Common Pitfalls
1
Failing to account for the long-term implications of adopting a new programming language can lead to unforeseen challenges.
Without a thorough evaluation of factors like compatibility and scalability, teams may face increased costs and delays in development as they adapt to the new language.
Related Concepts
Mobile Development Best Practices
Programming Language Evaluation Criteria
Kotlin Vs Java Performance Analysis