คุณคิดว่าการเปิดรับ BASIC สามารถทำลายจิตใจของคุณหรือไม่? [ปิด]


32

มันเป็นไปไม่ได้ในทางปฏิบัติที่จะสอนการเขียนโปรแกรมที่ดีให้กับนักเรียนที่มีการเปิดเผยก่อนหน้าพื้นฐาน: เป็นโปรแกรมเมอร์ที่มีศักยภาพพวกเขาจะถูกทำลายจิตใจจิตใจเกินความหวังของการฟื้นฟู

- Edsger W. Dijkstra

ฉันมีความเคารพอย่างลึกซึ้งต่อ Dijkstra แต่ฉันไม่เห็นด้วยกับทุกสิ่งที่เขาพูด / เขียน ฉันไม่เห็นด้วยเป็นพิเศษกับใบเสนอราคานี้ในบทความที่เชื่อมโยงเขียนเมื่อ 35 ปีที่แล้วเกี่ยวกับการใช้งานดาร์ทเมาท์เบสิค

เพื่อนร่วมงานหรือโปรแกรมเมอร์ของฉันหลายคนเริ่มต้นด้วย BASIC คำถามด้านล่างมีคำตอบที่ระบุว่าโปรแกรมเมอร์หลายคนมีประสบการณ์ครั้งแรกในการเขียนโปรแกรมที่ BASIC AFAIK โปรแกรมเมอร์ที่ดีหลายคนเริ่มต้นที่การเขียนโปรแกรมพื้นฐาน

ฉันไม่ได้พูดถึง Visual Basic หรือภาษา "ทันสมัย" อื่น ๆ ของ BASIC ที่ทำงานบนเครื่องที่เต็มไปด้วยทรัพยากร ฉันกำลังพูดถึง BASIC รุ่นเก่าที่ทำงานบนคอมพิวเตอร์ "ของเล่น" ที่โปรแกรมเมอร์ต้องกังวลเกี่ยวกับการบันทึกตัวเลขขนาดเล็กที่ไม่จำเป็นต้องคำนวณเป็นสตริงเพื่อบันทึกไบต์ที่เลวร้ายเพราะคอมพิวเตอร์มีเพียงไม่กี่ร้อยหรือ ต้องใช้ goto ที่คำนวณได้เนื่องจากขาดคุณสมบัติที่มีประสิทธิภาพมากกว่าและสิ่งอื่น ๆ อีกมากมายที่ผู้เขียนโปรแกรมต้องคิดมากก่อนที่จะทำอะไรบางอย่างและบังคับให้โปรแกรมเมอร์มีความคิดสร้างสรรค์

หากคุณเคยมีประสบการณ์กับ BASIC แบบเก่าบนเครื่องที่มีทรัพยากร จำกัด (จำไว้ว่าไมโครคอนโทรลเลอร์ที่เรียบง่ายในปัจจุบันมีทรัพยากรมากกว่าคอมพิวเตอร์ในปี 1975 คุณคิดว่า BASIC ช่วยให้จิตใจของคุณหาวิธีแก้ปัญหาที่ดีกว่า เช่นวิศวกรหรือเบสิกลากคุณไปยังด้านมืดของการเขียนโปรแกรมและทำลายจิตใจคุณไหม?

เป็นการดีที่จะเรียนรู้ภาษาการเขียนโปรแกรมที่ทำงานบนคอมพิวเตอร์ที่เต็มไปด้วยทรัพยากรที่โปรแกรมเมอร์สามเณรสามารถทำสิ่งที่ผิดและโปรแกรมทำงานได้โดยไม่มีปัญหาใหญ่? หรือมันจะดีกว่าที่จะเรียนรู้ว่าโปรแกรมเมอร์ไม่สามารถไปผิดหรือเปล่า?

คุณสามารถพูดอะไรเกี่ยวกับ BASIC ได้ช่วยให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้น / แย่ลง?

คุณจะสอน BASIC รุ่นเก่าที่ทำงานบนเครื่อง 2KB (เสมือน) กับโปรแกรมเมอร์ตัวใหม่หรือไม่?

แน่นอนว่าการเปิดรับ BASIC เท่านั้นนั้นไม่ดี บางทีคุณอาจแบ่งปันความคิดเห็นของฉันว่า BASIC ที่ทันสมัยไม่ได้ช่วยอะไรมากเพราะ BASIC ที่ทันสมัยตราบใดที่ภาษาการเขียนโปรแกรมอื่น ๆ มีสิ่งอำนวยความสะดวกที่ทำให้โปรแกรมเมอร์ไม่คิดลึก

ข้อมูลเพิ่มเติม: ทำไมต้อง BASIC


7
คุณรู้ไหมว่าคำพูดนั้นเป็นอะไรที่อายุ 35 ปีใช่ไหม?
MIA

2
ใช่. ลิงก์ไปยัง Dijkstra มีวันที่เผยแพร่
Maniero

3
บางทีคำถามนี้ไม่ควรตอบโดยคนหนุ่มสาว :-)
Maniero

