BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. Initially, BASIC concentrated on supporting straightforward mathematical work, with matrix arithmetic support from its initial implementation as a batch language, and character string functionality being added by 1965. The emergence of BASIC took place as part of a wider movement towards time-sharing systems. Some dialects of BASIC supported matrices and matrix operations, which can be used to solve sets of simultaneous linear algebraic equations. These dialects would directly support matrix operations such as assignment, addition, multiplication (of compatible matrix types), and evaluation of a determinant. BASIC declined in popularity in the 1990s, as more powerful microcomputers came to market and programming languages with advanced features (such as Pascal and C) became tenable on such computers.
Learn more
Racket
Racket is a general-purpose, multi-paradigm programming language that serves as a modern dialect of Lisp and a descendant of Scheme. It is designed as a platform for programming language design and implementation, enabling developers to create new domain-specific and general-purpose languages. Racket's core language includes features such as macros, modules, lexical closures, tail calls, delimited continuations, parameters (fluid variables), software contracts, green threads, and OS threads. The language also comes with primitives, such as event spaces and custodians, which control resource management and enable the language to act like an operating system for loading and managing other programs. Further extensions to the language are created with the powerful macro system, which, together with the module system and custom parsers, can control all aspects of a language. Most language constructs in Racket are implemented as macros in the base language.
Learn more
Scala
Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries. The Scala compiler is smart about static types. Most of the time, you need not tell it the types of your variables. Instead, its powerful type inference will figure them out for you. In Scala, case classes are used to represent structural data types. They implicitly equip the class with meaningful toString, equals and hashCode methods, as well as the ability to be deconstructed with pattern matching. In Scala, functions are values, and can be defined as anonymous functions with a concise syntax.
Learn more
Common Lisp
Common Lisp is the modern, multi-paradigm, high-performance, compiled, ANSI-standardized, most prominent (along with Scheme) descendant of the long-running family of Lisp programming languages. Common Lisp is known for being extremely flexible, having excellent support for object oriented programming, and fast prototyping capabilities. It also sports an extremely powerful macro system that allows you to tailor the language to your application, and a flexible run-time environment that allows modification and debugging of running applications (excellent for server-side development and long-running critical software). It is a multi-paradigm programming language that allows you to choose the approach and paradigm according to your application domain.
Learn more