ประสบการณ์เดียวกันเลย แต่ด้วยความคึกคะนองในวัยหนุ่ม ผมประกาศว่า BASIC เป็นภาษาที่ไร้ประโยชน์ แล้วก็ใช้เวลาไม่นานก่อนย้ายไป MS Visual C++ 6
C++ กับ MFC ก็แย่กว่าด้วยเหตุผลอีกแบบหนึ่ง แต่หลังจากนั้นผมก็ได้พบ Linux และที่เหลือก็คงเดากันได้
ถึงอย่างนั้นก็ยังไม่เจออะไรที่ทรงพลังเท่า RAD ของ VB6 ทุกวันนี้ทำ UI กันเหมือนมนุษย์ถ้ำสุด ๆ คือจัดวางด้วยมือหรือใช้ XML
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ถ้า Figma สามารถใส่ได้ถึง พฤติกรรมของ UI ก็คงหน้าตาประมาณนี้พอดี เว็บให้ความรู้สึกเหมือนถอยหลังมาหลายปีแล้ว เราเสีย Flash ไปและย้ายมา HTML5 แต่กระแสที่คนสร้างสรรค์เคยทำอะไรไว้มากมายก็ค่อย ๆ จางหายไป
เมื่อก่อน IDE อย่าง Visual Basic, Delphi, Borland JBuilder มีตัวสร้างแอปพลิเคชันแบบง่าย ๆ และ Eclipse เองก็เคยมีตัวสร้าง Swing UI แบบง่าย ๆ อยู่ช่วงหนึ่ง ฝั่งเว็บก็มี Dreamweaver, FrontPage และอื่น ๆ
ไม่ได้หมายความว่าเครื่องมือพวกนั้นสมบูรณ์แบบ แต่ก็ไม่มีตัวทดแทนที่ดีจริง ๆ ออกมา และตอนนี้กลายเป็นว่าต้อง “ออกแบบ” ใน Figma แล้วทีมพัฒนาก็แทบจะต้องนำไปทำใหม่ตั้งแต่ต้น ซึ่งดูเป็นการ สิ้นเปลืองอย่างลึกซึ้ง
Figma เองก็แสดงให้เห็นเรื่องนี้ สำหรับต้นแบบที่ทำเร็ว ๆ การวางองค์ประกอบแบบตำแหน่งตายตัวและใช้ symbol นั้นมีประโยชน์ แต่ทันทีที่นำ autolayout เข้ามา ก็แทบจะเจอปัญหาเดียวกับที่พบใน CSS flexbox และ grid เพียงแต่ต่างกันตรงที่ต้องเจอในระบบที่แย่กว่ามาก ไม่มีการจัดการเวอร์ชัน ไม่มีเครื่องมือรีแฟกเตอร์ และไม่มี ChatGPT
ในเชิงความรู้สึกส่วนตัว การจัดการโครงสร้าง XML โดยตรงยังง่ายกว่ามาก เมื่อเทียบกับการดับเบิลคลิกผ่านกลุ่ม 15 ชั้น หรือ cmd-click เจาะเข้าไปเพื่อเลือกคอมโพเนนต์หนึ่ง แล้วค่อยแก้คุณสมบัติแบบข้อความ ผมเลยคิดว่า Apple และ Android ถึงได้ผลัก interface builder ไปทาง DSL
VB6 เป็น IDE ที่ดีที่สุดอย่างขาดลอยสำหรับคนที่ต้องทำของให้ได้ผลลัพธ์เดี๋ยวนั้น
ตอนที่ติดตั้งระบบ CCTV บนพีซีช่วงกลางทศวรรษ 2000 ผมสาธิตพีซีให้ลูกค้าร้านอาหารดู แล้วเปิดบริการเพลง Pandora ให้ดู เขาถามว่าฟังผ่านลำโพงของร้านได้ไหม ผมเลยใช้สาย 3.5mm-RCA-BNC ที่มีในรถต่อเข้ากับแอมป์ให้ ลูกค้าชอบมาก บอกว่าเหมือนได้ก้าวเข้าสู่ศตวรรษที่ 21
จากนั้นเขาถามว่าพอจะหยุดเพลงชั่วคราวแล้วประกาศแจ้งลูกค้าได้ไหม ผมจึงสร้างชอร์ตคัตตัวปรับเสียง sndvol32.exe ไว้บนเดสก์ท็อป พอเขาบอกว่าอยากให้พนักงานทำจากเคาน์เตอร์ ไม่ใช่ในออฟฟิศ ผมก็บอกว่าขอคลิปหนีบกระดาษหนึ่งอันกับเวลา 30 นาที
ผมหยิบสาย Cat 5 แบบสายฝอยกับเมาส์ IBM สีเบจแบบ 2 ปุ่มเก่า ๆ จากในรถ เดินสายจากออฟฟิศไปถึงเคาน์เตอร์ บัดกรีคู่สายหนึ่งของ Cat 5 เข้ากับสวิตช์คลิกซ้าย แล้วขันสกรูยิปซัมเข้ากับตัวเมาส์ ติดมันบนผนังเหมือนหัวกวางสตัฟฟ์ ส่วนฝั่งออฟฟิศ ผมไม่ได้พก DB-25 มาด้วย เลยบัดกรีขาเข้ากับคลิปหนีบกระดาษ เพื่อให้เสียบเข้ากับพอร์ต LPT ของพีซีได้อย่างมั่นคง
หลังจากนั้นก็ง่ายแล้ว ค้นหา “VB6 Volume Mixer” ดาวน์โหลดมา เปิด checkbox ปิดเสียง stereo mix แล้วคัดลอกบรรทัดเดียวใส่ timer ให้ตรวจทุก 100ms ว่าขา LPT ถูกชอร์ตหรือไม่ ถ้าชอร์ต ก็ให้ปิดเสียง stereo mix และเปิดไมค์จากสถานะปิดเสียง
ทั้งหมดทำหน้างานโดยไม่ได้วางแผนล่วงหน้า และลูกค้ารายนั้นยังเป็นลูกค้าอยู่จนถึงทุกวันนี้ สำหรับ คนทำงานสารพัดประโยชน์ แล้ว มันเป็นเครื่องมือที่ยอดเยี่ยมจริง ๆ
ทำออกมาได้ดีจริง ๆ และถ้ามี Delphi ตามมาอีก ผมคงกลับมาพอใจกับสภาพของสภาพแวดล้อมการพัฒนาได้อีกครั้ง
ซอร์สโค้ด: https://github.com/BAndysc/AvaloniaVisualBasic6
ขอเสริมเพราะคอมเมนต์ที่แนะนำ Lazarus ถูกลบไปแล้ว ผมรู้จัก Lazarus และใช้อยู่กับโปรเจกต์เก่า ๆ เพียงแต่ผมอยากได้เวอร์ชันสมัยใหม่ที่ทำงานในเบราว์เซอร์ได้ด้วย และดูเหมือนว่า .NET จะเหมาะกับงานแบบนั้นในกรณีนี้ บางทีอาจอิงกับ https://pascalabc.net/en/ ก็ได้
ไม่ได้ล้อเล่นนะ การเขียนโปรแกรมด้วย Pascal/Lazarus และ Common Lisp ทุกวันนี้ยังสนุกกว่าเครื่องมือยุคใหม่ ๆ อยู่ดี ไม่มีความกังวล มีแต่ ความสนุกและผลิตภาพ
ตัวอย่างเช่น การย้ายจาก MVC ไป MVC ง่ายกว่าการย้ายจาก webforms ไป blazor/avaloniaui/dotvvm มาก
ช่วงปลายยุค 90 และต้นยุค 2000 ผมทำงานด้วย VB5/6 ได้มีผลิตภาพสูงมาก ทำแอปยูทิลิตีจำนวนมากเพื่อแก้ปัญหาเล็ก ๆ นานา และมันทำได้ง่ายมากเหมือนการประกอบชิ้นส่วน ผมพยายามย้ายไป vb.net แต่ความรู้สึกไม่เหมือนเดิม
ผมใช้มันวันละหลายชั่วโมง ลากคอมโพเนนต์ไม่กี่ตัวลงบนฟอร์ม ใส่ลอจิกนิดหน่อย แล้วแอปเดสก์ท็อปเล็ก ๆ ก็รันได้ในไม่กี่นาที
ตั้งแต่ปี 2021 การสนับสนุนดีขึ้นมาก จนน่าเสียดายที่ต้องเขียนด้วย C# แต่ถ้าพูดตามตรง เพราะความอ่านง่ายของโค้ด ผมว่า VB.NET เหนือกว่า
นึกถึงหนึ่งในเครื่องมือเขียนโปรแกรมที่ดีที่สุดในยุคนั้น ตอนที่เปลี่ยนจาก BASIC ไปเป็น Visual Basic นั้นน่าตื่นตะลึงมาก ทุกวันนี้ก็ยังคิดถึงเครื่องมือแบบนั้นอยู่ และเครื่องมือที่เรียกกันว่าโนโค้ดหรือโลว์โค้ดในปัจจุบันทำงานกันคนละแนวเลย ผมยังคิดว่า โลว์โค้ด ที่ดีที่สุดคือแนวทางที่ VB เคยทำไว้
ดูเหมือนว่านักพัฒนาเฟรมเวิร์กส่วนใหญ่จะลืมว่า ผลิตภาพ เป็นตัวชี้วัดหลัก อาจเป็นคำพูดที่ไม่ค่อยยุติธรรมนัก แต่การขาดเครื่องมือแบบภาพนั้นน่าผิดหวัง
ว้าว VB6 คือเครื่องมือที่พาผมเข้าสู่การพัฒนาซอฟต์แวร์ตอนเด็ก ๆ เลย เป็นการย้อนอดีตที่วันนี้ต้องการพอดี
C++ กับ MFC ก็แย่กว่าด้วยเหตุผลอีกแบบหนึ่ง แต่หลังจากนั้นผมก็ได้พบ Linux และที่เหลือก็คงเดากันได้
ถึงอย่างนั้นก็ยังไม่เจออะไรที่ทรงพลังเท่า RAD ของ VB6 ทุกวันนี้ทำ UI กันเหมือนมนุษย์ถ้ำสุด ๆ คือจัดวางด้วยมือหรือใช้ XML
ยังจำได้ว่าทำอะไรอย่างการใช้ Win32 API ทำ DMA กับภาพเพื่อสร้างการตรวจจับการชนกันระดับพิกเซลระหว่างสไปรต์ เป็นช่วงเวลาที่สนุกดี
ลองดู GitHub ของผู้เขียนแล้ว ดูเหมือนเขาจะดูแลไลบรารี UI สำหรับ ลุคแอนด์ฟีลแบบ Win9x คลาสสิก ด้วย: https://github.com/BAndysc/Classic.Avalonia
ชอบมากจนอยากใช้มันลองทำแอปเอง
คิดถึงยุคนั้น ทุก IDE มี ดีบักเกอร์แบบทีละบรรทัด
แอป Angular/React ทุกวันนี้ผ่านไปหลายปีก็ยังไม่มีแบบนั้น และไวยากรณ์ก็ยังชวนสับสนอยู่
ดีเลย มี รายงานบั๊ก เล็กน้อย
เพิ่มปุ่มแล้วดับเบิลคลิกเพื่อเปิดหน้าต่างโค้ด ใส่โค้ดง่าย ๆ อย่าง
MsgBox "Hello"จากนั้นกด x มุมขวาบนของหน้าต่างโค้ดโค้ดไม่ถูกบันทึก ต้อง “Save” หรือ “Run” โปรเจกต์เพื่ออัปเดตโค้ด IDE ของ VB สมัยก่อนจำทุกอย่างที่พิมพ์ไว้ แต่จุดนี้ต่างออกไป
จำได้ว่าในยุค 90 มีบริษัทเล็ก ๆ จำนวนมากทำงานด้วย VB และ Access มันเพิ่มพลังให้คนที่ไม่ใช่โปรแกรมเมอร์ได้มากจริง ๆ
อยากให้เว็บมีอะไรคล้าย ๆ กันบ้าง โซลูชันโลว์โค้ดบางตัวดูภายนอกคล้ายกัน แต่สิ่งที่ทำให้ VB ต่างออกไปคือมันสามารถเติบโตเป็นแอปเต็มรูปแบบได้โดยไม่ต้องเปลี่ยนแนวทางกลางคัน ทุกครั้งที่เห็นความซับซ้อนของการพัฒนาและ deploy แอป CRUD บนเว็บทุกวันนี้ก็ยังทึ่งเสมอ
ข้อแรก ไม่ต้องติดตั้งและไม่ต้องยุ่งกับการแพ็กเกจจิงของระบบปฏิบัติการ เพราะการแพ็กเกจจิงของทุกระบบปฏิบัติการห่วยแตกหมด
ข้อสอง SaaS คือ DRM ถ้าโฮสต์ซอฟต์แวร์ไว้บนคลาวด์ ก็ละเมิดลิขสิทธิ์ไม่ได้ และเก็บค่าสมัครสมาชิกรายเดือนได้ง่าย
ถ้าจะนับข้อสาม ก็คือทำฟีเจอร์สำหรับการทำงานร่วมกันได้ง่ายขึ้น แต่เรื่องนี้ใช้ได้กับซอฟต์แวร์บางประเภทเท่านั้น