⁦Elide⁩ + ⁦JVM⁩

⁦Elide⁩ هي سلسلة أدوات كاملة لـ ⁦Java⁩ و⁦Kotlin⁩، يمكنها تجميع كود ⁦Java⁩ حتى ⁦JDK 25⁩، وكود ⁦Kotlin⁩ حتى ⁦2.3.x⁩.

يمكن لـ ⁦Elide⁩ أيضاً تشغيل برامج ⁦JVM⁩، على ⁦Hotspot⁩، أو ككود ضيف.

نصيحة

يمكن استخدام ⁦Elide⁩ كـ ⁦JAVA_HOME⁩ مع أي أداة بناء أو مشروع.

لماذا سلسلة أدوات جديدة؟

⁦JVM⁩ هو نموذج تشغيل قوي للغاية؛ ⁦Java⁩ و⁦Kotlin⁩ محبوبتان من ملايين المطورين. فما هي المشكلة إذن؟

⁦Maven⁩ و⁦Gradle⁩ و⁦Bazel⁩... هذه كلها أدوات بناء ممتازة، كل منها بطريقتها الخاصة، تستحق أن تكون في قاعة مشاهير أدوات البناء، لو كان هناك شيء كهذا.

ومع ذلك، كل منها يفرض تنازلات على مطوّري ⁦JVM⁩:
أداة بناء ⁦JVM⁩العيوب الجوهرية
⁦Maven⁩مخرجات مطوّلة، عليك كتابة ⁦XML⁩
⁦Gradle⁩بطيء، منحنى تعلّم حاد، مُحبِط للغاية
⁦Bazel⁩منحنى تعلّم شبه مستحيل / نظام بيئي محدود
يهدف ⁦Elide⁩ إلى إضافة خيار رابع.
البُعدكيف يتفوق ⁦Elide⁩ على البدائل
تجربة المطوّرنموذج استدعاء شبيه بـ ⁦NPM⁩، واجهة طرفية جميلة
السرعةمدعوم بـ ⁦Native Image⁩ لبدء تشغيل سريع بشكل مذهل
الإعداداتيعمل مباشرة، بدون إضافات أو إعدادات مطلوبة
لغة البناءمزيج مريح من التصريحي والأمري (⁦Pkl⁩)

نموذج ذهني مبسّط

يستعير ⁦Elide⁩ من تجربة تطوير أكثر رشاقة قد يجدها مطوّرو الواجهات الأمامية مألوفة.

shell
> cat elide.pkl
pkl
amends "elide:project.pkl"
import "elide:Sources.pkl" as Sources

name = "my-elide-project"

jvm {
  main = "sample.MainKt"
}

sources {
  ["main"] = new Sources.SourceSetSpec {
    paths {
      "src/main/kotlin<<>>*.kt"
    }
  }
}

dependencies {
  maven {
    packages {
      "com.google.guava:guava:33.5.0-jre"
    }
  }
}
shell
> cat src/main/kotlin/sample/Hello.kt
kotlin
package sample

fun main() {
  println("Hello from Kotlin")
}
shell
> elide install
✅ Installed 17 dependencies in 1.2s
shell
> elide build
✅ Built 1 Kotlin source file in 24ms
shell
> elide run
Hello from Kotlin
الفروقات عن التطوير التقليدي مع ⁦Gradle⁩/⁦Maven⁩:
  • يعمل افتراضياً لحالات الاستخدام الشائعة؛ بدون فوضى الإضافات لتشغيل ⁦Kotlin⁩ و⁦JUnit⁩.
  • مُثبّت سريع للغاية؛ متوافق مع مشاريع ⁦Maven⁩ و⁦Gradle⁩ التقليدية، لكنه يوفر أوقات حل وتثبيت أسرع.
  • بدء سريع، إنهاء سريع؛ بدلاً من العمليات طويلة التشغيل، عمليات البناء رشيقة وسريعة افتراضياً.

متوافق افتراضياً

يتضمن ⁦Elide⁩ سلسلة أدوات كاملة وبديلة مباشرة لـ ⁦JVM⁩:

ميزات مريحة مدمجة

يتضمن ⁦Elide⁩ إضافات تجعل تطوير ⁦JVM⁩ ممتعاً مجدداً: