Paul Graham เกี่ยวกับภาษาการเขียนโปรแกรม Java และ "แฮ็กเกอร์" (2001)

Paul Graham เกี่ยวกับภาษาการเขียนโปรแกรม Java และ "แฮ็กเกอร์" (2001)

บทความนี้เกิดขึ้นจากการสนทนาที่ฉันมีกับนักพัฒนาหลายคนเกี่ยวกับหัวข้ออคติต่อ Java นี่ไม่ใช่การวิพากษ์วิจารณ์ Java แต่เป็นตัวอย่างที่ชัดเจนของ "เรดาร์ของแฮ็กเกอร์"

เมื่อเวลาผ่านไป แฮกเกอร์พัฒนาจมูกเพื่อเทคโนโลยีที่ดีหรือไม่ดี ฉันคิดว่ามันอาจจะน่าสนใจที่จะพยายามสรุปเหตุผลว่าทำไมฉันถึงพบว่า Java มีข้อสงสัย

บางคนที่อ่านหนังสือเล่มนี้ถือว่านี่เป็นความพยายามที่น่าสังเกตในการเขียนเกี่ยวกับสิ่งที่ไม่เคยมีการเขียนมาก่อน คนอื่นๆ เตือนว่าฉันกำลังเขียนเกี่ยวกับสิ่งที่ฉันไม่รู้อะไรเลย ในกรณีที่ฉันต้องการชี้แจงว่าฉันไม่ได้เขียนเกี่ยวกับ Java (ซึ่งฉันไม่เคยทำงานด้วย) แต่เกี่ยวกับ "แฮ็กเกอร์เรดาร์" (ซึ่งฉันคิดมาก)

สำนวน “อย่าตัดสินหนังสือจากปก” มีต้นกำเนิดมาจากสมัยที่หนังสือถูกขายในปกกระดาษแข็งเปล่าที่ผู้ซื้อผูกพันกับความชอบของเขา ในสมัยนั้นคุณไม่สามารถบอกหนังสือจากปกได้ อย่างไรก็ตาม ตั้งแต่นั้นเป็นต้นมา อุตสาหกรรมการพิมพ์ก็ก้าวหน้าไปมาก และผู้จัดพิมพ์ยุคใหม่ก็พยายามอย่างเต็มที่เพื่อให้แน่ใจว่าหน้าปกจะสื่อความหมายได้มากมาย

ฉันใช้เวลาส่วนใหญ่ในร้านหนังสือ และฉันคิดว่าฉันได้เรียนรู้ที่จะเข้าใจทุกสิ่งที่ผู้จัดพิมพ์ต้องการบอกฉัน และอาจมากกว่านั้นด้วย เวลาส่วนใหญ่ที่ฉันใช้อยู่นอกร้านหนังสือคือใช้เวลาอยู่หน้าจอคอมพิวเตอร์ และฉันคิดว่าฉันได้เรียนรู้ในระดับหนึ่งแล้วที่จะตัดสินเทคโนโลยีจากปกของมัน มันอาจจะโชคไม่ดี แต่ฉันสามารถหลีกเลี่ยงเทคโนโลยีบางอย่างที่กลายเป็นว่าแย่มากได้

