bootstrapping คืออะไร


636

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


8
ตามที่วิกิพีเดียมีสี่การใช้คำว่า "ความร่วมมือ" กับเรื่องที่เกี่ยวกับคอมพิวเตอร์ - en.wikipedia.org/wiki/Bootstrapping#Computing
โทมัส Owens

1
ฉันเพิ่งอัพเดท HeDinges กับสิ่งนี้ ฉันกำลังมองหาคำอธิบายเกี่ยวกับรูปแบบของการบูตอเล็กซ์ที่กำลังมองหาอยู่
Thomas Owens

ในการพัฒนาซอฟต์แวร์หมายถึงการพัฒนาสภาพแวดล้อมการเขียนโปรแกรมที่ซับซ้อนและรวดเร็วขึ้น
โชคดี

ในการพัฒนาซอฟต์แวร์. NET ความเข้าใจของฉันคือมันหมายถึงการตั้งค่าสภาพแวดล้อมที่แอปพลิเคชันจะทำงานเช่นบริการใด ๆ ที่จำเป็นต้องลงทะเบียนหรือโหลด
นีโอ

คำตอบ:


318

"Bootstrapping" มาจากคำว่า "ดึงตัวเองขึ้นมาจาก bootstraps ของคุณเอง" ที่ที่คุณจะได้รับจากวิกิพีเดีย

ในการคำนวณ bootstrap loader เป็นรหัสชิ้นแรกที่ทำงานเมื่อเครื่องเริ่มทำงานและมีหน้าที่โหลดส่วนที่เหลือของระบบปฏิบัติการ ในคอมพิวเตอร์สมัยใหม่มันถูกเก็บไว้ใน ROM แต่ฉันจำกระบวนการบูตบน PDP-11 ได้ซึ่งคุณจะเจาะบิตผ่านสวิตช์ที่แผงด้านหน้าเพื่อโหลดเซ็กเมนต์ดิสก์เฉพาะลงในหน่วยความจำแล้วเรียกใช้ ไม่จำเป็นต้องพูดว่า bootstrap loader นั้นค่อนข้างเล็ก

"Bootstrapping" ยังใช้เป็นคำศัพท์สำหรับการสร้างระบบโดยใช้ตัวมันเอง - หรือมากกว่ารุ่นก่อนอย่างถูกต้อง ตัวอย่างเช่นANTLRเวอร์ชัน 3 ถูกเขียนโดยใช้ parser ที่พัฒนาใน ANTLR เวอร์ชัน 2


8
ว้าวฉันเกือบลืมเกี่ยวกับสวิตช์ที่แผงด้านหน้าบน PDPs ขอบคุณสำหรับความทรงจำ!!
Jeff Hornby

7
ถูกต้องฉันถ้าฉันผิด แม้ว่าคำตอบนี้จะอธิบายรายละเอียดทางเทคนิคว่าการบูตสแตรปจะเป็นอะไร แต่ก็ไม่เคยตอบคำถามเดิมภายในบริบทของคำถาม
jayscript

5
@jayscript - คุณจะเลือกตอบคำถามนี้อย่างไร มันเป็นการแสดงออกที่สำนวนและสำนวนมักเป็นที่เข้าใจกันดีโดยกลุ่มสังคมที่ใช้พวกมันและไม่สามารถเข้าใจได้นอก ฉันพยายามตอบโดยยกตัวอย่างซึ่งฉันเชื่อว่าเป็นหนึ่งในไม่กี่วิธีในการพยายามแปลสำนวน

3
@kdgregory ฉันไม่สามารถตอบคำถามนี้ได้เมื่อฉันมาที่นี่เพื่อค้นหาคำตอบ ฉันคาดการณ์ว่าคำว่า bootstrapping นั้นเป็นคำอุปมาสำหรับแนวคิดทางเทคนิคที่แตกต่างกันหลายประการที่เกี่ยวข้องอย่างหลวม ๆ ซึ่งอาจเป็นสาเหตุของความสับสน
jayscript

