Bahasa Pemrograman NUSA: Managing the Expectation

Bernaridho 31 Maret 2017

Bahasa Pemrograman NUSA: Managing the Expectation

Bahasa Pemrograman terus bertambah

Ada banyak bahasa pemrograman di dunia ini. Pada tahun 1991 saja Grady Booch dalam bukunya 'Object-Oriented Analysis and Design' menyebut ada ribuan bahasa pemrograman. Sekarang, setelah seperempat abad saya yakin jumlahnya sudah puluhan ribu.

Hampir setiap tahun muncul bahasa pemrograman baru. Bila bukan bahasa pemrograman yang baru, dialeknya muncul. Contoh: bahasa pemrograman SQL pada awalnya hanya berupa dialek yang dibuat oleh IBM. Tahun 1977 muncul dialek Oracle (disebut PL/SQL). Kemudian muncul dialek Microsoft (Transact SQL), kemudian MySQL, dan seterusnya.

Bahasa pemrograman yang tidak dianggap merupakan dialek juga kerap muncul. Tetapi satu dekade terakhir fair untuk katakan lebih banyak pembuatan bahasa pemrograman yang layak disebut sebagai pembuatan dialek baru. Satu setengah dekade terakhir yang paling banyak dibuat adalah berbagai dialek XML seperti MathML, XSL, XQuery, dan lain-lain.

Terlihat mudah tapi …

Munculnya bahasa pemrograman setiap tahun bisa menimbulkan ilusi bahwa membuat bahasa pemrograman mudah. Jadi, bagi sebagian orang tidak ada istimewanya bila Anda bisa membuat bahasa pemrograman. Kalau sulit, mustahil bisa tiap tahun ada yang baru.

Benar? Salah. Membuat bahasa pemrograman tetap merupakan pekerjaan yang amat sulit. Yang bisa membuat bahasa pemrograman tetaplah orang-orang yang istimewa.

Keragaman motivasi

Ada beragam motivasi sehingga seseorang atau sekelompok orang mau membuat bahasa pemrograman. Mungkin motivasi paling ringan adalah iseng. Motivasi paling berat adalah ingin mematahkan dominasi bahasa pemrograman lain. Motivasi yang umum dari produsen komersial adalah mengurangi dominasi bahasa pemrograman lain – yang biasanya berimplikasi bisnis.

Saya membuat bahasa pemrograman NUSA. NUSA adalah singkatan dari Neat Uniform Simple Architecture. Saya membuat NUSA sebagai bahasa pemrograman yang rapi (neat), seragam (uniform) cara pemanggilan operasi dan pendefinisian operasi, sederhana (simple architecture) sehingga mudah dipahami. Motivasi primer saya :* membuat bahasa pemrograman yang permudah belajar bahasa pemrograman lain apapun*. Motivasi sekunder saya : mempermudah pemahaman teori pemrograman yang saya invent. Saya tidak termotivasi membuat bahasa pemrograman yang lebih cepat. Hm, aneh ya?

Relevansi pembandingan kecepatan

Sebenarnya tidak aneh. Yang aneh adalah pertanyaan banyak orang ke saya seperti 'NUSA lebih cepat daripada C?', 'NUSA lebih cepat daripada Java?'. Saya katakan: kecepatan bahasa pemrograman tidak bisa dibandingkan. Bahkan salah untuk menyebut Assembly lebih cepat daripada C, Java, dan bahasa pemrograman lain apapun.

Relevansi perbandingan kecepatan hanya relevan ke programming-tool dan code yang dihasilkan. Programming-tool mencakup code-translator dan utilities seperti text-editor, library-manager, debugger, dan lain-lain. Code-translators mencakup Compiler, Linker, Interpreter, LinkRunner, dan CompileLinker. Mari kita pikirkan kasus ini sebagai contoh yang relevan untuk bandingkan kecepatan. C source-code yang dibuat berdasarkan ANSI C hampir pasti dapat di-translate oleh GNU C Compiler dan Microsoft C compiler. Ada dua kecepatan yang bisa dibandingkan. Pertama: kecepatan compile puluhan ribu baris source-code (GNU C Compiler vs Microsoft C Compiler). Kedua: kecepatan runnable code yang dihasilkan GNU C Linker vs Microsoft C Linker.

Simple, bantu perjelas teori

Saya tampilkan contoh source-code dari pelajaran 'Modular Programming', yang bukunya dipakai di kursus internal pada P.T. Mitra Kreasindo, perusahaan tempat saya bekerja.

Program Halo;

void main ()
{
}

Program dalam bahasa pemrograman NUSA di atas ekuivalen dengan program dalam bahasa pemrograman Java di bawah ini.

class Halo
{
	public static void main (String[] args)
	{
	}
}

Saya pikir code dalam NUSA lebih sederhana daripada Java. Membuat sesuatu yang lebih sederhana adalah motivasi saya. Mari kita lihat motivasi kedua: untuk mempermudah penjelasan teori yang saya invent. Pada teori pemrograman yang saya buat, apa itu 'Program' didefisinikan dengan baik. Adalah sangat membantu untuk memakai kata Program pada source-code. Bahasa pemrograman Java tidak memakai kata Program; tidak membantu pembuatan dan pemaparan teori yang bagus tentang pemrograman.

Gradual

Saya sadar tulisan awal tentang bahasa pemrograman NUSA ini amat superficial, mungkin dianggap terlalu sedikit. Saya akan sampaikan hal-hal lain tentang NUSA yang lebih menarik pada beberapa kesempatan lain. Tulisan awal ini lebih berupa 'managing the expectation'; seperti misalnya bahwa NUSA bukan dibuat untuk lebih cepat daripada bahasa pemrograman lain. Tulisan yang berikutnya segera setelah ini (yang sudah planned) adalah tentang Programming Quartet dan biaya pembuatan programming tools.