MATLAB: What makes a Toolbox a Toolbox, and how is it recognized by Matlab

add-onapptoolboxver

By typing ver I can see which toolboxes I have:
MATLAB Version 9.3 (R2017b)
Simulink Version 9.0 (R2017b)
Computer Vision System Toolbox Version 8.0 (R2017b)
Control System Toolbox Version 10.3 (R2017b)
Curve Fitting Toolbox Version 3.5.6 (R2017b)
DSP System Toolbox Version 9.5 (R2017b)
GSW Oceanographic Toolbox Version 3.05.5 (R2012a)
Image Processing Toolbox Version 10.1 (R2017b)
MATLAB Report Generator Version 5.3 (R2017b)
Mapping Toolbox Version 4.5.1 (R2017b)
Optimization Toolbox Version 8.0 (R2017b)
Signal Processing Toolbox Version 7.5 (R2017b)
Statistics and Machine Learning Toolbox Version 11.2 (R2017b)
TopoToolbox Version 2.0 (R2012a)
Wavelet Toolbox Version 4.19 (R2017b)
The list above includes official MathWorks toolboxes and user-generated toolboxes (GSW Oceanographic Toolbox and TopoToolbox). How did GSW and TopoToolbox get on this list?
I have created and installed my own Climate Toolbox as a .prj & .mltbx pair, but my Climate Toolbox does not appear on the list. My toolbox does appear if I type
toolboxes = matlab.addons.toolbox.installedToolboxes
but other toolboxes I've installed do not appear using this command. If I go to the Add-Ons manager, I see my Climate Toolbox listed along with official Mathworks Toolboxes, and curiously also Scott Lowe's MATLAB Schemer, but is identified as a "Collection" rather than a toolbox.
Can anyone clearly define the taxonomy Toolboxes, Collections, Add-Ons, Apps, and Packages? Why do some toolboxes only show up with ver, while others only show up with matlab.addons.toolbox.installedToolboxes?

Best Answer

@Chad Greene: As far as I can tell:
  • Apps are based around one graphical user interface, that is called from the MATLAB ribbon itself. These are packed into one .mlappinstall installation file. They seem to be targeted particularly at users of GUIDE and the App Designer.
  • Toolboxes are just a collection of files and folders, just like you would create yourself for some more complex projects, which are all packed into one .mltbx installation file. This means they can contain whatever files and structure the writer wanted, with few restrictions.
  • Hardware Support Packages are a collection of files and folders that allow control or interfacing to some specific hardware, e.g. cameras, webcams, Lego Mindstorm, Arduino, etc. These are packed into one .mlpkginstall installation file. Do not confuse this with "package" (see below)!
  • Add-On is an umbrella term that includes all of the above: Apps, Toolboxes, and Hardware Support Packages. The term seems to be used because all Apps, Toolboxes, etc, can be obtained via the "Add-Ons Explorer", which is simpler that saying the "Apps, Toolbox, and Hardware Support Package Explorer".
  • Collections do not seem to have any useful definition in the current documentation, nor did my online search give a meaningful definition.
  • Packages are a collection of files and folders, specifically aimed at Object Oriented Programming. These have the important feature that function and class names must be unique only within the package, so this means that two packages could use the same function/class names, without conflict or shadowing.
"Why do some toolboxes only show up with ver, while others..."
I have no idea why some toolboxes are listed and other ones are not: you should write directly to TMW and ask them.