2
PDP 11! ฉันไม่ได้ตระหนักว่าเรามีคนแก่ที่นี่ : P
John Red

255

ตัวอย่างของการเริ่มระบบในบางเว็บเฟรมเวิร์ก คุณเรียกใช้ index.php (bootstrapper) แล้วโหลดตัวช่วยเฟรมเวิร์กแบบจำลองการกำหนดค่าจากนั้นโหลดตัวควบคุมและส่งผ่านการควบคุมไป

อย่างที่คุณเห็นมันเป็นไฟล์ง่ายๆที่เริ่มต้นกระบวนการขนาดใหญ่


50
ในแง่ของการพัฒนาเว็บไซต์ (ซึ่งเป็นบริบทของคำถามเดิม) ฉันคิดว่านี่เป็นคำตอบที่ดีที่สุด
cartbeforehorse

ดูเหมือนว่าจะเกี่ยวข้องกับ Laravel แต่ Laravel ยังไม่อยู่ที่นั่นในปี 2009
LppEdd

@Wajdan Ali No นี่ไม่ควรเป็นคำตอบที่ยอมรับได้ นี่คือมุมมองด้วยกล้องจุลทรรศน์ของการใช้คำใหม่ bootstrapping ซึ่งบางคนอาจโต้แย้งว่าจริง ๆ แล้วเป็นการใช้ในทางที่ผิดของเทอมก่อนหน้านี้มาก "ถึง bootstrap" หมายถึงการดึงตัวคุณเองจาก bootstrap ของคุณนั่นก็คือการใช้พลังของบางสิ่งบางอย่างเพื่อยกระดับตัวเอง เป็นที่มาของคำว่า "เพื่อบูตคอมพิวเตอร์ของคุณ" การใช้งานป๊อปปัจจุบันในการพัฒนาเว็บไม่ได้เป็นเพียงการใช้คำ (หรือดั้งเดิม) เท่านั้น คำตอบอื่น ๆ อีกมากมายตอบคำถามนี้อย่างเหมาะสม
Kallaste

3
@ Kallaste ดี แต่นี่คือคำตอบที่ฉันค้นหาและตามบริบทของคำถามเดิม ("การพัฒนาแอปพลิเคชัน") ดูเหมือนว่าจะเป็นคำตอบที่เหมาะสมที่สุดตามที่ได้กล่าวไปแล้ว
ภายใน

@ aaron.bynum ไม่คำตอบที่ได้รับนั้นใช้กับกรอบการพัฒนาเว็บและไม่ใช่การพัฒนาแอปพลิเคชันแน่นอน คำตอบคือทำให้เข้าใจผิดและมีข้อบกพร่องเพราะมันขึ้นอยู่กับความเข้าใจผิดที่จัดขึ้นโดยทั่วไปของ bootstrapping จริงคืออะไรและมาจากไหน มันเป็นเพียงการกระจายข้อมูลที่ผิด ถ้านั่นคือสิ่งที่คุณมาที่นี่เพื่อตามหาแล้วก็ดี แต่ในฐานะที่เป็นข้อมูลที่ถูกต้องทั้งหมด ดังนั้นความคิดเห็นของฉัน
Kallaste

51

เห็นในบทความวิกิพีเดียร่วมมือ

มีส่วนเชื่อมโยงและอธิบายว่ามันหมายถึงในคอมพิวเตอร์ มันมีประโยชน์สี่อย่างที่ต่างกันในสนาม

ต่อไปนี้เป็นคำพูดบางส่วน แต่สำหรับคำอธิบายเชิงลึกและความหมายเพิ่มเติมให้ดูที่ลิงก์ด้านบน

"... เป็นเทคนิคที่โปรแกรมคอมพิวเตอร์ธรรมดาเปิดใช้งานระบบที่ซับซ้อนกว่าของโปรแกรม"

