ฉันเคยได้ยินว่า Google ใช้ Python, Java และ C ++ แต่สิ่งที่ฉันไม่รู้ก็คือวิธีการใช้ภาษาการเขียนโปรแกรมแต่ละภาษา ฉันหมายถึง Python, Java และ C ++ ที่ใช้กับ Google ทำไมพวกเขาถึงไม่เกิน 3 ภาษาการเขียนโปรแกรมเมื่อ 1 ภาษาเพียงพอ มีใครรู้บ้าง
ฉันเคยได้ยินว่า Google ใช้ Python, Java และ C ++ แต่สิ่งที่ฉันไม่รู้ก็คือวิธีการใช้ภาษาการเขียนโปรแกรมแต่ละภาษา ฉันหมายถึง Python, Java และ C ++ ที่ใช้กับ Google ทำไมพวกเขาถึงไม่เกิน 3 ภาษาการเขียนโปรแกรมเมื่อ 1 ภาษาเพียงพอ มีใครรู้บ้าง
คำตอบ:
คำตอบที่ถูกต้อง " เนื่องจากภาษาต่าง ๆ มีจุดแข็งที่แตกต่างกัน " ได้ถูกระบุไว้แล้ว แต่ให้ฉันให้รายละเอียดเพิ่มเติมเกี่ยวกับสาเหตุ:
C ++
C ++ มีข้อได้เปรียบหลักในการเป็นล็อตที่เร็วที่สุด ไม่จำเป็นเพราะ Java และ Python ช้า แต่เนื่องจากใน C ++ คุณสามารถควบคุมได้มากขึ้นเกี่ยวกับวิธีการดำเนินการต่างๆ
ตัวอย่างเช่นหากคุณกำลังเขียนส่วนบริการเว็บที่ต้องการเวลาแฝงน้อยกว่า 30ms คุณสามารถปรับแต่งรหัส C ++ เพื่อให้ได้ประสิทธิภาพนั้น ในภาษาที่มีการจัดการเช่น Java มันเป็นเรื่องยากที่จะให้ GC ร่วมมืออย่างสมบูรณ์แบบ
C ++ ใช้สำหรับ 'Google magic' มากมายเช่น BigTable, MapReduce และค้นหา goo
ชวา
สำหรับแอปพลิเคชันมาตรฐานส่วนใหญ่ Java เป็นภาษาที่สมบูรณ์แบบที่สุด มันมีเครื่องมือที่ยอดเยี่ยมห้องสมุดที่มีอยู่มากมายและไม่เสียเวลาในการดีบัก
Java ใช้สำหรับเว็บไซต์ขนาดใหญ่จำนวนมากที่ยากต่อการดูแลในภาษาระดับล่างเช่น C หรือ C ++ ตัวอย่างเช่นความเข้าใจของฉันคือ GMail นั้นเขียนด้วยภาษาจาวา
นอกจากนี้โปรดทราบว่าคุณสามารถใช้ Web Toolkit ของ Google เพื่อรวบรวมรหัส Java เป็น JavaScript ดังนั้นหน้าเว็บหรือวิดเจ็ตที่ยอดเยี่ยมที่คุณเห็นอาจเริ่มมีชีวิตเหมือนคลาส Java
หลาม
Python เป็นภาษาที่มีวัตถุประสงค์ทั่วไปที่ยอดเยี่ยม แต่ไม่มีการควบคุมที่ละเอียดเหมือน Java (ตัวอย่างเช่นมีข้อโต้แย้ง JVM ที่บ้าคลั่งทุกประเภท - หลามมีการกำหนดค่าที่คล้ายกันหรือไม่)
อย่างไรก็ตามด้วย Python เหมาะอย่างยิ่งสำหรับเว็บไซต์และแอพพลิเคชั่นที่เรียบง่ายซึ่งอาจเป็นเชลล์สคริปต์ที่น่ากลัว ตัวอย่างเช่นหากคุณต้องการเขียน testcase ง่ายๆเพื่อรวบรวมข้อมูลจากแหล่งข้อมูลบางอย่างประมวลผลและอัปโหลดไปยัง App Engine Python จะเป็นตัวเลือกที่ดี (หากคุณต้องการกระจายการประมวลผลใน 1,000 เครื่องอย่างไรก็ตามบางทีคุณอาจใช้ภาษาอื่น ... )
JavaScript
เห็นได้ชัดว่า Google ใช้จาวาสคริปต์จำนวนมาก อย่างไรก็ตามประเภทของ JavaScript ที่เขียนที่ Google นั้นแตกต่างจากสิ่งที่คุณเห็นใน wild Google ได้พัฒนาคอมไพเลอร์ JavaScript ที่ปรับให้เหมาะสมซึ่งช่วยให้คุณสามารถสร้างคำอธิบายประกอบในความคิดเห็นเพื่อแลกเปลี่ยนกับการเพิ่มประสิทธิภาพที่ดีขึ้นและการตรวจสอบแบบคงที่ ดูGoogle ปิด
ภาษาไม่สำคัญ (interop)
อีกเหตุผลที่ Google ไม่ได้ใช้เพียงภาษาเดียวก็คือมันไม่จำเป็นต้อง มีสิ่งอำนวยความสะดวกในภาษาการเขียนโปรแกรมสมัยใหม่เกือบทุกภาษาเพื่อโทรเข้าสู่ห้องสมุดภายนอกห้องสมุดที่อาจเขียนด้วยภาษาอื่น (ดูคำกริยา )
นอกจากนี้เนื่องจาก App Engine รัน JVM คุณสามารถเรียกใช้ภาษาใด ๆ ที่คอมไพล์ไปยังโค้ด Java byte (ที่ Google เรายึดติดกับภาษาที่กล่าวถึงที่นี่เป็นหลัก แต่นี่ไม่ใช่ข้อกำหนดที่ยาก) หากคุณต้องการใช้ปิด, Groovy หรือ Scala บน App Engine หากคุณรวมไฟล์ JAR ที่ถูกต้องแล้ว
โอเพ่นซอร์ส
นอกจากนี้ Google ยังใช้และสนับสนุนโอเพนซอร์ซจำนวนมากหากเป็นไปได้ โครงการเหล่านี้มักเขียนด้วยภาษาใดภาษาหนึ่งข้างต้นและต้องการให้ 'ใช้' ที่ Google
บรรทัดล่างคือสองสิ่ง:
1 language is enough
บางทีภาษาเดียวก็เพียงพอที่จะทำภารกิจต่าง ๆ ให้เพียงพอ แต่ภาษาที่ต่างกันมีจุดแข็งจุดอ่อนและความสามารถต่างกัน
เนื่องจาก Google อาจเป็นโปรแกรมสำหรับสถานการณ์ที่แตกต่างกันเป็นจำนวนมากมันเป็นเรื่องของม้าสำหรับหลักสูตรซึ่งเป็นเครื่องมือที่ดีที่สุดสำหรับงาน
สามภาษานี้ใช้เพื่อจุดประสงค์ที่แตกต่างกัน
Python อาจใช้สำหรับการเขียนสคริปต์อัตโนมัติ
C ++ สำหรับการใช้อัลกอริธึมที่ซับซ้อน (ตัวทำดัชนี, ตัวรวบรวมข้อมูล, แผนที่ลด, ตารางขนาดใหญ่)
Java สำหรับเว็บเซอร์วิส, เว็บแอป ฯลฯ
นี่เป็นข้อสมมติฐานของฉันเท่านั้น
Python ใช้สำหรับเว็บไซต์สนับสนุนของพวกเขาคุณจะเห็นว่าหน้านี้สร้างขึ้นโดยสคริปต์ python พวกเขาใช้ไลบรารี java สำหรับเว็บแอปพลิเคชันดังนั้นการสนับสนุน GWT และ java ในเอ็นจิ้นแอป
ฉันคิดว่าพวกเขาใช้ C ++ สำหรับ google earth หรือแอปพลิเคชันเดสก์ท็อปทั่วไป
"1 ภาษาก็เพียงพอ" สามารถเป็นจริงได้หากทุกโครงการที่คุณทำมีลักษณะเฉพาะ และสำหรับบางโครงการแม้แต่ C ++ Java และ Python ก็ไม่ใช่เครื่องมือที่ดีที่สุด ยิ่งไปกว่านั้นการรู้ภาษาเดียวเท่านั้นคือคุณสมบัติเด่นของโปรแกรมเมอร์ที่ไม่ดี
พวกเขาเขียนแอปพลิเคชั่น Mac และ iPhone ที่ใช้งานอยู่เช่นกันและที่อยู่ใน Objective-C เหตุผลที่พวกเขาทำนั้นง่าย: API อยู่ใน Objective-C