mrkeyoor.com_
Fri 16 Oct 19:46 UTC
Dev Toolsevaluationupdated 08 Oct 2026

kotlin review

Kotlin is JetBrains' programming language and compiler project for JVM, Android, JavaScript, WebAssembly, and native targets. This repository contains the compiler, standard libraries, Gradle tooling, and platform backends rather than a small application you install from source for everyday Kotlin work.

-16stars / 7d
Verdict

Our 6-second run installed 24 npm packages but found no build or test script, so it proves only that Kotlin's WebAssembly browser-debug helper installs cleanly. Use the repository if you intend to change the compiler or platform tooling and can absorb a 110,429-file Gradle codebase. Application developers should install the released Kotlin toolchain instead of building this repository.

We ran it

Lab card: what happened when we ran kotlinScreenshot of kotlin (kotlinlang.org)
Install✓ · 6s24 packages · 12 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo110429 files~4,416,905 lines of source · 320.9 MB · 1 CI workflows · tests dir

Answers from our run

Does kotlin build from source?

Dependencies installed in 6 seconds (24 packages), and the project has no separate build step. We cloned commit f4a9fa0 into a clean Debian container with 3 CPUs and no project-specific setup.

Does kotlin have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does kotlin have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use kotlin?

Developers who only want to write Kotlin applications: the official getting-started tools are a much smaller entry point than a 320.9 MB source checkout.

What are the alternatives to kotlin?

Rust, Go, Scala 3. Our 6-second run installed 24 npm packages but found no build or test script, so it proves only that Kotlin's WebAssembly browser-debug helper installs cleanly.

Setup2/5Helper installs fast; the compiler build is a separate large job
Docs4/5Build, JDK, task, IDE, and dependency checks are documented
Community5/553,487 stars and same-day code, release, and pull-request activity
Maturity5/5A production compiler with v2.4.21 released on October 8

Discussed on

  1. hnKotlin 1.0 Released: Pragmatic Language for JVM and Android379 points
  2. hnKotlin 1.4225 points
  3. hnKotlin 1.0.5 is here185 points
  4. hnThe Kotlin Language: 1.0 Beta Is Here178 points
  5. hnKotlin 1.1 Released with JavaScript Support, Coroutines and more168 points

Who it’s for

Compiler contributors working on Kotlin language behavior, backends, or standard libraries.
Tool authors who need the Kotlin compiler source, Gradle plugin internals, or test data.
Large teams prepared to reproduce JetBrains' Gradle and TeamCity workflows.
Researchers comparing production compilers across JVM, JavaScript, WebAssembly, and native targets.

Who it’s NOT for

Developers who only want to write Kotlin applications: the official getting-started tools are a much smaller entry point than a 320.9 MB source checkout.
Contributors expecting one quick root command: the README separates compiler, standard-library, Gradle-plugin, Maven, and Kotlin/Native work.
Offline or bandwidth-constrained builders: the README says first configuration downloads large IntelliJ dependencies and may need longer network timeouts.
Anyone treating our 6-second npm install as proof that the compiler builds: that run covered only the WebAssembly browser-debug helper package, which has no build or test script.

Setup reality

Our sandbox checked out commit f4a9fa0, then installed the npm project under wasm/wasm.debug.browsers in 6 seconds. It added 24 packages and used 12 MB. That package has no build or test script, so both steps were skipped; npm audit reported 0 known vulnerabilities.

The full repository uses Gradle toolchains and can auto-provision JDKs from Eclipse Adoptium. Its first configuration downloads intellij-core and the much larger idea-full; optional Maven-built artifacts and Kotlin/Native have separate instructions. No credentials are required for the documented source build.

This is a 110,429-file, 320.9 MB checkout with about 4,416,905 source lines. Windows users may need Git long-path support, dependency hashes are verified, and the README warns that initial dependency downloads can time out.

This repository is for changing Kotlin, not learning its syntax

Kotlin's repository contains the language implementation and the machinery around it. The README points contributors toward compiler distributions, standard-library tests, Gradle plugin tests, Kotlin/Native, and optional Maven-built artifacts. If your goal is an Android app or a JVM service, cloning 110,429 files is the wrong first move. JetBrains links to a getting-started guide, an online playground, IDE plugins, and published packages for that work.

The source tree earns its size. Kotlin targets the JVM, JavaScript, WebAssembly, and native platforms, while Kotlin Multiplatform shares logic across Android, iOS, desktop, and web. Those targets create different compilers, libraries, test suites, and integration layers. The checked-out commit occupied 320.9 MB and contained about 4,416,905 source lines. This is compiler infrastructure with a language attached, not a weekend interpreter project.