หนึ่งในเทคโนโลยีเหล่านี้กลายเป็น Java สำหรับฉัน ฉันไม่ได้เขียนโปรแกรมใด ๆ ใน Java และอ่านเอกสารประกอบเพียงอย่างเดียว แต่ฉันรู้สึกว่ามันไม่ได้ถูกกำหนดให้กลายเป็นภาษาที่ประสบความสำเร็จอย่างมาก ฉันอาจผิด การคาดเดาเกี่ยวกับเทคโนโลยีเป็นธุรกิจที่อันตราย นี่เป็นข้อพิสูจน์ถึงยุคสมัยนี้ นี่คือเหตุผลว่าทำไมฉันถึงไม่ชอบ Java:

  1. มีความกระตือรือร้นมากเกินไป ไม่จำเป็นต้องกำหนดมาตรฐานเหล่านี้ ไม่มีใครพยายามโปรโมต C, Unix หรือ HTML มาตรฐานที่แท้จริงถูกกำหนดไว้นานแล้วก่อนที่คนส่วนใหญ่จะได้ยินเกี่ยวกับมาตรฐานเหล่านั้นด้วยซ้ำ ในเรดาร์ของแฮ็กเกอร์ Perl มีหน้าตาไม่น้อยไปกว่า Java เนื่องจากข้อดีของมันเพียงอย่างเดียว
  2. Java ไม่ได้มีจุดมุ่งหมายสูง ในคำอธิบายดั้งเดิมของ Java Gosling ระบุไว้อย่างชัดเจนว่า Java ได้รับการออกแบบมาให้ง่ายสำหรับโปรแกรมเมอร์ที่คุ้นเคยกับภาษา C มันถูกออกแบบให้เป็น C++:C อีกตัวหนึ่ง โดยมีแนวคิดบางอย่างที่ยืมมาจากภาษาขั้นสูงกว่า เช่นเดียวกับผู้สร้างซิทคอม ฟาสต์ฟู้ด หรือทัวร์ท่องเที่ยว ผู้สร้าง Java ออกแบบผลิตภัณฑ์สำหรับผู้ที่ไม่ฉลาดเท่าตนเองอย่างมีสติ ในอดีต ภาษาที่ออกแบบมาเพื่อให้ผู้อื่นใช้ล้มเหลว: Cobol, PL/1, Pascal, Ada, C++ อย่างไรก็ตาม สิ่งที่ประสบความสำเร็จคือสิ่งที่ผู้สร้างพัฒนาขึ้นเอง: C, Perl, Smalltalk, Lisp
  3. แรงจูงใจที่ซ่อนอยู่ มีคนเคยกล่าวไว้ว่าโลกจะน่าอยู่ขึ้นถ้าผู้คนเขียนหนังสือเฉพาะเมื่อพวกเขามีอะไรจะพูด แทนที่จะเขียนเมื่อพวกเขารู้สึกอยากเขียนหนังสือ ในทำนองเดียวกัน เหตุผลที่เราได้ยินเกี่ยวกับ Java อยู่เสมอไม่ใช่เพราะพวกเขาพยายามบอกเราบางอย่างเกี่ยวกับภาษาการเขียนโปรแกรม เราได้ยินเกี่ยวกับ Java ซึ่งเป็นส่วนหนึ่งของแผนการของ Sun ที่จะต่อสู้กับ Microsoft
  4. ไม่มีใครรักเธอ โปรแกรมเมอร์ C, Perl, Python, Smalltalk หรือ Lisp หลงรักภาษาของพวกเขา ฉันไม่เคยได้ยินใครประกาศความรักต่อ Java มาก่อน
  5. ผู้คนถูกบังคับให้ใช้มัน หลายๆ คนที่ฉันรู้จักซึ่งใช้ Java ทำสิ่งนี้โดยไม่จำเป็น พวกเขาคิดว่ามันจะได้เงินทุน หรือคิดว่ามันจะดึงดูดลูกค้า หรือเป็นการตัดสินใจของฝ่ายบริหาร คนเหล่านี้เป็นคนฉลาด ถ้าเทคโนโลยีดีก็จะนำไปใช้โดยสมัครใจ
  6. นี่เป็นจานของเชฟหลายคน ภาษาโปรแกรมที่ดีที่สุดได้รับการพัฒนาโดยทีมงานขนาดเล็ก Java ถูกขับเคลื่อนโดยคณะกรรมการ หากกลายเป็นภาษาที่ประสบความสำเร็จ จะเป็นครั้งแรกในประวัติศาสตร์ที่คณะกรรมการได้สร้างภาษาดังกล่าวขึ้นมา
  7. เธอเป็นข้าราชการ จากสิ่งที่ฉันรู้เพียงเล็กน้อยเกี่ยวกับ Java ดูเหมือนว่ามีโปรโตคอลมากมายสำหรับทำอะไรก็ตาม ภาษาที่ดีจริงๆมันไม่ใช่แบบนั้น พวกเขาปล่อยให้คุณทำทุกอย่างที่คุณต้องการและไม่ขวางทางคุณ
  8. โฆษณาเกินจริง ตอนนี้ Sun กำลังพยายามแสร้งทำเป็นว่า Java นั้นขับเคลื่อนโดยชุมชน มันเป็นโครงการโอเพ่นซอร์สเช่น Perl หรือ Python แต่การพัฒนาก็ถูกควบคุมโดยบริษัทขนาดใหญ่ ดังนั้นภาษาจึงเสี่ยงที่จะกลายเป็นเรื่องน่าเบื่อเช่นเดียวกับทุกสิ่งที่ออกมาจากบาดาลของบริษัทขนาดใหญ่
  9. มันถูกสร้างขึ้นสำหรับองค์กรขนาดใหญ่ บริษัทขนาดใหญ่มีเป้าหมายที่แตกต่างกันกับแฮกเกอร์ บริษัทต่างๆ ต้องการภาษาที่มีชื่อเสียงว่าเหมาะสำหรับทีมโปรแกรมเมอร์ระดับกลางขนาดใหญ่ ภาษาที่มีลักษณะเหมือนตัวจำกัดความเร็วบนรถบรรทุก U-Haul เตือนคนโง่ไม่ให้สร้างความเสียหายมากเกินไป แฮกเกอร์ไม่ชอบภาษาที่พูดจาดูถูกพวกเขา แฮกเกอร์ต้องการพลัง ในอดีต ภาษาที่สร้างขึ้นสำหรับองค์กรขนาดใหญ่ (PL/1, Ada) ได้สูญหายไป ในขณะที่ภาษาที่สร้างโดยแฮกเกอร์ (C, Perl) ได้รับชัยชนะ เหตุผล: แฮกเกอร์รุ่นเยาว์ในวันนี้คือ CTO ของวันพรุ่งนี้
  10. คนผิดชอบเธอ โดยทั่วไปแล้วโปรแกรมเมอร์ที่ฉันชื่นชมมากที่สุดไม่ได้คลั่งไคล้ Java ใครชอบเธอบ้าง? เหมาะกับผู้ที่ไม่เห็นความแตกต่างระหว่างภาษา แต่ได้ยินเกี่ยวกับ Java ในสื่ออยู่ตลอดเวลา โปรแกรมเมอร์ในบริษัทขนาดใหญ่ หมกมุ่นอยู่กับการค้นหาสิ่งที่ดีกว่าแม้แต่ C++; นักเรียนก่อนวัยเรียนที่ชื่นชอบทุกสิ่งที่จะได้งานทำ (หรือสอบติด) ความคิดเห็นของคนเหล่านี้เปลี่ยนไปตามทิศทางของลม
  11. พ่อแม่ของเธอกำลังมีช่วงเวลาที่ยากลำบาก โมเดลธุรกิจของซันถูกโจมตีจากสองฝ่าย โปรเซสเซอร์ Intel ราคาถูกที่ใช้ในคอมพิวเตอร์เดสก์ท็อปมีความเร็วเพียงพอสำหรับเซิร์ฟเวอร์ และดูเหมือนว่า FreeBSD จะกลายเป็นระบบปฏิบัติการเซิร์ฟเวอร์ที่ดีพอๆ กับ Solaris การโฆษณาของ Sun บ่งบอกเป็นนัยว่าคุณจำเป็นต้องมีเซิร์ฟเวอร์ Sun สำหรับแอปพลิเคชันระดับการผลิต หากสิ่งนี้เป็นจริง Yahoo คงจะเข้าคิวซื้อ Sun เป็นคนแรก แต่เมื่อฉันทำงานที่นั่น พวกเขาใช้เซิร์ฟเวอร์ Intel และ FreeBSD นี่เป็นลางดีสำหรับอนาคตของซัน และถ้าซันดับลง Java ก็อาจประสบปัญหาเช่นกัน
  12. ความรักของกระทรวงกลาโหม กระทรวงกลาโหมสนับสนุนให้นักพัฒนาใช้ Java และนี่ดูเหมือนเป็นสัญญาณที่เลวร้ายที่สุด กระทรวงกลาโหมทำหน้าที่ปกป้องประเทศได้อย่างดีเยี่ยม (หากมีราคาแพง) พวกเขาชอบแผนงาน ขั้นตอน และระเบียบการต่างๆ วัฒนธรรมของพวกเขาตรงกันข้ามกับวัฒนธรรมของแฮ็กเกอร์โดยสิ้นเชิง เมื่อพูดถึงซอฟต์แวร์ พวกเขามักจะเดิมพันผิด ภาษาโปรแกรมสุดท้ายที่กระทรวงกลาโหมหลงรักคือ Ada

