API สาธารณะของ Android มี easter egg และเมธอดที่มีอารมณ์ขันมากมายที่จุดประกายการถกเถียงที่น่าสนใจในชุมชนนักพัฒนาเกี่ยวกับบทบาทของความสนุกในการพัฒนาซอฟต์แวร์เชิงมืออาชีพ ตั้งแต่เมธอดที่ตรวจจับว่าผู้ใช้เป็นลิงหรือแพะ ไปจนถึงค่าคงที่ที่อ้างอิงถึง Star Wars และรายการทีวีคลาสสิก สมบัติที่ซ่อนอยู่เหล่านี้เผยให้เห็นด้านที่ขี้เล่นมากขึ้นของวัฒนธรรมการพัฒนา Android ในช่วงแรกๆ
ตัวอย่างที่น่าสนใจของ Android API ที่มีอารมณ์ขัน:
ActivityManager.isUserAMonkey()
- ตรวจจับการทดสอบ UI แบบอัตโนมัติ ( Android 2.2+ )UserManager.isUserAGoat()
- เดิมทีคืนค่า false ต่อมาใช้ตรวจจับแอป Goat Simulator ( Android 4.2+ )UserManager.DISALLOW_FUN
- นโยบายอุปกรณ์เพื่อจำกัดฟีเจอร์ "สนุกสนาน" ( Android 6.0+ )Chronometer.isTheFinalCountdown()
- เปิดวิดีโอ YouTube เพลง "The Final Countdown" ( Android 8.0+ )Log.wtf()
- บันทึกข้อความ "What a Terrible Failure"- แท็ก
<blink>
- แท็ก XML layout ที่ซ่อนอยู่ทำให้เนื้อหากระพริบ (เพิ่มเข้ามาในปี 2011)
การเปลี่ยนแปลงจากโค้ดที่ขี้เล่น
รูปแบบที่น่าสังเกตปรากฏขึ้นเมื่อตรวจสอบการเพิ่มเติมที่มีอารมณ์ขันเหล่านี้ ส่วนใหญ่ถูกเพิ่มเข้ามาเมื่อหลายปีก่อน โดยมีเพียงไม่กี่อย่างที่ปรากฏใน Android เวอร์ชันล่าสุด การอพยพในชุมชนเน้นแนวโน้มนี้ โดยนักพัฒนาสังเกตว่า Android ได้กลายเป็นผู้ใหญ่มากขึ้น หรือตามที่บางคนพูดว่า น่าเบื่อมากขึ้น การเปลี่ยนแปลงนี้สะท้อนถึงการเปลี่ยนแปลงที่กว้างขึ้นในอุตสาหกรรมเทคโนโลยี ซึ่งสตาร์ทอัพมักเริ่มต้นด้วยวัฒนธรรมที่ขี้เล่น แต่ค่อยๆ ใช้แนวทางที่เป็นองค์กรมากขึ้นเมื่อพวกเขาเติบโต
การถกเถียงขยายไปเกิน Android ไปสู่อุตสาหกรรมซอฟต์แวร์ทั้งหมด นักพัฒนาบางคนโต้แย้งว่าอารมณ์ขันในโค้ดสร้างการรบกวนที่ไม่จำเป็นและอาจทำให้เกิดปัญหาจริง โดยเฉพาะสำหรับผู้ที่ไม่ใช่เจ้าของภาษาอังกฤษที่อาจมีปัญหาในการเข้าใจเรื่องตลกหรือเข้าใจความคิดเห็นที่เป็นประชดตามตัวอักษร คนอื่นๆ ปกป้องการสัมผัสแห่งความแปลกประหลาดเหล่านี้ว่าสำคัญสำหรับการสร้างความผูกพันของทีมและทำให้กระบวนการพัฒนาสนุกมากขึ้น
ไทม์ไลน์ของอารมณ์ขันใน Android APIs:
- 2007-2011: ช่วงเวลาที่มีการเพิ่มฟีเจอร์ตลกมากที่สุด ( Android 1.0 ถึง 4.0)
- 2012-2016: มีการเพิ่มฟีเจอร์ในระดับปานกลางพร้อมฟีเจอร์แกล้งบางอย่าง
- 2017-ปัจจุบัน: มีฟีเจอร์ตลกใหม่น้อยมาก เน้นไปที่ความเป็นส่วนตัวและความเป็นมืออาชีพ
- Android 11 (2020):
isUserAGoat()
ถูกจำกัดสำหรับแอปที่ใช้ API 30+ เพื่อ "ปกป้องความเป็นส่วนตัวของแพะ"
ผลกระทบในโลกจริงของฟีเจอร์ที่มีอารมณ์ขัน
น่าสนใจที่ฟีเจอร์ที่ดูเหมือนเป็นเรื่องตลกเหล่านี้บางอย่างมีจุดประสงค์ที่เป็นประโยชน์ เมธอด isUserAMonkey()
แม้จะมีชื่อที่ตลก แต่แก้ไขปัญหาร้ายแรงที่เกิดขึ้นระหว่างการพัฒนา Android เมื่อการทดสอบอัตโนมัติโทรไปยังบริการฉุกเฉินโดยไม่ตั้งใจ ค่าคงที่ DISALLOW_FUN
แม้จะมีคำอธิบายที่น่าขบขัน แต่ให้วิธีที่ถูกต้องสำหรับองค์กรเช่นโรงเรียนในการปิดใช้งานฟีเจอร์ที่รบกวนในอุปกรณ์ที่จัดการ
มีชีวิตชีวาหน่อย เมื่อคุณเสียชีวิตแล้ว ความจริงจังทั้งหมดคุ้มค่าหรือไม่ อย่างไรก็ตาม โค้ดที่ตลกควรยังคงทำงานได้
ความรู้สึกนี้จับภาพความตึงเครียดที่กำลังดำเนินอยู่ระหว่างการรักษาความเป็นมืออาชีพและการรักษาองค์ประกอบของมนุษย์ในการพัฒนาซอฟต์แวร์
การอ้างอิงทางวัฒนธรรมและการเข้าถึง
การอภิปรายยังเผยให้เห็นช่องว่างระหว่างรุ่นและวัฒนธรรมในการเข้าใจการอ้างอิงเหล่านี้ นักพัฒนารุ่นใหม่ โดยเฉพาะผู้ที่อยู่นอก United States อาจไม่รู้จักการอ้างอิงถึง tricorder ของ Star Trek หรือองค์ประกอบวัฒนธรรมป็อปอื่นๆ ที่ฝังอยู่ในโค้ด สิ่งนี้ทำให้เกิดคำถามว่าการอ้างอิงดังกล่าวสร้างอุปสรรคต่อความเข้าใจสำหรับทีมพัฒนาระหว่างประเทศหรือไม่
อนาคตของความสนุกในโค้ด
ขณะที่อุตสาหกรรมซอฟต์แวร์ยังคงเติบโต การถกเถียงเกี่ยวกับอารมณ์ขันในโค้ดสะท้อนถึงคำถามที่ใหญ่กว่าเกี่ยวกับวัฒนธรรมองค์กรและความคิดสร้างสรรค์ ในขณะที่บางคนโต้แย้งเพื่อความเป็นมืออาชีพที่เข้มงวด คนอื่นๆ กังวลว่าการลบร่องรอยของบุคลิกภาพทั้งหมดออกจากโค้ดทำให้กระบวนการพัฒนาปราศจากเชื้อโรคและน่าสนใจน้อยลงสำหรับมนุษย์ที่สร้างและรักษาระบบเหล่านี้
ตัวอย่าง Android ทำหน้าที่เป็นกรณีศึกษาที่น่าสนใจในการตัดสินใจทางเทคนิคสะท้อนถึงค่านิยมทางวัฒนธรรม และค่านิยมเหล่านั้นพัฒนาไปอย่างไรเมื่อองค์กรเติบโตและเปลี่ยนแปลงตามกาลเวลา