6 poin oleh GN⁺ 2024-05-02 | 1 komentar | Bagikan ke WhatsApp
  • TypeSpec adalah bahasa baru untuk pengembangan berpusat pada API, dirancang untuk memenuhi kebutuhan pengembang, perancang, dan manajer API
    • Dibuat karena semakin berkembangnya lingkungan yang membuatnya lebih kompleks dan penting untuk secara konsisten menghadirkan API berkualitas tinggi serta pengalaman terkait yang baik
    • TypeSpec bukan sekadar bahasa; ini adalah platform yang memungkinkan abstraksi, mendorong penggunaan kembali kode, dan memanfaatkan alat modern untuk pengembangan cepat

Fitur utama TypeSpec

  • Interoperabilitas
    • TypeSpec bukan bahasa deskripsi API yang sederhana, melainkan bahasa definisi tingkat tinggi untuk mendefinisikan API dan sekaligus mengeluarkan output untuk berbagai protokol, klien, server, serta dokumentasi
    • Dapat berinteroperasi dengan bahasa definisi API standar industri dan menutup kesenjangan antar beragam pilihan
  • Produktivitas
    • TypeSpec menghadirkan pengalaman pengembang yang menyenangkan dan produktif agar data dan proses definisi API lebih bernilai
    • Bahasanya ringkas dan memungkinkan definisi bentuk data dan API yang kompleks dengan masukan yang minimal
  • Pola API
    • TypeSpec meningkatkan kualitas API dengan mengenkapsulasi jenis data umum, pola API, dan pedoman sebagai komponen tingkat tinggi yang dapat digunakan kembali dan dibagikan di seluruh tim atau ekosistem
  • Keterkenalan
    • TypeSpec terinspirasi dari TypeScript dan C#, sehingga mudah dipelajari dan terasa familier bagi banyak pengembang
  • Ekstensibilitas
    • TypeSpec bisa diperluatan dengan kosakata dekorator dan template tipe yang dapat disesuaikan, memungkinkan pemodelan API dari domain logika bisnis atau logika aplikasi
  • Ekosistem
    • Dengan TypeSpec, tipe umum, ekstensi bahasa, linter, dan emitter bisa dikemas dalam sebuah paket dan didistribusikan ke NPM di tingkat organisasi atau lintas ekosistem

Komunitas dan kolaborasi

  • Digunakan di Microsoft
    • Microsoft sedang berinovasi dalam proses pengembangan API-nya dengan TypeSpec
    • Banyak layanan Azure mengadopsi TypeSpec, dan jumlahnya terus meningkat setiap hari
    • Tim Microsoft Graph memanfaatkan potensi TypeSpec untuk meningkatkan produktivitas sekaligus menyederhanakan penyesuaian
  • Undangan berpartisipasi
    • TypeSpec adalah lebih dari sekadar bahasa; ini juga komunitas
    • Mengundang pengembang dari segala latar belakang untuk ikut serta dalam beta publik agar bisa merasakan langsung kekuatan TypeSpec

Pendapat GN⁺

  • TypeSpec tampaknya merupakan bahasa definisi API dengan level abstraksi tinggi yang berpotensi secara revolusioner menyempurnakan cara pengembangan API dilakukan
    • Dengan mendukung pendekatan "API First", diperkirakan dapat membantu meningkatkan efisiensi pengembangan dan kualitas produk akhir
    • Dukungan terhadap berbagai protokol, ekstensibilitas, dan ekosistem yang kuat membuatnya berpotensi diterapkan pada beragam skenario pengembangan
  • Namun, selalu ada biaya pembelajaran saat memperkenalkan bahasa baru, sehingga saat adopsi di dalam tim perlu didahului pelatihan yang memadai
    • Upaya menurunkan kurva pembelajaran dengan mengadopsi sintaks TypeScript dan C# adalah langkah positif
  • Diperlukan kejelasan lebih lanjut mengenai poin pembeda dari bahasa definisi API yang berperan serupa (Swagger, RAML, API Blueprint, dan lain-lain)
    • Misalnya bagaimana mengatasi keterbatasan bahasa yang sudah ada, dan seberapa mudah proses migrasinya
  • Pendekatan dogfooding di mana digunakan dan disempurnakan lebih dulu di Microsoft menumbuhkan rasa kepercayaan
    • Tetapi karena proyek sumber terbuka ini baru saja dipublikasikan, perkembangan berkelanjutan dan dukungan komunitas dalam beberapa tahun ke depan akan menjadi faktor penting
  • Arah peningkatan standarisasi dan keterpakaian kembali desain API memang tepat, tetapi terasa seperti ingin menyelesaikan terlalu banyak hal sekaligus
    • Akan lebih baik jika penguatan fitur dilakukan secara bertahap dengan prioritas

1 komentar

 
GN⁺ 2024-05-02
Komentar Hacker News
  • Jika Anda sudah menggunakan TypeScript untuk mengetik API, ts-json-schema-generator yang secara langsung menghasilkan skema JSON dari TypeScript bisa jadi alternatif.
  • Jika dibandingkan dengan YAML OpenAPI, apa pun akan terlihat lebih baik, meskipun OpenAPI tetap dianggap sebagai salah satu kemajuan terbaik.
  • Kami sudah lama berharap TypeScript jadi terobosan sebagai bahasa skema, tetapi TypeSpec tampaknya menghapus JavaScript dan menyisakan type untuk JSON saja.
  • Saat menggunakan TypeSpec pada API modern, saya menemukan alat untuk menjelaskan API dan membangun desain secara design-first seperti GraphQL; sementara editor OpenAPI terasa terlalu kaku dan membuat hubungan data di dalam API tidak jelas, TypeSpec sangat membantu.
  • Karena ini dibuat oleh Microsoft, diduga ini akan menjadi jawaban mereka terhadap GraphQL, dan bila digunakan secara internal, alatnya mungkin lebih baik dibandingkan yang dibuat oleh konsorsium sumber terbuka.
  • Tampaknya seperti versi TypeScript dari WSDL, meski saya tidak tahu apakah akan bertahan lebih lama dari WSDL.
  • Salah satu pertanyaan utama: saya tidak menemukan bahasa keluaran yang didukung, dan sepertinya satu-satunya cara adalah mengekspor OpenAPI lalu memakai generator yang tidak bagus.
  • Akan sangat bagus jika bisa mengimpor berkas TypeSpec ke TypeScript dan otomatis mendapatkan tipe, tetapi code generation sangat merepotkan dan rawan error.
  • Terlihat sebagai pesaing/alternatif Smithy, dan jika ada yang dari tim TypeSpec di sini, saya ingin tahu bagaimana perbandingannya.
  • Saya penasaran apakah YAML-nya bisa ditransformasikan ke toolchain yang saya inginkan.
  • Akan sangat menyenangkan jika ada IDL tingkat tinggi yang menyediakan skema dan pembuatan stub untuk multi-bahasa seperti yang disediakan CORBA IDL 25 tahun lalu.