JADE (programming language): Difference between revisions

Remove subjective language ("very quick") and informal phrasing regarding user competence.
WP:REFerence WP:CITation parameters: update-standardize, reorder. MOS:FIRSTABBReviation define-clarify before parenthetic WP:ABBR. Avoidable WP:SLASH > comma+space. WP:LINKs: update-standardizes, needless-WP:PIPEs > WP:NOPIPEs, adds, plural > WP:SINGULAR. Small WP:COPYEDITs WP:EoS: clarify, WP:TERSE.
Line 8: Line 8:
{{Use dmy dates|date=June 2014}}
{{Use dmy dates|date=June 2014}}
[[File:JADE (programming language) logo.svg|thumb|The Jade Software Corporation logo]]
[[File:JADE (programming language) logo.svg|thumb|The Jade Software Corporation logo]]
'''JADE''' is a proprietary [[Object-oriented programming|object-oriented]] software development and deployment platform product from the New Zealand-based [[Jade Software Corporation]], first released in 1996.<ref>{{cite web|url=https://www.jadeworld.com/who-we-are/ | title=Jade – Who We Are |publisher=[[Jade Software Corporation]]}}</ref><ref>{{cite web|url=https://www.zdnet.com/article/jade-delivers-version-7-1/|title=Jade Software delivers Jade 7.1|publisher=[[ZDnet]]|accessdate=21 December 2019}}</ref> It consists of the JADE programming language, [[Integrated development environment]] and [[debugger]], integrated [[application server]] and [[object database]] management system.
'''JADE''' is a proprietary [[Object-oriented programming|object-oriented]] software development and deployment platform product from the New Zealand-based [[Jade Software Corporation]], first released in 1996.<ref>{{cite web|url=https://www.jadeworld.com/who-we-are/ |title=Jade – Who We Are |publisher=[[Jade Software Corporation]]}}</ref><ref>{{cite web|url=https://www.zdnet.com/article/jade-delivers-version-7-1/|title=Jade Software delivers Jade 7.1|publisher=[[ZDnet]]|access-date=21 December 2019}}</ref> It consists of the JADE programming language, [[integrated development environment]] and [[debugger]], integrated [[application server]] and [[object database]] management system.


Designed as an end-to-end development environment to allow systems to be coded in one language from the [[database server]] down to the [[client (computing)|clients]], it also provides [[API]]s for other languages, including [[.NET Framework]],<ref name="dotNET">{{cite web|url=https://www.scoop.co.nz/stories/BU0905/S00125.htm|title=Scoop Independent News – JADE 6.3|accessdate=21 December 2019}}</ref> [[Java (programming language)|Java]], [[C (programming language)|C]]/[[C++]] and [[Web service]]s.
Designed as an end-to-end development environment to allow systems to be coded in one language from the [[database server]] down to the [[client (computing)|clients]], it also provides application programming interfaces ([[API]]s) for other languages, including [[.NET]] framework,<ref name="dotNET">{{cite web|url=https://www.scoop.co.nz/stories/BU0905/S00125.htm|title=Scoop Independent News – JADE 6.3|access-date=21 December 2019}}</ref> [[Java (programming language)|Java]], [[C (programming language)|C]], [[C++]], and [[Web service]]s.


Although a free limited licence is available for development, using the JADE platform requires per-process fees to be paid.
The JADE platform is dual-[[Software license|licenced]]. For development, a free limited licence is available. For deployment, per-process fees are charged.


==Language==
==Language==
In syntax, JADE is very similar to [[Pascal (programming language)|Pascal]]; its syntax is based on the language [[Modula-2]], which was derived from Pascal. While it includes innovations lacking in Pascal or Modula-2, it lacks certain features of other modern object-oriented languages such as C# and Java.<ref name="obscure">{{Cite web |title=JADE: Obscure Programming Language of the Month |last=Toady |first=Tim |work=DevTopics |date=3 June 2009 |access-date=12 March 2021 |url= https://www.devtopics.com/jade-obscure-programming-language-of-the-month/ }}</ref>
In [[Syntax (programming languages)|syntax]], JADE is very similar to [[Pascal (programming language)|Pascal]]; its syntax is based on the language [[Modula-2]], which was derived from Pascal. While it includes innovations lacking in Pascal or Modula-2, it lacks certain features of other modern object-oriented languages such as [[C Sharp (programming language)|C#]] and Java.<ref name="obscure">{{Cite news |last=Toady |first=Tim |date=3 June 2009 |title=JADE: Obscure Programming Language of the Month |work=DevTopics |access-date=12 March 2021 |url= https://www.devtopics.com/jade-obscure-programming-language-of-the-month/}}</ref>


JADE is able to import and run [[LINC 4GL]] programs and was initially its core role.
JADE is able to import and run [[LINC 4GL]] programs and was initially its core role.


===Programming model===
===Programming model===
Like all of the other popular programming languages used to create database-driven software, JADE is fully [[object-oriented programming|object-oriented]]. JADE was designed to have all the most important features of object-oriented programming, but does not support the overloading of methods or operators, and until Jade 2018 lacked parameterised constructors.<ref name="obscure"/>
Like all of the other popular programming languages used to create database-driven software, JADE is fully [[Object-oriented programming|object-oriented]]. JADE was designed to have all the most important features of object-oriented programming, but does not support overloading of [[Method (computer programming)|methods]] or [[Operator (computer programming)|operators]], and until Jade 2018, lacked parameterised [[Constructor (object-oriented programming)|constructors]].<ref name="obscure"/>


Classes in JADE are kept together in [[logical schema|schemas]]. Schemas serve the same purpose as [[Java package]]s or [[namespaces]] in .NET, but have a hierarchy, and inherit classes from superschemas. This becomes useful especially when programming using the [[model–view–controller]] methodology, as model classes can be put in one schema, then the controller and view classes can be built on top of the model classes in a subschema.{{Citation needed|date=January 2026}}
Classes in JADE are kept together in [[logical schema|schemas]]. Schemas serve the same purpose as [[Java package]]s or [[namespace]]s in .NET, but have a hierarchy, and inherit classes from superschemas. This becomes useful especially when programming using the [[model–view–controller]] methodology, as model classes can be put in one schema, then the controller and view classes can be built on top of the model classes in a subschema.{{Citation needed|date=January 2026}}


===Program structure===
===Program structure===
JADE programs are developed using a user interface that allows programmers to visually create [[class (computer science)|classes]] and define their properties and methods. Instead of locating methods in large files, programmers select the method they would like to edit and only the code for that particular method is displayed. Also instead of compiling all the code of a program at once, in JADE, each method is compiled individually as soon as the method is completed, meaning code can be checked immediately.
JADE programs are developed using a user interface that allows programmers to visually create [[class (computer science)|classes]] and define their properties and methods. Instead of locating methods in large files, programmers select the method they would like to edit and only the code for that particular method is displayed. Also instead of compiling all the code of a program at once, in JADE, each method is compiled individually as soon as the method is completed, meaning code can be checked immediately.


All the code for a JADE application is stored in its object-oriented database. This allows for multi-user development as the database maintains [[concurrency control]], and with each piece of the code being a separate object in the database, it is often possible to [[recode]] a system while it is live and online as long as the parts of the system being changed are not in use.
All the code for a JADE application is stored in its object-oriented database. This allows for multi-user development as the database maintains [[concurrency control]], and with each piece of the code being a separate [[Object (computer science)|object]] in the database, it is often possible to [[recode]] a system while it is live and online as long as the parts of the system being changed are not in use.


==Features==
==Features==
Line 79: Line 79:


The advantages of using HTML documents are:
The advantages of using HTML documents are:
* Allows the application to reach a worldwide audience.
* Allows an application to reach a worldwide audience.


The disadvantages are:
The disadvantages are:
Line 89: Line 89:


====Interoperability====
====Interoperability====
In addition to Web services, JADE is also capable of interfacing with other programs through language APIs (including .NET, Java, C/C++), DLL calls, ActiveX/COM objects and .NET assemblies. This allows other programs to access objects and execute methods, and can be used to provide a different interface to a JADE application. JADE 6.2 provided a Java API, .NET Assembly integration and the ability to run Smart Thin Clients on Windows Mobile devices. JADE 6.3 provides an API for .NET languages.
Along with Web services, JADE can also interface with other programs through language APIs (including .NET, Java, C/C++), DLL calls, ActiveX/COM objects and .NET assemblies. This allows other programs to access objects and execute methods, and can be used to provide a different interface to a JADE application. JADE 6.2 provided a Java API, .NET Assembly integration and the ability to run Smart Thin Clients on [[Windows]] Mobile devices. JADE 6.3 provides an API for [[List of CLI languages|.NET languages]].


===Multilingual abilities===
===Multilingual abilities===
Line 97: Line 97:
* The developer has methods available to access the current [[Locale (computer software)|locale]] of the system and so they can implement their own language-dependent features.
* The developer has methods available to access the current [[Locale (computer software)|locale]] of the system and so they can implement their own language-dependent features.


JADE will automatically switch to the language it detects on the system if the language is provided by the developer.<ref name="Witten 10–23"/>
JADE will switch to the language it detects on a system automatically, if that language is provided on the system.<ref name="Witten 10–23"/>


===Portability===
===Portability===
Currently JADE applications can only be run on Windows, Linux support has been dropped. JADE 6.2 allows Smart Thin Clients and a specialised Standard Client to run on Windows Mobile devices.
{{As of|2025}}, JADE applications run on Windows only; Linux support was ended. JADE 6.2 allows Smart Thin Clients and a specialised Standard Client to run on Windows Mobile devices.


==Code examples==
==Code examples==
Line 106: Line 106:


===Hello World!===
===Hello World!===
This is the [[Hello world program|"Hello World!"]] code in JADE:
This is a JADE [["Hello, World!" program]]:


  helloWorld();
  helloWorld();
Line 138: Line 138:


==External links==
==External links==
* {{official website|https://www.jadeworld.com/}}
* {{Official website|www.jadeworld.com}}
* [https://www.jadeworld.com/developer-center Examples and Tutorials for JADE Programmers]
* [https://www.jadeworld.com/developer-center Examples and Tutorials for JADE Programmers]
* [https://web.archive.org/web/20060319105508/http://www.enterprisenetworksandservers.com/monthly/art.php?1899 JADE 6.1 delivers data replication to Microsoft SQL Server]
* [https://web.archive.org/web/20060319105508/http://www.enterprisenetworksandservers.com/monthly/art.php?1899 JADE 6.1 delivers data replication to Microsoft SQL Server]