ฉันรักการเขียนโปรแกรมในภาษาที่ดูเหมือนจะมุ่งเน้นไปที่โปรแกรมเมอร์ไม่ยอมใครง่ายๆ (รายการโปรดของฉันคือ Python และ D. ) MATLAB มุ่งเน้นไปที่วิศวกรและ R มุ่งเน้นไปที่นักสถิติและดูเหมือนว่าภาษาเหล่านี้ได้รับการออกแบบสำหรับผู้ที่ไม่ได้เป็นโปรแกรมเมอร์ไม่ยอมใครง่ายๆ ฉันมักจะพบว่าพวกเขาค่อนข้างอึดอัดใจที่จะใช้และในระดับหนึ่งฉันไม่สามารถวางนิ้วบนทำไม นี่คือปัญหาที่ฉันจัดการเพื่อระบุ:
- (ทั้งคู่): การเน้นไปที่เวกเตอร์และเมทริกซ์เป็นอย่างมากจนถึงระดับที่ไม่มีพื้นฐานดั้งเดิมที่แท้จริง
- (ทั้งคู่): ความยากของการจัดการสตริงพื้นฐาน
- (ทั้งคู่): การขาดหรือความเชื่องช้าในการสนับสนุนโครงสร้างข้อมูลพื้นฐานเช่นตารางแฮชและ "ของจริง" เช่นประเภทพารามิเตอร์และรังแบบอาร์เรย์
- (ทั้งคู่): มันช้าจริง ๆ โดยการตีความมาตรฐานภาษายกเว้นว่าคุณก้มตัวไปข้างหลังเพื่อทำให้โค้ดของคุณเป็นแบบเวกเตอร์
- (ทั้งคู่): ดูเหมือนว่าไม่ได้ถูกออกแบบมาให้มีปฏิสัมพันธ์กับโลกภายนอก ตัวอย่างเช่นทั้งสองเป็นโปรแกรมขนาดใหญ่พอสมควรที่ใช้เวลาสักครู่ในการเปิดตัวและดูเหมือนจะไม่ได้รับการออกแบบมาเพื่อให้โปรแกรมตัวกรองข้อความแบบง่ายเขียนได้ง่าย นอกจากนี้การขาดการประมวลผลสตริงที่ดีทำให้ไฟล์ I / O ในรูปแบบใด ๆ ยกเว้นมาตรฐานที่ใกล้เคียงที่สุด
- (ทั้งคู่): การวางแนววัตถุดูเหมือนจะให้ความรู้สึกที่ยึดติดแน่น ใช่คุณสามารถทำมันได้ แต่มันก็ไม่ได้ทำให้รู้สึกสำนวนอะไรมากไปกว่า OO ใน C
- (ทั้งคู่): ไม่มีวิธีที่ชัดเจนในการรับประเภทอ้างอิง ไม่มีพอยน์เตอร์หรือคลาสอ้างอิง ตัวอย่างเช่นฉันไม่รู้ว่าคุณจะม้วนรายการลิงก์ของคุณในภาษาใดภาษาหนึ่งเหล่านี้ได้อย่างไร
- (MATLAB): คุณไม่สามารถใส่ฟังก์ชั่นหลายระดับบนสุดในไฟล์เดียวได้ซึ่งเป็นการสนับสนุนฟังก์ชั่นที่ยาวมากและการเข้ารหัสแบบตัดและวาง
- (MATLAB): เห็นได้ชัดว่า Integers ไม่มีอยู่ในประเภท First Class
- (R): โครงสร้างข้อมูลพื้นฐานในตัวดูเหมือนสูงเกินไปและมีเอกสารไม่ดีและดูเหมือนจะไม่เคยทำสิ่งที่ฉันคาดหวังจากประสบการณ์ของฉันที่มีโครงสร้างข้อมูลระดับเดียวกัน แต่ต่ำกว่า
- (R): เอกสารมีการกระจายไปทั่วสถานที่และแทบจะเป็นไปไม่ได้ที่จะเรียกดูหรือค้นหา แม้แต่ D ซึ่งมักจะล้มเหลวในการจัดทำเอกสารที่ไม่ดีและยังคงเป็นอัลฟาค่อนข้างดีกว่าที่ฉันสามารถบอกได้อย่างมาก
- (R): อย่างน้อยที่สุดเท่าที่ฉันทราบไม่มี IDE ที่ดีสำหรับมัน อีกครั้งแม้แต่ D ภาษาอัลฟา - ไอชที่มีชุมชนเล็ก ๆ ก็ทำได้ดีกว่า
โดยทั่วไปแล้วฉันรู้สึกเหมือนว่า MATLAB และ R สามารถถูกแทนที่ได้อย่างง่ายดายด้วยไลบรารีเก่าธรรมดาในภาษาที่ใช้งานทั่วไปมากขึ้นถ้ามีห้องสมุดที่มีเนื้อหาครอบคลุมเพียงพอ นี่เป็นความจริงโดยเฉพาะอย่างยิ่งในภาษาที่มีวัตถุประสงค์ทั่วไปที่ใหม่กว่าซึ่งมีคุณสมบัติมากมายสำหรับนักเขียนห้องสมุด
ทำไม R และ MATLAB จึงดูแปลกสำหรับฉัน มีประเด็นสำคัญอื่น ๆ อีกหรือไม่ที่คุณสังเกตเห็นว่าอาจทำให้ภาษาเหล่านี้หลุดพ้นไปจากโปรแกรมเมอร์ที่ไม่ยอมใครง่ายๆ เมื่อมีความจำเป็นต้องใช้อะไรบ้างเคล็ดลับการเอาชีวิตรอดที่ดีมีอะไรบ้าง
แก้ไข: ฉันเห็นปัญหาหนึ่งข้อจากคำตอบที่ฉันได้รับ ฉันมีการตั้งค่าส่วนตัวที่แข็งแกร่งเมื่อฉันวิเคราะห์ข้อมูลเพื่อให้มีหนึ่งสคริปต์ที่รวมไปป์ไลน์ทั้งหมด นี่หมายความว่าจำเป็นต้องใช้ภาษาวัตถุประสงค์ทั่วไป ฉันเกลียดที่จะต้องเขียนสคริปต์เพื่อ "ล้างข้อมูล" และคายมันออกไปจากนั้นอีกอันเพื่ออ่านมันในสภาพแวดล้อมที่แตกต่างกันอย่างสิ้นเชิง ฯลฯ ฉันพบว่าการใช้ MATLAB / R มีความเสียดทานกับงานของฉันและสมบูรณ์ ภาษาที่แตกต่างกับพื้นที่ที่อยู่ที่แตกต่างกันโดยสิ้นเชิงและวิธีการคิดสำหรับส่วนที่เหลือจะเป็นแหล่งของแรงเสียดทานขนาดใหญ่ นอกจากนี้ฉันรู้ว่ามีชั้นกาวที่มีอยู่ แต่พวกมันดูเหมือนจะซับซ้อนอย่างน่ากลัวและเป็นแหล่งของแรงเสียดทาน