Secara historis, pengembangan perangkat lunak dilakukan dengan mengetik teks biasa. Selama beberapa dekade sekarang, pendekatan utama pemrograman telah menjadi sekumpulan karakter berurutan yang harus membentuk struktur pada tingkat yang lebih tinggi daripada karakter ini. Pemrogram tidak hanya harus mengetikkan pintasan keyboard yang sama berulang kali, tetapi juga untuk memantau pemformatan kode yang benar, jika tidak komputer akan menolak untuk memahami apa yang tertulis di kode. Satu karakter yang terlupakan ";" dapat memberikan kesalahan kompilasi / interpretasi yang sama sekali tidak dapat dipahami. Selain itu, penggunaan representasi tekstual dari program tidak hanya menetapkan persyaratan tambahan untuk pemrograman, tetapi juga sangat membatasi kemampuan programmer untuk menulis dan menggunakan kode secara efektif.Juga, representasi tekstual dari informasi sangat memperumit analisis informasi ini secara terprogram. Mari kita lihat pendekatan alternatif untuk menulis program.
- MetaIDE. / . ( for, if, while) , . - , . , AST - Abstract syntax tree ( ). MetaIDE AST, .
. , MetaIDE : wh while, fo for .. , . , , , , . . . , IDE . , , . . , .. , - () VR. - , - .
, . , (Scratch, Blockly), (UML, ), (blueprints - Unreal, Unity). MetaIDE . .
, . , , -, .
. , . (enum) . - , . - ( ), ( ), ( " " ).
. MetaIDE ( ), - , . (, , ), , . , . . , , . , . MetaIDE . . , .
MetaIDE MVC (Model-View-Controller, --) . . , ( , , ) , - . , , .
- ( ), , . . .
MetaIDE , IDE, . . , IDE IDE - ( SDK API, ).
, DSL
fix code main table
name: varLocal node: var get local fn: varLocal switch: ndPtr
name: varMember node: var get member fn: varMember switch: ndPtr
name: varGlobal node: var get global fn: varGlobal switch: ndPtr
name: varUnkn node: var unknown fn: varUnkn switch: ndPtr
name: call node: call fn fn: call switch: ndPtr
name: inline node: inlineCall fn: inline switch: ndPtr
name: subClass node: getSubClass fn: subClass switch: ndPtr
name: subNode node: var get subnode fn: subNode switch: ndPtr
name: nextFn node: nextFn fn: nextFn switch: ndPtr
, , , enum, , .. . , , , . , - . . , . MetaIDE - DSL ( UI) , . .
IDE
MetaIDE , . MetaIDE ( ) - (mind map), (outliner), ( HSB, LCH, HSLuv, HPLuv). , MetaIDE, , , (undo/redo) . ( git), , .
, . – , , , . , , .
Delight
MetaIDE Delight. ++, , - ( ), .
MetaIDE. Lazarus, . , . , . , ( , ). , , . , . Delight, – , Delight. ( ), . IDE Delight. , - . . , , , . . , . , , Delight - . . MetaIDE Delight - , .
. , , . , , IDE .
№2
Saat ini MetaIDE dan Delight sedang dalam pengembangan dan hanya tersedia sebagai pratinjau (bahkan bukan sebagai versi alfa). Jauh dari semuanya telah diselesaikan dan tidak semua hal dibuat dengan nyaman. Skala pengembangan terlalu besar dan tidak cukup waktu untuk mengerjakan semua detail sekaligus.
kesimpulan
Saat ini, MetaIDE mewakili pendekatan yang benar-benar baru untuk menulis program, membuka cakrawala baru bagi programmer dalam mengatur seluruh alur kerja. Keduanya bekerja dengan kode secara keseluruhan dan aspek individual pemrograman sangat disederhanakan.