programming languages that interest me
In no particular order.
Scala is a modern multi-paradigm programming language based on the Java Virtual Machine (JVM) designed to express common programming patterns in a concise, elegant, and type-safe way.
Kotlin is officially supported by Google for mobile development on Android. Since the release of Android Studio 3.0 in October 2017, Kotlin is included as an alternative to the standard Java compiler. The Android Kotlin compiler lets the user choose between targeting Java 6 or Java 8 compatible bytecode.
Small, simple language. Focus on debugging your application rather than debugging your knowledge of your programming language. Ships with a build system that obviates the need for a configure script or a makefile. In fact, existing C and C++ projects may choose to depend on Zig instead of e.g. cmake. A fresh take on error handling which makes writing correct code easier than writing buggy code. Debug mode optimizes for fast compilation time and crashing with a stack trace when undefined behavior would happen. Release mode produces heavily optimized code. What other projects call "Link Time Optimization" Zig does automatically. Compatible with C libraries with no wrapper necessary. Directly include C .h files and get access to the functions and symbols therein. Provides standard library which competes with the C standard library and is always compiled against statically in source form. Compile units do not depend on libc unless explicitly linked. Nullable type instead of null pointers. Tagged union type instead of raw unions. Generics so that one can write efficient data structures that work for any data type. No header files required. Top level declarations are entirely order-independent. Compile-time code execution. Compile-time reflection. Partial compile-time function evaluation with eliminates the need for a preprocessor or macros. The binaries produced by Zig have complete debugging information so you can, for example, use GDB to debug your software. Mark functions as tests and automatically run them with zig test. Friendly toward package maintainers. Reproducible build, bootstrapping process carefully documented. Issues filed by package maintainers are considered especially important. Cross-compiling is a primary use case. In addition to creating executables, creating a C library is a primary use case. You can export an auto-generated .h file. Standard library supports Operating System abstractions for: x86_64 linux
Nim is a statically typed, imperative programming language with a powerful macro system that tries to give the programmer ultimate power without compromises on runtime efficiency.
- High-performance garbage-collected language
- Python-like readability with indent-based syntax
- Dependency-free binaries
- Runs on Windows, macOS, Linux, and more
Python is an interpreted, interactive, object-oriented, extensible programming language. It provides an extraordinary combination of clarity and versatility, and is free and comprehensively ported.
Red is a new programming language, strongly inspired by REBOL.
Main characteristics are:
-Functional, imperative and symbolic -Prototype-based object support -Homoiconic (Red is its own meta-language) -Both statically and JIT-compiled to native code -Concurrency and parallelism strong support (actors, parallel collections) -Low-level system programming abilities through the built-in Red/System DSL -High-level scripting and REPL console support -Highly embeddable -Low memory footprint, garbage collected -Low disk footprint (< 1MB)
Racket (formerly PLT Scheme) is a modern programming language in the Lisp/Scheme family, suitable for a wide range of applications. It goes beyond Lisp and Scheme with dialects that support objects, types, laziness, and more. Racket enables programmers to link components written in different dialects, and it empowers programmers to create new, project-specific dialects. Racket's libraries support applications from web servers and databases to GUIs and charts.
Racket comes with an IDE called DrRacket (formerly DrScheme).
Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one).
Pharo is an open source dynamic and reflective language inspired from the programming language and integrated development environment (IDE) Smalltalk. Pharo offers strong live programming features such as immediate object manipulation, live update and hot recompiling. The live programming environment is at the heart of the system.