หลังจากแข่งขันและติดตามการแข่งขันGoogle Code Jamในปีนี้ ฉันอดไม่ได้ที่จะสังเกตเห็นจำนวนผู้เข้าแข่งขัน [ที่ประสบความสำเร็จ] ที่ใช้ C / C ++ และ Java อย่างไม่น่าเชื่อ การกระจายตัวของภาษาที่ใช้ตลอดการแข่งขันสามารถมองเห็นได้ที่นี่
หลังจากเขียนโปรแกรมใน C / C ++ มาหลายปีฉันเพิ่งตกหลุมรัก Python เนื่องจากลักษณะที่อ่านง่าย / ตรงไปตรงมา เมื่อเร็ว ๆ นี้ฉันได้เรียนรู้ภาษาที่ใช้งานได้เช่น OCaml, Scheme และแม้แต่ภาษาตรรกะเช่น Prolog ภาษาเหล่านี้มีข้อดีอย่างแน่นอนและในความคิดของฉันสามารถใช้งานได้ง่ายกว่า C ++ และ Java ในบางสถานการณ์ ตัวอย่างเช่นการใช้การโทร / cc ของ Scheme ช่วยลดความซับซ้อนในการย้อนรอย (เครื่องมือที่จำเป็นในการตอบปัญหาต่างๆ) และข้อกำหนดเชิงตรรกะของ Prolog แม้ว่าจะไม่มีประสิทธิภาพเนื่องจากลักษณะการบังคับแบบดุร้าย แต่ก็สามารถลดความซับซ้อนลงอย่างมาก (และแม้แต่แก้โดยอัตโนมัติ) ปัญหาบางอย่างที่ยากต่อการ ห่อสมองไว้รอบ ๆ
เป็นที่ชัดเจนว่าผู้เข้าแข่งขันควรใช้เครื่องมือที่เหมาะสมที่สุดสำหรับความท้าทาย แม้แต่การประกอบ x86 ก็ยังสมบูรณ์แบบทัวริง - นั่นไม่ได้เป็นเหตุผลในการแก้ปัญหา ในกรณีนี้ทำไมผู้เข้าแข่งขันที่ใช้ภาษาทั่วไปน้อยกว่าเช่น Scheme / Lisp, Prolog และแม้แต่ Python จึงประสบความสำเร็จน้อยกว่าผู้แข่งขันที่ใช้ C / C ++ และ Java คำพูดที่แตกต่างกันทำไมคุณไม่ประสบความสำเร็จในการแข่งขันใช้ภาษาที่แม้อาจจะเป็นกระแสหลักน้อยเป็นเครื่องมือที่มีเนื้อหาที่ดีกว่าสำหรับงานหรือไม่
มีแรงจูงใจหลายประการสำหรับคำถามของฉัน ที่สำคัญที่สุดคือฉันอยากเป็นโปรแกรมเมอร์ที่ดีขึ้นทั้งในด้านการปฏิบัติและด้านการแข่งขัน หลังจากได้รับการแนะนำให้รู้จักกับกระบวนทัศน์ที่สวยงามเช่นการเขียนโปรแกรมเชิงฟังก์ชันและลอจิกมันเป็นเรื่องน่าท้อใจที่เห็นคนจำนวนมากทิ้งพวกเขาเพื่อสนับสนุน C / C ++ และ Java มันทำให้ฉันตั้งคำถามถึงความชื่นชมในกระบวนทัศน์ดังกล่าวโดยกังวลว่าฉันจะไม่ประสบความสำเร็จในฐานะโปรแกรมเมอร์ Lisp / Scheme / Prolog ในการแข่งขันการเขียนโปรแกรม