Subscribe to DSC Newsletter

Three interesting but little known programming languages

The descriptions below are from Wikipedia.

Julia Set

Julia

Julia is a high-level dynamic programming language designed to address the requirements of high-performance numerical and scientific computing while also being effective for general purpose programming.[1][2][3][4] Unusual aspects of Julia's design include having a type system with parametric types in a fully dynamic programming language and adopting multiple dispatch as its core programming paradigm. It allows for parallel and distributed computing; and direct calling of C and Fortran libraries without a compiler without glue code and includes best-of-breed libraries for floating-point, linear algebra, random number generation, fast Fourier transforms, and regular expression matching.

Julia's core is implemented in C and C++, its parser in Scheme, and the LLVM compiler framework is used for just-in-time generation of machine code. The standard library is implemented in Julia itself, using the Node.js's libuvlibrary for efficient, cross-platform I/O. The most notable aspect of Julia's implementation is its speed, which is often within a factor of two of fully optimized C code.[5] Development of Julia began in 2009 and an open-source version was publicized in February 2012.[6][7]

Scala

Scala (/ˈskɑːlə/ skah-lə) is an object-functional programming and scripting language for general software applications. Scala has full support for functional programming (including currying, pattern matching, algebraic data types, lazy evaluation, tail recursion, immutability, etc.) and a very strong static type system. This allows programs written in Scala to be very concise and thus smaller in size than most general purpose programming languages. Many of Scala's design decisions were inspired by criticism over the shortcomings of Java.[5]

Scala source code is intended to be compiled to Java bytecode, so that the resulting executable code runs on aJava virtual machine. Java libraries may be used directly in Scala code, and vice versa. Like Java, Scala is statically typed and object-oriented, and uses a curly-brace syntax reminiscent of the C programming language. Unlike Java, Scala has many features of functional programming languages like Scheme, Standard ML and Haskell, includinganonymous functions, type inference, list comprehensions, and lazy initialization. Scala also has extensive language and library support for avoiding side-effects, pattern matching, delimited continuations, higher-order types, andcovariance and contravariance. Scala has a "unified type system", meaning that all types (including primitive types like integer and boolean) are subclasses of the type Any. This is similar to C# but unlike Java. Scala likewise has other features present in C# but not Java, including anonymous types, operator overloading, optional parameters,named parameters, raw strings, and no checked exceptions.

The name Scala is a portmanteau of "scalable" and "language", signifying that it is designed to grow with the demands of its users.

Erlang

Erlang (/ˈɜrlæŋ/ er-lang) is a general-purpose concurrent, garbage-collected programming language and runtimesystem. The sequential subset of Erlang is a functional language, with eager evaluation, single assignment, anddynamic typing. It was designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. It supports hot swapping, so that code can be changed without stopping a system.[3]

While threads require external library support in most languages, Erlang provides language-level features for creating and managing processes with the aim of simplifying concurrent programming. Though all concurrency is explicit in Erlang, processes communicate using message passing instead of shared variables, which removes the need for explicit locks (a locking scheme is still used internally by the VM[4]).

The first version was developed by Joe Armstrong in 1986.[5] It was originally a proprietary language within Ericsson, but was released as open source in 1998.

Related article

Views: 6294

Comment

You need to be a member of Data Science Central to add comments!

Join Data Science Central

Comment by Big Data Queen on March 10, 2015 at 6:35am

One other language to mention is the open source HPCC Systems language called ECL - http://en.wikipedia.org/wiki/ECL_(data-centric_programming_language). The ECL programming language is made for data mining and provides the power to think in terms of the data instead of thinking Map and Reduce. ECL is a Data Scientist enabler. In addition, it hides the complexity around the handling of a massively parallel programming environment. More at http://hpccsystems.com/

Comment by Tomas Hudik on June 2, 2014 at 7:18am

note: java 8 has already a support for functional paradigm. However, the functional paradigm is a core part of scala language from the very begging and throughout the whole language and its libraries.

Videos

  • Add Videos
  • View All

© 2019   Data Science Central ®   Powered by

Badges  |  Report an Issue  |  Privacy Policy  |  Terms of Service