แก้ไข: คำถามนี้ในตอนแรกดูเหมือนว่าจะทุบตี Java และฉันเดาว่า ณ จุดนี้มันเป็นบิต อย่างไรก็ตามประเด็นที่ใหญ่กว่าที่ฉันพยายามทำก็คือทำไมภาษาใดภาษาหนึ่งถูกเลือกให้เป็นหนึ่งในภาษาทั้งหมดจึงเป็นทางออกสำหรับปัญหาทั้งหมด Java เป็นหนึ่งในสิ่งที่ใช้ดังนั้นเป็นสิ่งที่ฉันต้องเอาชนะที่นี่ แต่ฉันไม่ได้ตั้งใจริป Java ใหม่ :)
ฉันไม่ชอบ Java ในสภาพแวดล้อมทางวิชาการส่วนใหญ่ ฉันไม่ได้พูดภาษาที่ไม่ดี - มันมีแง่มุมที่น่าพึงพอใจอย่างยิ่งหลายประการที่สำคัญที่สุดคือความสามารถในการทำงานโดยไม่ต้องคอมไพล์ใหม่ในทุกแพลตฟอร์ม ไม่มีอะไรผิดปกติกับการใช้ภาษาสำหรับแอปถัดไปของคุณ ^ TM (ไม่ใช่สิ่งที่ฉันจะทำเองเป็นการส่วนตัว แต่ยิ่งไปกว่านั้นเพราะฉันมีประสบการณ์น้อยลงมากกว่าที่จะเป็นการออกแบบที่ไม่ดี)
ฉันคิดว่าเป็นเรื่องเสียเปล่าที่หลักสูตร CS ระดับสูงสอนโดยใช้ Java เป็นภาษา นักเรียนร่วมของฉันมากเกินไปไม่สามารถเขียนโปรแกรมให้คุ้มค่ากับการแช่งเพราะพวกเขาไม่รู้วิธีการทำงานในโลกที่ไม่ได้เก็บขยะ พวกเขาไม่เข้าใจพื้นฐานเครื่องที่พวกเขากำลังเขียนโปรแกรม เมื่อมีคนสามารถทำงานนอกโลกที่รวบรวมขยะพวกเขาสามารถทำงานได้ภายในหนึ่งเดียว แต่ไม่ใช่ในทางกลับกัน GC เป็นเครื่องมือไม่ใช่ crutch แต่วิธีที่ใช้ในการสอนนักเรียนด้านวิทยาศาสตร์คอมพิวเตอร์ก็เป็นเหมือนไม้ค้ำ
วิทยาการคอมพิวเตอร์ไม่ควรสอนหลักสูตรทั้งหมดที่ปรับให้เหมาะกับภาษาเดียว นักเรียนออกมาพร้อมกับความคิดที่ว่าการออกแบบที่ดีทั้งหมดคือการออกแบบที่ใช้สำนวน Java และการออกแบบเชิงวัตถุนั้นเป็นวิธีการหนึ่งในความจริงที่เป็นสิ่งเดียวที่ทำได้ ควรใช้ภาษาอื่นอย่างน้อยหนึ่งภาษาที่ไม่ใช่ภาษาที่รวบรวมขยะเพื่อใช้ในการสอนเพื่อให้ผู้เรียนเข้าใจเครื่องได้ดีขึ้น
เป็นเรื่องน่าอายที่บางคนที่มี PHD ใน CS จากสถาบันที่นับถือไม่สามารถเขียนโปรแกรมออกจากถุงกระดาษได้
สิ่งที่แย่กว่านั้นคือเมื่อฉันพูดคุยกับอาจารย์ CS ที่เข้าใจจริง ๆ ว่าสิ่งต่าง ๆ ทำงานอย่างไรพวกเขาแบ่งปันความรู้สึกเช่นนี้ว่าเรากำลังก่อความเสียหายให้กับนักเรียนของเราโดยการทำทุกอย่างใน Java (โปรดทราบว่าข้างต้นจะเหมือนกันถ้าฉันแทนที่ด้วยภาษาอื่น ๆ โดยทั่วไปแล้วการใช้ภาษาเดียวเป็นปัญหาไม่ใช่ตัว Java เอง)
โดยรวมแล้วฉันรู้สึกว่าฉันไม่สามารถเคารพปริญญาใด ๆ ได้อีกต่อไป - เมื่อฉันไม่เห็นคนรอบตัวฉันสามารถเขียนโปรแกรมของพวกเขาให้พ้นจากปัญหา fizzbuzz
ทำไมถึงเป็นเช่นนี้?