Data Structures Easy to Advanced Course - Full Tutorial from a Google Engineer
วิศวกรผู้เชี่ยวชาญของ Google Rob Pike ได้โต้แย้งในการพูดคุยในวันพฤหัสบดีที่ O'Reilly Open Source Conference
หอกทำคดีนี้กับเขาเช่นเดียวกับที่ C ++ และ Java เป็นวิธีการที่ซับซ้อนและไม่เหมาะกับสภาพแวดล้อมการใช้งานในปัจจุบัน "ภาษาโปรแกรมเชิงอุตสาหกรรม" ในระหว่างการกล่าวสุนทรพจน์ของเขาในที่ประชุมใน Portland, Oregon
"ผมคิดว่าภาษาเหล่านี้ยากที่จะใช้มากเกินไปลึกลับซับซ้อนเกินไปพวกเขาก็ยังพูดเกินจริงและความละเอียดอ่อนความสับสนและความเป็น verbosity จะเพิ่มขึ้นเมื่อเวลาผ่านไป "หอกกล่าวว่า "พวกเขาขายเกินและใช้กว้างเกินไป"
หอกอธิบายถึงข้อบกพร่องของภาษาดังกล่าวเพื่ออธิบายถึงเป้าหมายที่เขาและวิศวกร Google อื่น ๆ ใช้เพื่อพัฒนาภาษาเขียนโปรแกรมใหม่ที่เรียกว่า Go
เป็นตัวอย่างของความซับซ้อนของภาษาดังกล่าว Pike แสดงตัวอย่างบางส่วนของโค้ด C ++ ตัวอย่างหนึ่งของการประกาศตัวแปรที่แผ่ขยายออกไปเกือบทั่วทั้งเส้นของหน้าจอ
"เรามีวิธีการอย่างไรในการใช้คอมพิวเตอร์มาตรฐานที่สอนในโรงเรียนและใช้ในอุตสาหกรรม? " เขาถามด้วยสำนวน การเขียนโปรแกรมประเภทนี้ "เป็นเรื่องเกี่ยวกับข้าราชการทุกขั้นตอนต้องเป็นเรื่องชอบธรรมต่อผู้เรียบเรียง" เขากล่าว "
ขณะที่ Pike ยอมรับว่าเขารู้สึกค่อนข้างพอใจ แต่เขาก็ยืนยันว่าคำถามดังกล่าวควรถูกถาม C + + มาเกี่ยวกับเนื่องจากความขุ่นมัวของประชาชนกับการทำงานกับภาษา C ระดับต่ำและ Java มาเกี่ยวกับเป็นวิธีการง่าย c + + "เสียงดังมาพร้อมกับความพิถีพิถัน" เขากล่าว "หีบห่อยังเสริมอีกว่าภาษาดังกล่าวได้รับการพัฒนาก่อนที่จะมีการประมวลผลแบบมัลติคอร์ และเครือข่ายที่กว้างขวางดังนั้นพวกเขาจึงไม่สามารถรองรับสภาพแวดล้อมใหม่เหล่านี้ได้
พนักงาน Pike ไม่ใช่พนักงาน Google คนเดียวที่แสดงความไม่พอใจกับภาษาเชิงพาณิชย์แบบเดิม
ในการประชุมประจำปี USENIX เดือนที่ผ่านมาวิศวกร Gmail Adam de Boor ทำให้ผู้ชมประหลาดใจโดยสังเกตว่าบริการ Gmail ของ บริษัท ถูกเขียนขึ้นโดยสิ้นเชิงในจาวาสคริปต์และมีโค้ดทั้งหมดประมาณ 443,000 บรรทัดเขียนด้วยมือ
เขากล่าวว่าในขณะที่ Java มีความหมายมากขึ้น. "เดี๋ยวนี้เดี๋ยวนี้ฉันก็เลือกภาษาที่คุณใช้" เดอโบเออร์กล่าวว่า
JavaScript เป็นหนึ่งในกลุ่มภาษาทั้งหมด - รวมถึง Ruby และ Python - ซึ่งพัฒนาขึ้นในช่วง 10 ปีที่ผ่านมา ปีในการตอบสนองต่อความซับซ้อนที่เพิ่มขึ้นของ C + + และ Java แต่ในขณะที่มีไวยากรณ์ที่เรียบง่ายภาษาดังกล่าวมีข้อบกพร่องของพวกเขาเช่นกันเขาแย้ง
ภาษาใหม่ ๆ เหล่านี้มีแนวโน้มที่จะช้าลงไม่ได้ขนาดและสามารถท่าเรือข้อผิดพลาดมากขึ้น Pike elaborated
ภาษา มีแนวโน้มที่จะตีความแทนที่จะเรียบเรียงหมายความว่าโปรแกรมที่เขียนขึ้นในภาษาดังกล่าวไม่ได้คอมไพล์ก่อนที่จะรันดังนั้นมักจะทำงานช้าลงเป็นผล นอกจากนี้ยังมีแนวโน้มที่จะพิมพ์แบบไดนามิกซึ่งหมายความว่าโปรแกรมเมอร์ไม่จำเป็นต้องระบุชนิดของข้อมูลที่ตัวแปรจะเก็บไว้
"การพิมพ์แบบไดนามิกไม่จำเป็นต้องเป็นอย่างดีคุณจะได้รับข้อผิดพลาดแบบสแตติกในเวลาทำงานซึ่งคุณควรจะสามารถทำได้จริง จับที่คอมไพล์ "เขาพูด
ด้วยเหตุนี้ Pike จึงอธิบาย Go ว่าเป็นความพยายามที่จะรวมคุณลักษณะที่ดีที่สุดของทั้งสองภาษา
" Go คือความพยายามในการรวมความปลอดภัยและสมรรถนะ ของภาษาที่พิมพ์แบบสแตนด์อโลนพร้อมความสะดวกสบายและความสนุกในการตีความภาษาแบบไดนามิก "เขากล่าวก่อนที่จะเพิ่ม" ในขอบเขตที่จะประสบความสำเร็จคุณจะต้องตัดสินด้วยตัวคุณเอง "
สมาชิกคนหนึ่งของ Larry Augustin ซีอีโอของ SugarCRM ซึ่งเป็นผู้ให้บริการซอฟต์แวร์การจัดการความสัมพันธ์กับลูกค้าเห็นด้วยกับการประเมินของ Pike ว่า C + + และ Java มีความซับซ้อนเกินไปแม้ว่าเขาจะตั้งข้อสังเกตว่าเหตุการณ์นี้มักเกิดขึ้นกับทุกภาษาเมื่อพวกเขาเติบโตขึ้นเพื่อให้สอดคล้องกับกรณีการใช้งานที่กว้างขึ้น
"เหตุผลที่ภาษาเหล่านี้เติบโตขึ้นอย่างซับซ้อนเนื่องจากมีการใช้งานมากขึ้นข้อผิดพลาดและความงงงวยมากขึ้นที่เราได้พบและความพยายามที่จะลบความคลุมเครือและข้อผิดพลาดเหล่านี้ได้สร้างสิ่งที่ซับซ้อนมากขึ้น" ออกัสตินกล่าว ความรู้พื้นฐานด้านวิศวกรรมซอฟต์แวร์และการออกแบบโปรแกรมภาษา
"ผมขอขอบคุณเป้าหมายของเขา" เขากล่าวถึงความพยายามของ Pike "คำถามคือเขาสามารถบรรลุเป้าหมายหรือไม่ก็ไปได้มากขึ้นเรื่อย ๆ เนื่องจากมีผู้คนใช้งานมากขึ้น" Augustin กล่าว "Joab Jackson ครอบคลุมซอฟต์แวร์ขององค์กรและข่าวเทคโนโลยีทั่วไปสำหรับข่าว
IDG News Service
ติดตาม Joab ทางทวิตเตอร์ที่ @Joab_Jackson ที่อยู่อีเมลของ Joab คือ [email protected]