បញ្ហា (The Problem)៖ កម្មវិធីវិទ្យាសាស្ត្រជាច្រើនមានភាពស្មុគស្មាញក្នុងការប្រើប្រាស់សម្រាប់អ្នកមិនមែនជាអ្នកជំនាញ ដោយសារកង្វះចំណុចប្រទាក់ក្រាហ្វិក (GUI) ដែលងាយស្រួល និងតម្រូវការក្នុងការគ្រប់គ្រងការគណនានៅលើប្រព័ន្ធចែកចាយ (Grid)។
វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះបានវាយតម្លៃប្រៀបធៀបបច្ចេកវិទ្យាអភិវឌ្ឍន៍ GUI ផ្សេងៗ និងបង្ហាញពីការអនុវត្តជាក់ស្តែងលើកម្មវិធីវិទ្យាសាស្ត្រមួយចំនួន។
លទ្ធផលសំខាន់ៗ (The Verdict)៖
| វិធីសាស្ត្រ (Method) | គុណសម្បត្តិ (Pros) | គុណវិបត្តិ (Cons) | លទ្ធផលគន្លឹះ (Key Result) |
|---|---|---|---|
| Java (Swing/AWT) ការប្រើប្រាស់ភាសា Java ជាមួយបណ្ណាល័យ Swing ឬ AWT |
មានភាពឯករាជ្យអាចដំណើរការលើគ្រប់ប្រព័ន្ធប្រតិបត្តិការ (Platform Independent) និងមានភាពរឹងមាំសម្រាប់ការងារលើបណ្តាញ (Web-based)។ | ការតភ្ជាប់ជាមួយកូដ Fortran ចាស់ៗមានភាពស្មុគស្មាញ (ត្រូវប្រើ Sockets ឬ JNI) និងប្រើប្រាស់ធនធានមេម៉ូរីច្រើនជាងភាសា Scripting។ | ត្រូវបានប្រើប្រាស់ដោយជោគជ័យសម្រាប់គម្រោង POLCOMS និង DL_POLY ប៉ុន្តែជួបបញ្ហាជាមួយ RMI។ |
| Python (Tkinter/Pmw) ការប្រើប្រាស់ភាសា Python ជាមួយ Tkinter និង Python Mega Widgets |
ការអភិវឌ្ឍលឿនរហ័ស (កូដខ្លីជាង Java ២-១០ ដង) និងងាយស្រួលក្នុងការធ្វើសមាហរណកម្មជាមួយបណ្ណាល័យ C/C++។ | ជាភាសាប្រភេទ Interpreted ដែលអាចមានល្បឿនយឺតជាងភាសា Compiled បន្តិចក្នុងការអនុវត្តកិច្ចការមួយចំនួន។ | មានប្រសិទ្ធភាពខ្ពស់ក្នុងការពង្រីកមុខងារកម្មវិធី PyMOL និងអនុញ្ញាតឱ្យបង្កើត GUI បែប Object-Oriented បានងាយស្រួល។ |
| Perl/Tk ការប្រើប្រាស់ភាសា Perl ជាមួយឧបករណ៍ Tk |
ល្អបំផុតសម្រាប់ការបង្កើតគំរូសាកល្បងយ៉ាងរហ័ស (Rapid Prototyping) និងការចាត់ចែងឯកសារអត្ថបទ (Text handling)។ | ឯកសារយោងមានកម្រិត (នៅពេលសិក្សានេះត្រូវបានធ្វើឡើង) និងរចនាសម្ព័ន្ធកូដអាចពិបាកថែទាំជាង Python។ | អាចបង្កើតចំណុចប្រទាក់មូលដ្ឋាន (Basic GUI) សម្រាប់កូដ CCP2 PFARM ដោយចំណាយពេលតិចជាង ២០ ម៉ោង។ |
ការចំណាយលើធនធាន (Resource Cost)៖ ការអភិវឌ្ឍតម្រូវឱ្យមានការប្រើប្រាស់ឧបករណ៍បើកចំហ (Open Source) ភាគច្រើន ប៉ុន្តែទាមទារចំណេះដឹងផ្នែកបច្ចេកទេសខ្ពស់ក្នុងការតភ្ជាប់ប្រព័ន្ធ។
ការសិក្សានេះធ្វើឡើងនៅមន្ទីរពិសោធន៍ Daresbury (ចក្រភពអង់គ្លេស) ដោយផ្តោតលើកម្មវិធីវិទ្យាសាស្ត្រកម្រិតខ្ពស់ (High Performance Computing) និងសហគមន៍ស្រាវជ្រាវរូបវិទ្យា/គីមីវិទ្យា។ បច្ចេកវិទ្យាខ្លះ (ដូចជា CGI, CORBA) អាចចាត់ទុកថាហួសសម័យសម្រាប់ស្តង់ដារបច្ចុប្បន្ន ប៉ុន្តែគោលការណ៍នៅតែមានសុពលភាព។
វិធីសាស្ត្រនេះមានប្រយោជន៍ខ្លាំងសម្រាប់កម្ពុជាក្នុងការធ្វើទំនើបកម្មកម្មវិធីវិទ្យាសាស្ត្រ ឬវិស្វកម្មដែលមានស្រាប់ឱ្យងាយស្រួលប្រើប្រាស់។
ការប្រើប្រាស់ភាសា Scripting ដូចជា Python ដើម្បីបង្កើត GUI គឺជាដំណោះស្រាយដែលមានតម្លៃទាប និងប្រសិទ្ធភាពខ្ពស់សម្រាប់ការចាប់ផ្តើមស្រាវជ្រាវនៅកម្ពុជា។
ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖
| ពាក្យបច្ចេកទេស | ការពន្យល់ជាខេមរភាសា (Khmer Explanation) | និយមន័យសាមញ្ញ (Simple Definition) |
|---|---|---|
| Grid Computing | គឺជាបច្ចេកវិទ្យាដែលតភ្ជាប់កុំព្យូទ័រ និងធនធានគណនាជាច្រើនពីទីតាំងផ្សេងៗគ្នា ឱ្យធ្វើការរួមគ្នាជាប្រព័ន្ធតែមួយ ដើម្បីដោះស្រាយបញ្ហាវិទ្យាសាស្ត្រខ្នាតធំ។ | ដូចជាការយកកម្លាំងរបស់មនុស្សជាច្រើននាក់មកបូកបញ្ចូលគ្នា ដើម្បីលើកវត្ថុដ៏ធ្ងន់មួយដែលមនុស្សម្នាក់ឯងមិនអាចលើករួច។ |
| Computational Steering | គឺជាសមត្ថភាពរបស់អ្នកប្រើប្រាស់ក្នុងការផ្លាស់ប្តូរប៉ារ៉ាម៉ែត្រ ឬទិន្នន័យនៃការពិសោធន៍ ខណៈពេលដែលកម្មវិធីកំពុងដំណើរការគណនា ដើម្បីមើលលទ្ធផលផ្លាស់ប្តូរភ្លាមៗដោយមិនបាច់ចាប់ផ្តើមសារដើម។ | ដូចជាការបង្វិលចង្កូតរថយន្តដើម្បីប្តូរទិសដៅពេលកំពុងបើកបរ ជាជាងការកំណត់ទិសដៅតែម្តងហើយរង់ចាំដល់គោលដៅ។ |
| Middleware | គឺជាកម្មវិធីកម្រិតកណ្តាល (ដូចជា Globus ឬ CORBA) ដែលជួយសម្របសម្រួលឱ្យកម្មវិធីពីរផ្សេងគ្នា ឬប្រព័ន្ធកុំព្យូទ័រផ្សេងគ្នាអាចផ្លាស់ប្តូរទិន្នន័យ និងធ្វើការជាមួយគ្នាបាន។ | ប្រៀបបាននឹងអ្នកបកប្រែភាសា ដែលជួយឱ្យមនុស្សពីរនាក់ដែលនិយាយភាសាផ្សេងគ្នាអាចយល់គ្នាបាន។ |
| Wrapper | គឺជាបច្ចេកទេសសរសេរកូដដើម្បី "រុំ" ឬគ្របពីលើកូដចាស់ (Legacy Code ដូចជា Fortran) ដើម្បីឱ្យភាសាសរសេរកូដថ្មី (ដូចជា Java ឬ Python) អាចហៅប្រើប្រាស់មុខងាររបស់កូដចាស់នោះបានដោយងាយ។ | ដូចជាការដាក់ស្រោមទូរស័ព្ទថ្មីលើទូរស័ព្ទចាស់ ដើម្បីឱ្យវាអាចប្រើជាមួយឧបករណ៍សាកថ្មជំនាន់ថ្មីបាន។ |
| Byte-code | គឺជាទម្រង់កូដកម្រិតកណ្តាលរបស់ភាសា Java ដែលមិនពឹងផ្អែកលើប្រភេទកុំព្យូទ័រ (Platform Independent) អនុញ្ញាតឱ្យកម្មវិធី Java អាចដំណើរការបានលើគ្រប់ម៉ាស៊ីនដែលមានដំឡើង Java Virtual Machine។ | ដូចជាអក្សរភ្លេង (Note) ដែលមិនថាអ្នកលេងហ្គីតា ឬព្យាណូទេ គឺសុទ្ធតែអាចអាននិងលេងបានដូចគ្នា។ |
| Rapid Application Development (RAD) | គឺជាវិធីសាស្ត្រអភិវឌ្ឍកម្មវិធីដែលផ្តោតលើការបង្កើតគំរូសាកល្បង (Prototyping) យ៉ាងឆាប់រហ័ស ដោយប្រើភាសា Scripting (ដូចជា Python/Perl) ជាជាងការចំណាយពេលយូរក្នុងការរៀបចំរចនាសម្ព័ន្ធធំដុំ។ | ដូចជាការសង់ផ្ទះគំរូពីក្រដាសកាតុងដើម្បីមើលរូបរាងជាមុន មុននឹងសង់ផ្ទះមែនទែនពីឥដ្ឋនិងស៊ីម៉ងត៍។ |
អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖
ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