"การใช้คำสั่ง bootstrapping ที่แตกต่างกันคือการใช้คอมไพเลอร์เพื่อคอมไพล์เองโดยการเขียนส่วนเล็ก ๆ ของคอมไพเลอร์ของภาษาโปรแกรมใหม่ในภาษาที่มีอยู่เพื่อรวบรวมโปรแกรมเพิ่มเติมของคอมไพเลอร์ใหม่ที่เขียนในภาษาใหม่"


6
คุณช่วยกรุณาอ้างอิงหรือถอดความเพื่อให้ผู้อ่านไม่ต้องไปสำรวจหลาย ๆ เว็บไซต์เพื่อรับคำตอบของพวกเขา?
Kurt W. Leucht

5
"อุตสาหกรรมซอฟต์แวร์: ธุรกิจที่ไม่เหมือนใครของการขายสินค้าที่ต่ำกว่ามาตรฐานอย่างถูกกฎหมายและการเรียกเก็บเงินสำหรับการอัพเกรด"
Stein Åsmul

ผมกำลังมองหาคำตอบร่วมมือในคอมไพเลอร์ สิ่งนี้มีประโยชน์
Siraj Alam

48

คำว่า "bootstrapping" มักจะนำไปใช้กับสถานการณ์ที่ระบบขึ้นอยู่กับตัวเองที่จะเริ่มต้นการเรียงลำดับของปัญหาไก่และไข่

ตัวอย่างเช่น

  • คุณรวบรวมคอมไพเลอร์ C ที่เขียนใน C อย่างไร
  • คุณจะเริ่มกระบวนการเริ่มต้นระบบปฏิบัติการได้อย่างไรหากคุณยังไม่ได้ใช้ระบบปฏิบัติการ
  • คุณจะเริ่มต้นระบบการกระจาย (peer-to-peer) ที่ลูกค้าพึ่งพาเพื่อนที่รู้จักกันในปัจจุบันของพวกเขาเพื่อหาข้อมูลเกี่ยวกับเพื่อนใหม่ในระบบได้อย่างไร

ในกรณีดังกล่าวการบูตสแตรปปิ้งหมายถึงวิธีการทำลายการพึ่งพาอาศัยกันแบบวงกลมโดยปกติแล้วด้วยความช่วยเหลือของหน่วยงานภายนอกเช่น

  • คุณสามารถใช้คอมไพเลอร์ C อื่นเพื่อคอมไพล์ (bootstrap) คอมไพเลอร์ของคุณเองแล้วคุณสามารถใช้คอมไพล์เลอร์ใหม่ได้
  • คุณใช้โค้ดแยกต่างหากที่ตั้งค่ากระบวนการเริ่มต้นโดยไม่ขึ้นอยู่กับฟังก์ชั่นใด ๆ ของระบบปฏิบัติการ
  • คุณใช้รายการรหัสแบบกำหนดค่าเริ่มต้นของเพียร์เริ่มต้นหรือ URL ติดตามแบบกำหนดค่าตายตัวที่จัดทำรายการเพียร์

เป็นต้น


4
นี่เป็นหัวใจของคำถาม ที่อีกสองคำตอบพลาดอย่างสมบูรณ์
Arturo Hernandez

1
ฉันรู้สึกว่าคำอธิบายนี้เกี่ยวข้องกับการพัฒนาซอฟต์แวร์โดยทั่วไปมากที่สุด นำคอนเซ็ปต์บ้านมาให้ฉันจริงๆ
Vance Palacio

23

ในบริบทของการพัฒนาแอพพลิเคชั่น "bootstrapping" มักจะเกิดขึ้นเมื่อพูดถึงซอฟต์แวร์แบบแยกส่วนและ / หรือซอฟต์แวร์ที่อัพเดตได้อัตโนมัติ

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


4
ฉันไม่เคยได้ยินคำว่า "bootstrapping" ที่ใช้ในบริบทเฉพาะนั้น
Bombe

ใช้กันทั่วไปเกี่ยวกับแอปพลิเคชัน php (ตัวอย่างเช่นการใช้ Composer เพื่อทำสิ่งนี้)
AturSams

15

