คำถามติดแท็ก history

สำหรับคำถามเกี่ยวกับประวัติของการเขียนโปรแกรมและการคำนวณ

9
แนวคิดเรื่อง“ การกลับมาครั้งเดียวเท่านั้น” มาจากไหน
ฉันมักจะพูดคุยกับโปรแกรมเมอร์ที่พูดว่า " อย่าใส่ข้อความส่งคืนหลายรายการในวิธีเดียวกัน " เมื่อฉันขอให้พวกเขาบอกเหตุผลว่าทำไมสิ่งที่ฉันได้คือ " มาตรฐานการเข้ารหัสบอกเช่นนั้น " หรือ " มันสับสน " เมื่อพวกเขาแสดงวิธีการแก้ปัญหาให้ฉันด้วยคำสั่งการส่งคืนเดียวรหัสดูเหมือนจะไม่ดีสำหรับฉัน ตัวอย่างเช่น: if (condition) return 42; else return 97; " นี่น่าเกลียดคุณต้องใช้ตัวแปรเฉพาะที่! " int result; if (condition) result = 42; else result = 97; return result; การขยายโค้ด 50% นี้ทำให้โปรแกรมเข้าใจได้ง่ายขึ้นอย่างไร โดยส่วนตัวแล้วฉันพบว่ามันยากขึ้นเพราะพื้นที่ของรัฐเพิ่มขึ้นจากตัวแปรอื่นที่สามารถป้องกันได้ง่าย แน่นอนโดยปกติฉันจะเขียน: return (condition) ? 42 : 97; แต่โปรแกรมเมอร์จำนวนมากหลีกเลี่ยงผู้ปฏิบัติงานที่มีเงื่อนไขและชอบแบบยาว แนวคิดเรื่อง …

9
เพราะเหตุใด 80 อักขระจึงถูกจำกัดความกว้างของมาตรฐานสำหรับความกว้างของรหัส
เหตุใด 80 อักขระจึงถูก จำกัด "มาตรฐาน" สำหรับความกว้างของรหัส ทำไม 80 และไม่ใช่ 79, 81 หรือ 100 ต้นกำเนิดของค่าเฉพาะนี้คืออะไร

2
ซอฟต์แวร์ของ Mars Curiosity Rover สร้างขึ้นในอะไร?
ดาวอังคารอยากรู้อยากเห็นรถแลนด์โรเวอร์มีที่ดินที่ประสบความสำเร็จและเป็นหนึ่งในโปรโมชั่นวิดีโอ "7 นาทีของความหวาดกลัว" โกลด์โทมีการ 500,000 บรรทัดของรหัส มันเป็นปัญหาที่ซับซ้อนอย่างไม่ต้องสงสัย แต่นั่นเป็นรหัสจำนวนมากแน่นอนว่ามีความพยายามเขียนโปรแกรมที่ยิ่งใหญ่อยู่ข้างหลัง ไม่มีใครรู้อะไรเกี่ยวกับโครงการนี้หรือไม่? ฉันนึกได้แค่ว่ามันฝังซีบางอย่าง

4
โปรแกรมช่องว่างของสหภาพโซเวียตใช้ภาษาโปรแกรมซอฟต์แวร์อะไร
ฉันสนใจโปรแกรมอวกาศของโซเวียตและสนใจที่จะค้นพบว่าซอฟต์แวร์บนยานอวกาศ Buranประมาณปี 1988 เขียนขึ้นใน Prolog มีใครรู้บ้างไหมว่าภาษาใดบ้างที่อาจถูกนำมาใช้ในภารกิจก่อนหน้านี้โดยเฉพาะอย่างยิ่งภารกิจยานพรวนดิน Mars PrOP-Mในต้นปี 1970 ซึ่งค่อนข้างอิสระและสามารถนำทางอุปสรรคได้ แก้ไข แหล่งที่มาของฉันสำหรับ Buran Prolog เป็นเอกสารที่ไม่เป็นความลับอีกต่อไปจากไซต์ CIAเมื่อเดือนพฤษภาคม 1990 ฉันไม่พบเวอร์ชัน OCR ดังนั้นนี่เป็นคำพูดที่เกี่ยวข้องจาก p 0449: ตามวรรณคดีโอเพนซอร์ซโซเวียตใช้ภาษาเขียนโปรแกรมที่พัฒนาโดยฝรั่งเศสที่รู้จักกันในชื่อ Prolog เพื่อพัฒนาซอฟต์แวร์ระบบออนบอร์ดสำหรับยาน Buran ...

