Как стать автором
Обновить

Комментарии 4

В kotlin всё хорошо кроме одного — реализации.
Запуск компилятора происходит вечность (в 200-300 раз медленнее чем например компилятора плюсов).

kotlin
$ time kotlinc test.kt

real	0m2,032s
user	0m4,779s
sys	0m0,170s

$ time kotlinc test.kt -include-runtime

real	0m2,050s
user	0m4,703s
sys	0m0,159s

$ time kotlinc -version
info: kotlinc-jvm 1.4.20 (JRE 1.8.0_242-release-1644-b3-6222593)

real	0m1,364s
user	0m2,513s
sys	0m0,183s

$ cat test.kt
fun main() = println("wtf")
kotlin-native

$ time kotlinc-native test.kt

real	0m5,818s
user	0m7,933s
sys	0m0,522s

$ time kotlinc-native -version
info: kotlinc-native 1.4.21-344 (JRE 1.8.0_242-release-1644-b3-6222593)
Kotlin/Native: 1.4.21

real	0m0,488s
user	0m0,625s
sys	0m0,056s
для сравниния тормозной gcc

$ time gcc test.cpp

real	0m0,034s
user	0m0,026s
sys	0m0,008s

$ time gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


real	0m0,004s
user	0m0,004s
sys	0m0,000s

$ cat test.cpp
#include <stdio.h>

int main(int argc,char** argv) {
	printf("gcc\n");
	return 0;
}

Потому что JVM и чтобы каждый раз не загружать все это существуют демоны :)
Поэтому пока kotlinc запускается в консоли, gradle или idea умудряются скомпилировать и запустить проект.

Я про это и говорю: рализация так себе.
ps: демон котлина работает 1сек и если небыло запросов выходит. gradle — это вообще яркий пример как электронным микроскопом колоть орехи.

еще swift для сравнения
$ time swiftc test.swift 

real	0m0,090s
user	0m0,049s
sys	0m0,041s

$ time swiftc --version
Swift version 5.3 (swift-5.3-RELEASE)
Target: x86_64-unknown-linux-gnu

real	0m0,016s
user	0m0,011s
sys	0m0,004s

gradle — это вообще яркий пример как электронным микроскопом коят орехи.

В идеальном мире – возможно, в реальной жизни хороший инструмент в котором можно и микробов рассматривать, и орехи поколоть :) Главное что при разработке он быстр, особенно в continuous режиме. И будет становится еще быстрее, компиляция самого Gradle Kotlin DSL ускорится в ветке 7

Зарегистрируйтесь на Хабре, чтобы оставить комментарий