Shiny (software)

Last updated
Shiny
Original author(s) Joe Cheng
Developer(s) RStudio Inc. (and current renamed company Posit PBC)
Initial releaseNovember 2012;11 years ago (2012-11)
Stable release
1.8.1.1 [1]
Repository github.com/posit-dev/py-shiny
Written in R / Python
License MIT License
Website shiny.rstudio.com

Shiny is a free and open source R package for developing web applications (apps). [2] It was announced by Joe Cheng, CTO of Posit, formerly RStudio, in 2012. [3] One of the uses of Shiny has been in fast prototyping. [4]

Contents

In 2022, a separate implementation Shiny for Python was announced. [5] It is not meant to be a replacement, whereby both implementations will be developed concurrently and may never have all the features of each other. There is also Shinylive that allows running Shiny on the client (i.e., program code does not run on the server, reducing server load to just serving the code itself). [6]

Features

Shiny creates a reactive context wherein the user specifies, through input variables, the circumstances under which computations are re-executed, or graphs (often visualizations) re-rendered; this occurs almost instantaneously. The input variables are evaluated via a user interface which allows the simple creation of widgets such as text boxes, radio buttons, and drop-down lists. [3] [7]

There are two main parts to a Shiny file, which may alternatively be stored in two separate files. One is designed to accommodate the user interface, the appearance of which is restricted by the default choices, though can be extended through various other R packages. The other is designed to accommodate the server computations and plot generating code, for which all the built-in facilities of R are available. [3]

Hosting a Shiny app on an RStudio server is free up to certain limits but paid tiers are relatively expensive compared to hosting on other cloud computing platforms. [3] [8]

Related Research Articles

<span class="mw-page-title-main">Common Gateway Interface</span> Interface between Web servers and external programs

In computing, Common Gateway Interface (CGI) is an interface specification that enables web servers to execute an external program to process HTTP or HTTPS user requests.

Zope is a family of free and open-source web application servers written in Python, and their associated online community. Zope stands for "Z Object Publishing Environment", and was the first system using the now common object publishing methodology for the Web. Zope has been called a Python killer app, an application that helped put Python in the spotlight.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">IBM Db2</span> Relational model database server

Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB2 until 2017, when it changed to its present form.

Web development is the work involved in developing a website for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex web applications, electronic businesses, and social network services. A more comprehensive list of tasks to which Web development commonly refers, may include Web engineering, Web design, Web content development, client liaison, client-side/server-side scripting, Web server and network security configuration, and e-commerce development.

Expect is an extension to the Tcl scripting language written by Don Libes. The program automates interactions with programs that expose a text terminal interface. Expect, originally written in 1990 for the Unix platform, has since become available for Microsoft Windows and other systems.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

A GIS software program is a computer program to support the use of a geographic information system, providing the ability to create, store, manage, query, analyze, and visualize geographic data, that is, data representing phenomena for which location is important. The GIS software industry encompasses a broad range of commercial and open-source products that provide some or all of these capabilities within various information technology architectures.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

<span class="mw-page-title-main">BALL</span>

BALL is a C++ class framework and set of algorithms and data structures for molecular modelling and computational structural bioinformatics, a Python interface to this library, and a graphical user interface to BALL, the molecule viewer BALLView.

<span class="mw-page-title-main">Kivy (framework)</span> Free and multi-platform graphical library for Python

Kivy is a free and open source Python framework for developing mobile apps and other multitouch application software with a natural user interface (NUI). It is distributed under the terms of the MIT License, and can run on Android, iOS, Linux, macOS, and Windows.

<span class="mw-page-title-main">RStudio</span> Integrated development environment for R

RStudio IDE is an integrated development environment for R, a programming language for statistical computing and graphics. It is available in two formats: RStudio Desktop is a regular desktop application while RStudio Server runs on a remote server and allows accessing RStudio using a web browser. The RStudio IDE is a product of Posit PBC.

<span class="mw-page-title-main">Julia (programming language)</span> Dynamic programming language

Julia is a high-level, general-purpose dynamic programming language, most commonly used for numerical analysis and computational science. Distinctive aspects of Julia's design include a type system with parametric polymorphism and the use of multiple dispatch as a core programming paradigm, efficient garbage collection, and a just-in-time (JIT) compiler.

