Skip to main content

Other Languages

https://dev.to/raygun/top-43-programming-languages-when-and-how-to-use-them-515n

Assembly Language

https://www.freecodecamp.org/news/learn-assembly-language-programming-with-arm

Elixir

Elixir's relationship to the Erlang virtual machine (BEAM); the advantages of the Erlang ecosystem; the "sweet spot" for Elixir programs; why a new language was needed for the Erlang VM; compatibility between Elixir and Erlang code; how to get some of the benefits of static typing in a dynamic, strongly typed language using type annotations and dialyzer; the difference between imports, requires, and aliases; how metaprogramming and macros are used to build libraries and the Elixir language itself; when to use metaprogramming; situations where Elixir is not the ideal choice; using Elixir for orchestration; techniques for integrating native code and external services; the dual nature of Elixir as a functional and concurrent language; breaking down programming problems into their concurrent and functional aspects; how Elixir can radically simplify a program's architecture; the relationship between scalability and fault tolerance.

https://schneider.dev/blog/elixir-phoenix-absinthe-graphql-react-apollo-absurdly-deep-dive

https://foxbox.com/blog/elixir-vs-ruby

CUDA - Compute Unified Device Architecture

Dart

Dart is a Google developed, open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.

Dart has undergone multiple major updates over the years and currently supports multiple paradigms. This makes it very robust and a good choice for a lot of different product requirements.

Dart is quite unique in this regard. It supports transpilation into JavaScript, a standalone VM which offers just-in-time compilation and, finally, ahead of time compilation into platform native instruction sets which allows the best performance for delivering production-ready solutions.

The Dart programming language is important for a few reasons

  • It has the best of both worlds: It's a compiled, type-safe language (like C# and Java) and a scripting language (like Python and JavaScript) at the same time.
  • It transpiles to JavaScript for use as a web front end.
  • It runs on everything, and compiles to native mobile apps, so you can use it for nearly anything.
  • Dart is similar to C# and Java in syntax, so it's quick to learn.

https://www.toptal.com/dart/dartlang-guide-for-csharp-java-devs

dhall-lang

Dhall is a programmable configuration language that provides a non-repetitive alternative to YAML.

You can think of Dhall as: JSON + functions + types + imports

Note that while Dhall is programmable, Dhall is not Turing-complete. Many of Dhall's features take advantage of this restriction to provide stronger safety guarantees and more powerful tooling.

https://github.com/dhall-lang/dhall-lang

Apache Groovy

Apache Groovyis a Java-syntax-compatible object-orientedprogramming language for the Java platform. It is both a static and dynamic language with features similar to those of Python, Ruby, and Smalltalk. It can be used as both a programming language and a scripting language for the Java Platform, is compiled to Java virtual machine(JVM)bytecode, and interoperates seamlessly with other Java code and libraries. Groovy uses a curly-bracket syntax similar to Java's. Groovy supports closures, multiline strings, and expressions embedded in strings. Much of Groovy's power lies in its AST transformations, triggered through annotations.

Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming.

https://en.wikipedia.org/wiki/Apache_Groovy

http://groovy-lang.org

darklang

A language built for deployless backends.

Dark is a holistic programming language, editor, and infrastructure for building backends without accidental complexity.

https://darklang.com

https://darklang.com/a/deepaksood619

https://darklang.github.io/docs/docs/getting-started

https://darklang.github.io/docs/docs/react-spa-tutorial

https://darklang.github.io/docs/docs/slack-app-tutorial

Gremlin

Gremlin is a graph traversal language and virtual machine developed by Apache TinkerPop of the Apache Software Foundation. Gremlin works for both OLTP-based graph databases as well as OLAP-based graph processors. Gremlin's automata and functional language foundation enable Gremlin to naturally support imperative and declarative querying, host language agnosticism, user-defined domain specific languages, an extensible compiler/optimizer, single- and multi-machine execution models, hybrid depth- and breadth-first evaluation, as well as Turing Completeness.

As an explanatory analogy, Apache TinkerPop and Gremlin are to graph databases what the JDBC and SQL are to relational databases. Likewise, the Gremlin traversal machine is to graph computing as what the Java virtual machine is to general purpose computing.

http://tinkerpop.apache.org

https://tinkerpop.apache.org/gremlin.html

http://sql2gremlin.com

https://github.com/tinkerpop/gremlin/wiki

Kotlin

https://www.toptal.com/kotlin/kotlin-server-side-development

Closure

Clojure a dialect of LISP that was originally meant to compile to JVM. It was further extended to ClojureScript, a version of Clojure that compiles to JavaScript.

Clojure is a dynamic, general-purpose programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language, yet remains completely dynamic -- every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.

Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.

Languages like Python focus on readability by making the code look like the English language. LISPs, on the other hand, ignore the English language semantics completely and enforce a structural syntax.

All LISP code is a list of primitives. Primitive being an element in the set of vector, map, string, number or symbol. The acronym LISP stands forListProcessing. Your code is basically a tree with LISP.

  • Immutability
  • Compiles to JVM and JS (and Graal)
  • REPL Driven Development
  • Relatively more succinct and productive
  • Not typed, but spec'd
  • Clojurists don't fix something that isn't broken
  • Macros

