Forscape VS The-Spiral-Language

Compare Forscape vs The-Spiral-Language and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
Forscape The-Spiral-Language
20 33
54 903
- -
5.3 9.6
7 months ago 4 days ago
C++ Python
MIT License Mozilla Public License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Forscape

Posts with mentions or reviews of Forscape. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-01.
  • Why Wolfram uses square brackets for function calls
    1 project | /r/ProgrammingLanguages | 14 Jul 2023
    And if you like mathematical languages, you should check out Forscape :)
  • What's the best way to get my language stress tested?
    2 projects | /r/ProgrammingLanguages | 1 May 2023
    You can use the free GitHub runners to execute regression tests on Linux, Windows, and Mac. I recommend testing with 32bit compilation as well as 64bit- it has a way of smoking out bugs. You could take a look at the GitHub actions on my Forscape repo in the .github folder, although it's probably not the most idiomatic runner scripting, but it is a C++ project like yours.
  • Word Processor from scratch WYSIWYG with Web Assembly
    1 project | /r/cpp_questions | 13 Feb 2023
    When I was developing a typesetting text editor for Forscape, I struggled to get traction until stumbling on the following plan: 1) Implement the document data structure and get it rendering to the screen 2) Support non-mutating interactions, such as clicking to move the text cursor, selecting, copying, etcetera 3) Support mutating interactions, such as keyboard input, deleting, and pasting. You'll probably use the Command pattern to support undo/redo of mutations
  • Which phases/stages does your programming language use?
    5 projects | /r/ProgrammingLanguages | 5 Feb 2023
    The project is Forscape, although the language part is made a bit complicated because a goal of the project is creating an editor that supports typeset code with IDE interaction
  • [Weekly] What is everybody working on? Share your progress, discoveries, tips and tricks!
    2 projects | /r/QtFramework | 25 Dec 2022
    Finally adding multi-file support to Forscape. The frontend UI aspects are completed and I'm quite happy with the result. The app is Unicode heavy and QString's UTF-16 encoding is an annoyance; I would much prefer if Qt relied on std::string even. But the signal/slot mechanism lets you achieve some complicated behaviour with minimal complexity, and Qt looks great.
  • Build Qt Project w/GitHub Actions
    2 projects | /r/QtFramework | 3 Dec 2022
    Here's an example from a project. The first step installs Qt, the second step clones my repo on the runner, then a bit more setup with Conan, then building and running.
  • C++ Show and Tell - November 2022
    16 projects | /r/cpp | 1 Nov 2022
    I've been working on the Key CAS project (Imgur Screenshot), CAS being an acronym for Computer Algebra System, and "Key" a judiciously chosen title. This was my third time attempting CAS- this iteration was a huge improvement, but I still find it to be a damn hard problem. The GUI comes from the open source project Forscape, a scientific computing environment written in C++.
  • What Operators Do You WISH Programming Languages Had? [Discussion]
    4 projects | /r/ProgrammingLanguages | 21 Oct 2022
    It gets fun when you go beyond flat symbols and start supporting 2D notation, like fractions and matrices. Probably not worth the hassle for most things, but I think it makes matrix expressions more compact with better readability.
  • What Are You Working On? August 29, 2022
    1 project | /r/math | 29 Aug 2022
    I've been working on a mathematical programming language, Forscape. Currently it's entirely numerical, but I'm building a CAS separately which I hope to use in the language.
  • Forscape: what features are in your ideal scientific language?
    2 projects | /r/programming | 11 Aug 2022
    Forscape is a scientific computing language in development. It supports first-class matrices and common matrix operations. The language reached a milestone when it achieved similar performance to other prominent scientific langs on a computationally involved numerical problem from my graduate school years. At this point, I am unsure where the development should go next and I would appreciate advice. What do you find missing in scientific computing languages? What are essential features that you need/enjoy?

The-Spiral-Language