8
อายุ 35 ปีและฉันค่อนข้างมั่นใจว่าเอ็ดดี้กำลังหลอกตัวเองเมื่อเขาเขียนมันเช่นกัน ฉันจะไม่อ่านมากเกินไป
Carson63000

3
ฉันเห็นด้วยกับ @Carson; ฉันคิดว่าการได้รับการเย้ยหยันเหยียดหยามและเย้ยหยันเป็นเวลานานจะทำให้คุณแย่ลง
ทำเครื่องหมาย C

คำตอบ:


37

พื้นฐานที่ได้รับความนิยมในช่วงเวลาของการเสนอราคาแตกต่างจากที่เรามีเมื่อ 20 ปีที่แล้ว (คุณนับคนในภาษาถิ่น "โมเดิร์น" หรือไม่?)

ลืมลูปรูทีนย่อยตัวแปรท้องถิ่นและทุกอย่างที่มีโครงสร้างการเขียนโปรแกรม (ซึ่ง Dijkstra และ Knuth เป็นผู้เสนอใหญ่) เน้น คุณมี GOTO และคุณชอบมัน

ในบริบทนี้โปรแกรมเมอร์ที่รู้เพียงแค่ตัวแปรระดับโลกคิดค้นรูทีนย่อยของตนเอง (ใช้ตัวแปรระดับโลกมากขึ้นสำหรับพารามิเตอร์และค่าส่งคืน!) และเขียนสปาเก็ตตี้ GOTO จริงๆแล้วถูกทำให้เสียหาย

หากคุณมีอายุ 30 ปีหรือต่ำกว่าวันนี้และ Basic เป็นภาษาแรกของคุณมันไม่ใช่ภาษาเดียวกันที่ Dijkstra พูดถึง แม้ว่าคุณจะอายุมากกว่าและพื้นฐานแรกของคุณก็มีคุณสมบัติบางอย่างดังที่ Murph แสดงความคิดเห็นด้านล่าง แต่ก็อาจไม่ได้เป็นภาษาเดียวกับที่ Dijkstra พูดถึง


คุณได้อัปเดตคำถามตามบริบทที่ฉันไม่เคยรู้มาก่อน:

  • คำกล่าวของ Dijkstra มาจากปี 1975

  • มันไม่ได้จนกว่ารุ่น 6 ที่คุณได้รับขั้นตอนการรวบรวมแยกกัน - ซึ่งฉันเชื่อว่าแสดงจุดเริ่มต้นของการเปลี่ยนแปลงที่มุ่งเน้นออกไปจาก GOTO

  • "ในปี 1976 สตีฟการ์แลนด์ได้เพิ่มคุณสมบัติการเขียนโปรแกรมแบบมีโครงสร้างเพื่อสร้าง Dartmouth SBASIC ซึ่งเป็นพรีคอมไพเลอร์ซึ่งผลิตเวอร์ชัน 6 เอาท์พุท ... " [ Wikipedia ]บริบทของคำพูดนั้นชัดเจนก่อนที่เราจะรู้ว่าเป็นโครงสร้างการควบคุม เวลาอาจคุ้นเคยกับรุ่นที่สองถึงล่าสุดมากขึ้น - นั่นคือสองเวอร์ชันก่อนหน้าการ์แลนด์ซึ่งเป็น v5 และก่อนขั้นตอนที่คอมไพล์ได้แยกกัน

  • GOSUB / RETURN ยังคงจัดการ "subroutines ง่าย" เท่านั้น

  • "ชื่อตัวแปรถูก จำกัด ไว้ที่ A ถึง Z, A0 ถึง A9, B0 ถึง B9, ... , Z0 ถึง Z9 โดยให้ตัวแปรที่ต่างกันได้สูงสุด 286 รายการ" ... และพวกเขาทั้งหมดทั่วโลก


