Kotlin vs R Language

Need advice about which tool to choose?Ask the StackShare community!

Kotlin

16.9K
11.4K
+ 1
647
R Language

3.8K
1.9K
+ 1
412
Advice on Kotlin and R Language
Needs advice
on
JavaJavaKotlinKotlin
and
RustRust

I was thinking about adding a new technology to my current stack (Ruby and JavaScript). But, I want a compiled language, mainly for speed and scalability reasons compared to interpreted languages. I have tried each one (Rust, Java, and Kotlin). I loved them, and I don't know which one can offer me more opportunities for the future (I'm in my first year of software engineering at university).

Which language should I choose?

See more
Replies (8)
Recommends
on
JavaJavaKotlinKotlin

I will highly recommend Kotlin. I have worked with all three intensely and so far the development speed and simplicity is the best with Kotlin. Kotlin supports coroutines out of the box. Now, it isn't something that can't be implemented in other languages but Kotlin makes it super easy to work with them. Kotlin has a bit of learning curve, so, by the time you can actually use it idiomatically chances are that you will get proficient in Java too. But once you get it, you get it, then there is no other language ;) Kotlin is backed by Google and Jetbrains team so you can expect latest programming features and good community support.

See more
ALESSIO SALTARIN
Distinguished IT Architect at IBM · | 4 upvotes · 298K views
Recommends
on
GolangGolang

