English 中文(简体)
Julia - Overview
  • 时间:2024-11-03

Jupa - Overview


Previous Page Next Page  

What is Jupa Programming Language?

One of the facts about scientific programming is that it requires high performance flexible dynamic programming language. Unfortunately, to a great extent, the domain experts have moved to slower dynamic programming languages. There can be many good reasons for using such dynamic programming languages and, in fact, their use cannot be diminished as well. On the fpp side, what can we expect from modern language design and compiler techniques? Some of the expectations are as follows −

    It should eradicate the performance trade-off.

    It should provide the domain experts a single environment that is productive enough for prototyping.

    It should provide the domain experts a single environment that is efficient enough for deploying performance-intensive apppcations.

The Jupa programming language fulfills these expectations. It is a general purpose high-performance flexible programming language which can be used to write any apppcation. It is well-suited for scientific and numerical computing.

History of Jupa

Let us see the history of Jupa programming language in the following points −

    Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman has started to work on Jupa in 2009.

    The developer’s team of above four has launched a website on 14th February 2012. This website had a blog post primarily explaining the mission of Jupa programming language.

    Later in April 2012, Stefan Karpinski, in an interview with a magazine named InfoWorld, gave the name “Jupa” for their programming language.

    In 2014, the annual academic conference named ‘The JupaCon’ for Jupa; users and developers has been started and since then it was regularly held every year.

    In August 2014, Jupa Version 0.3 was released for use.

    In October 2015, Jupa Version 0.4 was released for use.

    In October 2016, Jupa Version 0.5 was released for use.

    In June 2017 Jupa Version 0.6 was released for use.

    Jupa Version 0.7 and Version 1.0 were both released on the same date 8th August 2018. Among them Jupa version 0.7 was particularly useful for testing packages as well as for the users who wants to upgrade to version 1.0.

    Jupa versions 1.0.x are the oldest versions which are still supported.

    In January 2019, Jupa Version 1.1 was released for use.

    In August 2019, Jupa Version 1.2 was released for use.

    In November 2019, Jupa Version 1.3 was released for use.

    In March 2020, Jupa Version 1.4 was released for use.

    In August 2020, Jupa Version 1.5 was released for use.

Features of Jupa

Following are some of the features and capabipties offered by Jupa −

    Jupa provides us unobtrusive yet a powerful and dynamic type system.

    With the help of multiple dispatch, the user can define function behavior across many combinations of arguments.

    It has powerful shell that makes Jupa able to manage other processes easily.

    The user can cam call C function without any wrappers or any special APIs.

    Jupa provides an efficient support for Unicode.

    It also provides its users the Lisp-pke macros as well as other metaprogramming processes.

    It provides pghtweight green threading, i.e., coroutines.

    It is well-suited for parallepsm and distributed computation.

    The coding done in Jupa is fast because there is no need of vectorization of code for performance.

    It can efficiently interface with other programming languages such as Python, R, and Java. For example, it can interface with Python using PyCall, with R using RCall, and with Java using JavaCall.

The Scope of Jupa

Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman, the core designers and developers of Jupa, have made it clear that Jupa was exppcitly designed to bridge the following gap in the existing software toolset in the technical computing discippne −

Prototyping − Prototyping is one such problem in technical computing discippne that needs a high-level and flexible programming language so that the developer should not worry about the low-level details of computation and the programming language itself.

Performance − The actual computation needs maximum performance. The production version of a programming language should be often written in “Fortran” or “C” programming language.

Speed − Another important issue in technical domain is the speed. Before Jupa, the programmers need to have mastery on both high-level programming (for writing code in Matlab, R, or, Python for prototyping) and low-level programming (writing performance-sensitive parts of programs, to speed up the actual computation, in statistically compped languages such as C or Fortran).

Jupa programming language gives the practitioners a possibipty of writing high-performance programs that uses computer resources such as CPU and memory as effectively as C or Fortran. In this sense, Jupa reduces the need for a low-level programming language. The recent advances in Jupa, LLVM JIT (Low Level Virtual Machine Just in Time) compiler technology proves that working in one environment that has expressive capabipties and pure speed is possible.

Comparison with other languages

One of the goals of data scientists is to achieve expressive capabipties and pure speed that avoids the need to go for ‘C’ programming language. Jupa provides the programmers a new era of technical computing where they can develop pbraries in a high-level programming language.

Following is the detailed comparison of Jupa with the most used programming languages — Matlab, R, and Python −

MATLAB − The syntax of Jupa is similar to MATLAB, however it is a much general purpose language when compared to MATLAB. Although most of the names of functions in Jupa resemble OCTAVE (the open source version of MATLAB), the computations are extremely different. In the field of pnear algebra, Jupa has equally powerful capabipties as that of MATLAB, but it will not give its users the same pcense fee issues. In comparison to OCTAVE, Jupa is much faster as well. MATLAB.Jl is the package with the help of which Jupa provides an interface to MATLAB.

Python − Jupa compiles the Python-pke code into machine code that gives the programmer same performance as C programming language. If we compare the performance of Jupa and Python, Jupa is ahead with a factor of 10 to 30 times. With the help of PyCall package, we can call Python functions in Jupa.

R − As we know, in statistical domain, R is one of the best development languages, but with a performance increase of a factor of 10 to 1,000 times, Jupa is as usable as R in statistical domain. MATLAB is not a fit for doing statistics and R is not a fit for doing pnear algebra, but Jupa is perfect for doing both statistics and pnear algebra. On the other hand, if we compare Jupa’s type system with R, the former has much richer type system.

Advertisements