2
การเปิดเผยครั้งแรกของฉันคือพื้นฐาน (ในปี 1979) - แต่เป็นภาษาถิ่นที่ขัดแย้งกันซึ่งมีขั้นตอนแบบกำหนดพารามิเตอร์และคุณสามารถแก้ไขรหัสในโปรแกรมแก้ไขข้อความภายนอกได้แม้ว่าฉันจะทำสิ่งต่างๆมากขึ้นด้วยรุ่นที่หรูหราน้อยลง เมื่อในปี 1982 ฉันได้รับการสอนการเขียนโปรแกรมแบบมีโครงสร้าง (และภาษาปาสคาลเป็นภาษาที่จะใช้เหมือนกัน) มันเป็นเหมือนดวงอาทิตย์ขึ้นมาในตอนเช้า ... ฉันใช้ GOTO ในภาษา "เหมาะสม" (DIBOL) 1990 ...
Murph

@Murph: ฉันลงเอยด้วยการใช้ goto สองสามครั้งต่อปี ... แต่ด้วยโทเค็นเดียวกัน "goto ถือว่าเป็นอันตราย" เป็นเรื่องเกี่ยวกับ gotos ทั่วโลกที่ฉันพูดถึงข้างต้นไม่ใช่ gotos ในพื้นที่

1
GOTO หรือที่รู้จักกันว่า "การกระโดดแบบสุ่มครั้งใหญ่" - และฉันขอขอบคุณที่กระดาษไม่ได้เกี่ยวกับ "อะไร" แต่เกี่ยวกับ "วิธีการ" ซึ่งเป็นเหตุผลว่าทำไมเขาถึงทำผิดแต่มันทำให้เป็นเรื่องทั่วไปที่ดี (ถ้าคุณดูให้พูดว่า Fortran IV คุณไม่มีทางเลือกอื่นนอกจากการใช้ goto แต่เนื่องจากอาจารย์ของฉันพยายามสาธิต - แม้ว่าจะสกัดกั้นโดยการแนะนำ Fortran 77 - คุณสามารถเขียนโค้ดที่มีโครงสร้างอย่างดีโดยใช้ gotos)
Murph

ฉันได้รับการพูดเกี่ยวกับภาษาเบสิกขั้นพื้นฐานอย่างแน่นอน ฉันไม่รู้ว่าทำไมคนยืนยันว่าฉันกำลังพูดกับ BASIC ที่ทันสมัย สำหรับฉันแล้ว BASIC ที่ทันสมัยทำให้จิตใจของโปรแกรมเมอร์แย่ลง มันทำให้เกือบทุกอย่างสุกและไม่ต้องคิดลึก โปรแกรมพื้นฐานแทบจะเหนือกว่า 1 หรือ 2KLOCs และไม่ค่อยมีตัวแปรมากกว่าหนึ่งร้อยตัววันนี้เป็นคลาสทั่วไปที่มีมากกว่านี้และฉันเห็นฟังก์ชั่นหลายอย่างที่เขียนไม่ดีรอบตัวนับนี้ ความคิดของฉันคือ Dijkstra มีการสัมผัสกับโปรแกรมเมอร์ขั้นพื้นฐานที่เลวร้ายที่สุด เฉพาะผู้ที่มีประสบการณ์กับ BASIC ในเครื่องที่มีทรัพยากร จำกัด เท่านั้นที่สามารถบอกได้
Maniero

@ ใหญ่: แต่อะไรที่คุณคิดว่าทันสมัย การเรียกภาษาการเขียนโปรแกรมอายุ 30 ปี "ทันสมัย" เป็นเรื่องแปลกสำหรับฉันที่จะได้ยิน

31

มนุษย์ไม่สามารถทำอะไรได้ดีไปกว่ากินและดื่มแล้วหาความพึงพอใจในงานของเขา

