Modernizing FlightGear Scripting: Difference between revisions

Jump to navigation Jump to search
Line 5: Line 5:
== Background ==
== Background ==
FlightGear has built-in scripting capabilities using a custom ECMAScript-based C-like language called [[Nasal]].  
FlightGear has built-in scripting capabilities using a custom ECMAScript-based C-like language called [[Nasal]].  
FlightGear needed a built-in scripting language, and it has one. A compact, clean, elegant and fast one. In total there are at the moment more than 170.000 lines of Nasal in *.nas files and a few thousands embedded in joystick drivers, dialog description files, model animation files, keyboard.xml, mice.xml and several other files. Extension functions interface perfectly to the property tree, the event manager, the built-in XML parser etc. Nasal is very tightly integrated in fgfs and used all over the place. <ref>{{cite web
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/21772281/
  |title  =  <nowiki> Re: [Flightgear-devel] Nasal alternatives : possible, of course,
but trivial or hair pulling task ? </nowiki>
  |author =  <nowiki> Melchior FRANZ </nowiki>
  |date  =  Mar 8th, 2009
  |added  =  Mar 8th, 2009
  |script_version = 0.40
  }}</ref>


Over the last couple of years, we've seen some recurring debates in response to requests to provide support for additional scripting languages, possibly to replace [[Nasal]] scripting in its entirety sooner or later, i.e. "ditch" Nasal in favor of a more established, more mainstream, language like Python or Lua, with better tooling, support and documentation available for end-users, developers and other contributors.
Over the last couple of years, we've seen some recurring debates in response to requests to provide support for additional scripting languages, possibly to replace [[Nasal]] scripting in its entirety sooner or later, i.e. "ditch" Nasal in favor of a more established, more mainstream, language like Python or Lua, with better tooling, support and documentation available for end-users, developers and other contributors.

Navigation menu