อเล็กซ์มันเป็นสิ่งที่คอมพิวเตอร์ของคุณทำเมื่อบูทขึ้น ('การบูท' คอมพิวเตอร์มาจากคำว่า bootstrapping)

เริ่มแรกโปรแกรมขนาดเล็กใน BIOS ของคุณจะทำงาน มีรหัสเครื่องเพียงพอที่จะโหลดและเรียกใช้โปรแกรมที่มีขนาดใหญ่และซับซ้อนมากขึ้น

โปรแกรมที่สองนั้นน่าจะเป็น NTLDR (ใน Windows) หรือ LILO (ใน Linux) ซึ่งจะทำงานและสามารถโหลดจากนั้นเรียกใช้ส่วนที่เหลือของระบบปฏิบัติการ


2
แม้ว่าฉันจะอ่านคำตอบทั้งหมด (ซึ่งขยายออกไปได้ดีและฉันลงคะแนนไปบ้าง) การเปรียบเทียบ "การบูต" หรือ "bootstrapping" อันเรียบง่ายนี้ทำให้ฉันมีแรงจูงใจที่ดีที่สุดในการอ่านจุดเชื่อมต่อทั้งหมด Srsly มันเหมือนกับการอธิบายหัวข้อที่ซับซ้อนกับเด็กอายุ 5 ปีและพวกเขาเข้าใจ ขอบคุณ
Chris22

14

เพื่อความสมบูรณ์มันเป็นวิธีที่ค่อนข้างสำคัญ (และค่อนข้างใหม่) ในสถิติที่ใช้การสุ่มใหม่ / การจำลองเพื่อสรุปคุณสมบัติของประชากรจากตัวอย่าง มันมีของตัวเองที่มีความยาวของบทความวิกิพีเดียร่วมมือ (สถิติ)


1
ค่อนข้างใหม่ มันเป็นส่วนหนึ่งของการศึกษาสถิติของฉันอย่างน้อย 15 ปีที่แล้ว
Toon Krijthe

6
ซึ่งเป็นเหตุผลที่ฉันพูดว่า 'ค่อนข้าง': บทความเริ่มต้นของ Efron มาจากต้นปี 1980 ซึ่งต่างจากการพูดจุดเริ่มต้นของวรรณกรรมที่แข็งแกร่งในช่วงทศวรรษที่ 1960
Dirk Eddelbuettel

4

การบูตสายรัดความหมายของพจนานุกรมคือการเริ่มต้นด้วยทรัพยากรขั้นต่ำ ในบริบทของระบบปฏิบัติการระบบปฏิบัติการจะสามารถโหลดได้อย่างรวดเร็วเมื่อ Power On Self Test (POST) พิจารณาว่าปลอดภัยที่จะปลุกซีพียู รหัสสายรัดบูตจะถูกเรียกใช้จาก BIOS BIOS เป็น ROM ขนาดเล็ก โดยทั่วไปแล้วมันเป็นคำสั่งกระโดดไปยังชุดคำสั่งซึ่งจะโหลดระบบปฏิบัติการไปยัง RAM ปลายทางของการกระโดดคือบูตเซกเตอร์ในฮาร์ดดิสก์ เมื่อโปรแกรม bios ตรวจสอบว่าเป็นบูตเซกเตอร์ที่ถูกต้องซึ่งมีที่อยู่เริ่มต้นของระบบปฏิบัติการที่เก็บไว้นั่นคือมันเป็น MBR ที่ถูกต้อง (Master Boot Record) หรือไม่ หากเป็น MBR ที่ถูกต้องระบบจะคัดลอก OS ไปยังหน่วยความจำ (RAM) จากที่นั่นในระบบปฏิบัติการดูแลการจัดการหน่วยความจำและกระบวนการ


2

IMHO ไม่มีคำอธิบายที่ดีไปกว่าความจริงเกี่ยวกับคอมไพเลอร์ตัวแรกเขียนอย่างไร

ทุกวันนี้การโหลดระบบปฏิบัติการเป็นกระบวนการทั่วไปที่เรียกว่า Bootstrapping