Why Clojure sucks

  • It's hard to find engineers
  • It's closely controlled by Rich Hickey & Cognitect
  • (It's (flooded with (parenthesis)))
  • It's has a slow startup time
  • It's has a steep learning curve

https://medium.com/swlh/what-i-learned-after-writing-clojure-for-424-days-straight-8884ec471f8e

Reading - https://www.braveclojure.com

https://clojure.org

https://clojure.org/about/rationale

datalog

Datalog is a declarativelogic programming language that syntactically is a subset of Prolog. It is often used as a query language for deductive databases. In recent years, Datalog has found new application in data integration, information extraction, networking, program analysis, security, cloud computing and machine learning.

Its origins date back to the beginning of logic programming, but it became prominent as a separate area around 1977 when Hervé Gallaire and Jack Minker organized a workshop on logic and databases.David Maier is credited with coining the term Datalog.

Datalog is

  • a declarative logic language in which each formula is a function-free Horn clause, and every variable in the head of a clause must appear in the body of the clause.
  • a lightweight deductive database system where queries and database updates are expressed in the logic language.

The use of Datalog syntax and an implementation based on tabling intermediate results ensures that all queries terminate.

Datalog is a deductive query system combining a database of facts (the Datomic db) with a set of rules for deriving new facts from existing facts and other rules. This query capability is combined with a powerful hierarchical selection facility, so you can recover tree-like data without joins or complex re-assembly. Datalog with negation is of equivalent power to relational algebra with recursion. Datalog is a great fit for application queries thanks to:

  • Pattern-matching like structure, in which joins are implicit
  • Recursion is much more straightforward than in SQL
  • Datalog rules subsume SQL views, but have more of a logic feel, allowing a closer alignment to business rules

https://en.wikipedia.org/wiki/Datalog

https://docs.racket-lang.org/datalog

Racket

Racket is a general-purpose programming language as well as the world's first ecosystem for language-oriented programming.

https://racket-lang.org

DPC++ / oneAPI

Data Parallel C++, or DPC++ for short, is a C-based open-source alternative to proprietary programming languages typically used to code for specific types of hardware, such as GPUs or FFPGAs.

Intel oneAPI is a single, unified programming model that aims to simplify development across different hardware architectures: CPUs, GPUs, FPGAs, AI accelerators, and more.

https://www.toptal.com/c-plus-plus/intel-oneapi-dpc-plus-plus

Halide

A language for fast, portable computation on images and tensors

Halide is a programming language designed to make it easier to write high-performance image and array processing code on modern machines. Halide currently targets:

  • CPU architectures: X86, ARM, MIPS, Hexagon, PowerPC
  • Operating systems: Linux, Windows, macOS, Android, iOS, Qualcomm QuRT
  • GPU Compute APIs: CUDA, OpenCL, OpenGL, OpenGL Compute Shaders, Apple Metal, Microsoft Direct X 12

Rather than being a standalone programming language, Halide is embedded in C++. This means you write C++ code that builds an in-memory representation of a Halide pipeline using Halide's C++ API. You can then compile this representation to an object file, or JIT-compile it and run it in the same process.

http://halide-lang.org

Julia

Julia is a high-levelgeneral-purposedynamic programming language that was originally designed to address the needs of high-performance numerical analysis and computational science, without the typical need of separate compilation to be fast, also usable for client and server web use, low-level systems programming or as a specification language

Distinctive aspects of Julia's design include a type system with parametric polymorphism and types in a fully dynamic programming language and multiple dispatch as its core programming paradigm. It allows concurrent, parallel and distributed computing, and direct calling of C and Fortran libraries without glue code.

Julia is garbage-collected, uses eager evaluation and includes efficient libraries for floating-point calculations, linear algebra, random number generation, and regular expression matching. Many libraries are available, and some of them (e.g. for fast Fourier transforms) were previously bundled with Julia.

https://en.wikipedia.org/wiki/Julia_(programming_language)

https://towardsdatascience.com/bye-bye-python-hello-julia-9230bff0df62

Flux

Flux is a lightweight scripting language for querying databases (like InfluxDB) and working with data. It's part of InfluxDB 1.7 and 2.0, but can be run independently of those.

  1. Comments
  2. Named arguments
  3. String Literals
  4. Buckets
  5. Duration Literal
  6. Time Literal
  7. Pipe forward operator
  8. Anonymous function
  9. Predicate function

https://www.influxdata.com/blog/why-were-building-flux-a-new-data-scripting-and-query-language

https://github.com/influxdata/flux

https://docs.influxdata.com/flux/v0.7

https://github.com/fluxcd/flux2

Flux and InfluxDB 2.0

V / Vlang

Simple, fast, safe, compiled language for developing maintainable software. Supports translation from C and (soon) C++. Compiles itself in < 1s.

Key Features of V

  • Simplicity: the language can be learned in half an hour, less if you already know Go
  • Fast compilation: ~100k loc/s right now, ~1.2 million loc/s once x64 generation is mature enough
  • Easy to develop: V compiles itself in less than a second
  • Performance: within 5% of C
  • Safety: no null, no globals, no undefined behavior, immutability by default
  • C to V translation
  • Hot code reloading
  • Powerful UI and graphics libraries
  • Easy cross compilation
  • REPL

https://github.com/vlang/v

https://vlang.io

ziglang

Home ⚡ Zig Programming Language

GitHub - zigzap/zap: blazingly fast backends in zig

.net

.NET is a free, open-source, managed computer software framework for Windows, Linux, and macOS operating systems. ASP.NET is a server-side web-application framework designed for web development to produce dynamic web pages. .NET Core is a new version of .NET Framework.

.NET Framework is a software development framework for building and running applications on Windows. It's the original implementation of the .NET platform, which is a collection of technologies for building apps for many operating systems. .NET Framework is a managed execution environment that allows developers to create applications in one programming language that can work with code written in other languages.

.NET Core is the latest version of .NET Framework. It's a free, open-source, cross-platform platform for developing cloud-based applications. .NET Core is faster than .NET Framework because it has a recompilation feature that automatically optimizes compiled code without making any changes.

ASP.NET Core Tutorial – Beginner to Advanced Projects - YouTube

GitHub - nunit/nunit: NUnit Framework

NUnit.org

Others