En บทความชุดนี้ ลิขิต เพื่อให้กรอบอ้างอิงแก่ผู้อ่านของเราที่สนใจเรียนรู้การเขียนโปรแกรมใน Linux เวลาพูดถึงการเข้ารหัส. จำไว้ว่าเราเคยกล่าวไว้ว่าการเขียนโปรแกรมไม่ได้เป็นเพียงการเขียนโค้ดเท่านั้น แต่ยังรวมถึงการตัดสินใจด้วยว่าโปรแกรมควรทำอย่างไร ควรทำเช่นไร และกำหนดได้อย่างไรว่าโปรแกรมทำงานอย่างถูกต้อง
เลือกภาษายังไงให้ไม่อดตาย
กระแสนิยมสนับสนุนโดยนักการเมืองและสื่อ ว่าเพียงพอที่จะสอนการเขียนโปรแกรมให้กับผู้ว่างงานเพื่อยุติการว่างงานและความยากจนไม่ใช่เรื่องใหม่ ฉันโตมากับโฮมคอมพิวเตอร์ในยุค 80 และฉันยังจำโฆษณาของโรงเรียนมัธยมศึกษาตอนปลายที่สัญญาว่าอนาคตแห่งความยิ่งใหญ่หากคุณสมัครเรียนหลักสูตรพื้นฐาน พื้นฐานตามชื่อของมันก็คือ (คือ) ภาษาที่ใช้สอนพื้นฐาน การเรียนรู้จะช่วยให้คุณเป็นโปรแกรมเมอร์มืออาชีพ เช่นเดียวกับการเรียนรู้ที่จะอ่านช่วยให้คุณเป็นหมอได้
บนเว็บมีบทความมากมายที่ปกป้องว่าภาษาการเขียนโปรแกรมนี้หรือภาษาโปรแกรมนั้นเป็นตัวเลือกที่ดีที่สุด ความจริงก็คือไม่มีสิ่งนั้น ปู่ย่าตายายของเราสามารถเรียนรู้การพิมพ์หรือจดชวเลขด้วยวิธีการบางอย่างและต้องทนทั้งชีวิต ไม่มีสิ่งใดเทียบเท่าในการเขียนโปรแกรม เปลี่ยนกระบวนทัศน์ อุปกรณ์ใหม่ปรากฏขึ้น จำเป็นต้องทำงานกับวิธีการอินพุตและเอาต์พุตที่แตกต่างกัน
นั่นคือเหตุผล แทนที่จะสร้างรายการภาษาโปรแกรมตามปกติ ฉันจะอุทิศสองสามย่อหน้าให้กับกระบวนทัศน์ต่างๆ ในภาษาโปรแกรม
มีภาษาน้อยมากที่ใช้กระบวนทัศน์ 100% มีบางส่วนที่ส่วนใหญ่จะกำหนดไว้อย่างหนึ่ง แต่ใช้คุณลักษณะบางอย่างของคุณลักษณะอื่นเมื่อจำเป็น ในทางตรงกันข้าม หลายคนยอมให้เขียนโปรแกรมในกระบวนทัศน์อย่างน้อยหนึ่งกระบวนทัศน์ พวกเขาเป็นภาษาที่เรียกว่ากระบวนทัศน์หลายภาษา
ของกระบวนทัศน์และภาษาโปรแกรม
กระบวนทัศน์ของคำไม่ควรเกี่ยวข้องกับภาษาการเขียนโปรแกรมเฉพาะ แต่กับวิธีการสำหรับการสร้างโปรแกรม แม้ว่าภาษาใดก็ตามสามารถใช้กับกระบวนทัศน์ใด ๆ ได้ แต่ผู้สร้างของพวกเขามีวิธีการเฉพาะอยู่ในใจเมื่อพวกเขาสร้างมันขึ้นมา ดังนั้นจึงจะง่ายต่อการใช้งานภายในนั้น
กระบวนทัศน์ทั่วไปบางประการคือ:
- กระบวนทัศน์การทำงาน: เน้นการประเมินฟังก์ชันทางคณิตศาสตร์ร่วมกับนิพจน์ ในการเขียนโปรแกรมเชิงฟังก์ชัน แทนที่จะกำหนดฟังก์ชันให้กับตัวแปร คุณรวมการเรียกใช้ฟังก์ชันเข้าด้วยกัน ภาษาโปรแกรมที่รองรับบางภาษา ได้แก่ LISP, Scheme และ Haskell
- กระบวนทัศน์ความจำเป็น: กระบวนทัศน์ความจำเป็นใช้ประโยชน์จากความสามารถของคอมพิวเตอร์ในการเข้าถึงและแก้ไขเนื้อหาของหน่วยความจำได้ดีขึ้น ซึ่งทำให้เหมาะอย่างยิ่งสำหรับการใช้งานที่องค์ประกอบบางอย่างของฟังก์ชันเปลี่ยนแปลงตลอดเวลา และในโปรแกรมที่เขียนภายใต้คำสั่งนั้น คำสั่งจะแสดงวิธีการคำนวณทีละขั้นตอน แต่ละขั้นตอนมีผลต่อสถานะโดยรวมของการคำนวณ. ในบรรดาภาษาโปรแกรมเราสามารถพูดถึง: Algol 68, Cobol, C, Fortran และ ADA
- กระบวนทัศน์เชิงตรรกะ: ปัญหาทั้งหมดไม่สามารถแสดงเป็นฟังก์ชันทางคณิตศาสตร์ได้ นั่นคือเหตุผลที่ในกระบวนทัศน์นี้เน้นที่ความสัมพันธ์ระหว่างองค์ประกอบต่างๆ โปรแกรมถูกสร้างขึ้นโดยการสร้างความสัมพันธ์ที่ระบุข้อเท็จจริงและกฎการอนุมาน จากนั้นตรวจสอบโดยอัตโนมัติว่าหลักฐานเป็นจริงหรือไม่ ภาษาโปรแกรมที่รู้จักกันดีที่สุดภายใต้กระบวนทัศน์นี้คือ Prolog
- กระบวนทัศน์เชิงวัตถุ: กระบวนทัศน์อื่นๆ จะพิจารณาข้อมูลและสิ่งที่ทำกับข้อมูลนั้นเป็นเอนทิตีที่แยกจากกัน กระบวนทัศน์นี้รวมข้อมูลและขั้นตอนที่ใช้ในเอนทิตีที่เรียกว่าอ็อบเจกต์. การจัดกำหนดการขึ้นอยู่กับการส่งข้อความไปยังวัตถุ ออบเจ็กต์ตอบสนองต่อข้อความโดยการดำเนินการ โดยทั่วไปเรียกว่าเมธอด ข้อความสามารถมีอาร์กิวเมนต์ ที่นี่เราพบคนรู้จัก C ++, Python หรือ Java เป็นต้น
อย่าปล่อยให้คำพูดทั้งหมดนี้ทำให้คุณกลัว จำเป็นต้องพูดถึงกระบวนทัศน์เพราะเมื่อคุณเจาะลึกเรื่องใดเรื่องหนึ่งหัวข้อจะเกิดขึ้น สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือลองใช้ภาษาต่างๆ เพื่อลองใช้ภาษาที่คุณรู้สึกสบายใจที่สุด จากนั้นลองใช้ภาษาอื่นๆ ที่อยู่ในกระบวนทัศน์เดียวกัน