โปรดทราบว่านี่ไม่ใช่คำวิจารณ์ของ Java แต่เป็นการวิจารณ์หน้าปกของมัน ฉันไม่รู้จัก Java ดีพอที่จะชอบหรือไม่ชอบมัน ฉันแค่พยายามอธิบายว่าทำไมฉันถึงไม่สนใจเรียน Java

อาจดูเหมือนเป็นการรีบร้อนที่จะละทิ้งภาษาโดยไม่ได้พยายามเขียนโปรแกรมในภาษานั้นด้วยซ้ำ แต่นี่คือสิ่งที่โปรแกรมเมอร์ทุกคนต้องเผชิญ มีเทคโนโลยีมากมายเกินกว่าจะสำรวจได้ทั้งหมด คุณต้องเรียนรู้ที่จะตัดสินจากสัญญาณภายนอกว่ามันจะคุ้มค่ากับเวลาของคุณหรือไม่ ด้วยความเร่งรีบพอๆ กัน ฉันจึงละทิ้ง Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, SET Protocol, VMS, Novell Netware และ CORBA และอื่นๆ อีกมากมาย พวกเขาไม่ดึงดูดใจฉันเลย

บางทีฉันอาจผิดในกรณีของ Java บางทีภาษาที่บริษัทใหญ่ๆ แห่งหนึ่งส่งเสริมให้แข่งกับอีกบริษัทหนึ่ง พัฒนาโดยคณะกรรมการเพื่อมวลชน มีกระแสฮือฮามากมาย และเป็นที่รักของกระทรวงกลาโหม กลับกลายเป็นภาษาที่เรียบร้อย สวยงาม และทรงพลังที่ผมยินดี โปรแกรมใน อาจจะ. แต่ก็น่าสงสัยมาก

ขอบคุณสำหรับการแปล: Denis Mitropolsky

PS

ที่มา: will.com

เพิ่มความคิดเห็น