<span class="mw-page-title-main">Anaconda (Python distribution)</span> Python and R distribution

Anaconda is a distribution of the Python and R programming languages for scientific computing, that aims to simplify package management and deployment. The distribution includes data-science packages suitable for Windows, Linux, and macOS. It is developed and maintained by Anaconda, Inc., which was founded by Peter Wang and Travis Oliphant in 2012. As an Anaconda, Inc. product, it is also known as Anaconda Distribution or Anaconda Individual Edition, while other products from the company are Anaconda Team Edition and Anaconda Enterprise Edition, neither of which is free.

<span class="mw-page-title-main">Nim (programming language)</span> Programming language

Nim is a general-purpose, multi-paradigm, statically typed, compiled high-level system programming language, designed and developed by a team around Andreas Rumpf. Nim is designed to be "efficient, expressive, and elegant", supporting metaprogramming, functional, message passing, procedural, and object-oriented programming styles by providing several features such as compile time code generation, algebraic data types, a foreign function interface (FFI) with C, C++, Objective-C, and JavaScript, and supporting compiling to those same languages as intermediate representations.

<span class="mw-page-title-main">Joseph J. Allaire</span> Co-founder of several companies including Allaire Corporation and RStudio

Joseph J. Allaire, better known professionally as J. J. Allaire, is an American-born software engineer and Internet entrepreneur. He created the ColdFusion programming language and web application server, founded Allaire Corporation, OnFolio, FitNow, and RStudio, and created LoseIt! and Windows Live Writer. Allaire is currently the founder and CEO of statistical computing company Posit.

<span class="mw-page-title-main">Project Jupyter</span> Open source data science software

Project Jupyter is a project to develop open-source software, open standards, and services for interactive computing across multiple programming languages.

D4Science is an organisation operating a Data Infrastructure offering services by community-driven virtual research environments. In particular, it supports communities of practice willing to implement open science practices. The infrastructure follows the system of systems approach, where the constituent systems offer “resources” assembled together to implement the overall set of D4Science services. In particular, D4Science aggregates “domain agnostic” service providers as well as community-specific ones to build a unifying space where the aggregated resources can be exploited via Virtual research Environments and their services.

Posit PBC is an open-source data science software company. It is a public-benefit corporation founded by J. J. Allaire, creator of the programming language ColdFusion.

References

  1. "Shiny: Web Application Framework for R". 5 August 2023.
  2. Doi, Jimmy; Potter, Gail; Wong, Jimmy; Alcaraz, Irvin; Chi, Peter (2016). "Web Application Teaching Tools for Statistics Using R and Shiny". Technology Innovations in Statistics Education. 9 (1). doi: 10.5070/T591027492 .
  3. 1 2 3 4 Kasprzak, Peter; Mitchell, Lachlan; Kravchuk, Olena; Timmins, Andy (2020). "Six Years of Shiny in Research - Collaborative Development of Web Tools in R" (PDF). The R Journal . 12 (2): 20–42. doi:10.32614/RJ-2021-004. S2CID   231709443 . Retrieved 12 March 2022.
  4. Li, Yu (2020). "Towards fast prototyping of cloud-based environmental decision support systems for environmental scientists using R Shiny and Docker". Environmental Modelling & Software . 132: 104797. doi:10.1016/j.envsoft.2020.104797. hdl: 20.500.11850/431312 . S2CID   221823072.
  5. Machlis, Sharon (2022-07-27). "RStudio unveils Shiny for Python". InfoWorld. Retrieved 2024-05-17.
  6. "Shiny for Python - Shinylive: Shiny + WebAssembly". shiny.rstudio.com. Retrieved 2023-01-30.
  7. Kaufman, Aaron R. (30 April 2020). "Implementing novel, flexible, and powerful survey designs in R Shiny". PLOS ONE. 15 (4): e0232424. Bibcode:2020PLoSO..1532424K. doi: 10.1371/journal.pone.0232424 . PMC   7192460 . PMID   32353057.
  8. "shinyapps.io". www.shinyapps.io. Retrieved 2022-05-24.