ลิงค์ที่คุณให้ในคำตอบมีประโยชน์จริง ๆ
Siraj Alam

2

Bootstrapping ยังมีความหมายอื่นในบริบทของ การเรียนรู้การเสริมแรงที่อาจเป็นประโยชน์ที่จะรู้สำหรับนักพัฒนานอกเหนือจากการใช้ในการพัฒนาซอฟต์แวร์ (คำตอบส่วนใหญ่ที่นี่เช่นโดยkdgregory ) และการใช้ในสถิติตามที่หารือโดยDirk EddelbuettelEddelbuettel

จากSutton และ Barto :

Widrow, Gupta และ Maitra (1973) ได้ดัดแปลงอัลกอริธึม Least-Mean-Square (LMS) ของ Widrow and Hoff (1960) เพื่อสร้างกฎการเรียนรู้การเสริมแรงที่สามารถเรียนรู้จากสัญญาณความสำเร็จและความล้มเหลวแทนที่จะเป็นตัวอย่างการฝึกอบรม พวกเขาเรียกการเรียนรู้รูปแบบนี้ว่า“การเลือกบูตสแตรปแบบเลือกได้ ” และอธิบายว่าเป็น“ การเรียนรู้กับนักวิจารณ์” แทน“ การเรียนรู้กับครู” พวกเขาวิเคราะห์กฎนี้และแสดงให้เห็นว่าจะเรียนรู้การเล่นแบล็คแจ็คได้อย่างไร นี่คือการจู่โจมอย่างโดดเดี่ยวในการเรียนรู้เสริมโดย Widrow ซึ่งการมีส่วนร่วมในการเรียนรู้แบบมีผู้สอนมีอิทธิพลมากกว่า

หนังสืออธิบายอัลกอริธึมการเสริมแรงแบบต่าง ๆ ซึ่งค่าเป้าหมายขึ้นอยู่กับการประมาณการก่อนหน้านี้ว่าเป็นวิธีการบูทสแตรป:

ในที่สุดเราจะบันทึกหนึ่งคุณสมบัติพิเศษสุดท้ายของวิธี DP [Dynamic Programming] ทั้งหมดของพวกเขาปรับปรุงการประมาณการของค่าของรัฐขึ้นอยู่กับการประมาณการของค่าของผู้สืบทอด นั่นคือพวกเขาปรับปรุงการประมาณการบนพื้นฐานของการประมาณการอื่น ๆ เราเรียกแนวคิดนี้ว่าbootstrappingร่วมมือวิธีการเรียนรู้การเสริมแรงจำนวนมากดำเนินการบูตสแตรปแม้จะเป็นวิธีที่ไม่จำเป็นต้องเป็น DP ก็ตามโมเดลที่สมบูรณ์และถูกต้องของสภาพแวดล้อม

โปรดทราบว่าสิ่งนี้แตกต่างจากการรวม bootstrap และการระเบิดของข้อมูลที่ระบุไว้ในหน้าวิกิพีเดียในการบูตสแตรป


1

ในแง่ของมันเกี่ยวกับการใช้ Twitter Bootstrap ที่เป็นที่นิยมฉันรู้สึกเหมือน bootstrapping ประเภทนี้เป็นการกระทำของการรวมส่วนประกอบ modular เข้ากับเว็บแอปพลิเคชันโดยไม่ต้องใช้เว็บแอปพลิเคชันที่ต้องรับทราบส่วนประกอบโมดูลาร์ .

ผู้พัฒนาสามารถรวมสำเนาเริ่มต้นของชุดรูปแบบ CSS Twitter Bootstrap ได้อย่างราบรื่นโดยเพียงแค่โหลด (อ้างอิง) ลงในเว็บแอปพลิเคชัน Vuola! จากนั้นคุณอาจต้องแทนที่การเปลี่ยนแปลงเหล่านี้บางส่วน แต่คุณสามารถทำได้ในลักษณะที่ทรัพยากร / ส่วนประกอบนั้นไม่ถูกแตะต้องและสามารถนำกลับมาใช้ใหม่ได้อย่างสมบูรณ์