ฉันเรียนรู้ภาษาเบสิกก่อนสิ่งอื่น (ดียกเว้นพีชคณิตฉันเดา) ถ้ามันไม่ได้บิดเบือนความคิดของฉันอย่างจริงจังฉันก็ไม่แน่ใจว่าจะอธิบายอย่างไรใน 18 ปีหลังจาก ...

ที่กล่าวว่าดังนั้นอะไร Dijkstra อาจมีเวลาสอนให้ฉันลำบากเพราะการเปิดรับ BASIC ของฉันในระยะยาว แต่เขาจะมีเวลามากขึ้นในการสอนฉันเพราะการสัมผัสระยะยาวกับกล่องสนใต้ดิน และถึงแม้จะมีการลบปัจจัยเหล่านั้นออกไปฉันก็ยังไม่เคยเป็นนักเรียน CS ที่จริงจังนักเรียนคณิตศาสตร์ที่จริงจังหรือนักเรียนที่จริงจังในสาขาอื่น ๆ ก้นบึ้งระหว่างคนอย่างฉันและผู้จัดทำโปรแกรม Dijkstra น่าจะชอบดูดีมากจนเกือบจะกินลึก ...

และยังเราเขียนโปรแกรม พวกเราที่ฟันบน BASIC เล่นกับ FORTRAN ทดลองกับ COBOL และส่วนที่เหลือทั้งหมดเราก็พบความสุขและความหลงใหลในเครื่องจักรเล็ก ๆ เหล่านี้ซึ่งในขณะที่อาจแตกต่างจากสิ่งที่นาย Edsger ดึงเข้าไปในสนามของเขาเป็นครั้งแรก การเรียกน้อยรากฐานสำหรับการใช้ความรักตลอดชีวิต

... หรือบางทีนั่นอาจเป็นสิ่งที่จิตใจขาดวิ่นจะพูด ...


โง่มาก! อย่างจริงจังแม้ว่ามันเป็นเรื่องของความเห็น
RCProgramming

17

มันไม่ได้เป็นพื้นฐานที่ทำให้คุณเจ็บมันเป็นความล้มเหลวในการเปิดเผยตัวเองเป็นภาษาอื่น Monoglot ไม่ใช่ "โปรแกรมเมอร์"


1
ถูกต้องอย่างแน่นอน
RCProgramming

ในขณะนี้เป็นจริงฉันไม่คิดว่านี่คือสิ่งที่ ED อ้างถึงในขณะนั้น
jk

11

พื้นฐานจากมุมมองที่มีโครงสร้างไม่เลวร้ายไปกว่าแอสเซมเบลอร์หรือภาษาโคบอล ย้อนกลับไปตอนนั้นไม่มีภาษาที่สืบเชื้อสายมาจาก Algol เหลือเฟือที่เรามีตอนนี้ Pascal เป็นบทนำครั้งแรกที่คนส่วนใหญ่ต้องมีโครงสร้างการควบคุมที่สมเหตุสมผล (และฉันไม่ใช่ทุกคนที่ชอบโครงสร้างควบคุม Pascal)

ถ้า BASIC เพียงพอที่จะทำอันตรายต่อผู้คนอย่างถาวรภาษาอื่น ๆ ในยุคแรกก็เป็นเช่นนั้นและดังนั้นเราจะไม่มีคนที่ไม่เป็นอันตรายเพียงพอที่จะพัฒนาภาษาทั้งหมดที่เราใช้ในปัจจุบัน

เป็นไปได้ว่า Dijkstra นั้นจะติดต่อกับคนที่ไม่ใช่โปรแกรมเมอร์ที่ดีและไม่เคยเป็นใครที่เรียนรู้ที่จะทำบางสิ่งในภาษาเบสิก นั่นคือการตีความที่เป็นกุศลมากที่สุดที่ฉันสามารถบอกได้


Assembler เป็นตัวแทนของจำนวนไบต์ที่คุณป้อนคอมพิวเตอร์ คุณสามารถแทนที่BASICด้วยAssemblerคำพูดของ Dijkstra แต่ฉันคิดว่ามันเป็นภาษาคอมพิวเตอร์ไม่ใช่ภาษาโปรแกรม +1 แม้ว่า :)
deltreme

