.. _glossary:

========
Glossary
========

.. glossary::

   `client-server-architecture <https://en.wikipedia.org/wiki/Client%E2%80%93server_model>`_
       A `software design pattern <https://en.wikipedia.org/wiki/Design_pattern>`_ used by
       Jupyter applications like **JupyterLab**. With this pattern, a server program (running
       on a user's computer or on a server that can be accessed over a business or public
       network) provides access to stored information (in JupyterLab's case, documents in
       a folder such as notebooks and other data files), and a client program (the web
       application and editing interface for JupyterLab in this case) connects to the
       server program to view and interact with that data.

   console
       In modern times, a `console <https://en.wikipedia.org/wiki/System_console>`_ refers to a simple text-based program where you type commands for your
       computer to run, also commonly called a `terminal <https://en.wikipedia.org/wiki/Computer_terminal>`_.

   command line
       A simple text-based program where you type commands for your computer to run, also
       called a `terminal <https://en.wikipedia.org/wiki/Computer_terminal>`_ or `console <https://en.wikipedia.org/wiki/System_console>`_.

   Command Prompt
       On Windows, this is the application where commands are typed into
       a window for execution. Also see `console <https://en.wikipedia.org/wiki/System_console>`_,
       **command line**, or `terminal <https://en.wikipedia.org/wiki/Computer_terminal>`_.

   conda
       The package management tool for Anaconda, which allows for easy
       installation of Python libraries and other tools into an **environment**.

   config
       Refers to the configuration files, and related processes that affect how
       Jupyter behaves.

   environment
       The name for the installed software, configurations, tools, and
       `environment variables <https://en.wikipedia.org/wiki/Environment_variable>`_
       that collectively define what capabilities a computer system has and how
       it behaves. Missing or incorrect software, configurations or environment variables
       can cause software to malfunction, or software development processes to fail. See
       `this link <https://en.wikipedia.org/wiki/Runtime_system#Relation_to_runtime_environments>`_
       for more information.

   environment variable
       See `this wiki link <https://en.wikipedia.org/wiki/Environment_variable>`_ for for information.

   ipynb
       The file extension (.ipynb) for saved notebook files, commonly
       authored and edited with Jupyter web applications such as
       JupyterLab or Jupyter Notebook. It stands for "IPython Notebook".

   IPython
       The earliest ancestor of **Project Jupyter**. It began as an improved
       interactive Python **REPL**, then expanded to also contain a stored
       notebook document format (.ipynb) and related tools, a web based
       document authoring and editing tool (IPython Notebook), and more.
       After the project became large enough, IPython was split into many
       separate projects under the **Project Jupyter** umbrella through
       **The Big Split.**

   IPython Notebook
       An early ancestor of the Jupyter Notebook application, this was one of
       the first web-based applications for authoring and editing computational
       notebook documents.

   ipywidgets
       A `python package for Jupyter <https://github.com/jupyter-widgets/ipywidgets>`_
       that allows Notebook applications to create and embed interface components
       like sliders or buttons in their notebooks.

   Jovyan
       A term for fans of Jupyter and members of the Jupyter community. This term
       is `derived from <https://jupyter--681.org.readthedocs.build/en/681/community/content-community.html#what-is-a-jovyan>`_
       the astronomical term "Jovian", meaning "Like Jupiter".

   Jupyter
       See **Project Jupyter**. Also occasionally used to refer to one of the Jupyter
       frontend notebook editing applications (**Jupyter Notebook** or **JupyterLab**)
       based on the context it's used in (this ambiguous usage can lead to
       confusion, it's better to use the actual name of the application).

   Jupyter Notebook (Application)
       A simplified web application for authoring and editing computational
       notebooks in the **.ipynb** format (a notebook file is also commonly referred
       to as a Jupyter Notebook).

   Jupyter Notebook (File Format)
       A common name for a saved **.ipynb** Notebook file. For instance,
       "I just made a Jupyter Notebook summarizing our lab results, I can
       send it to you later today."

   JupyterLab
       A modern web application for authoring and editing interactive
       computational notebooks.

   kernel
       A kernel provides programming language support in Jupyter. **IPython** is
       the default kernel. Additional kernels include R, Julia, and many more.

   Notebook
       The generic name for a computational notebook document, such as a saved
       .ipynb file format created by JupyterLab. Also sometimes used as a shorthand
       to refer to Jupyter Notebook, the notebook editing application.

   Notebook Dashboard
       The notebook user interface in the **Jupyter Notebook Application** (see above)
       which shows a list of the notebooks, files, and subdirectories in the directory
       where the notebook server is started.

   pip
       Python package manager.

   profiles
       Not available in Jupyter. In IPython 3, profiles are collections of
       configuration and runtime files.

   Project Jupyter
       The umbrella project for many related tools for interactive computing
       with interactive notebooks

   REPL
      Stands for "read-eval-print-loop". An `REPL <https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_
      is a program that reads user commands and inputs, evaluates them, and prints results for the user to view.
      These steps run in a perpetual loop, allowing the user to prototype code,
      interact with data, and view results on-the-fly, since the data and code
      stay open in memory after evaluation while the REPL is running.

   terminal
       In modern times, a `terminal <https://en.wikipedia.org/wiki/Computer_terminal>`_ refers to a simple text-based program where you type commands for your
       computer to run, also commonly called a `console <https://en.wikipedia.org/wiki/System_console>`_.

   The Big Split
       An event and effort undertaken around 2015 by **IPython** developers to split up
       the then-massive IPython project into a series of smaller, more focused
       sub-projects under the Project Jupyter umbrella.

   widget
       A user interface component from `ipywidgets <https://github.com/jupyter-widgets/ipywidgets>`_,
       similar to a plugin, that allows customized input, such as a slider.
