Sederhananya: pemisahan yang buruk dari masalah dalam kode, mengarah ke kode yang tidak modular, mengarah ke penggunaan kembali yang buruk, mengarah ke kode digandakan.
Jika Anda tidak pernah mencoba mengulangi fungsionalitas, Anda tidak akan mendapatkan kode duplikat, dan banyak variabel instan, tidak akan menjadi masalah.
Jika Anda mencoba mengulangi fungsionalitas, maka kode monolitik, yang bukan modular, tidak dapat digunakan kembali. Itu terlalu banyak dan hanya bisa melakukan apa yang dilakukannya. Untuk melakukan sesuatu yang serupa, tetapi tidak sama, itu "lebih mudah" untuk memotong dan menempel, daripada memecah kode monolitik. Pemrogram pengalaman tahu bahwa kode duplikat adalah jalan menuju neraka.
Jadi, sementara banyak variabel instan itu sendiri bukan akar penyebab masalah, itu adalah "bau" yang kuat bahwa masalahnya akan datang.
Bahasa "tidak mungkin jauh di belakang" lebih lemah daripada mengatakan "pasti harus mengikuti" sehingga penulis tidak mengklaim itu harus terjadi tetapi pada akhirnya akan terjadi; jika Anda perlu menggunakan kembali fungsi tetapi tidak bisa karena kode tidak modular.
n
variabel boolean misalnya membuat ruang keadaan internal2^n
. Lebih sering daripada tidak meskipun objek Anda tidak memiliki banyak status yang dapat diamati , tetapi karena Anda menjejalkan semua keadaan itu menjadi satu objek, secara internal Anda masih harus menangani semuanya.