Setelah berkompetisi dan mengikuti kompetisi Google Code Jam tahun ini , saya tidak bisa tidak melihat banyaknya kontestan [sukses] yang menggunakan C / C ++ dan Java. Distribusi bahasa yang digunakan selama kompetisi dapat dilihat di sini .
Setelah memprogram di C / C ++ selama beberapa tahun, saya baru-baru ini jatuh cinta dengan Python karena sifatnya yang mudah dibaca / langsung. Baru-baru ini, saya belajar bahasa fungsional seperti OCaml, Skema, dan bahkan bahasa logika seperti Prolog. Bahasa-bahasa ini tentunya memiliki kelebihan dan, menurut saya, dapat diterapkan lebih mudah daripada C ++ dan Java untuk situasi tertentu. Misalnya, penggunaan panggilan / cc Skema menyederhanakan pelacakan balik (alat yang diperlukan untuk menjawab beberapa masalah) dan spesifikasi logika Prolog, meskipun tidak efisien karena sifat brute force-nya, dapat secara drastis menyederhanakan (dan bahkan secara otomatis menyelesaikan) masalah tertentu yang sulit untuk diselesaikan. membungkus otak seseorang.
Jelas bahwa kontestan kompetisi harus menggunakan alat yang paling sesuai untuk tantangan tersebut. Bahkan perakitan x86 sudah Turing selesai - itu tidak membenarkan penyelesaian masalah dengannya. Dalam kasus ini, mengapa kontestan yang menggunakan bahasa yang kurang umum seperti Scheme / Lisp, Prolog, dan bahkan Python secara signifikan kurang berhasil daripada kontestan yang menggunakan C / C ++ dan Java? Dengan kata-kata yang berbeda, mengapa kontestan yang sukses tidak menggunakan bahasa yang, meskipun mungkin kurang umum, merupakan alat yang lebih baik untuk pekerjaan itu?
Ada beberapa motivasi untuk pertanyaan saya. Yang terpenting, saya ingin menjadi programmer yang lebih baik - baik dalam aspek praktis maupun aspek persaingan. Setelah diperkenalkan dengan paradigma yang indah seperti pemrograman fungsional dan logika, sangat mengecewakan melihat begitu banyak orang membuangnya demi C / C ++ dan Java. Bahkan membuat saya mempertanyakan kekaguman saya atas paradigma tersebut, khawatir saya tidak bisa sukses sebagai programmer Lisp / Scheme / Prolog dalam kompetisi pemrograman.



