Jadi ini Alasan Kenapa Javascript Dianggap Jelek

Senin, 29 Nov 2021

Saat ini Javascript adalah salah satu bahasa pemrograman yang banyak digunakan pengembang perangkat lunak (Developer), tidak hanya sampai disitu saja, bahkan Javascript juga diajarkan di sekolah-sekolah dan kampus. Sejak dulu saya kuliah sampai sekarang, saya sering mengembangkan aplikasi berbasis web ataupun aplikasi mobile juga mengandalkan Javascript.

Dulu saat saya belajar Javascript memang sering menemukan banyak hal yang perlu penyesuaian (baik logika ataupun sintak), karena memang saya berangkat dari bahasa pemrograman yang lain. Sebenarnya, Javascript memang bukan bahasa pemrograman yang pertama saya pelajari.

Akhir-akhir ini Javascript menjadi popoler dan banyak digunakan, tapi dilain sisi banyak juga orang yang mempertanyakan sebabnya. Kepopuleran Javascript sudah pernah saya ulas di tulisan Javascript menjadi bahasa pemrograman paling populer di 2021

Tapi karena penasaran dengan hal sebaliknya, Saya kemudian mencoba mencari tahu dan mengumpulkan alasan kenapa banyak orang menganggap Javascript kurang bagus dibanding (Java, C,dan lainnya) terutama untuk bagian backend.

Javascript dianggap jelek

Pada artikel kali ini sebenarnya saya cuma merangkum berbagai alasan dari beberapa programmer yang saya cuplik dari *uora dan situs lainnya.

Alasan Javascript Kurang Bagus untuk Programming

1. Tipe variable tidak jelas 

misalnya sebagai berikut:

"1" == 1        // true 

""  == 0        // true - string kosong dianggap sama dengan 0. 

16  == [16]     // true - angka dianggap sama dengan array 

 "2" - "1" == 1  // true bukankah string 

"2" + "1" == 3  // false - hasilnya "21" 

2. Fungsi yang hasilnya aneh

[5, 10, 9, 1, 25].sort()   // Hasilnya [1, 10, 25, 5, 9]

3. Null dan undefined adalah nilai berbeda

var a; 

a === null;      //false  

a === undefined; //true

4. Eksekusi program yang tidak linier kebawah (sinkronous)

Misal sintaks bahasa C:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
int main() { 

	int 2 = 0; 

	FILE *file; 

	file = fopen("test.txt", "r"); 

	char c; 

    while((c=fgetc(f))!=EOF){ 

        printf("%c",c); 

    } 

     fclose(f); 

    return 0; 

} 

Maka yang dijalankan adalah Synchronous

Sedangkan di Javascript misalnya NodeJs yang dijalankan adalah Asynchronous

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const fs = require('fs'), 

    path = require('path'),     

    filePath = path.join(__dirname, 'start.html'); 

 fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){ 

	// ini adalah callback function 

    if (!err) { 

        console.log('received data: ' + data); 

        response.writeHead(200, {'Content-Type': 'text/html'}); 

        response.write(data); 

        response.end(); 

    } else { 

        console.log(err); 

    } 

}); 

console.log("Baris terbawah ini tampil terlebih dahulu"); 

5. Pengisian variabel

contoh:

i=9 // valid & dianggap i adalah variabel global

variabel tanpa kata var dianggap sebagai variabel global

Tapi coba dengan ini:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
function hello(x) { 

    if(x === 0) { 

        var y = 20; 

    } 

    return y; 

}  

Bila fungsi hello diisi angka selain 0 akan menghasilkan undefined. Tapi bila diisi dengan 0 akan menghasilkan nilai 20, padahal bila dilihat dari sintak diatas var merupakan variabel lokal (karena ada kata var) dan terletak didalam scope if. 

Kesimpulan

Beberapa poin yang telah ditulis diatas merupakan masalah serius yang seharusnya dapat segera diperbaiki agar tidak menimbulkan masalah kedepan. Beberapa hal diatas mungkin baru termasuk sebagian yang ditemukan dan menyebabkan Javascript dianggap jelek untuk digunakan, sehingga banyak yang menyarankan untuk menggunakan Typescript atau menggunakan penyempurnaan javascript di ES5. 

Disini saya tidak membela Javascript tapi cuma menawarkan Solusi yang saya temukan:

Pada masalah variabel disarankan untuk menggunakan let dibanding var, sedangkan masalah Array di point 2 diatas sebenarnya penggunaan sort dengan hasil yang benar sudah pernah saya bahas diartikel cara menampilkan rangking di javascript. Sedangkan untuk masalah synchrone dan asynchrone  poin 4, malah menjadi keunggulan javascript untuk menangani optimasi permintaan data disisi service untuk FrontEnd.

Dilain sisi memang Javascript memiliki berbagai keunggulan yang membuatnya dianggap pantas menjadi paling bahasa pemrograman populer 2021.  

Bagaimana menurut anda? apakah setuju bahwa Javascript memang jelek. Silahkan tinggalkan opini atau juga saran bila anda punya solusi dari kekurangan Javascript diatas.


logoblog

Tidak ada komentar:

Posting Komentar