Developer(s) | Pediatric Anesthesia Research Team, Digital Health Innovation Lab |
---|---|
Stable release | 1.0.10 / May 15, 2018 |
Written in | Scheme |
Operating system | iOS, Android, BlackBerry 10, Windows, Mac OS X, Linux, OpenBSD, OpenWrt |
Type | Software development kit |
License | BSD |
Website | www |
Usage |
LambdaNative is an open-source cross-platform development environment written on top of the Gambit-C Scheme implementation of the Scheme programming language, supporting the creation of native applications on a range of mobile, desktop and embedded platforms. The underlying Scheme programming language has a long tradition of use in theoretical computer science, artificial intelligence and rapid program development.
The Scheme programming language was designed as a simplified and more abstract variant of the early Lisp programming language. The first Lisp implementation was available in 1958, Scheme was introduced in 1975.
Development of LambdaNative toolkit started in 2009 at the Pediatric Anesthesia Research Team (PART) [1] in Vancouver, Canada. It was initially used as an in-house platform for a closed-loop intravenous anesthesia system. Support for mobile platforms was added as PART became engaged in global health projects in 2010. The core LambdaNative framework was open-sourced in 2013. [2]
LambdaNative combines the possibilities of a rapid prototyping environment using Scheme and C programming languages (feature of the underlying Gambit-C implementation) with easy cross-platform software generation and a set of modules including GUI programming, fast Fourier transform and modules to access typical phone hardware components such as camera, GPS and audio.
LambdaNative is released under the BSD License.
LambdaNative supports building native applications for the following operating systems:
LambdaNative applications are written in the Scheme language which can be easily mixed with C code. Scheme is a high level functional language with a very simple and expressive syntax. LambdaNative uses Gambit-C Scheme, [3] a portable standards-compliant Scheme to C compiler.
Applications written in the framework can be either event-loop driven graphical applications or console applications, and code can be abstracted in the form of modules and plugins. LambdaNative does not require the use of an Integrated Development Environment (IDE). The build system follows the conventional configure, make, make install command format.
LambdaNative utilizes the OpenGL and OpenGL ES hardware accelerated graphics layer on the target platforms, and provides a full widget-based 2D graphics engine. It is also possible to render 3D scenes, and overlay a 2D user interface.
The cross-platform GUI is based on the highly portable glGUI widget toolkit.
LambdaNative supports both playback of audio files (OGG or WAV) format, and real-time full-duplex bidirectional audio.
LambdaNative supports access to accelerometers, gyroscopes, GPS locators and other sensors where available on mobile devices.
LambdaNative has been used for a diverse range of medical applications, for example the Phone Oximeter, [4] a smartphone based low-cost pulse oximeter. The Phone Oximeter was selected as one of the ten innovations for 2015 to achieve the United Nations Millennium Development Goals to decrease maternal and child mortality. [5]
LambdaNative-based applications have been used in clinical trials on >50,000 subjects in Canada, France, India, Uganda, Bangladesh, and South Africa, in >10 separate clinical studies. [6] [7]
Blitz BASIC is the programming language dialect that was interpreted by the first Blitz compilers, devised by New Zealand-based developer Mark Sibly. Being derived from BASIC, Blitz syntax was designed to be easy to pick up for beginners first learning to program. The languages are game-programming oriented but are often found general-purpose enough to be used for most types of application. The Blitz language evolved as new products were released, with recent incarnations offering support for more advanced programming techniques such as object-orientation and multithreading. This led to the languages losing their BASIC moniker in later years.
Lisp is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today. Only Fortran is older, by one year. Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Clojure, Common Lisp, and Scheme.
Qt is a free and open-source widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems with little or no change in the underlying codebase while still being a native application with native capabilities and speed. Qt is currently being developed by The Qt Company, a publicly listed company, and the Qt Project under open-source governance, involving individual developers and organizations working to advance Qt. Qt is available under both commercial licenses and open source GPL 2.0, GPL 3.0, and LGPL 3.0 licenses.
In computing, cross-platform software is computer software that is implemented on multiple computing platforms. Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-time packages are common or standard components of all platforms.
Fast Light Toolkit is a cross-platform widget library for graphical user interfaces (GUIs), developed by Bill Spitzak and others. Made to accommodate 3D graphics programming, it has an interface to OpenGL, but it is also suitable for general GUI programming.
PyQt is a Python binding of the cross-platform GUI toolkit Qt, implemented as a Python plug-in. PyQt is free software developed by the British firm Riverbank Computing. It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License (GPL) and commercial license, but not the GNU Lesser General Public License (LGPL). PyQt supports Microsoft Windows as well as various flavours of UNIX, including Linux and MacOS.
newLISP is a scripting language which is a dialect of the Lisp family of programming languages. It was designed and developed by Lutz Mueller. newLISP is free and open-source software released under the GNU General Public License, version 3 or later.
The Visual Component Framework (VCF) is an abandoned open source project for development under Microsoft Windows and Apple Macintosh that is distributed under the BSD license. It is an advanced C++ application framework that makes it easier to produce GUI-based C++ applications. The framework is C++ design and has built in support for rapid application development. The framework is designed to be portable over multiple platforms and compilers.
Gambit, also called Gambit-C, is a programming language, a variant of the language family Lisp, and its variants named Scheme. The Gambit implementation consists of a Scheme interpreter, and a compiler which compiles Scheme into the language C, which makes it cross-platform software. It conforms to the standards R4RS, R5RS, and Institute of Electrical and Electronics Engineers (IEEE), and to several Scheme Requests for Implementations (SRFIs). Gambit was released first in 1988, and Gambit-C (Gambit with a C backend) was released first in 1994. They are free and open-source software released under a GNU Lesser General Public License (LGPL) 2.1, and Apache License 2.0.
Crazy Eddie's GUI (CEGUI) is a graphical user interface (GUI) library for the programming language C++. It was designed for the needs of video games, but is usable for non-game tasks, such as applications and tools. It is designed for user flexibility in look-and-feel, and to be adaptable to the user's choice in tools and operating systems.
Silverstripe CMS is a free and open source Content Management System (CMS) and Framework for creating and maintaining websites and web applications. It provides an out of the box web-based administration panel that enables users to make modifications to parts of the website, which includes a WYSIWYG website editor. The core of the software is Silverstripe Framework, a PHP Web application framework.
Tk is a free and open-source, cross-platform widget toolkit that provides a library of basic elements of GUI widgets for building a graphical user interface (GUI) in many programming languages.
A software widget is a relatively simple and easy-to-use software application or component made for one or more different software platforms.
Qt Creator is a cross-platform C++, JavaScript and QML integrated development environment which simplifies GUI application development. It is part of the SDK for the Qt GUI application development framework and uses the Qt API, which encapsulates host OS GUI function calls. It includes a visual debugger and an integrated WYSIWYG GUI layout and forms designer. The editor has features such as syntax highlighting and autocompletion. Qt Creator uses the C++ compiler from the GNU Compiler Collection on Linux and FreeBSD. On Windows it can use MinGW or MSVC with the default install and can also use Microsoft Console Debugger when compiled from source code. Clang is also supported.
MoSync is a discontinued free and open-source software development kit (SDK) for mobile applications. It is integrated with the Eclipse development environment. The framework produces native mobile applications for multiple platforms using C/C++, HTML5 scripting and any combination thereof. The target group for MoSync are both web developers looking to enter the mobile space, as well as the ordinary PC/Mac desktop developer with knowledge in C/C++ development.
The Abstract Window Toolkit (AWT) is Java's original platform-dependent windowing, graphics, and user-interface widget toolkit, preceding Swing. The AWT is part of the Java Foundation Classes (JFC) — the standard API for providing a graphical user interface (GUI) for a Java program. AWT is also the GUI toolkit for a number of Java ME profiles. For example, Connected Device Configuration profiles require Java runtimes on mobile telephones to support the Abstract Window Toolkit.
mpv is media player software, based on MPlayer and mplayer2. It is free and open-source software released under a mix of licenses including GNU General Public License version 2 or later (GPLv2+), with parts under GNU Lesser Public License version 2.1 or later (LGPLv2.1+), and some optional parts under GNU General Public License version 3 (GPLv3).
Fyne is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs) across desktop and mobile platforms. It is inspired by the principles of Material Design Material Design to create applications that look and behave consistently across all platforms. It is licensed under the terms of the 3 Clause BSD License, supporting the creation of free and proprietary applications. In December 2019 Fyne became the most popular GUI toolkit for Go, by GitHub star count and in early February 2020 it was trending as #1 project in GitHub trending ranks.