As you certainly know, there are languages that compile in meta-code for Virtual Machines (Java, C#, Kotlin) and languages that compile in Machine Language (Go, Rust). Apart specific domains (blockchain, IoT embedded software, AI, cloud) almost no-one uses languages that compile in machine language, for a series of reason, most of all security and portability. So, if you are going to learn for business go with Kotlin - Java is a bit ancien regime. If you seriously need to learn a language that compiles in ML - for example you will code for IoT - go with Go - or Rust - but keep in mind that Rust is much less used than Go. PS: Kotlin also compiles in ML, but I would choose a language designed for that, instead of one that compiles "also" in ML. PPS: Some Virtual Machines - ie: GraalVM - allow you to compile Java in ML. The world of IT is beautiful.

See more
Mayur Borse
Software Engineer at hyphenOs · | 4 upvotes · 298.1K views
Recommends
on
RustRust

I'd say Rust's knowledge will be more valuable in comparison. You can work in Blockchain development, compile to WASM (WebAssembly). There is a new JavaScript/TypeScript runtime named Deno (by the creator of Node.js) that has its backend in Rust.

See more
Recommends
on
RustRust

If you want a compiled language then go for Rust. It takes a certain mindset to get your head around its memory management system and the way it handles "borrowed" memory. However, it will generate blindingly fast code that you can cross-compile for other platforms. As a systems programming language I highly recommend it. Take time and learn it.

Java is only compiled to bytecode, not to machine code. So it executes in the Java Virtual Machine. DOn't think that its not fast, because the latest incarnation are very fast indeed. For most practical purposes, users of your code won't notice any difference. There are a heck of a lot of features in Java that you either have to import via crates in Rust, or write yoursef. So productivity-wise, Java may well beat Rust.

Kotlin is a Java-lookalike. It's a nice, and succinct version of Java and is totally interoperable. But its a bit niche, and for me it fails because my dev environment of choice (Spring Tool Suite) doesn't really play well with Kotlin. To use it you would be well advised to use iDeaj. I have used kotlin, and I like it, but not enough to ditch all my Java code.

Other contenders, depending on your platform of choice are Golang, C, C++, and C# (available as Mono on Linux systems).

I use Rust and Java and if you need a compiled language I recommend Rust.

See more
Reza Malek
at Meam Software Engineering Group · | 4 upvotes · 289.9K views
Recommends
on
KotlinKotlinRubyRubyRustRust

It depends on which level and use cases you prefer to work at. Close to the machine? Rust is great but if you need to find more job opportunities, then take C/C++. Java has many job positions but I suggest Kotlin over it. Think about it as a better Java, but fewer job positions. Do you want to do your own projects? So a productive language like Ruby is way better. Like to program front-end apps? Take JS. Find your passion.

See more
Alexander Nozik
Senior researcher at MIPT · | 3 upvotes · 291K views
Recommends
on
KotlinKotlin

All those are nice languages, but Rust is harder to learn properly and has a smaller ecosystem. If you want to work in system programming (like hardware drivers) Rust is probably your choice. Otherwise, Java/Kotlin ecosystem is much larger and gives much more possibilities (maybe excluding low-level system programming).

When talking about Kotlin and Java, both are good. But Kotlin, again, gives much more opportunities. Kotlin-JS gives you browser applications, Kotlin-Native allows to compile to native application (and interop with them). Kotlin-WASM will be available shortly. Rust is better than Kotlin-Native for native development tight now, but not by far and it makes sense only if you are focusing only on native development.

See more
Luiz H. Rapatão
Tech Lead at rapatao.com · | 3 upvotes · 290.9K views
Recommends
on
JavaJavaKotlinKotlin

I'd recommend you to take a look at Java and Kotlin, the first due to the number of companies that actively use it in your products. Kotlin is gaining adept since it is fully compatibly with the Java ecosystem but usually requires less code to do the same (ignoring other benefits of the language). Another benefits of the Kotlin is that it is in fact multiplatform, where you could use the same syntax to code for mobile, web and backend applications. The drawback of Kotlin, is the number of open jobs that exists currently compared to Java, but I pretty sure that it will change in the near future.

See more
Radu Maerza
Software Engineer at Freelancer · | 3 upvotes · 291.1K views
Recommends
on
KotlinKotlin

I would go with Kotlin. It is pretty hyped currently.

You can use Kotlin for a lot of application types. To name some:

  • Kotlin Multiplatform with Gradle
  • Ktor (https://ktor.io)
  • Spring Boot
  • Kotlin JS (as you already know Javascript, you might like this one)

The code is also really concise, readable and modern. It also provides many features that you will find in many other programming languages.

See more
Needs advice
on
C#C#F#F#
and
KotlinKotlin

Hi there. I want to expand my coding toolset. So I want to learn a second backend language besides Kotlin. Kotlin is fantastic. I love it in every aspect, and I think I can never return to Java. And also why should I? It is 100% interoperable with java and can co-exist in every project.

So my question here is. Which language do you think will bring me more joy? I think F#; it is more like Kotlin. Then C# (it's more or like 100% java). But, let's say I learn F#. Is it 100% interoperable like Kotlin? can they live side by side? Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow? I would like to learn .Net.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go?

See more
Replies (3)
Recommends
on
C#C#KotlinKotlin

Exceptional decision to go with Kotlin. For the other story, go full with C#. "is C# the holy cow? Yes it is.". Specially now when netCore is crossplatform and you can build asp.net core applications on Windows, Linux and macOS via Visual Studio Code which is also multiplatform. Nothing will beat C# in the near future. Also, at the end of 2021 Microsoft will release Net 6.0 which will include MAUI.

"For those new to .NET MAUI (standing for .NET Multi-platform App UI), Microsoft says it's "the evolution of Xamarin.Forms extended from mobile to desktop scenarios with UI controls rebuilt from the ground up for performance and extensibility."

So, C# all the way sire!

See more
Recommends
on
C#C#

animefanx1,

First let's get your questions sorted: Which language do you think will bring me more joy?

This you will have to decide for yourself, I am a long time C# developer and have seen it grow into a very compelling platform. The language and I'd compare it more to Kotlin than Java (by a long margin). More on .NET in a bit.

say I learn F#. Is it 100% interoperable like Kotlin?

You can have 100% interop with a caveat, your F# libraries have to implement certain guidance in order to be referenced from C#. Some (dare I say most) of the differences between F# and C# are predicated on language constructs that are not available in C#. For instance F# functions that return Unit.

can they live side by side?

Yes.

Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow?

I don't know if I take your meaning, but let me say this: Learning either C# or F# will likely force you to understand concepts such as garbage collection, primitive types, etc. which apply to all .NET languages, thus a lot of the effort you put into .NET is bound to pay off regardless of your choice.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go? You can't go wrong with any of these and I venture to say whether you select C#, F#, Dart or Go as your next adventure, your willingness to learn will take you to try other languages, some which mey not even exist yet!

PS1: .NET is an end to end environment now. With the introduction of Blazor and Razor pages one does not need JavaScript or other browser scripting languages, it even interops with JavaScript. PS2. Microsoft is working on unifying .NET. Soon there will be only one version: .NET 5! Caveat: Some features such as WinForms will still be specific to the windows environment but all of those are likely things you don't need in Mac or Linux

See more
Recommends
on
GolangGolang

I think you can learn go instead C#. C# is cool, but Golang also cool. It can run on any OS without specific software. C# can run on linux too but it's only the .NET Core as I know. But golang is flexible. So try it and decide what do you think about Golang

See more
Needs advice
on
DartDart
and
KotlinKotlin

Can anyone help me decide what's best for app development or even android Oreo development? I'm in a state dilemma at the moment. I want to do Android programming, not necessarily web development. I have heard a lot of people recommend one of these, and it seems that both the tools can do the job. Which language would you choose?

See more
Replies (4)
Ondrej Malek
Recommends
on
DartDart

I assume that you mean Flutter by Dart. I have over 6 years experience programming in Android SDK, but about 1,5 month in Flutter. So far I think that Flutter is the future for mobile development. Flutter SDK is much better designed. Ecosystem of libraries seems having much higher quality. I would even say that android opensource libs are having really poor quality. Many times I am wondering how can garbage like that have so many stars at GitHub. Android SDK is hard to compose so you reinvent even basic things on and on, which is totally different story at Flutter. Lolcycle? Both are having good documentation. I quess apps in Flutter can be done in 1/3 of time compared to develop AndroidSDK and iOS, its design is that much better and contemporary. As of language comparison - Kotlin is better, but the difference is not that important. Go from one language to other is no problem. Dart is being updated with new features.

See more
Recommends
on
DartDart

I've selected Flutter and Dart for my side projects and never regretted. Dart learning curve is easy after any OOP language . Flutter as a framework is also has a low entry threshold. I've already started development after a week of learning. Pros for me: code can be build for Android and IOS devices (for ios you need mac or VM), apps written in Dart have great performance on each of these platforms, flexibility. Cons: if you want to build a product as a business and want to hire a new Flutter Developer in the future it can be a problem as the framework and language is not popular for the moment.

See more
Ranjeet Sinha
Senior Software Engineer · | 3 upvotes · 255.3K views
Recommends
on
KotlinKotlin

It depends on what is the purpose of your app development. Do you want to make one app that shares the codebase for both iOS and Android? If yes, then Dart is the way to go. Does your app include interacting with hardware features like camera, Bluetooth, if yes, then go for native Android for better performance? Dart is good for simpler UI apps where you just do basic crud operations over the network and show data but if you need richer UI experience go with native.

See more
Tran Phuc
CTO at Nextfunc Co., Ltd · | 3 upvotes · 255.3K views
Recommends
on
DartDart

I have worked in mobile development since 2010. I have experienced myself on various techs including Native SDK (Android), React Native (from 2016) and Flutter (2018). Almost the apps nowadays can be built using cross-platforms frameworks like React Native or Flutter. I suggest you start with Flutter. Flutter SDK is designed well to speed up your development and it still keeps the quality for your apps. If you're familiar with OOP languages (Java, C#...), switching to Dart is really quick and easy. Of course, sometimes you will need to dive deep into native parts but almost the cases you don't need. Good luck!

See more
Decisions about Kotlin and R Language
Alexander Nozik
Senior researcher at MIPT · | 3 upvotes · 167.8K views
Migrated
from
JuliaJulia
to
KotlinKotlin

After writing a project in Julia we decided to stick with Kotlin. Julia is a nice language and has superb REPL support, but poor tooling and the lack of reproducibility of the program runs makes it too expensive to work with. Kotlin on the other hand now has nice Jupyter support, which mostly covers REPL requirements.

See more
Alaeddin Alzeybek
Head of Engineering at Volt Lines · | 1 upvote · 210K views

From cross platform development point of view: Using kotlin multiplatform is more convenient than java for implementing cross platform code, since it can be converted to be used in iOS (swift) projects, and it can be easily learned if you already know swift. It still an experimental feature but it helped so far to unify a lot of the common code between our iOS and Android projects. And it is more future proof than java regarding support and maintain multiplatform converting.

See more
Nick Parsons
Building cool things on the internet 🛠️ at Stream · | 11 upvotes · 150.5K views

I work at Stream and I'm immensely proud of what our team is working on here at the company. Most recently, we announced our Android SDK accompanied by an extensive tutorial for Java and Kotlin. The tutorial covers just about everything you need to know when it comes to using our Android SDK for Stream Chat. The Android SDK touches many features offered by Stream Chat – more specifically, typing status, read state, file uploads, threads, reactions, editing messages, and commands. Head over to https://getstream.io/tutorials/android-chat/ and give it a whirl!

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Kotlin
Pros of R Language
  • 73
    Interoperable with Java
  • 55
    Functional Programming support
  • 50
    Null Safety
  • 46
    Official Android support
  • 44
    Backed by JetBrains
  • 37
    Concise
  • 36
    Modern Multiplatform Applications
  • 28
    Expressive Syntax
  • 27
    Target to JVM
  • 26
    Coroutines
  • 24
    Open Source
  • 19
    Practical elegance
  • 19
    Statically Typed
  • 17
    Type Inference
  • 17
    Android support
  • 14
    Readable code
  • 13
    Powerful as Scala, simple as Python, plus coroutines <3
  • 12
    Better Java
  • 10
    Pragmatic
  • 9
    Lambda
  • 8
    Target to JavaScript
  • 8
    Better language for android
  • 8
    Expressive DSLs
  • 6
    Used for Android
  • 6
    Less boilerplate code
  • 5
    Fast Programming language
  • 5
    Less code
  • 4
    Less boiler plate code
  • 4
    Functional Programming Language
  • 4
    Native
  • 4
    Friendly community
  • 3
    Spring
  • 3
    Official Google Support
  • 2
    Latest version of Java
  • 1
    Well-compromised featured Java alternative
  • 84
    Data analysis
  • 63
    Graphics and data visualization
  • 54
    Free
  • 45
    Great community
  • 38
    Flexible statistical analysis toolkit
  • 27
    Easy packages setup
  • 27
    Access to powerful, cutting-edge analytics
  • 18
    Interactive
  • 13
    R Studio IDE
  • 9
    Hacky
  • 7
    Shiny apps
  • 6
    Shiny interactive plots
  • 6
    Preferred Medium
  • 5
    Automated data reports
  • 4
    Cutting-edge machine learning straight from researchers
  • 3
    Machine Learning
  • 2
    Graphical visualization
  • 1
    Flexible Syntax
Cons of Kotlin
Cons of R Language
  • 7
    Java interop makes users write Java in Kotlin
  • 4
    Frequent use of {} keys
  • 2
    Hard to make teams adopt the Kotlin style
  • 2
    Nonullpointer Exception
  • 1
    Friendly community
  • 1
    Slow compiler
  • 1
    No boiler plate code
  • 6
    Very messy syntax
  • 4
    Tables must fit in RAM
  • 3
    Arrays indices start with 1
  • 2
    Messy syntax for string concatenation
  • 2
    No push command for vectors/lists
  • 1
    Messy character encoding
  • 0
    Poor syntax for classes
  • 0
    Messy syntax for array/vector combination
- No public GitHub repository available -

What is Kotlin?

Kotlin is a statically typed programming language for the JVM, Android and the browser, 100% interoperable with Java

What is R Language?

R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, ...) and graphical techniques, and is highly extensible.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Kotlin?
What companies use R Language?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Kotlin?
What tools integrate with R Language?

Blog Posts

Aug 28 2019 at 3:10AM

Segment

PythonJavaAmazon S3+16
7
2551
GitHubPythonNode.js+47
54
72279
GitHubGitDocker+34
29
42418
What are some alternatives to Kotlin and R Language?
Scala
Scala is an acronym for “Scalable Language”. This means that Scala grows with you. You can play with it by typing one-line expressions and observing the results. But you can also rely on it for large mission critical systems, as many companies, including Twitter, LinkedIn, or Intel do. To some, Scala feels like a scripting language. Its syntax is concise and low ceremony; its types get out of the way because the compiler can infer them.
Swift
Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.
Java
Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
Groovy
It is a powerful multi-faceted programming language for the JVM platform. It supports a spectrum of programming styles incorporating features from dynamic languages such as optional and duck typing, but also static compilation and static type checking at levels similar to or greater than Java through its extensible static type checker. It aims to greatly increase developer productivity with many powerful features but also a concise, familiar and easy to learn syntax.
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
See all alternatives