1
ความเข้าใจของฉันคือ Dijkstra แยกพื้นฐานที่นี่เพื่อพูดเร็วและจะรวมถึงสภาพแวดล้อมที่ไม่มีโครงสร้างอื่น ๆ

2
แน่นอนว่า Dijkstra อาจพูดถึง BASIC เพื่อให้ได้เสียงที่ดี อย่างไรก็ตามจุดยืนของฉันซึ่งก็คือภาษาคอมพิวเตอร์ยุคแรก ๆ นั้นไม่ดีไปกว่านี้อย่างแน่นอนและนั่นก็หมายความว่าโปรแกรมเมอร์ที่ดีไม่สามารถพัฒนาได้จนถึงปี 1960 และทุกคนที่เริ่มก่อนหน้านี้ก็เสียหายอย่างถาวร
David Thornley

5
หากพวกคุณใช้เวลาอ่านบทความที่อ้างถึงคุณจะค้นพบว่าเขายังทิ้งภาษายอดนิยมอื่น ๆ ในเวลานั้นนอกเหนือจากเบสิก เขายังวิพากษ์วิจารณ์แนวโน้มที่จะเปลี่ยนแปลงคอมพิวเตอร์ซึ่งฉันเข้าใจได้ พวกเขาเกลียดที่
Huperniketes

2
@Huperniketes: ใช่ แต่ Dijkstra มีความผิดปกติเกี่ยวกับ BASIC และ COBOL เขาทิ้งความรู้สึกไว้ว่า FORTRAN และ PL / I weenies สามารถรักษาให้หายขาดได้
David Thornley

6

ฉันเรียนรู้กับ BASIC ใน TRS-80 และ Apple II c / e และคิดว่าตัวเองเป็นโปรแกรมเมอร์ที่ดี ทั้งสองลักษณะที่ฉันคิดว่านำไปสู่การไม่ถูกทำลายโดยการเรียนรู้พื้นฐานครั้งแรกคือ

  1. ฉันพยายามเรียนรู้วิธีที่ดีกว่าเพื่อให้บรรลุสิ่งที่ฉันต้องการด้วยความพยายามน้อยลงซึ่งนำไปสู่การเรียนรู้ภาษาอื่นและคุณสมบัติในภาษาเหล่านั้นที่ทำให้พวกเขามีพลังและ
  2. ฉันพบปัญหาพื้นฐานเกี่ยวกับภาษา BASIC โดยเฉพาะอย่างยิ่งการขาดรูทีนย่อย (แม้ว่าฉันจะไม่มีประสบการณ์ในการอธิบายปัญหาที่เกิดขึ้นในตอนนี้)

ฉันจะยอมรับว่าการเรียนรู้การเขียนโปรแกรมเชิงวัตถุหลังจากขั้นตอนบริสุทธิ์ของ BASIC เป็นการต่อสู้มาระยะหนึ่งแล้ว แต่ฉันไม่รู้ว่าสิ่งนั้นเกี่ยวข้องกับ BASIC อย่างแท้จริงหรือไม่เพราะฉันได้เรียนรู้ C จำนวนพอสมควรด้วยเช่นกัน .


6

ฉันไม่เห็นด้วยกับ Dijkstra ด้วย ฉันเป็นคนที่เข้มงวดมากกว่าที่จะเรียนรู้ภาษาที่สองเพราะกระบวนทัศน์ไม่ใช่เพราะเป็นภาษาเบสิก

BASIC เป็นภาษาแรกของฉันในคอมพิวเตอร์ส่วนบุคคลชื่อ TK (Sinclair like) ในปี 1985 มันเป็นเครื่องทรัพยากรที่มีข้อ จำกัด มาก ในเวลานั้นฉันเขียนคอมไพเลอร์พื้นฐานจากหนังสือโดยใช้โปรแกรมแก้ไขฐานสิบหกเพื่อความสนุกสนาน ฉันซื้อหนังสือ Z80 และเรียนรู้ภาษาเครื่อง 8 บิตหลังจากนั้น พื้นฐานช่วยฉันได้มากกับสิ่งนี้

หลังจากฉันเรียนรู้ C และ Pascal และเล่นกับ Assembly สำหรับ 8080/6 MSX-BASIC, Quick Basic ในเวลา MS-DOS ... VB, Delphi, Java บางตัวใน Windows ครั้ง ...