แนวคิดเดียวกันนี้คือวิธีที่ Web Devs ใช้ jQuery APIs และอื่น ๆ แต่ Devs นั้นไม่ได้แสดงความเป็น bootstrapping ต่อ se มันช่วยเพิ่มความยืดหยุ่นและสามารถนำกลับมาใช้ใหม่ได้ในขณะเดียวกันก็ช่วยให้สามารถแยกส่วนประกอบ / ทรัพยากรต่าง ๆ ของแอพได้อย่างอิสระไม่ว่าจะอยู่บนเซิร์ฟเวอร์เดียวกันหรืออาจเป็น CDN

หมายเหตุ: ในการคำนวณ bootstrapping เกี่ยวข้องกับ MBR และใน UNIX นั้นต้องการ bootloader พิเศษหรือตัวจัดการซึ่งเป็นโปรแกรมขนาดเล็กใน ROM ที่โหลดระบบปฏิบัติการลงใน RAM หากคุณคิดเกี่ยวกับมันแนวคิดเดียวกันจะเกิดขึ้นในการดำเนินการของ bootstrap loader การตรวจสอบ MBR และโหลดระบบปฏิบัติการตามตารางนี้ซึ่งเกิดขึ้นโดยไม่มีระบบปฏิบัติการที่มีความคิดใด ๆ ที่เกิดขึ้น


0

ฉันอยู่ในรุ่นที่พลิกสวิตช์เพื่อเข้าสู่โปรแกรมการบูต ในช่วงต้นทศวรรษ 1980 ฉันทำงานกับไมโครคอมพิวเตอร์ชื่อ Micro-78 พัฒนาโดย Electronics Corporation of India Ltd (ECIL) มันเป็นโคลนของ Altair 8800 ฉันจำได้ชัดว่าเกิดอะไรขึ้นเมื่อเข้าสู่โปรแกรมบูตขนาดเล็กโดยใช้สวิตช์สลับและดำเนินการโดยกดปุ่ม โปรแกรมอ่านโปรแกรมบู๊ตตัวที่สองที่อยู่ในแทร็กแรกของฟลอปปีดิสก์และเขียนทับตัวมันเองในลักษณะที่โปรแกรมบูทตัวที่สองเริ่มทำงานเพื่อโหลดระบบปฏิบัติการดิสก์ ฉันคิดว่าคำว่า "bootstrap" หมายถึงกระบวนการนี้ของโปรแกรมบูตแรกที่อ่านและเขียนทับโปรแกรมบู๊ตตัวที่สองในตัวเองในลักษณะ "ดึงตัวเองขึ้นมา" ด้วยฟังก์ชั่นเพิ่มเติมของโปรแกรมบู๊ตตัวที่สอง


-3

ในฐานะผู้เริ่มต้นที่อ่อนน้อมถ่อมตนในโลกแห่งการเขียนโปรแกรมและอ่านคำตอบทั้งหมดที่นี่หลังจากเห็นคำนี้ใช้วิธีที่แตกต่างกันเล็กน้อยในสถานที่ต่าง ๆ ฉันพบการอ่านหน้า Wikipedia บน Bootstrapping (duh! ฉันไม่คิดว่า ในตอนแรก) มีข้อมูลมากที่จะเข้าใจความแตกต่างในการใช้คำนี้ เป็นไปได้ไหมที่ ...... ในโอกาสที่หายากมาก ...... วิกิพีเดียอาจมีคำอธิบายที่ดีกว่าบางคำกว่า .... (ทำซ้ำ) พวกเขาจะนำคะแนนตัวแทนมาสู่ Wikipedia หรือไม่?

