When comparing APL vs Kotlin, the Slant community recommends Kotlin for most people. In the question“What is the best programming language to learn first?” Kotlin is ranked 24th while APL is ranked 55th. The most important reason people chose Kotlin is:
Since Kotlin is made by Jetbrains (the developers of IntelliJ IDEA) so it stands to reason that the IntelliJ support for Kotlin is also great. Besides that, Kotlin also works well with existing Java tools such as Eclipse, Maven, Gradle, Android Studio, etc...
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro High-level
No complicated loop processing to apply a function to a array of arrays. Functions are defined in a way that they will typically operate the same way on any number of array dimensions. This, along with the clear syntax, leads to very compact code that can be comprehended in a single line, rather than spread out over many pages.
Pro Iverson award in 2016
Pro Very concise
Pro Clear syntax
There is no operator precedence to memorize, as everything is evaluated right-to-left. E.g., in APL 3*10+3 = 39. You do have to type in some otherwise unusual characters, such as ↓ and ∊, but those are easy enough to pick up -- and they have the advantage of being easily remembered once understood, as they often have some connection to common mathematical symbols.
Pro Terse
You can seriously implement Conway's Game of Life in one line. There's a reason we do algebra with symbols instead of story problems. APL is good as a language of thought, since you can hold entire algorithms in your head at once.
Pro Great tooling support
Since Kotlin is made by Jetbrains (the developers of IntelliJ IDEA) so it stands to reason that the IntelliJ support for Kotlin is also great. Besides that, Kotlin also works well with existing Java tools such as Eclipse, Maven, Gradle, Android Studio, etc...
Pro Easy adoption for existing Java programmers
Kotlin runs on the JVM and Java interoperability has been one of the main objectives since the language was born. It runs everywhere Java does; web servers, mobile devices (Android), and desktop applications. It also works with all the major tools in the Java ecosystem like Eclipse, IntelliJ, Maven, Ant, Gradle, Spring Boot, etc.
All of this makes adoption extremely easy even for existing Java projects. On top of this there's also ensured Type safety and less boilerplate code needed.
Pro Easy to learn if you have prior programming experience
Kotlin's syntax is extremely easy to understand. The language can be picked up in a few hours just by reading the language reference.
Pro No runtime overhead
The standard library is relatively small and tight. It mostly consists of focused extensions of the Java standard library and as such adds no additional runtime overhead to existing Java projects.
Pro Officially supported for Android development
Starting with version 3.0 of Android Studio, Kotlin support will be built-in. This means that it's now easier than ever to use Kotlin for existing Android projects or even start writing Android apps only with Kotlin from scratch.
This also means that Kotlin and Kotlin plugins for Android Studio will be fully supported in the future and their likelihood of being abandoned is quite small since Google is fully embracing the language for their Android ecosystem (alongside Java and C++).
Pro Low-risk adoption for existing Java codebases
Since it has such a good interoperability with Java, Java libraries, and Java tools. It can be adopted for an existing Java codebase at little to no cost. The codebase can be converted from Java to Kotlin little by little without ever disrupting the functionality of the application itself.
Pro Does not impose a particular philosophy of programming
It's not overly OOP like Java and it does not enforce strict functional paradigms either.
Pro Is built to solve industrial problems
Kotlin has been designed and built by developers who have an industrial background and not an academic one. As such, it tries to solve issues mostly found in industrial settings. For example, the Kotlin type system helps developers avoid null pointer exceptions. Reasearch languages usually do not have null
at all, but APIs and large codebases usually need null
.
Cons
Con Hieroglyphics
APL symbols are only used by APL. You have to learn how to type them and how to read them. It doesn't work well with standard text editors , version control systems, search engines, or web forums. This makes it difficult for a beginner to find help.

Con Does not prepare you for most of the practical programming languages of today
While APL does have a strong use in certain areas (mostly mathematically intensive applications), it is a Domain-Specific language. That along with the fact that its syntax is not similar to C-like or other common syntax forms means that learning APL and expecting it to help you with learning other languages is like learning Calculus and expecting it to make English easier.
Con Write-only language
Maybe you can learn to read it with experience. And an interpreter. Reading APL is like reading a college math book. You might have to study a single line for fifteen minutes to understand what it's doing. And that's if you're an expert at APL. This also applies if you wrote it yourself more than a month ago. hopefully you have comments.
Con Flawless diamond
You can't extend the language itself. (J does this better.) Of course, what's built in is quite powerful.
Con May be hard for programmers already used to imperative style to learn functional programming from Kotlin
Since Kotlin does not enforce any particular paradigms and is not purely functional, it can be pretty easy to fall back to imperative programming habits if a programmer comes from an imperative background.
Con The need for Java interoperability has forced some limitations
The need to make Kotlin interoperable with Java has caused some unintuitive limitations to the language design.
