HyperCard Simulator
(hcsimulator.com)- HyperCard Simulator คือซิมูเลเตอร์บนเว็บที่สามารถนำเข้าและลองรันสแตก HyperCard แบบคลาสสิกบนเว็บสมัยใหม่ได้
- สแตกทำงานคล้าย ชุดการ์ด ที่มีลำดับ สามารถเพิ่มหรือลบการ์ดได้ และยังแชร์ออนไลน์ผ่านบัญชีผู้ใช้ได้ด้วย
- ในการ์ดสามารถวาง ปุ่มและฟิลด์ ได้ และองค์ประกอบที่สร้างไว้บนพื้นหลังสามารถนำไปใช้ซ้ำกับหลายการ์ด โดยยังคงเก็บข้อความแยกตามแต่ละการ์ดได้
- การแก้ไขทำได้โดยตรงบนการ์ด และรองรับการวาดแบบง่ายด้วยดินสอ ถังสี รวมถึงลวดลายขาวดำและโปร่งใส
- ใช้งานได้แม้ไม่ต้องมีสคริปต์ แต่สามารถใช้ message box และ Script Editor เพื่อจัดการคำสั่ง xTalk และตัวจัดการข้อความอย่าง
mouseUpได้
สแตก HyperCard ที่รันบนเว็บ
- HyperCard Simulator ช่วยให้นำเข้าสแตก HyperCard แบบคลาสสิกและรันในเบราว์เซอร์ได้
- ผู้สร้างกล่าวขออภัยต่อผู้สร้าง HyperCard และบอกว่าสร้างสิ่งนี้ขึ้นมาในเวลาว่างเพื่อดูว่า HyperCard จะทำงานอย่างไรบนเว็บสมัยใหม่
- มีลิงก์ทรัพยากรที่เกี่ยวข้อง เช่น hypercard.org, Merveilles HyperJam, Internet Archive
- มีหัวข้อสำหรับสำรวจสแตกเพิ่มเติม ได้แก่
More stacks,A Few More Stacks,The "B–Roll",Collected Stacks,Lots More Stacks,The HyperCard Pantechnicon
โมเดลการแก้ไขที่มีการ์ดและพื้นหลังเป็นศูนย์กลาง
- สแตก HyperCard คล้ายกับ สำรับการ์ด ที่เปิดดูไปตามลำดับ และผู้ใช้สามารถเพิ่มหรือลบการ์ดในสแตกได้
- HyperCard เดิมจะบันทึกสแตกอัตโนมัติ และในซิมูเลเตอร์นี้สามารถสร้างบัญชีและแชร์ออนไลน์ได้
- การ์ดแต่ละใบสามารถมี ปุ่มและฟิลด์ ได้
- เลือกเครื่องมือที่เหมาะสม จากนั้นแก้ไขด้วยการลากและปรับขนาด
- ปุ่มและฟิลด์สามารถสร้างไว้บนการ์ดหรือบนพื้นหลังได้
- เปิดคุณสมบัติได้ด้วยการดับเบิลคลิกหรือกดค้าง
- ส่วน พื้นหลัง จะถูกนำไปใช้ซ้ำกับหลายการ์ด
- การ์ดแต่ละใบสามารถมีส่วนประกอบและข้อความของตัวเองได้
- การ์ดแต่ละใบมีพื้นหลังได้หนึ่งชุด และพื้นหลังเป็นเลเยอร์ที่อยู่หลังกลุ่มการ์ด
- ในการ์ดที่ใช้พื้นหลังเดียวกัน สามารถมีข้อความเฉพาะการ์ดอยู่ในฟิลด์พื้นหลังได้
การวาดและการเขียนสคริปต์
- การวาดทำโดยตรงบนการ์ด
- ใช้ดินสอหรือถังสีได้
- ใช้สีดำด้วย Shift, สีขาวด้วย Option, และแบบโปร่งใสด้วยแพตเทิร์น Option+Shift
- การเขียนสคริปต์ไม่ใช่สิ่งจำเป็น แต่สามารถเรียนรู้ได้จากการดูสคริปต์ของซิมูเลเตอร์เอง
- message box ใช้ประมวลผลนิพจน์และคำสั่ง xTalk
- Script Editor เปิดได้จากกล่องโต้ตอบ Information หรือเข้าถึงได้ด้วย Command-Option-click, touch-hold, หรือดับเบิลคลิกพร้อมกด Shift
- สคริปต์สามารถรับ ข้อความ ที่ผู้ใช้ส่งมา แล้วทำงานอย่าง
beepหรือgo next cardได้ - ตัวอย่างตัวจัดการข้อความคือ
on mouseUpที่สั่งbeepแล้วย้ายไปการ์ดถัดไป ก่อนจบด้วยend mouseUp
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
รู้สึกเสียดายนิดหน่อยที่ HyperCard มาก่อนยุคของผม ถ้ารู้จักมันตอนเด็ก ๆ ผมคงไม่ทำอย่างอื่นเลย พอลองเล่นผ่านอีมูเลเตอร์ก็ค่อนข้างสนุกมาก
ผมชอบความพยายามยุคแรก ๆ ที่ทำให้ผู้คนเข้าถึงการเขียนโปรแกรมได้ง่ายขึ้น แม้จะเบากว่ามาก แต่ตอนที่ได้ใช้ครั้งแรก เครื่องมือทำแอนิเมชัน Flash ก็ให้ความรู้สึกคล้ายกัน และเข้าถึงได้ทันทีมากกว่าการพยายามเอา OpenGL หรือ SDL ไปผูกกับ C++ แถมการสร้างอะไรสักอย่างก็สนุกแบบบริสุทธิ์จริง ๆ หลังจาก Flash แล้ว ผมยังไม่เจอเครื่องมือไหนที่สนุกเท่านั้นในตอนพัฒนาเลย GameMaker ก็ยอดเยี่ยมและยังสนุกอยู่ แต่ก็ไม่ได้ลื่นไหลหรือให้ความรู้สึกว่า “ทำอะไรก็ได้” เท่า Flash อาจเป็นแค่เพราะผมแก่ขึ้นก็ได้
Flash หายไปเร็วกว่าที่ตัวแทนของมันจะเกิดขึ้นเสียอีก และตอนที่ Flash หายไป ก็ชัดเจนมากว่า ถ้า HTML5 ในตอนนั้นคืออนาคตและเป็นตัวแทนที่ใช้แทนได้ทันที เราก็ซวยแล้ว ถ้าครั้งหน้าจะหาเครื่องมือสำหรับสร้างอะไรสักอย่าง Flutter ดูเหมือนจะสานต่อคำมั่นของ Flash ที่ว่าใช้โค้ดเบสเดียวแล้วรันได้ทุกที่ ส่วนเทคโนโลยีอื่นที่ผมคาดหวังคือ WebAssembly และ Rust ในระดับหนึ่ง
วิธีที่เคอร์เซอร์เปลี่ยนเป็นไอคอนมือเมื่อเอาเมาส์ไปวางบนลิงก์ ได้แรงบันดาลใจโดยตรงมาจาก HyperCard ในหลาย ๆ แง่ เบราว์เซอร์ถือได้ว่าเป็นวิวัฒนาการของสแต็ก HyperCard
ตอนเด็ก ๆ HyperCard กับ SuperPaint คือเลโก้ของผม พ่อผมเป็นนักวิทยาศาสตร์ที่ต้องใช้ Macintosh เพื่อรันการคำนวณ ผมเลยเป็นหนึ่งในเด็กแทบไม่กี่คนในตอนนั้นที่ครอบครัวมีคอมพิวเตอร์
ผมสร้างเครื่องมือเล็ก ๆ ด้วย HyperCard ไว้เยอะมาก และผูกพันกับวิธีสนุก ๆ ที่มันสร้างลวดลายขึ้นมาจากแอปบนจอขาวดำและสีเดียว
คอมพิวเตอร์เครื่องแรกของผม Apple II GS ก็ซื้อได้ในราคาลดมากสำหรับครูผ่านโปรแกรม “Apple for a Teacher” มันเป็นเหมือนบรรพบุรุษของ Mac ที่มีจอสี ผมชนะการประกวดเขียนเชิงสร้างสรรค์ของนิตยสาร 3-2-1 Contact ได้เกมที่อยากได้ 5 เกมเป็นรางวัล แล้วก็กล่อมพ่อแม่ได้ว่าต้องมีคอมพิวเตอร์ไว้เล่นเกมพวกนั้นในช่วงเวลาที่เหลือ
หมายเหตุ: ถ้ากดกล่องขยายหน้าต่างที่มุมขวาบน จะซูมออกไปเป็น HyperCard Editor
ผมยังพยายามหาวิธีเริ่มจากเด็กเปล่าอยู่ และฝีมือก็ขึ้นสนิมไปแน่ ๆ แล้ว ยังสงสัยด้วยว่าการทำเว็บไซต์ทั้งเว็บบน HyperCard ด้วยสิ่งนี้จะเป็นไปได้แค่ไหน
ล็อกอินได้ด้วย
https://hcsimulator.com/mmphosis/Stack
จากมุมมองของคนที่ยังเด็กเกินกว่าจะทันยุค HyperCard เลยสงสัยว่าเสน่ห์หลักของมันคืออะไรกันแน่ เป็นเรื่องการเข้าถึงได้ง่ายของเทคโนโลยี หรือแค่เป็นผลิตภัณฑ์ที่ทำออกมาได้ดีจริง ๆ?
มันเป็นวิธีผูกโค้ดกับวิดเจ็ตแบบมองเห็นได้ชัดเจน จึงรู้สึกได้ชัดว่าเมื่อคลิกปุ่มหรือพิมพ์ในช่องข้อความ โค้ดชิ้นนี้จะทำให้เกิดพฤติกรรมนั้นขึ้น นอกจากนี้สภาพแวดล้อมของ HyperCard ยังมีความคงอยู่ของอ็อบเจ็กต์ด้วย จึงมีประโยชน์เพราะไม่ต้องเขียนโค้ดจัดการไฟล์หรือฟีเจอร์ “บันทึกสถานะ” เอง แน่นอนว่าด้วย semantics แบบนั้น ถ้าทำสแตกพัง ก็อาจหาสาเหตุและแก้ได้ยาก แต่โดยรวมแล้วผมมองว่าความคงอยู่ของอ็อบเจ็กต์แบบโปร่งใสเป็นข้อดีใหญ่
และถ้าคุณมี Mac มันก็อยู่ตรงนั้นพร้อมใช้จริง ๆ Apple เคยขายเป็นผลิตภัณฑ์แยกในราคา $49.95 อยู่พักหนึ่ง แล้วจากนั้นก็เริ่มแถมมากับ Mac ใหม่ทุกเครื่องราว 10 ปี ถ้าเป็น Mac ที่มี System 6, 7, 8, 9 ก็มี HyperCard และในช่วงนั้น Apple IIGS ก็มีรวมมาให้ด้วย แม้จะมีข้อจำกัด แต่ผมจำได้ว่าเคยเห็นแอปที่ไม่ใช่เรื่องเล็ก ๆ ถูกทำด้วย HyperCard อยู่พอสมควร
เหนือสิ่งอื่นใด HyperCard ทำให้คอมพิวติ้งส่วนบุคคลกลับมาเป็นเรื่องส่วนบุคคลอีกครั้ง ในแบบที่เคยหายไปหลังยุคที่คอมพิวเตอร์บูตเข้า BASIC interpreter ได้ทันที และนั่นเป็นเรื่องที่ดีมาก ถ้าคำอธิบายนี้ยังไม่พอ ลองดูข้อความคัดลอกนี้ได้: http://www.cvxmelody.net/HyperCard%20IIGS%201.1%20-%20The%20...
มันเป็นภาษาคล้าย Smalltalk ที่ทำได้ดี พร้อมองค์ประกอบ RAD ที่แม้จะมีข้อจำกัด แต่ลดความซับซ้อนของการสร้าง GUI ลงมาเหลือประมาณการใช้ PowerPoint ถ้าให้เด็กที่ “หัวไว” ใช้ แค่อธิบายนิดหน่อยก็อย่างน้อยสร้าง interactive fiction ได้แล้ว สแตก HyperCard ส่วนใหญ่ถือได้ว่าเป็นชุดสไลด์ PowerPoint แบบไม่เป็นเส้นตรง เป็นการ์ดที่มีปุ่มเรียก goto เพื่อกระโดดไปยังการ์ดอื่น
ผมเป็นเด็กในยุค 90 และมีความทรงจำเลือน ๆ เกี่ยวกับเกมและโปรแกรมเล็ก ๆ หลายตัวที่รันบน Mac ของครอบครัว Mac เครื่องแรกน่าจะเป็น Mac SE ตอนนี้ย้อนคิดดู สิ่งเหล่านั้นน่าจะเป็นโปรแกรม HyperCard
มีอันหนึ่งเหมือนหนังสือภาพอินเทอร์แอคทีฟเกี่ยวกับแมวดำ จำชื่อไม่ได้ แต่รู้ว่ามีอยู่ใน Macintosh Garden และคิดว่า 99% น่าจะเป็น HyperCard พ่อให้โปรแกรมชื่อ Soroban มา ซึ่งโดยพื้นฐานคือญี่ปุ่นลูกคิด และน่าจะเป็นการให้โจทย์เลขคณิตง่าย ๆ แล้วให้ใช้ลูกคิดคำนวณหาคำตอบ พ่ออาจเขียนเองก็ได้ แต่ไม่แน่ใจ น่าเสียดายที่ตอนนี้จำวิธีใช้ลูกคิดไม่ได้แล้ว สงสัยจริง ๆ ว่าโปรแกรม HyperCard ที่ไม่ค่อยเป็นที่รู้จักซึ่งผมเจอในยุคนั้นมีอะไรบ้าง
น่าอ้างอิงไว้: Carson Gross สร้าง _hyperscript[0] ซึ่งเป็นภาษาที่ได้แรงบันดาลใจจาก HyperCard และภาษานี้ถูกตีความในเบราว์เซอร์
Carson Gross คนเดียวกันยังสร้าง htmx[1] ด้วย ทั้งสองเป็นคนละโปรเจกต์ แต่เข้ากันได้ดี
[0]https://hyperscript.org/
[1]https://htmx.org/
ให้ตายสิ ในนั้นมีสแตกที่ผมทำไว้เมื่อ 30 ปีก่อนด้วย! น่าเสียดายที่มันทำงานไม่ถูกต้องในซิมูเลเตอร์
มีคำถามหนึ่งที่คาใจมาตลอด เครื่องมือสมัยใหม่อะไรที่ทำสิ่งเดียวกับที่ HyperCard ทำในตอนนั้นได้ในปัจจุบัน? จะเป็น HTML/JavaScript หรือเปล่า?
จุดแข็งจริง ๆ ของ HyperCard คือการทำให้ผู้ใช้ทั่วไป หรือคนที่ไม่ใช่โปรแกรมเมอร์ สามารถสร้างแอปของตัวเอง—ในศัพท์ของ HyperCard เรียกว่า “สแต็ก”—ได้ผ่านการชี้และคลิก รวมถึงภาษาสคริปต์ที่คล้ายภาษาอังกฤษอย่าง HyperTalk
เพราะโดยรวมแล้วเราเลิกยึดแนวคิดที่ว่าผู้ใช้ควรสร้างแอปของตัวเองได้ไปแล้ว จึงไม่มีอะนาล็อกสมัยใหม่ที่ได้รับความนิยมเทียบเท่า HyperCard แต่ก็ยังมีคนพยายามอยู่ เช่น LiveCode เป็นผลิตภัณฑ์เชิงพาณิชย์ที่ได้รับแรงบันดาลใจโดยตรงจาก HyperCard ส่วน CardStock เป็นโคลน HyperCard แบบโอเพนซอร์สที่ใช้ Python เป็นภาษาสคริปต์หลักแทนภาษาที่คล้ายภาษาอังกฤษ
https://livecode.com/
https://github.com/benjie-git/CardStock
ตอน HyperCard ออกมา มันถูกแถมมากับ Mac ทุกเครื่องและใช้ฟรี อีกทั้งบน Mac ก็ไม่มีอะไรใกล้เคียงกัน ทางเลือกอื่นคือวางวิดเจ็ต UI ด้วยโค้ดโดยไม่มี GUI builder หรือในเวลาต่อมาก็ต้องจ่ายเงินก้อนใหญ่ให้ IDE สำหรับมืออาชีพอย่าง CodeWarrior ถ้าผู้ใช้มือใหม่ที่ไม่มีงบอยากได้ GUI builder สำหรับ Mac ก็ต้องใช้ HyperCard ไม่อย่างนั้นก็ไม่มีอะไรให้ใช้ โครงสร้างแบบนี้สร้างชุมชนคนรัก HyperCard ขึ้นมา
อีกอย่าง ในตอนนั้น Mac มีความละเอียดหน้าจอมาตรฐาน Mac ทุกเครื่องที่วางขายมีความละเอียด 512x342 พิกเซล จึงรู้ได้แน่นอนว่าการ์ดจะดูเป็นอย่างไรบน Mac เครื่องไหนก็ตาม การรองรับ GUI ที่ปรับขนาดได้เป็นหนึ่งในเรื่องยากที่สุดสำหรับ GUI builder ทุกตัว เพราะต้องแก้ปัญหาอย่างเช่นจะจัดวางปุ่มอย่างไรเมื่อหน้าจอเล็กมากเหมือนโทรศัพท์ หรือกว้างมากเหมือนมอนิเตอร์ 16:9 ทุกวันนี้ Xcode ใช้ตัวแก้ข้อจำกัด/ตัวพิสูจน์ทฤษฎีเชิงจัดระเบียบที่ซับซ้อน เพื่อให้นักพัฒนาสร้าง UI ที่ปรับขนาดได้ใน GUI และผมคิดว่ามันทำงานได้ค่อนข้างดี แต่ก็ไม่มีทางเรียนรู้ง่ายเท่า “ลากปุ่มไปวางบนหน้าจอ แล้วมันจะดูแบบนั้นเป๊ะทุกที่”
เหตุผลสุดท้ายที่ร้ายแรงจริง ๆ สำหรับเครื่องมือยุคใหม่ที่อยากเป็น HyperCard คือระยะทางจากเว็บ GUI builder ไปสู่ HTML/CSS ดิบนั้นสั้นมาก ไม่จำเป็นต้องจ่ายเงินก้อนใหญ่เพื่อเข้าถึง HTML, CSS, JavaScript ระดับมืออาชีพ แม้จะไม่ได้เรียนรู้ง่าย แต่การสอนเด็กให้เขียนเว็บเพจแบบอินเทอร์แอ็กทีฟก็ไม่ใช่ปัญหา
ดังนั้นอุปสงค์ต่อ GUI builder แบบง่ายจึงต่ำกว่ายุค HyperCard และแม้จะดึงผู้ใช้ไว้ได้ ผู้ใช้ก็มักจะ “เรียนจบ” จากผลิตภัณฑ์นั้นไปในไม่นาน อีกทั้งยังมีคู่แข่งจำนวนมหาศาล ทำให้เครื่องมือใด ๆ สร้างชุมชนที่มีแรงขับเคลื่อนจริงได้ยาก
แม้จำกัดแค่ HTML อย่างเดียว ความสนุกในการสร้างก็ยังห่างจาก HyperCard มาก
โดยพื้นฐานแล้วก็ดูคล้าย HyperCard อยู่บ้าง ให้ความรู้สึกความละเอียดต่ำ แต่ภายในก็มีสีด้วย
HyperCard เกิดขึ้นในยุคที่ผู้ใช้คอมพิวเตอร์ส่วนบุคคลยังอยู่ระหว่างเรียนรู้ว่าการใช้คอมพิวเตอร์คืออะไร ช่วงเวลานั้นเองคือจังหวะที่การเขียนโปรแกรมโดยผู้ใช้ปลายทางและระบบที่ปรับเปลี่ยนได้แบบ HyperCard สามารถเป็นผู้นำได้ OpenDoc ก็พูดได้คล้าย ๆ กันในระดับหนึ่ง แต่ก็แตกต่างกันเล็กน้อย
จากมุมมองของบริษัท HyperCard คืออะไรกันแน่? วิธีให้ผู้ใช้คอมพิวเตอร์สร้างแอปพื้นฐานของตัวเองได้ง่าย ๆ หรือ? แล้วจะทำเงินต่อไปอย่างไร? ชุมชนนักพัฒนาของคอมพิวเตอร์จะเป็นอย่างไร? ความกังวลเชิงพาณิชย์เหล่านี้ทำให้ทุกวันนี้ วิธีที่ผู้ใช้เข้าไปเกี่ยวข้องกับคอมพิวเตอร์ส่วนบุคคล และเครื่องมือที่เราใช้จัดการสภาพแวดล้อมคอมพิวเตอร์ ล้วนถูกกำหนดอย่างเข้มข้นโดยโมเดลการบริโภค และมีการแบ่งแยกอย่างชัดเจนระหว่างผู้ใช้กับโปรแกรมเมอร์
เหตุผลที่ทุกวันนี้ไม่มีสิ่งเทียบเคียง HyperCard จริง ๆ ก็เพราะคอมพิวเตอร์ส่วนบุคคลเดินไปอีกทิศทางหนึ่ง
ถ้าเทียบกับ Decker แล้วเป็นอย่างไร?
https://beyondloom.com/decker/index.html
Decker เป็นแอปสแตนด์อโลนโอเพนซอร์สที่คล้าย HyperCard ในบางแง่ แต่รายละเอียดต่างกันมาก เช่นใช้ภาษาสคริปต์เฉพาะของตัวเองที่สืบสายมาจาก APL Decker ไม่ได้ถูกออกแบบมาให้เข้ากันได้กับสแต็ก HyperCard