สำหรับฉันดูเหมือนความหมายทั้งหมดที่เกี่ยวข้องกับ: เริ่มต้นด้วยสิ่งที่ง่ายที่สุดเท่าที่จะเป็นไปได้ทำสิ่งที่ซับซ้อนกว่าเล็กน้อยกับสิ่งที่ 2 และตอนนี้คุณสามารถใช้งาน Thing2 เพื่อทำงานบางอย่างได้อย่างมีประสิทธิภาพและรวดเร็วกว่าที่คุณสามารถทำได้ สร้างสรรค์ด้วย Thing1 จากนั้นทำซ้ำจาก Thing2 ถึง Thing 3 ad infinitum ...

ฉันเห็นว่ามันเชื่อมโยงอย่างใกล้ชิดกับทั้งวิวัฒนาการทางชีวภาพและ 'เลเยอร์แห่งสิ่งที่เป็นนามธรรม' (มือใหม่อย่างที่ฉันเห็นอะแฮมวิกิพีเดียไอ) - วิวัฒนาการจากคอมพิวเตอร์ในปี 1940 ด้วยสวิตช์รหัสเครื่องจักรชุดประกอบ C, Python, AIs คำแนะนำที่ซับซ้อนทุกประเภทที่จะชอบ "ทำอาหารเย็น% 4 ^% เป็นค่าเริ่มต้นของฉัน & ^ $% ข้อกำหนดและทำความสะอาดพื้นคุณ% $ £" @: ~ "ในภาษาสแลงสแลงภาษาอังกฤษหรือภาษาอเมซอนโดยไม่มีข้อยกเว้น '(สำหรับมือใหม่อีกครั้ง ... คุณเดาได้เลย) - พลาดลิงก์มากมายที่นั่นเนื่องจากความไม่รู้ง่าย ๆ

จากนั้นในความหมายซอฟต์แวร์เฉพาะบางอย่าง: Meaning1: Thing1 ถูกใช้เพื่อโหลดรุ่นล่าสุดของ Thing2 (เนื่องจากหลักสูตร Thing2 จะใหญ่กว่า Thing1 เช่นเดียวกับ Thing3 จะใหญ่กว่า Thing2)

Meaning2: Thing1 เป็นภาษาระดับต่ำกว่า (ใกล้กับ 1001011100 .... 011001 กว่าการพิมพ์ ("Hello,", user.name)) ใช้ในการเขียนภาษา Thing2 ที่สูงกว่าเล็กน้อยจากนั้น Thing2 นี้เล็กน้อยคือ ใช้ในการขยาย Thing2 จากระดับคำศัพท์ของทารกไปสู่ระดับคำศัพท์สำหรับผู้ใหญ่ (Thing2 เริ่มที่จะประมวลผลหรือใช้คำศัพท์ทางเทคนิคที่ถูกต้อง 'รวบรวม' โดยรุ่นทารกของตัวเอง (มันเป็นเด็กฉลาด!) ในขณะที่รุ่นทารกของ Thing2 แน่นอนว่าตัวเองสามารถรวบรวมได้โดย Thing1 เท่านั้นเพราะมันไม่สามารถมีอยู่ได้ก่อนที่จะมีอยู่จริงใช่มั้ย!) จากนั้นเวอร์ชั่นย่อยของ Thing2 จะรวบรวมคอมไพล์ Surly Teenager รุ่น Thing2 ซึ่งเป็นจุดที่โปรแกรมชุมชนตัดสินใจว่า ระยะซอฟต์แวร์และคำอุปมา!) มีมูลค่าการใช้เวลาพอแก้ไขเป็นที่ยอมรับในระยะยาวหรือละทิ้งพวกเขาไปที่ (ไม่แน่ใจว่าจะใช้การเปรียบเทียบที่นี่)

ถ้าใช่ Thing2 มี 'Bootstrapped' ตัวเอง (อาจเป็นสองสามครั้ง) ตั้งแต่เด็กจนถึงวัยผู้ใหญ่: "เด็กคนนี้เป็นพ่อของชายคนนั้น" (เวิร์ดสเวิร์ ธ แนะนำไม่ลองค้นหาคำพูดหรือผู้แต่งบนกองล้น) .

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