7
ภาษาการเขียนโปรแกรม C ถือเป็นภาษาระดับต่ำเมื่อมันออกมาหรือไม่
ปัจจุบันCถือเป็นภาษาระดับต่ำแต่ในยุค 70 ถือว่าเป็นระดับต่ำหรือไม่ เป็นคำที่ใช้งานอยู่แล้ว? ภาษาระดับสูงที่ได้รับความนิยมจำนวนมากไม่ได้มีอยู่จนกระทั่งช่วงกลางยุค 80 และต่อไปดังนั้นฉันอยากรู้ว่าธรรมชาติระดับต่ำมีการเปลี่ยนแปลงอย่างไรในช่วงหลายปีที่ผ่านมา

6
ทำไม Java 8 ถึงไม่รวมคอลเลกชันที่ไม่เปลี่ยนรูป?
ทีมงาน Java ได้ทำงานอย่างยอดเยี่ยมในการขจัดอุปสรรคในการเขียนโปรแกรมการทำงานใน Java 8 โดยเฉพาะอย่างยิ่งการเปลี่ยนแปลงของ java.util Collections ทำหน้าที่ได้อย่างยอดเยี่ยมในการแปลงสายสัมพันธ์ให้เป็นการดำเนินการที่รวดเร็วมาก เมื่อพิจารณาว่างานที่พวกเขาทำเพิ่มฟังก์ชันชั้นหนึ่งและวิธีการทำงานในคอลเลกชันได้ดีเพียงใดทำไมพวกเขาถึงล้มเหลวในการจัดหาคอลเลกชันที่ไม่เปลี่ยนรูปแบบหรือแม้แต่อินเตอร์เฟสคอลเล็กชันที่ไม่เปลี่ยนรูปแบบโดยสิ้นเชิง โดยไม่ต้องเปลี่ยนรหัสใด ๆ ที่มีอยู่ทีม Java สามารถเพิ่มอินเทอร์เฟซที่ไม่เปลี่ยนรูปได้ซึ่งเป็นอินเทอร์เฟซที่ไม่เปลี่ยนรูปได้ลบเมธอด "set" และทำให้อินเตอร์เฟสที่มีอยู่ขยายออกจากพวกเขาเช่นนี้ ImmutableIterable ____________/ | / | Iterable ImmutableCollection | _______/ / \ \___________ | / / \ \ Collection ImmutableList ImmutableSet ImmutableMap ... \ \ \_________|______________|__________ | \ \___________|____________ | \ | \___________ | …