วันนี้การทำงานกับความคืบหน้า (4gl), .net (C # / VB), php และฉันไม่รู้สึกเหมือนไซคลอปส์ O):


5

ฉันเริ่มต้นด้วยพื้นฐานบนแอปเปิ้ลโคลนเมื่อฉันอายุแปดขวบ

แม้แต่รุ่นต่อมาของพื้นฐานที่มีแนวคิด OOP บางอย่างที่นำมารวมกัน (qbasic, visual Basic ฯลฯ ) ก็คงไม่สมเหตุสมผลที่ Eight

การเริ่มต้นเขียนโปรแกรมตั้งแต่เนิ่น ๆ เป็นหนึ่งในเหตุผลที่ฉันสามารถคิดผ่านปัญหาในโฟลว์ของโปรแกรมและนั่นเป็นสิ่งที่หลาย ๆ คนไม่สามารถทำได้ดีในอุตสาหกรรมนี้

ฉันคิดว่าการเริ่มต้นเร็วมักจะมีประโยชน์และจำเป็นต้องใช้ภาษาที่ง่ายมากเมื่อจัดการกับเด็ก

ระยะทางของคุณอาจแตกต่างกันไป ...


4

ฉันคิดว่าการสัมผัสกับตัวอย่างพื้นฐานที่สุดในโลกคือสิ่งที่ทำให้สมองของโปรแกรมเมอร์ไม่ได้รับความเสียหาย มันก็เหมือนกับการเขียนโปรแกรม C # ที่เรียกดู MSDN และไม่ได้คิดว่าการจัดการข้อยกเว้นมีความจำเป็นหรือIDisposableประเภทไม่ได้จริงๆจะต้องมีการจำหน่าย


4

ทุกคนจะมีปัญหาหากพวกเขาไม่สามารถระบุปัญหาในภาษาปัจจุบันของพวกเขาและไม่เพียง แต่จะสามารถแก้ไขปัญหาได้ แต่หาอีกอันหนึ่งที่สร้างขึ้นเพื่อแก้ปัญหา

และ GOTO นั้นแย่ถ้าคุณไม่มีหมายเลขบรรทัด;)


ได้! GOTO ไม่เป็นไร มันเป็นป้ายกำกับที่ชั่วร้าย ... mwuuuuhahahaha
Mawg

3

ขณะนี้ฉันกำลังใช้ BASIC เพื่อสอนลูกชายของฉันให้เขียนเกมง่ายๆของเขาเอง ฉันไม่เคยใช้เลยฉันเริ่มผู้ให้บริการด้วย PowerBuilder และ PowerScript แล้วข้ามไปยัง C / C ++ แล้วก็ Delphi วันนี้ฉันใช้ภาษาเกือบทั้งหมดที่มีอยู่และฉันปรับตัวเร็วมากเพราะภาษาทุกภาษามีสูตรทางคณิตศาสตร์เหมือนกันซึ่งมีสัญลักษณ์ตัวดำเนินการและสัญลักษณ์ต่างกัน นั่นคือสิ่งที่ฉันสอนลูกชายของฉันและเพราะเขาสามารถอ่านและอธิบายรหัส C ++ ได้แล้ว ลูกชายของฉันอายุ 12 ปี


3

พื้นฐานของGOTOเป็นวิธีที่ดีที่จะสอนวิธีการคิดในภาษาประกอบ มันไม่ทำให้จิตใจเสียโฉมมันทำให้จิตใจของเราห่างไกลจากซิงก์ที่ทำจากคาร์บอนและใกล้กับทรานซิสเตอร์ที่ใช้ซิลิกอน

อย่างไรก็ตามเรามาเปรียบเทียบ BASIC กับโลโก้ BASIC สามารถทำให้เด็กเล็กห่างจากการเขียนโปรแกรมเพราะการเขียนโปรแกรมสนุก ๆ ง่ายๆสิ่งที่คุณทำได้ก็คือการคัดลอกพิมพ์โปรแกรมที่ยาวและยาวมาก ๆ ที่พิมพ์บนนิตยสารในขณะที่โลโก้หนึ่งซับสามารถวาดกราฟิกที่น่าประทับใจมาก ซึ่งเป็นสิ่งสำคัญในการดึงดูดเด็ก ๆ