The documented build begins with Gradle and several JDKs

The root workflow uses the included Gradle wrapper. Toolchains can obtain the required JDKs from Eclipse Adoptium, or contributors can supply JDK locations through environment variables and disable automatic detection. That flexibility helps on managed build machines, but it also means a successful local build depends on more than whatever java happens to be on the path. Windows users may need to enable Git's long-path setting before the checkout behaves properly.

First configuration downloads intellij-core and idea-full. JetBrains warns that these dependencies are large enough to trigger network timeouts and provides 60,000-millisecond socket and connection settings. The named tasks are scoped: dist assembles a compiler distribution, coreLibsTest exercises core libraries, compilerTest handles compiler tests, and gradlePluginTest covers the Gradle plugin. Kotlin/Native and some Maven plugin artifacts follow their own instructions.

What happened when we ran it

Our sandbox installed 24 npm packages in 6 seconds and used 12 MB on disk. The run used commit f4a9fa0 in a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. Npm audit reported 0 known vulnerabilities across critical, high, moderate, and low severities.

That clean result applies only to wasm/wasm.debug.browsers. Its package is named custom-devtools-formatters, declares Rollup and the Terser plugin as development dependencies, and contains no npm scripts. There was therefore no build target and no test target to run. Both steps were skipped. The result says nothing about whether the Kotlin compiler, standard libraries, Gradle plugin, or native backend builds at the same commit.

The scope distinction matters because a 6-second npm install can look like a remarkably easy Kotlin source build when removed from its path. It was a small helper inside a 4,416,905-line repository. The checkout does contain a tests directory and one GitHub Actions workflow in our scan, but the README points to public TeamCity for the compiler's main build status. Anyone modifying the compiler should run the relevant Gradle task, not use this npm result as a release gate.

Dependency verification makes local artifacts part of the build contract

Gradle checks MD5 and SHA-256 hashes against verification-metadata.xml. A missing local artifact or a changed hash stops the build with a dependency-verification error. Contributors who change dependencies must regenerate the metadata, and cross-platform artifacts with names such as darwin, linux, or windows need special attention so resolution covers every target. This is sensible supply-chain discipline, though it adds a precise maintenance step to dependency changes.

A local local.properties file can also override the command line and disable Kotlin/Native dependency resolution. That detail is easy to miss: a metadata update may look complete on one workstation while omitting native-only artifacts. JetBrains supplies an update script and a resolveDependencies task. Follow those paths rather than editing hash entries by hand.

October 8 activity shows a maintained compiler with a busy queue

GitHub reported 53,487 stars and 447 open issues and pull requests on October 8, 2026. The repository was pushed that day, and the recent GitHub queue included active pull requests touching JDK requirements, WebAssembly, JavaScript, Gradle, tests, and Kotlin/Native. Kotlin's README directs bug reporting to JetBrains YouTrack, so the GitHub combined count is not a complete bug total and should not be read as one.

Release v2.4.21 was also published on October 8. Its changelog lists fixes across WebAssembly, JVM reflection, JavaScript, serialization, Kotlin/Native tooling, and scripts. That breadth is reassuring for users of released Kotlin. For a prospective compiler contributor, it is also the warning label: a change can cross several backends and toolchains.

Kotlin is an easy recommendation as a released language when its JVM, Android, or multiplatform fit matches your product. This repository is a narrower recommendation. Clone it when you have a compiler-level change and enough time to run the relevant Gradle work. Our npm measurement should guide only the small WebAssembly debugging package it actually covered.

Alternatives

ProjectWhat it isPick it when
Rust gh↗A systems language compiler with native binaries, memory safety, and its own package ecosystem.pick this instead when predictable native performance and ownership-based memory checks matter more than JVM or Android integration.
Go gh↗A language and toolchain built around fast compilation, simple deployment, and concurrency.pick this instead when small operational binaries and a deliberately compact language fit the service better.
Scala 3A JVM language and compiler with a more type-system-heavy functional style.pick this instead when advanced functional abstractions matter more than Kotlin's Android position and gentler syntax.

Sources

  1. Kotlin repository README
  2. Kotlin 2.4.21 release
  3. Measured commit f4a9fa0
  4. WebAssembly browser debug helper package

More dev tools reviews

compose-samples · librepods · sqlmap · coucou · world-execute-me-dsh-pv · mcp-extensions · the whole board →