Alternatives to Tcl

Compare Tcl alternatives for your business or organization using the curated list below. SourceForge ranks the best alternatives to Tcl in 2024. Compare features, ratings, user reviews, pricing, and more from Tcl competitors and alternatives in order to make an informed decision for your business.

  • 1
    Swift

    Swift

    Apple

    Writing Swift code is interactive and fun, the syntax is concise yet expressive, and Swift includes modern features developers love. Swift code is safe by design and produces software that runs lightning-fast. Swift is the result of the latest research on programming languages, combined with decades of experience building Apple platforms. Named parameters are expressed in a clean syntax that makes APIs in Swift even easier to read and maintain. Even better, you don’t even need to type semi-colons. Inferred types make code cleaner and less prone to mistakes, while modules eliminate headers and provide namespaces. To best support international languages and emoji, Strings are Unicode-correct and use a UTF-8 based encoding to optimize performance for a wide-variety of use cases. You can even write concurrent code with simple, built-in keywords that define asynchronous behavior, making your code more readable and less error-prone.
    Starting Price: Free
  • 2
    C++

    C++

    C++

    C++ is a simple and clear language in its expressions. It is true that a piece of code written with C++ may be seen by a stranger of programming a bit more cryptic than some other languages due to the intensive use of special characters ({}[]*&!|...), but once one knows the meaning of such characters it can be even more schematic and clear than other languages that rely more on English words. Also, the simplification of the input/output interface of C++ in comparison to C and the incorporation of the standard template library in the language, makes the communication and manipulation of data in a program written in C++ as simple as in other languages, without losing the power it offers. It is a programming model that treats programming from a perspective where each component is considered an object, with its own properties and methods, replacing or complementing structured programming paradigm, where the focus was on procedures and parameters.
    Starting Price: Free
  • 3
    Fortran

    Fortran

    Fortran

    Fortran has been designed from the ground up for computationally intensive applications in science and engineering. Mature and battle-tested compilers and libraries allow you to write code that runs close to the metal, fast. Fortran is statically and strongly typed, which allows the compiler to catch many programming errors early on for you. This also allows the compiler to generate efficient binary code. Fortran is a relatively small language that is surprisingly easy to learn and use. Expressing most mathematical and arithmetic operations over large arrays is as simple as writing them as equations on a whiteboard. Fortran is a natively parallel programming language with intuitive array-like syntax to communicate data between CPUs. You can run almost the same code on a single CPU, on a shared-memory multicore system, or on a distributed-memory HPC or cloud-based system.
    Starting Price: Free
  • 4
    Emojicode

    Emojicode

    Emojicode

    Emojicode is an open-source, full-blown programming language, consisting of emojis. As a multi-paradigm language, Emojicode features object orientation, optionals, generics, closures, and protocols. Emojicode compiles native machine code using lots of optimizations that make your code fast. Emojicode comes with a comprehensive set of default packages. And you can easily write your own. We believe that Emojis have expressive force. Let’s use that to make programming more fun and accessible. Emojicode is a straightforward language to learn, whatever background you have. Our documentation is known to be excellent and stuffed with walk-through guides and examples. You can help Emojicode grow! Development takes place on GitHub and you’re invited to drop in. Before you install Emojicode make sure you have a C++ compiler and linker installed. clang++ or g++ is fine, for instance. The Emojicode compiler can only link binaries if such a compiler is available.
    Starting Price: Free
  • 5
    PowerShell

    PowerShell

    Microsoft

    PowerShell is a cross-platform task automation and configuration management framework, consisting of a command-line shell and scripting language. Unlike most shells, which accept and return text, PowerShell is built on top of the .NET Common Language Runtime (CLR), and accepts and returns .NET objects. This fundamental change brings entirely new tools and methods for automation. Unlike traditional command-line interfaces, PowerShell cmdlets are designed to deal with objects. An object is structured information that is more than just the string of characters appearing on the screen. Command output always carries extra information that you can use if you need it. If you've used text-processing tools to process data in the past, you'll find that they behave differently when used in PowerShell. In most cases, you don't need text-processing tools to extract specific information. You directly access portions of the data using standard PowerShell object syntax.
  • 6
    ZenScript

    ZenScript

    CraftTweaker

    ZenScript originated from MineTweaker where a simple programming language is needed to allow users without programming knowledge to be able to execute simple commands by following the tutorials for it. Originally MineTweaker had a simple one-line-at-a-time parsed scripting system, but it quickly became clear that it wasn't flexible enough, so a simple parsed language was created. This parsed language worked quite well but was very inefficient as each value was wrapped into its own object. ZenScript allows mixed typed and typeless behavior. You don't need to define types anywhere, the compile will infer them where possible and exhibit typeless behavior when the type is effectively unknown. In nearly all the cases, the type is perfectly known and execution runs at native Java speed. Since there are types, they can be documented and enforced.
    Starting Price: Free
  • 7
    Haskell

    Haskell

    Haskell

    Every expression in Haskell has a type that is determined at compile time. All the types composed together by function application have to match up. If they don't, the program will be rejected by the compiler. Types become not only a form of guarantee, but a language for expressing the construction of programs. Every function in Haskell is a function in the mathematical sense (i.e., "pure"). Even side-effecting IO operations are but a description of what to do, produced by pure code. There are no statements or instructions, only expressions that cannot mutate variables (local or global) nor access state like time or random numbers. You don't have to explicitly write out every type in a Haskell program. Types will be inferred by unifying every type bidirectionally. However, you can write out types if you choose, or ask the compiler to write them for you for handy documentation.
    Starting Price: Free
  • 8
    LOLCODE

    LOLCODE

    LOLCODE

    LOLCODE can interpret files from standard input or from a file. Spaces are used to demarcate tokens in the language, although some keyword constructs may include spaces. Multiple spaces and tabs are treated as single spaces and are otherwise irrelevant. Indentation is irrelevant. A command starts at the beginning of a line and a newline indicates the end of a command, except in special cases. Multiple commands can be put on a single line if they are separated by a comma (,). In this case, the comma acts as a virtual newline or a soft command break. Multiple lines can be combined into a single command by including three periods or the Unicode ellipsis character (u2026) at the end of the line. Lines with line continuation can be strung together, many in a row, to allow a single command to stretch over more than one or two lines. As long as each line is ended with three periods, the next line is included, until a line without three periods is reached.
    Starting Price: Free
  • 9
    Scheme

    Scheme

    Scheme

    Scheme is a general-purpose computer programming language. It is a high-level language, supporting operations on structured data such as strings, lists, and vectors, as well as operations on more traditional data such as numbers and characters. While Scheme is often identified with symbolic applications, its rich set of data types and flexible control structures make it a truly versatile language. Scheme has been employed to write text editors, optimize compilers, operating systems, graphics packages, expert systems, numerical applications, financial analysis packages, virtual reality systems, and practically every other type of application imaginable. Scheme is a fairly simple language to learn since it is based on a handful of syntactic forms and semantic concepts and since the interactive nature of most implementations encourages experimentation. Scheme is a challenging language to understand fully.
    Starting Price: Free
  • 10
    MATLAB

    MATLAB

    The MathWorks

    MATLAB® combines a desktop environment tuned for iterative analysis and design processes with a programming language that expresses matrix and array mathematics directly. It includes the Live Editor for creating scripts that combine code, output, and formatted text in an executable notebook. MATLAB toolboxes are professionally developed, rigorously tested, and fully documented. MATLAB apps let you see how different algorithms work with your data. Iterate until you’ve got the results you want, then automatically generate a MATLAB program to reproduce or automate your work. Scale your analyses to run on clusters, GPUs, and clouds with only minor code changes. There’s no need to rewrite your code or learn big data programming and out-of-memory techniques. Automatically convert MATLAB algorithms to C/C++, HDL, and CUDA code to run on your embedded processor or FPGA/ASIC. MATLAB works with Simulink to support Model-Based Design.
  • 11
    Python

    Python

    Python

    The core of extensible programming is defining functions. Python allows mandatory and optional arguments, keyword arguments, and even arbitrary argument lists. Whether you're new to programming or an experienced developer, it's easy to learn and use Python. Python can be easy to pick up whether you're a first-time programmer or you're experienced with other languages. The following pages are a useful first step to get on your way to writing programs with Python! The community hosts conferences and meetups to collaborate on code, and much more. Python's documentation will help you along the way, and the mailing lists will keep you in touch. The Python Package Index (PyPI) hosts thousands of third-party modules for Python. Both Python's standard library and the community-contributed modules allow for endless possibilities.
    Starting Price: Free
  • 12
    Assembly

    Assembly

    Assembly

    Assembly language is a low-level computer programming language that is used to directly control the hardware of a computer system. It consists of symbols and words that represent specific instructions to the processor. Assembly language is often used to optimize programs written in higher-level languages, as it can provide a more efficient way to access memory and other resources.
  • 13
    AutoHotkey

    AutoHotkey

    AutoHotkey

    Define hotkeys for the mouse and keyboard, remap keys or buttons and autocorrect-like replacements. Creating simple hotkeys has never been easier; you can do it in just a few lines or less! AutoHotkey is a free, open-source scripting language for Windows that allows users to easily create small to complex scripts for all kinds of tasks such as form fillers, auto-clicking, macros, etc. AutoHotkey has easy-to-learn built-in commands for beginners. Experienced developers will love this full-fledged scripting language for fast prototyping and small projects. AutoHotkey gives you the freedom to automate any desktop task. It's small, fast, and runs out of the box. Best of all, it's free, open-source (GNU GPLv2), and beginner-friendly. AutoHotkey provides a simple, flexible syntax allowing you to focus more on the task at hand rather than every single little technicality. It supports not only the popular imperative-procedural paradigm, but also object-oriented and command-based programming.
    Starting Price: Free
  • 14
    BASIC

    BASIC

    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.
  • 15
    QBasic

    QBasic

    QBasic

    QBasic as well as QuickBasic is an easy-to-learn programming language (and therefore ideal for beginners), based on DOS operating system, but also executable on Windows. QBasic is the slimmed-down version of QuickBasic. Compared to QuickBasic, QBasic is limited as it lacks a compiler. Therefore QBasic cannot be used to produce executables (.exe files). The source code (usual files with .bas extension) can only be executed immediately by the built-in QBasic interpreter. Furthermore, QuickBasic has a more extensive command set than QBasic. The best way to learn to program is to start with a lightweight programming language and a simple compiler. Qbasic (short: QB) has great advantages for pros and beginners that other compilers can't offer. Back then, when DOS was the most widely used operating system, QB IDE enjoyed great popularity. On current Windows systems, QBasic/QuickBASIC requires a DOS emulator, e.g. DOSBox.
    Starting Price: Free
  • 16
    LaTeX

    LaTeX

    LaTeX

    LaTeX, which is pronounced «Lah-tech» or «Lay-tech» (to rhyme with «blech» or «Bertolt Brecht»), is a document preparation system for high-quality typesetting. It is most often used for medium-to-large technical or scientific documents but it can be used for almost any form of publishing. LaTeX is not a word processor! Instead, LaTeX encourages authors not to worry too much about the appearance of their documents but to concentrate on getting the right content. To produce this in most typesetting or word-processing systems, the author would have to decide what layout to use, so would select (say) 18pt Times Roman for the title, 12pt Times Italic for the name, and so on. This has two results: authors wasting their time with designs; and a lot of badly designed documents! LaTeX is based on the idea that it is better to leave document design to document designers, and to let authors get on with writing documents.
    Starting Price: Free
  • 17
    JavaScript

    JavaScript

    JavaScript

    JavaScript is a scripting language and programming language for the web that enables developers to build dynamic elements on the web. Over 97% of the websites in the world use client-side JavaScript. JavaScript is one of the most important scripting languages on the web. Strings in JavaScript are contained within a pair of either single quotation marks '' or double quotation marks "". Both quotes represent Strings but be sure to choose one and STICK WITH IT. If you start with a single quote, you need to end with a single quote. There are pros and cons to using both IE single quotes tend to make it easier to write HTML within Javascript as you don’t have to escape the line with a double quote. Let’s say you’re trying to use quotation marks inside a string. You’ll need to use opposite quotation marks inside and outside of JavaScript single or double quotes.
  • 18
    Apache Groovy

    Apache Groovy

    The Apache Software Foundation

    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. Concise, readable and expressive syntax, easy to learn for Java developers. Closures, builders, runtime & compile-time meta-programming, functional programming, type inference, and static compilation. Flexible & malleable syntax, advanced integration & customization mechanisms, to integrate readable business rules in your applications. Great for writing concise and maintainable tests, and for all your build and automation tasks.
    Starting Price: Free
  • 19
    Eclipse Ceylon

    Eclipse Ceylon

    Eclipse Ceylon

    Eclipse Ceylon is a language for writing large programs in teams. To learn more, read the 15 minute quick intro, before taking the tour of the language. The best way to try it out is to download the IDE and write some code. Then you can explore the modules in Ceylon Herd. Or you can try it online. This is a community project. Everything we produce is open source and all our work happens out in the open on GitHub and GitHub. Eclipse Ceylon's powerful flow-sensitive static type system catches many bugs while letting you express more, more easily: union and intersection types, tuples, function types, mixin inheritance, enumerated types, and reified generics. We spend more time reading other people's code than writing our own. Therefore, Eclipse Ceylon prioritizes readability, via a highly regular syntax, support for treelike structures, and elegant syntax sugar where appropriate.
    Starting Price: Free
  • 20
    BLooP

    BLooP

    BLooP

    Welcome to the Dictionary of Programming Languages, a compendium of computer coding methods assembled to provide information and aid your appreciation for computer science history. BLooP was a very simple recursive block structured language invented by Douglas Hofstadter for his book Godel, Escher, Bach. It features simple subroutine structure, very simple number and boolean handling, and recursion. The interesting aspect of BLooP was that it offered only bounded loop constructs, and was therefore incapable of expressing certain general recursive computations.
    Starting Price: Free
  • 21
    IronPython

    IronPython

    IronPython

    IronPython is an open-source implementation of the Python programming language which is tightly integrated with .NET. IronPython can use .NET and Python libraries, and other .NET languages can use Python code just as easily. Experience a more interactive .NET and Python development experience with Python Tools for Visual Studio. IronPython is an excellent addition to .NET, providing Python developers with the power of the .NET. Existing .NET developers can also use IronPython as a fast and expressive scripting language for embedding, testing, or writing a new application from scratch. The CLR is a great platform for creating programming languages, and the DLR makes it all the better for dynamic languages. Also, the .NET (base class library, presentation foundation, etc.) gives developers an amazing amount of functionality and power. IronPython uses Python syntax and standard libraries and so your Python code will need to be updated accordingly.
    Starting Price: Free
  • 22
    LÖVE

    LÖVE

    LÖVE

    As you probably know by now, LÖVE is a framework for making 2D games in the Lua programming language. LÖVE is totally free, and can be used in anything from friendly open-source hobby projects, to evil, closed-source commercial ones. To make a minimal game, create a folder anywhere, and open up your favorite text editor. Sublime Text is a pretty good one for all operating systems, and it has Lua support built in. Create a new file in the folder you just created, and name it main.lua. Put the following code in the file, and save it.
  • 23
    PascalABC.NET

    PascalABC.NET

    PascalABC.NET

    The new generation Pascal programming language combines the simplicity of classic Pascal, a great number of modern extensions, and the broad capabilities of Microsoft .NET Framework. Free, simple, and powerful IDE. Built-in form designer for rapid development of Windows desktop applications. Download the latest version of PascalABC.NET with a build-in form designer. Several extensions of the Pascal language, including the foreach operator, in-block variable definitions, auto type deduction in variable definitions, simplified syntax of units, method implementations inside classes and records, a new operator for object construction, anonymous classes, auto-classes, BigIntegers, etc. The most modern features of programming languages like n-dimensional dynamic arrays, generics, interfaces, operator overloading, exceptions, garbage collection, and lambda expressions. IDE with integrated debugger, IntelliSense system, code templates, and code auto-formatting.
    Starting Price: Free
  • 24
    Vyper

    Vyper

    Vyper

    Vyper is a contract-oriented, pythonic programming language that targets the Ethereum Virtual Machine (EVM). Security: It should be possible and natural to build secure smart-contracts in Vyper. Language and compiler simplicity: The language and the compiler implementation should strive to be simple. Auditability: Vyper code should be maximally human-readable. Furthermore, it should be maximally difficult to write misleading code. Simplicity for the reader is more important than simplicity for the writer, and simplicity for readers with low prior experience with Vyper (and low prior experience with programming in general) is particularly important.
    Starting Price: Free
  • 25
    Dart

    Dart

    Dart Language

    Mature and complete async-await for user interfaces containing event-driven code, paired with isolate-based concurrency. A programming language optimized for building user interfaces with features such as sound null safety, the spread operator for expanding collections, and collection if for customizing UI for each platform. Write code using a flexible type system with rich static analysis and powerful, configurable tooling. Target the web with complete, mature, fast compilers for JavaScript. Run backend code supporting your app, written using a single programming language. This collection is not exhaustive—it’s just a brief introduction to the language for people who like to learn by example. You might also want to check out the language and library tours, or the Dart cheatsheet codelab.
  • 26
    Perl

    Perl

    Perl

    Perl is a highly capable, feature-rich programming language with over 30 years of development. Perl is a highly capable, feature-rich programming language with over 30 years of development. Perl runs on over 100 platforms from portables to mainframes and is suitable for both rapid prototyping and large scale development projects. "Perl" is a family of languages, "Raku" (formerly known as "Perl 6") is part of the family, but it is a separate language which has its own development team. Its existence has no significant impact on the continuing development of "Perl". Perl includes powerful tools for processing text that make it ideal for working with HTML, XML, and all other mark-up and natural languages. Perl can handle encrypted Web data, including e-commerce transactions.
    Starting Price: Free
  • 27
    V Programming Language

    V Programming Language

    V Programming Language

    Simple, fast, safe, and compiled. For developing maintainable software. Simple language for building maintainable programs. You can learn the entire language by going through the documentation over a weekend, and in most cases, there's only one way to do something. This results in simple, readable, and maintainable code. This results in simple, readable, and maintainable code. Despite being simple, V gives a lot of power to the developer and can be used in pretty much every field, including systems programming, webdev, gamedev, GUI, mobile, science, embedded, tooling, etc. V is very similar to Go. If you know Go, you already know 80% of V. Bounds checking, No undefined values, no variable shadowing, immutable variables by default, immutable structs by default, option/result and mandatory error checks, sum types, generics, and immutable function args by default, mutable args have to be marked on call.
    Starting Price: Free
  • 28
    XAML

    XAML

    Microsoft

    XAML is a declarative markup language. As applied to the .NET Core programming model, XAML simplifies creating a UI for a .NET Core app. You can create visible UI elements in the declarative XAML markup, and then separate the UI definition from the run-time logic by using code-behind files that are joined to the markup through partial class definitions. XAML directly represents the instantiation of objects in a specific set of backing types defined in assemblies. This is unlike most other markup languages, which are typically an interpreted language without such a direct tie to a backing type system. XAML enables a workflow where separate parties can work on the UI and the logic of an app, using potentially different tools. When represented as text, XAML files are XML files that generally have the .xaml extension. The files can be encoded by any XML encoding, but encoding as UTF-8 is typical.
    Starting Price: Free
  • 29
    Vala

    Vala

    The GNOME Project

    Vala is a programming language using modern high level abstractions without imposing additional runtime requirements and without using a different ABI compared to applications and libraries written in C. Vala uses the GObject type system and has additional code generation routines that make targeting the GNOME stack simple. Vala has many other uses where native binaries are required. More. There is GNOME Discourse for developer and general discussions. You can also join the Vala Matrix channel for asking questions and talking with the developers. Vala is a cross platform development tool with third party distributions providing binaries for Windows, macOS, Linux, BSDs and other platforms.
    Starting Price: Free
  • 30
    TypeScript

    TypeScript

    TypeScript

    TypeScript adds additional syntax to JavaScript to support a tighter integration with your editor. Catch errors early in your editor. TypeScript code converts to JavaScript, which runs anywhere JavaScript runs: In a browser, on Node.js or Deno and in your apps. TypeScript understands JavaScript and uses type inference to give you great tooling without additional code. TypeScript was used by 78% of the 2020 State of JS respondents, with 93% saying they would use it again. The most common kinds of errors that programmers write can be described as type errors: a certain kind of value was used where a different kind of value was expected. This could be due to simple typos, a failure to understand the API surface of a library, incorrect assumptions about runtime behavior, or other errors.
    Starting Price: Free
  • 31
    Unlambda

    Unlambda

    Unlambda

    Unlambda is a programming language. Nothing remarkable there. The originality of Unlambda is that it stands as the unexpected intersection of two marginal families of languages. Functional programming languages, of which the canonical representative is Scheme (a Lisp dialect). This means that the basic object manipulated by the language (and indeed the only one as far as Unlambda is concerned) is the function. Rather, Unlambda uses a functional approach to programming: the only form of objects it manipulates are functions. Each function takes a function as an argument and returns a function. Apart from a binary “apply” operation, Unlambda provides several built-in functions (the most important ones being the K and S combinators). User-defined functions can be created, but not saved or named, because Unlambda does not have any variables.
    Starting Price: Free
  • 32
    MoonScript

    MoonScript

    MoonScript

    MoonScript is a dynamic scripting language that compiles into Lua. It gives you the power of one of the fastest scripting languages combined with a rich set of features. MoonScript can either be compiled into Lua and run at a later time, or it can be dynamically compiled and run using the moonloader. Because it compiles right into Lua code, it is completely compatible with alternative Lua implementations like LuaJIT, and it is also compatible with all existing Lua code and libraries. The command line tools also let you run MoonScript directly from the command line, like any first-class scripting language. MoonScript provides a clean syntax using significant whitespace that avoids all the keyword noise typically seen in a Lua script. It also adds table comprehensions, implicit return on functions, classes, inheritance, scope management statements import & export, and a convenient object creation statement called with.
  • 33
    XSharp (X#)
    X# is an open-source development language for .NET, based on the xBase language. It comes in different flavors, such as Core, Visual Objects, Vulcan.NET, xBase++, Harbour, Foxpro, and more. X# has been built on top of Roslyn, the open-source architecture behind the current Microsoft C# and Microsoft Visual Basic compilers. We have added a new options page (tools/options/text editor/X#) where you can control which suggestions the editor will suggest in the "general" code completion list. Code completion after a colon or dot will show namespaces, types, members, etc. And code completion after AS or IS will show types and namespaces. Several preprocessor fixes to make the preprocessor more compatible with FoxPro and Xbase++. We have also added the #if and #stdout commands. We added several smaller fixes in the RDD system to improve the compatibility with Visual Objects, XBase++ and FoxPro.
    Starting Price: Free
  • 34
    APL

    APL

    APL

    APL is an array-oriented programming language that will change the way you think about problems and data. With a powerful, concise syntax, it lets you develop shorter programs that enable you to think more about the problem you're trying to solve than how to express it to a computer.
    Starting Price: Free
  • 35
    Nix

    Nix

    NixOS

    Nix is a tool that takes a unique approach to package management and system configuration. Learn how to make reproducible, declarative, and reliable systems. Nix builds packages in isolation from each other. This ensures that they are reproducible and don't have undeclared dependencies, so if a package works on one machine, it will also work on another. Nix makes it trivial to share development and build environments for your projects, regardless of what programming languages and tools you’re using. Nix ensures that installing or upgrading one package cannot break other packages. It allows you to roll back to previous versions and ensures that no package is in an inconsistent state during an upgrade. Nix is a purely functional package manager. This means that it treats packages like values in purely functional programming languages such as Haskell, they are built by functions that don’t have side effects, and they never change after they have been built.
    Starting Price: Free
  • 36
    Prolog

    Prolog

    Prolog

    Prolog is a logic programming language associated with artificial intelligence and computational linguistics. Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily as a declarative programming language, the program logic is expressed in terms of relations, represented as facts and rules. A computation is initiated by running a query over these relations. Prolog was one of the first logic programming languages and remains the most popular such language today, with several free and commercial implementations available. The language has been used for theorem proving, expert systems, term rewriting, type systems, and automated planning, as well as its original intended field of use, natural language processing. Modern Prolog environments support the creation of graphical user interfaces, as well as administrative and networked applications.
  • 37
    Julia

    Julia

    Julia

    Julia was designed from the beginning for high performance. Julia programs compile to efficient native code for multiple platforms via LLVM. Julia uses multiple dispatch as a paradigm, making it easy to express many object-oriented and functional programming patterns. The talk on the Unreasonable Effectiveness of Multiple Dispatch explains why it works so well. Julia is dynamically typed, feels like a scripting language, and has good support for interactive use. Julia provides asynchronous I/O, metaprogramming, debugging, logging, profiling, a package manager, and more. One can build entire Applications and Microservices in Julia. Julia is an open source project with over 1,000 contributors. It is made available under the MIT license.
    Starting Price: Free
  • 38
    GameMaker Language (GML)
    The GameMaker Language (also called simply GML) is the proprietary GameMaker scripting language. This language is structured to permit users to create their games in an intuitive and flexible way while offering all the power of any other major programming language. It is also the basis for GML Visual and can be used in conjunction with that if required. Each event has its own tab in the editor and you can add, edit, or remove code from them at any time (for more information on events see Object Events). The code itself must have a basic structure and can contain resource indices, variables, functions, expressions, keywords, etc. all of which are explained in the sections below. If you are a novice to programming or making the switch from GML Visual, it is recommended that you start with the page on basic code structure and then read through all the other pages in this section, testing code from each one within GameMaker itself.
    Starting Price: Free
  • 39
    Scala

    Scala

    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.
    Starting Price: Free
  • 40
    Mojo

    Mojo

    Modular

    Mojo 🔥 — a new programming language for all AI developers. Mojo combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI models. Write Python or scale all the way down to the metal. Program the multitude of low-level AI hardware. No C++ or CUDA required. Utilize the full power of the hardware, including multiple cores, vector units, and exotic accelerator units, with the world's most advanced compiler and heterogenous runtime. Achieve performance on par with C++ and CUDA without the complexity.
    Starting Price: Free
  • 41
    OCaml

    OCaml

    OCaml

    OCaml is a general-purpose, industrial-strength programming language with an emphasis on expressiveness and safety. OCaml’s powerful type system means more bugs are caught at compile time, and large, complex codebases are easier to maintain. This makes it a good language for running critical code. At the same time, sophisticated inference makes the type system unobtrusive, creating a smooth developer experience. One is a bytecode compiler which generates small, portable executables and is very fast. The other is a native code compiler that produces more efficient machine code; its performance matches the highest standards of modern compilers. OCaml has great support for the most popular editors. VS Code is recommended for beginners, and for power users there is deep integration with Vim and Emacs. OCaml has a rich and dynamic community and best-in-class tooling.
    Starting Price: Free
  • 42
    QML
    QML is a declarative language that allows user interfaces to be described in terms of their visual components and how they interact and relate with one another. It is a highly readable language that was designed to enable components to be interconnected in a dynamic manner, and it allows components to be easily reused and customized within a user interface. Using the QtQuick module, designers and developers can easily build fluid animated user interfaces in QML, and have the option of connecting these user interfaces to any back-end C++ libraries. QML is a user interface specification and programming language. It allows developers and designers alike to create highly performant, fluidly animated and visually appealing applications. QML offers a highly readable, declarative, JSON-like syntax with support for imperative JavaScript expressions combined with dynamic property bindings.
    Starting Price: Free
  • 43
    Cython

    Cython

    Cython

    Cython is an optimizing static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. Cython gives you the combined power of Python and C to let you write Python code that calls back and forth from and to C or C++ code natively at any point. Easily tune readable Python code into plain C performance by adding static type declarations, also in Python syntax. Use combined source code level debugging to find bugs in your Python, Cython, and C code. Interact efficiently with large data sets, e.g. using multi-dimensional NumPy arrays. Quickly build your applications within the large, mature, and widely used CPython ecosystem. The Cython language is a superset of the Python language that additionally supports calling C functions and declaring C types on variables and class attributes.
    Starting Price: Free
  • 44
    Objective-C

    Objective-C

    Objective-C

    Objective-C is the primary programming language you use when writing software for OS X and iOS. It’s a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime. Objective-C inherits the syntax, primitive types, and flow control statements of C and adds syntax for defining classes and methods. It also adds language-level support for object graph management and object literals while providing dynamic typing and binding, deferring many responsibilities until runtime. When building apps for OS X or iOS, you’ll spend most of your time working with objects. Those objects are instances of Objective-C classes, some of which are provided for you by Cocoa or Cocoa Touch and some of which you’ll write yourself.
  • 45
    D

    D

    D Language Foundation

    D is a general-purpose programming language with static typing, systems-level access, and C-like syntax. With the D Programming Language, write fast, read fast, and run fast. D is made possible through the hard work and dedication of many volunteers, with the coordination and outreach of the D Language Foundation, a 501(c)(3) non-profit organization. You can help further the development of the D language and help grow our community by supporting the Foundation. Discuss D on the forums, join the IRC channel, read our official Blog, or follow us on Twitter. Browse the wiki, where among other things you can find the high-level vision of the D Language Foundation. Refer to the language specification and the documentation of Phobos, D's standard library. The DMD manual tells you how to use the compiler. Read various articles to deepen your understanding.
    Starting Price: Free
  • 46
    JSON

    JSON

    JSON

    JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language. JSON is built on two structures: 1. A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array. 2. An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence. These are universal data structures. Virtually all modern programming languages support them in one form or another.
    Starting Price: Free
  • 47
    Ada

    Ada

    AdaCore

    Ada is a state-of-the-art programming language that development teams worldwide are using for critical software, from microkernels and small-footprint, real-time embedded systems to large-scale enterprise applications, and everything in between. Why use Ada? In short, because you want to write reliable and efficient code, with confidence that it works, and not waste time and effort in the process. Ada is unique among languages in how it helps you detect and eliminate bugs early in the software life cycle when they are least expensive to correct. And as evidenced by the many successfully fielded applications that need to meet a hard time or space constraints, Ada helps you build software that is reliable, safe, and secure without sacrificing performance. At the technical level, Ada has everything you might expect in a modern language. Concurrent programming features, including support for multicore.
  • 48
    WebAssembly

    WebAssembly

    WebAssembly

    WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications. The Wasm stack machine is designed to be encoded in a size- and load-time-efficient binary format. WebAssembly aims to execute at native speed by taking advantage of common hardware capabilities available on a wide range of platforms. WebAssembly describes a memory-safe, sandboxed execution environment that may even be implemented inside existing JavaScript virtual machines. When embedded in the web, WebAssembly will enforce the same-origin and permissions security policies of the browser. WebAssembly is designed to be pretty-printed in a textual format for debugging, testing, experimenting, optimizing, learning, teaching, and writing programs by hand. The textual format will be used when viewing the source of Wasm modules on the web.
    Starting Price: Free
  • 49
    Elm

    Elm

    Elm

    Elm uses type inference to detect corner cases and give friendly hints. NoRedInk switched to Elm about four years ago, and 300k+ lines later, they still have not had to scramble to fix a confusing runtime exception in production. The compiler guides you safely through your changes, ensuring confidence even through the most widereaching refactorings in unfamiliar codebases. Including your own, six months later. All Elm programs are written in the same pattern, eliminating doubt and lengthy discussions when deciding how to build new projects and making it easy to navigate old or foreign codebases. Elm has its own virtual DOM implementation, designed for simplicity and speed. All values are immutable in Elm, and the benchmarks show that this helps us generate particularly fast JavaScript code.
    Starting Price: Free
  • 50
    C

    C

    C

    C is a programming language created in 1972 which remains very important and widely used today. C is a general-purpose, imperative, procedural language. The C language can be used to develop a wide variety of different software and applications including operating systems, software applications, code compilers, databases, and more.