ฉันลงคะแนนคำตอบนี้เพราะคำสั่งนี้: สิ่งที่คุณทำได้ก็คือการพิมพ์คัดลอกโปรแกรมที่ยาวมาก ๆ และพิมพ์ลงบนนิตยสารนั่นเป็นเพียงสคริปต์ของวัน นักพัฒนาที่แท้จริงจะต้องเรียนรู้และเขียนเนื้อหาของตัวเอง
TecBrat

2

พื้นฐานดี - มันสนุกและค่อนข้างง่ายมันสามารถทำกราฟิก 2 มิติที่สนุกและสิ่งที่ไม่ ... ฉันได้เรียนรู้ (หรือพยายามที่จะเรียนรู้) ว่าเมื่อฉันอยู่ที่ประมาณ 10 หรือ 12 มันเป็นภาษาที่สนุกที่ทำให้ฉันสนใจเรียนรู้เพิ่มเติม เกี่ยวกับคอมพิวเตอร์ ...


2

โปรแกรมเมอร์ที่ดีที่สุดบางคนที่ฉันรู้จักถูกเปิดเผย แต่เนิ่นๆในการเขียนโปรแกรมพื้นฐาน มันค่อนข้าง "เป็นรูปธรรม" และให้ความรู้สึกที่ดีขึ้นสำหรับวิธีการที่เครื่องระดับต่ำอาจทำงานได้ดีกว่าภาษาใหม่ ๆ หลายภาษา (เช่นเป็นการแนะนำ HLL ที่ใกล้ชิดกับผู้ประกอบ)

คำพูดของ Dijkstra นั้นมาจากช่วงเวลาที่นักวิชาการพยายามที่จะผลักดันเทรนด์ไปสู่โปรแกรมที่มีโครงสร้างที่ถูกต้องซึ่งได้รับการออกแบบมาโดยเฉพาะ แต่นั่นไม่ใช่วิธีการที่อุตสาหกรรมส่วนใหญ่ดำเนินไป แต่โปรแกรมเมอร์เว็บยุค 2.0 จำนวนมากพยายามที่จะสร้างต้นแบบอย่างรวดเร็วซึ่งสเปคที่แน่นหนาทางคณิตศาสตร์ส่วนใหญ่ที่จะพิสูจน์ว่าไม่มีการเข้ารหัสเพราะสิ่งต่าง ๆ มีการพัฒนาอย่างรวดเร็วเกินไป

ดังนั้นวิธีการเขียนโปรแกรมแบบแฮ็ก - สแลช - และ - ข้อผิดพลาดซึ่งบางครั้งการเขียนโปรแกรมในขั้นพื้นฐานกระตุ้นให้เมื่อทำความสะอาดเล็กน้อยในวิธีการเป็นพื้นฐานสำหรับการคิด RAD

ฉันจะจบด้วยการสังเกตว่ามีล่ามพื้นฐานอย่างน้อย 5 ตัวที่ใช้งานได้บนไอแพดดังนั้นจึงทำให้ภาษาใช้งานได้แม้บนอุปกรณ์ใหม่ล่าสุด


1

ฉันคิดว่าเนื่องจากคำกล่าวนี้มีอายุ 35 ปีมีหลายสิ่งที่เกี่ยวข้องกับการขาดสิ่งที่เป็นนามธรรมที่มีอยู่ในภาษาการเขียนโปรแกรมและสิ่งที่จำเป็นสำหรับคุณที่จะต้องพัฒนาให้ดีเมื่อพูดถึงมัน

เมื่อได้รับภาษาอย่าง BASIC จะสอนคุณเล็กน้อยเกี่ยวกับวิธีการโปรแกรมในระดับต่ำสิ่งที่จำเป็นยิ่งกว่าในอดีตมากกว่าตอนนี้และจะทำให้คุณเข้าใจผิดว่าการเขียนโปรแกรมนั้นง่ายกว่าที่เป็นจริง

