ฉันสร้างระบบโดยเริ่มจากแอปเดสก์ท็อปเมื่อ 15 ปีก่อนเมื่อ Java ยังอยู่ในช่วงเริ่มต้นและยังไม่พร้อมที่จะใช้ในการสร้างแอพประเภทนี้ ฉันรู้ว่าฉันต้องมีคอร์ใน C ++ และออกแบบมันตั้งแต่เริ่มต้นจนถึงข้ามแพลตฟอร์มรวมถึงการใช้งานขนาดต่าง ๆ (เช่น int32 แทนที่จะเป็น int หรือยาว) ดังนั้นมันจึงสามารถทำงานบน Mac, Windows และ UNIX (pre-Linux วัน)
ตอนที่ฉันพยายามมองหาสภาพแวดล้อม UI ข้ามแพลตฟอร์มที่ดีมีอยู่สองสามอย่างรวมถึง XVT ฉันผ่านการฝึกอบรมสำหรับ XVT และเมื่อฉันเริ่มสร้างแอปจริงฉันรู้ว่าฉันจะไม่สามารถสร้างรูปลักษณ์และความรู้สึกที่สะอาดเป็นธรรมชาติบนแพลตฟอร์ม (เริ่มต้นด้วย Mac) ดังนั้นฉันจึงเลิกใช้ความคิดนั้นและสร้าง UI ดั้งเดิมของ Mac (PowerPlant) ที่ด้านบนของคอร์แบบพกพา
สองสามปีต่อมาเราย้ายเข้าสู่ Windows (UI ใน MFC) มันเร็วกว่าการสร้าง UI ในครั้งที่สองเราทำการบำรุงรักษา Mac และ Windows UI ควบคู่กันในช่วงเวลาสั้น ๆ จากนั้นไปที่ Windows แกนกลางได้ย้ายไปสู่รสชาติต่าง ๆ ของ UNIX และ Linux เพื่อให้เราเรียกใช้การคำนวณบนเซิร์ฟเวอร์ แกนทำพอร์ตได้ดีโดยมีการปรับเปลี่ยนบางอย่างเมื่อเราเตรียมให้พร้อม 64- บิต
ตอนนี้ฉันกลับมาใช้ Mac และฉันหวังว่าเราจะได้กลับมาที่ Mac แต่ขนาดและความซับซ้อนของแอพทำให้เป็นตัวเลือกที่ยาก มันยังคงสมเหตุสมผลสำหรับแอพนี้มากที่จะเป็นแอพเดสก์ท็อป - มันเหมือนกับสภาพแวดล้อม CAD แต่แทนที่จะสร้าง UI อีกครั้งในภาษา C / C ++ เฉพาะแพลตฟอร์ม (และดำเนินการต่อเพื่อรักษา UI ที่ใช้ MFC) ฉันมีแนวโน้มที่จะเขียนสแต็กทั้งหมดใหม่ใน Java เพื่อให้สามารถทำงานบนหลายแพลตฟอร์มได้
อาจมีเหตุผลในการเรียกใช้คอร์ที่ไม่ใช่ Java พูด C ++ เหมือนที่เราทำ แต่ฉันจะต้องการทดสอบการทำงานก่อนเพื่อดูว่าจำเป็นจริงๆหรือไม่ และฉันจะพิจารณา UI ของฉันอย่างรอบคอบเพื่อดูว่าฉันสามารถสร้างมันเป็นแอปพลิเคชันเว็บเชื่อมต่อกับแกนหลักผ่านบริการเว็บหรือไม่ ถ้าฉันต้องการชิ้นส่วนใน C หรือ C ++ มันสามารถเขียนได้ภายใต้เลเยอร์ของ Java หรือไม่? หรือเป็นบริการเว็บ?
การพิจารณาอื่น - แอปของคุณจะอยู่ได้นานเท่าไหร่? มันจะซับซ้อนแค่ไหน? หากคุณมีแนวคิดใด ๆ เกี่ยวกับเรื่องนี้ให้พิจารณาอายุการใช้งานที่ยาวนานของไลบรารี UI ใด ๆ ที่คุณใช้และความสามารถของคุณในการมีคนคอยดูแลพวกเขาตลอดเวลา นี่อาจเป็นเรื่องยากที่จะพิจารณาในตอนนี้ แต่คุ้มค่ากับความคิด
- อเล็กซ์