Posts with mentions or reviews of The-Spiral-Language. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-22.
  • Does This Language Exist?
    4 projects | /r/ProgrammingLanguages | 22 May 2023
    Try Spiral for a functional response to the system level programming demands. It has an F#, C, and a Python backend.
  • How do I get around the lack of MailboxProcessor in Fable?
    2 projects | /r/fsharp | 12 May 2023
    I did the language server for Spiral using Hopac. It involved turning the entirety of what would have been the sequential compilation pipeline into a promise stream.
  • Are there any good resources on reflection in Fable?
    2 projects | /r/fsharp | 24 Apr 2023
    Sigh, despite using F# for so long, I've always avoided tackling .NET reflection, but I know from experience (of programming in Spiral) that this is a perfect place to introduce these techniques. Type systems like F#'s really hit their limits when it comes to serializing data across platform and language boundaries, so this is The place to demonstrate the use such methods.
  • why isn't functional more popular?
    1 project | /r/fsharp | 1 Mar 2023
    But a language that support programming in a staged functional programming style, like my own Spiral would actually be very suitable for gamedev, I think more than C# itself. It has compiler guarantees for a lot of things that F# doesn't, and what in other languages would require metaprogramming is just regular programming in it.
  • Ask HN: How do I get the most benefit out of my programming language?
    3 projects | news.ycombinator.com | 14 Jan 2023
    I originally started work on [Spiral](https://github.com/mrakgr/The-Spiral-Language) back in late 2016 because I wanted a functional language in which I could program novel AI hardware that hadn't existed at the time, and still doesn't, but it won't be long before it arrives. It took 3 years of full time work to get it to its current standard of quality, and I'd really feel comfortable programming new hardware devices in my favored functional style. I've designed Spiral so it is both extremely powerful, easy to use while being efficient enough to program devices like GPUs that can't even use heap allocation for their objects.

    I am not really concerned about what I'll do when I get access to Tenstorrent chips in six months; my personal needs for the language are met. But I would like it if I could spread the language more broadly, make it useful for people other than myself and get people to sponsor my work on it.

    Here is the value proposition of Spiral.

    It is a high-level functional PL that has some features that other languages don't, but that isn't really the point. On mainstream devices like the x86 ones there are a lot of programming languages that are good, and it would be tedious to use Spiral to compile to such platforms compared to using such languages directly. It is a bit how ReasonML compiles to JS. Back when I tried it I found using Typescript easier to deal with. So that is not where I'd like to go into, though using Spiral would have benefits in certain areas.

    Rather, while reading the [CNX blog](https://www.cnx-software.com/) I realized that while consumer facing AI chips are not here yet, there is a lot of hardware development in the embedded space. They are heterogenous architecture. They have GPU and TPUs in addition to CPUs. And these cross platform interactions within the same system is something that existing languages are really poor at tackling.

    If you look at Python or C#, for example, you can't really program the GPU on them directly. They are CPU focused, and don't have the right semantics and would be too inefficient to program devices like GPUs directly. The way I've designed Spiral is that you can program the CPU and the GPU and whatever else from within the same language.

    It is not suitable for just GPUs, check this [demo out](https://github.com/mrakgr/PIM-Programming-In-Spiral-UPMEM-Demo). I recently did a backend for UPMEM devices, which are the first commercialized Process-In-Memory chips. I've posted the link to this on HN yesterday and on the Reddit embedded sub, but I got zero interest. And this is really a pity because that map kernel I've demoed is actually a big deal. Back when I first started working on Spiral, it took me 1.5 years of full time work to get to the point where I could write a program like that in the language. And without backend nesting of the kind that Spiral offers, it is impossible to write those kinds of programs no matter how skilled one is as a programmer.

    The kind of backend nesting I've demonstrated is not something you can do in F#, Python or any of the languages that I know of. I could easily create such backends for many kinds of hardware. And people would benefit from that because unlike the mainstream computing devices, the hardware coming down the pipeline will have poor language support, nothing on the level of what Spiral offers. For the kinds of heterogeneous architectures I am envisioning, the language designs that are good in the CPU-dominant era, will simply not be suited in the heterogeneous era.

    I need chances to demonstrate how good Spiral is, but I am not sure how to get them. If I do not get them, the future of computing will be a lot worse off. I wasn't there when Cuda was incumbent so I missed the boat on that, but I'd like it if Spiral became dominant on future computing devices. Not because I was the one who made the language, but simply because no other design is as suited for them.

  • PIM (Processing-In-Memory) Course
    1 project | /r/ProgrammingLanguages | 14 Dec 2022
    I am not shameless enough to plug Spiral in the main post, but if you are a PIM company or an user of them and want better PL support and tooling, get in touch with me. I'd love to get a chance to play with them.
  • September 2022 monthly "What are you working on?" thread
    10 projects | /r/ProgrammingLanguages | 1 Sep 2022
    Two months ago I did a ref counted C backend for Spiral so I might as well plug it now. Since then I've gotten tired of 3d art, and decided to just start writing Heaven's Key.
  • Callbacks without closures?
    1 project | /r/ProgrammingLanguages | 20 Aug 2022
    I just happened to notice that Spiral has a C code generator now. Maybe you can just use that since it's designed with staging in mind and avoiding heap allocation.
  • Multistage Programming / First Class runtime compiler support
    6 projects | /r/ProgrammingLanguages | 19 Aug 2022
    Spiral
  • Are there examples of programming language compilers that evaluate the side-effect free parts of the program at compile-time?
    2 projects | /r/ProgrammingLanguages | 14 Aug 2022
    Another term to search for is partial evaluation. An interesting language that by default evaluates everything at compile time is Spiral, developed by someone frequenting this subreddit.

What are some alternatives?

When comparing Forscape and The-Spiral-Language you can also consider the following projects:

xvm - Ecstasy and XVM

lust - A fast, auto-optimizing image server designed for high throughput and caching; Now that is hot.

schmu - A WIP programming language inspired by ML and powered by LLVM

kuroko - Dialect of Python with explicit variable declaration and block scoping, with a lightweight and easy-to-embed bytecode compiler and interpreter.

boba - A general purpose statically-typed concatenative programming language.

gaiman - Gaiman: Text based game engine and programming language

awesome-low-level-programming-languages - A curated list of low level programming languages (i.e. suitable for OS and game programming)

exp-flow - experimental rule-based programming formalism under construction [Moved to: https://github.com/contrast-zone/canon]

Argon - Argon programming language

cish - Go + Generics + Sum Types

Vale - Compiler for the Vale programming language - http://vale.dev/