ฉันจำไม่ได้ว่าพยายามเรียนรู้ 'รหัสเครื่อง' ตอนอายุ 15 หลังจากผ่านไป 3 ปีของ VZ200, C64 และ Apple] [e BASIC มันเป็นสายที่หยาบคาย

อย่างไรก็ตามทุกวันนี้ถึงแม้ว่าฉันจะเป็นคนหยิ่งยโสที่สมบูรณ์เกี่ยวกับสิ่งเหล่านี้และคุณจะไม่พบว่าฉันทำงานอย่างมีความสุขในภาษาใด ๆ กับภาษาเบสิกในชื่อ (ฉันมักจะเริ่มตะโกนใส่หน้าจอวลีเช่น อีกครั้งปฏิเสธวงเล็บปีกกาที่ประมาทของฉัน) ฉันยอมรับว่ามันง่ายกว่าในการทำสิ่งต่าง ๆ ด้วยภาษาที่เป็นนามธรรมของกลไกของ CPU มากกว่าเมื่อ 35 ปีก่อน (หรือ 25 ปีก่อนในประสบการณ์ส่วนตัวและตัวอย่าง)


1

สำหรับพวกเราที่กำลังโหลดรหัสแอสเซมบลีลงในคอมพิวเตอร์ Speer Micro-LINC ทีละครั้งผ่านชุดสวิตช์ 8 ตัวที่แผงด้านหน้าและจัดเก็บไว้ในเทป PDP ย้อนกลับไปในปี 1972 ฉันจะยืนยันอย่างชัดเจนว่า Dijkstra นั้นช่างน่าประหลาดใจ ทุกสิ่งที่เขาดูถูกเกี่ยวกับ Basic นั้นเป็นจริงในโพดำเกี่ยวกับแอสเซมเบลอร์ที่ฉันทำงานด้วยและยังมีตัวฉันเองและคนอื่น ๆ อีกหลายพันคนที่หายจากการสัมผัสกับแอสเซมเบลอร์


1

ฉันเริ่มเขียนโปรแกรมด้วย GW-BASIC ในต้นปี 1990 จิตใจของฉันไม่ถูกทำให้เสียหาย ฉันย้ายไปยังภาษาที่ดีกว่าเช่น Pascal, C, C ++, Java, C # และ Python

วันนี้ฉันไม่สามารถเขียนโปรแกรมพื้นฐานได้ ฉันลืมวิธีคิดในแง่ของหมายเลขบรรทัด ไม่ใช่ว่าเป็นปัญหา

แต่ประสบการณ์พื้นฐานของฉันช่วยฉันได้มากในหลักสูตรสถาปัตยกรรมคอมพิวเตอร์ที่วิทยาลัยซึ่งฉันต้องเรียนรู้ภาษาแอสเซมบลี (MIPS) สภาการควบคุมการไหลของภาษาเป็นจำนวนมากเช่นขั้นพื้นฐานของ: กระโดด = GOTOสาขา = IF... GOTO, jal(โทร) ... jr(เกษียณ) = ...GOSUB RETURNนั่นคือทั้งหมดที่คุณต้องการ!

เป็นการดีที่จะเรียนรู้ภาษาการเขียนโปรแกรมที่ทำงานบนคอมพิวเตอร์ที่เต็มไปด้วยทรัพยากรที่โปรแกรมเมอร์สามเณรสามารถทำสิ่งที่ผิดและโปรแกรมทำงานได้โดยไม่มีปัญหาใหญ่? หรือมันจะดีกว่าที่จะเรียนรู้ว่าโปรแกรมเมอร์ไม่สามารถไปผิดหรือเปล่า?

ฉันจะบอกว่าเป็นการดีกว่าที่จะเรียนรู้บนคอมพิวเตอร์ที่มีทรัพยากร จำกัด ไม่ใช่เพราะ "โปรแกรมเมอร์ไม่สามารถผิดพลาดได้" แต่เนื่องจากเกณฑ์ "ความเย็น" ต่ำกว่ามาก โปรแกรมเมอร์มือใหม่อาจไม่รู้วิธีที่จะสร้างเกมยิงคนแรกที่ยอดเยี่ยมสำหรับพีซีของพวกเขา แต่พวกเขาสามารถเขียนเกม Pac Man ที่ยอดเยี่ยมสำหรับ TI-89 ของพวกเขาและใช้ฮาร์ดแวร์ให้เต็มศักยภาพ และนั่นคือความรู้สึกของพลัง

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