14
ทำไม 0 จึงเป็นเท็จ
คำถามนี้อาจฟังดูเป็นใบ้ แต่ทำไม0ประเมินfalseและค่าอื่น ๆ [จำนวนเต็ม] trueเป็นภาษาโปรแกรมส่วนใหญ่ การเปรียบเทียบสตริง เนื่องจากคำถามดูเหมือนจะง่ายเกินไปฉันจะอธิบายตัวเองมากกว่านี้ก่อนอื่นอาจเห็นได้ชัดจากโปรแกรมเมอร์ทุกคน แต่ทำไมไม่มีภาษาการเขียนโปรแกรม - อาจมี แต่ไม่มี ฉันใช้ - ซึ่งเป็น0ค่าที่ประเมินtrueและ [จำนวนเต็ม] อื่น ๆ เพื่อfalseที่ไหน คำพูดหนึ่งอาจดูสุ่ม แต่ฉันมีตัวอย่างเล็ก ๆ น้อย ๆ ที่มันอาจเป็นความคิดที่ดี ก่อนอื่นเราลองมาดูตัวอย่างของการเปรียบเทียบสามสายผมจะเอา C มาstrcmpเป็นตัวอย่าง: โปรแกรมเมอร์ที่ลอง C เป็นภาษาแรกของเขาอาจถูกล่อลวงให้เขียนโค้ดต่อไปนี้: if (strcmp(str1, str2)) { // Do something... } เนื่องจากstrcmpส่งคืน0ซึ่งประเมินว่าfalseเมื่อใดที่สตริงมีค่าเท่ากันสิ่งที่โปรแกรมเมอร์เริ่มต้นพยายามทำล้มเหลวอย่างน่าสังเวชและโดยทั่วไปเขาไม่เข้าใจว่าทำไมในตอนแรก มีการ0ประเมินผลtrueแทนฟังก์ชันนี้สามารถใช้ในการแสดงออกที่ง่ายที่สุด - อย่างใดอย่างหนึ่งข้างต้น - เมื่อเปรียบเทียบกับความเสมอภาคและการตรวจสอบที่เหมาะสมสำหรับ-1และ1จะทำได้เมื่อจำเป็นเท่านั้น เราจะพิจารณาประเภทการคืนเป็นbool(ในความคิดของเราฉันหมายถึง) ส่วนใหญ่เวลา นอกจากนี้ขอแนะนำชนิดใหม่signที่ใช้เวลาเพียงค่า-1, และ0 1ที่สามารถมีประโยชน์สวย ลองนึกภาพว่ามีโอเปอเรเตอร์ยานอวกาศใน …

14
อะไรทำให้เกิดความนิยมของฟังก์ชั่นแลมบ์ดาในภาษาโปรแกรมกระแสหลักที่ทันสมัย?
ในไม่กี่ปีที่ผ่านมาฟังก์ชั่นนิรนาม (ฟังก์ชั่น AKA แลมบ์ดา) ได้กลายเป็นภาษาที่ได้รับความนิยมอย่างมากและเกือบทุกภาษาหลัก / การเขียนโปรแกรมหลักได้แนะนำพวกเขาหรือมีการวางแผนที่จะแนะนำพวกเขาในการแก้ไขมาตรฐาน แต่ฟังก์ชั่นนิรนามเป็นแนวคิดที่เก่าแก่และเป็นที่รู้จักมากในด้านคณิตศาสตร์และวิทยาการคอมพิวเตอร์ (คิดค้นโดยนักคณิตศาสตร์ Alonzo Church รอบปี 1936 และใช้โดยภาษาการเขียนโปรแกรม Lisp มาตั้งแต่ปี 1958 ดูที่นี่ ) เหตุใดจึงไม่มีภาษาโปรแกรมหลักในปัจจุบัน (หลายภาษาซึ่งมีต้นกำเนิดเมื่อ 15 ถึง 20 ปีก่อน) รองรับฟังก์ชั่นแลมบ์ดาตั้งแต่เริ่มแรกและนำมาใช้ภายหลังเท่านั้น และสิ่งที่กระตุ้นให้เกิดการยอมรับฟังก์ชั่นที่ไม่ระบุชื่อขนาดใหญ่ในไม่กี่ปีที่ผ่านมา? มีเหตุการณ์เฉพาะความต้องการใหม่หรือเทคนิคการเขียนโปรแกรมที่เริ่มปรากฏการณ์นี้หรือไม่? โน๊ตสำคัญ จุดเน้นของคำถามนี้คือการแนะนำฟังก์ชั่นที่ไม่ระบุชื่อในภาษาสมัยใหม่กระแสหลัก (และอาจมีข้อยกเว้นเล็กน้อยภาษาที่ไม่สามารถใช้งานได้) นอกจากนี้โปรดทราบว่าฟังก์ชั่นที่ไม่ระบุชื่อ (บล็อก) มีอยู่ใน Smalltalk ซึ่งไม่ใช่ภาษาที่ใช้งานได้และฟังก์ชั่นที่มีชื่อปกตินั้นมีอยู่ในภาษาขั้นตอนเช่น C และ Pascal เป็นเวลานาน โปรดอย่าทำให้คำตอบของคุณมากเกินไปโดยการพูดถึง "การยอมรับกระบวนทัศน์การทำงานและประโยชน์ของมัน" เพราะนี่ไม่ใช่หัวข้อของคำถาม

4
IPv4 เป็น IPv6 IPv5 อยู่ที่ไหน
อย่างที่เราทุกคนรู้ว่าหลังจาก IPv4 มาถึง IPv6 การเปลี่ยนแปลงนี้เกิดขึ้นได้อย่างไร? ฉันแค่อยากรู้ว่ามี IPv5 ใดด้วยหรือไม่ หรือมีเหตุผลอื่นใดบ้างในการตั้งชื่อ IP รุ่นนี้เป็น IPv6

11
คำสั่ง“ goto” ของแมลงชนิดใดที่นำไปสู่ มีตัวอย่างที่สำคัญทางประวัติศาสตร์หรือไม่?
ฉันเข้าใจว่าช่วยไม่ให้ลูปซ้อนกันในลูป gotoคำสั่งบ่ายเบี่ยงและประจานว่าเป็นข้อผิดพลาดสไตล์แนวโน้มของการเขียนโปรแกรมเพื่อไม่เคยถูกนำมาใช้ Alt Text: "Neal Stephenson คิดว่ามันน่ารักที่จะตั้งชื่อป้ายกำกับ 'dengo' ของเขา" ดูการ์ตูนต้นฉบับที่: http://xkcd.com/292/ เพราะฉันเรียนรู้สิ่งนี้ก่อน ฉันไม่ได้มีความเข้าใจอย่างถ่องแท้หรือประสบการณ์เกี่ยวกับข้อผิดพลาดประเภทใดที่gotoนำไปสู่ ดังนั้นสิ่งที่เรากำลังพูดถึงที่นี่: ความไม่แน่นอน? รหัสที่ไม่สามารถเข้าใจได้หรืออ่านไม่ได้? ช่องโหว่ด้านความปลอดภัย? มีอะไรอีกบ้าง? ข้อผิดพลาดประเภทใดที่ทำให้ข้อความ "goto" นำไปสู่ มีตัวอย่างที่สำคัญทางประวัติศาสตร์หรือไม่?

3
เหตุใดภาษาการเขียนโปรแกรมโดยเฉพาะ C ใช้วงเล็บปีกกาและไม่ใช่รูปสี่เหลี่ยมจัตุรัส
คำจำกัดความของ "ภาษา C-Style" สามารถทำให้ง่ายลงได้ถึง "ใช้วงเล็บปีกกา ( {})" ทำไมเราถึงใช้ตัวละครนั้น (และทำไมบางอย่างไม่สมเหตุสมผลมากกว่าอย่างเช่น[]ซึ่งไม่ต้องการปุ่ม Shift อย่างน้อยในคีย์บอร์ดของสหรัฐอเมริกา) มีประโยชน์จริงใด ๆ ต่อผลผลิตของโปรแกรมเมอร์ที่มาจากเครื่องหมายปีกกาหรือนักออกแบบภาษาใหม่ควรมองหาทางเลือกอื่น (เช่นคนที่อยู่เบื้องหลัง Python) Wikipediaบอกเราว่า C ใช้เครื่องหมายปีกกาดังกล่าว แต่ไม่ใช่เพราะอะไร คำแถลงในบทความ Wikipedia ในรายการภาษาโปรแกรม C-basedแสดงให้เห็นว่าองค์ประกอบไวยากรณ์นี้ค่อนข้างพิเศษ: ในวงกว้างการพูดภาษาตระกูล C เป็นภาษาที่ใช้ไวยากรณ์บล็อกแบบคล้าย C (รวมถึงเครื่องหมายปีกกาเพื่อเริ่มและจบบล็อก) ...

2
JavaScript คืออะไรจริงๆ
ทั้งหมดนี้เริ่มต้นเมื่อผมกำลังมองหาวิธีการทดสอบของฉันหน้าเว็บสำหรับอัจฉริยะ JavaScript เช่นW3C HTML Validator ฉันยังไม่พบ ถ้าอย่างนั้นคุณก็รู้ว่า ... ผมมองสำหรับหน้า JavaScript อย่างเป็นทางการและหาECMA สคริปต์ คนเหล่านี้มีภาษาสคริปต์ที่ได้มาตรฐาน (ฉันไม่รู้สึกว่าเรียกมันว่า JavaScript อีกต่อไป!) และเรียกมันว่า ECMA-262 ( Wikipedia ) ผลงานล่าสุดของพวกเขาคือรุ่น 5.1 JavaScript ได้รับการพัฒนาโดย Mozilla Corporation และรุ่นเสถียรล่าสุดของพวกเขาคือ 1.8.5 ( ดูที่นี่ ) ซึ่งอิงตามรุ่น 5.1 ของ ECMA หน้าวิกิพีเดียที่เชื่อมโยงกล่าวถึงภาษาถิ่น JavaScript 1.8.5 ของ Mozilla ถูกระบุว่าเป็นภาษาถิ่นพร้อมกับJScript 9 (IE) และ JavaScript (Chrome ของV8 [ Wiki …


4
อลันเคย์หมายถึงอะไรโดย * คำว่า "เชิงวัตถุ" จริงๆ?
มีรายงานว่า Alan Kay เป็นผู้ประดิษฐ์คำว่า "เชิงวัตถุ" และเขาก็มักจะอ้างว่ามีการกล่าวว่าสิ่งที่เราเรียก OO วันนี้ไม่ใช่สิ่งที่เขาหมายถึง ตัวอย่างเช่นฉันเพิ่งพบสิ่งนี้บน Google: ฉันสร้างคำว่า 'เชิงวัตถุ' และฉันสามารถบอกคุณได้ว่าฉันไม่มี C ++ ในใจ - Alan Kay, OOPSLA '97 ผมคลับคล้ายคลับคลาได้ยินบางสิ่งบางอย่างที่ชาญฉลาดสวยเกี่ยวกับสิ่งที่เขาไม่ได้หมายความว่า บางสิ่งบางอย่างตามสายของ "การส่งข้อความ" คุณรู้ไหมว่าเขาหมายถึงอะไร? คุณช่วยกรอกรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่เขาหมายและสิ่งที่แตกต่างจาก OO ทั่วไปของวันนี้? กรุณาแบ่งปันการอ้างอิงบางอย่างถ้าคุณมี ขอบคุณ

10
ทำไมอลันเคย์ถึงพูดว่า“ อินเทอร์เน็ตทำได้ดีมาก แต่เว็บเป็นมือสมัครเล่น”?
ตกลงดังนั้นฉันถอดความ อ้างเต็ม: อินเทอร์เน็ตทำได้ดีมากจนคนส่วนใหญ่คิดว่ามันเป็นทรัพยากรธรรมชาติเช่นมหาสมุทรแปซิฟิกแทนที่จะเป็นสิ่งที่มนุษย์สร้างขึ้น ครั้งสุดท้ายที่เทคโนโลยีที่มีสเกลเช่นนั้นปราศจากข้อผิดพลาดเกิดขึ้นเมื่อใด เว็บในการเปรียบเทียบเป็นเรื่องตลก เว็บทำโดยมือสมัครเล่น - อลันเคย์ ฉันกำลังพยายามทำความเข้าใจประวัติของอินเทอร์เน็ตและเว็บและข้อความนี้ยากที่จะเข้าใจ ฉันได้อ่านที่อื่นว่าอินเทอร์เน็ตใช้สิ่งที่แตกต่างจากตอนนี้มากและมันอาจเป็นปัจจัย อะไรทำให้อินเทอร์เน็ตทำได้ดีมากและอะไรที่ทำให้เว็บไม่ชำนาญ (แน่นอนอลันเคย์ผิดพลาดและไม่มีใครอยู่ที่นี่คืออลันเคย์ดังนั้นเราจึงไม่สามารถรู้ได้อย่างแม่นยำว่าทำไมเขาถึงพูดแบบนั้น แต่มีคำอธิบายอะไรที่เป็นไปได้บ้าง) * โปรดดูบทสัมภาษณ์ต้นฉบับ *

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.