racket VS TablaM

Compare racket vs TablaM and see what are their differences.

racket

The Racket repository (by racket)

TablaM

The practical relational programing language for data-oriented applications (by Tablam)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
racket TablaM
187 151
4,673 183
0.6% 4.4%
9.7 0.0
7 days ago over 1 year ago
Racket Rust
GNU General Public License v3.0 or later 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.

racket

Posts with mentions or reviews of racket. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-07.
  • Ask HN: Does anyone Lisp without Emacs?
    4 projects | news.ycombinator.com | 7 Nov 2023
    Racket (https://racket-lang.org) has an IDE (DrRacket) which isn't EMACS. ARC (which powers hacker news) is (was?) written in Racket.
  • Ask HN: What is the most suitable Scheme implementation to learn today?
    2 projects | news.ycombinator.com | 24 Aug 2023
    I'd checkout Racket: https://racket-lang.org/ It's got a nice UI for starting out and getting good error reporting. It's also well documented.
    2 projects | news.ycombinator.com | 24 Aug 2023
    I'd suggest Racket (https://racket-lang.org) which is a batteries-included language environment that includes scheme and has a lot of high-quality documentation.

    Guile (https://www.gnu.org/software/guile/) isn't quite as learner-focused but is another great choice.

  • What Programming Languages are Best for Kids?
    3 projects | /r/programming | 19 Aug 2023
    How did I get to the bottom of the page and not ONE person has recommended racket?
  • Racket Frustrates Me
    3 projects | news.ycombinator.com | 30 Jun 2023
    My info is a bit out of date, but I'll try to go through big block of concerns...

    > Do I want to iterate every 18 hours waiting for the pkgs.racket-lang.org build server to finish building my package? Then do it again because the build failed (my mistake, but now my users have to wait until later that week…)?

    ( https://pkgs.racket-lang.org/ is one way of sharing an open source package, through a public repository analogous to PyPI. There is a small delay upon uploading a new package/version, because the server builds the package, runs the package's tests, formats the package's documentation, etc.)

    I don't know why it would take 18 hours, and I don't see a bug report linked.

    Maybe the author was just doing a commit to their own random GitHub repo, without telling the Racket packages repository, and so waited for the packages repository to do a periodic scan of all third-party packages' random Git/Web sources for new versions? (I'd always go to the Racket package repo Web UI, and push a button of some kind there, and the new version would go through promptly.)

    > Do I want to worry about packaging and deploying Racket code or could I simply do the same in most other languages without any fuss? I tried packaging Racket in Nix, it did not go well.

    What didn't go well? Racket runs on a wide variety of systems. I once experimentally packaged it for plastic OpenWrt routers, and it was straightforward. https://www.neilvandyke.org/racket-openwrt/

    > Do I want to invest trust in a programming platform that considers umask of optional importance? https://github.com/racket/racket/issues/4511

    That was a helpful bug report, and looks like Matthew Flatt followed up on it promptly, and the bug report even got Matthias Felleisen's interest.

    Then, given Racket's emphasis on cross-platform and backward-compatibility, Matthew's decision to add the semantics support without breaking production for all of the existing users. That seems reasonable and predictable to me.

    > Do I want to force users to adopt an application written in a language that uses at the very least 122M resident memory on my workstation? Or do I consider Python or Guile which both use less than 10M?

    I don't know how the author is running their code, so this might be the best Racket can do with the code, or maybe...

    DrRacket (IDE) can run code with very heavy debugging instrumentation, and you can also do similar things from the command line.

    DrRacket also has a feature that limits memory usage to a specified amount, IIRC defaulting to 128MB, which is great for alerting programmers on workstations with multi-gigabytes of RAM that they might be doing something inefficient.

    Code can be run from source files (silently compiling/recompiling on demand and caching for later runs), from the compiled form, or into a more packaged form (which IIRC does some tree-shaking).

    What libraries you pull in can also mean surprises (e.g., I see a later comment by author in which they mention a third-party package having inappropriate dependencies).

    If you want to run in really tight memory, that will affect how you program, and will include an awareness of the garbage collector.

    But also, small executable size probably isn't a top priority for Racket.

    > Do I want to force users to package Racket which itself has no clear custody of its build inputs - can you produce a Racket tarball yourself that is exactly like the one on the release site? Who knows what’s in those tarballs!

    I suspect the author is talking here about what's now called "reproducible builds".

    > Do I want to invest in a community without a mechanism to apply community feedback constructively? RFCs?

    The author got Matthew Flatt and even Matthias Felleisen giving prompt attention to the bug report they linked.

    They'll find similar responsiveness on the mailing list.

    > Do I want to write 4x the code (in Racket) because I forgot my secret move was actually all the pypi packages that I took for granted in Python?

    Depends what you need to do. The normal case, with programmers who are performing at normal levels and with normal practices is just to using PyPI (or NPM, or Cargo, or whatever), and bang out a solution to a normal problem.

    But if you need to do something unusual, or you have programmers who are super-effective and can even judiciously bang out that reusable code as needed (better than the reused packages), then consider getting out of their way -- whether they just do it in Python or NodeJS, or they say this will go better in Racket, Rust, or something more exotic.

    > Do I want to wonder about what was meant by “contributions welcome” when most of the core racket codebases at best have a README, at worst have no contributor documentation?

    Documentation is one of Racket's strengths. From near the top of https://docs.racket-lang.org/ , see, for example, the document "Building, Distributing, and Contributing to Racket".

    > Do I want to invest in a platform where leadership is building Rombus a.k.a. Racket2 instead of focusing on making core Racket just that much better and easier to adopt? (see also: Future of Racket.)

    That's a good question. Racket is solid for production, has features that other languages still haven't discovered or done as well, and the author saw the prompt attention to their bug report. (The Rhombus thing has been going on much longer.)

    > Do I want to wait 10+ minutes for my package to build in CI because some other package maintainer decided to pull in racket or racket-doc (which pulls in the entire big Racket distribution)?

    Talk to the developer of that third-party package?

    > Do I want to ship multi-gigabyte docker images because of the above kitchen sink package?

    Talk to the developer of that third-party package, and there might be additional things you can do.

    > Do I want to deal with being blocked due to not understanding how to use the less understood features of racket such as continuations, syntax-parse/syntax-case macros, units/signatures? You’ll want to know about all these things to write effective Racket code.

    You'll need to understand first-class continuations to work on all the Racket internals as a compiler developer. But I don't recall ever seeing a non-internals use of that.

    For the syntax extension mechanisms, you can learn that as-needed and at your own pace, because it's for things that most languages can't do (and does it better than languages that can). And you can definitely learn them incrementally, and start with the higher-level forms, which might just do what you need.

    Units/signatures are ancient, and you probably don't need to use them. Just use the very nice module system (including submodules), and then decide whether you need more.

    > Do I want to add business risk by writing a product in Racket? Does anybody work as an industry Racket coder at all? Would I struggle to hire more talent?

    It's probably needless additional risk/unknown to use for business unless you have more or more people who are able to dig in and figure out technical stuff without Stack Overflow. (Though there are helpful forums, but you'll need to rise to the occasion more often.)

    And one of the the secret weapons of beloved fringe languages/platforms is that they attract those mythical "10x" programmers on basis of technical/aesthetic/community merits rather than employability, so there's more of them than there are great jobs using Racket...

    > Do I…. yeah there’s more but let’s move on ;)

    OK, skipping...

    > Where did the racket-money mailing list go?

    https://www.neilvandyke.org/racket-money/

    It's quiet most of the time, but picks up when a new person joins or there's a question/idea.

    > Or really all the production users? I only found one production user.

    There's more than that, including doing spectacular productivity and importance, but there's not many.

    One thing the author of the blog post might be realizing is that the Racket professors are generally super-capable, they support production users like most professors couldn't, they'll provide technical support to any random person around the world. They'd love more commercial uptake, but that's been far from their top priority.

  • Building a Programming Language in Twenty-Four Hours
    2 projects | news.ycombinator.com | 5 Jun 2023
    I think building a programming language (or DSL to be exact) for a problem is one the features of Racket [1]. I once watched a presentation by Dr Felleisen and got this idea.

    [1]: https://racket-lang.org/

  • Getting Started with Goblins
    2 projects | dev.to | 31 May 2023
    Before anything else, make sure you have DrRacket installed and the IDE opened. You will need to install Goblins by going to File > Package Manager and type "goblins" in the Package Source box and hit enter to install the library.
  • Discussion Thread
    2 projects | /r/neoliberal | 27 May 2023
  • Navigating the Github repository?
    2 projects | /r/Racket | 6 Apr 2023
    I'd like to read the source code for a procedure in rnrs/base-6 (to see how it handles inexact numbers), but I can't seem to find the appropriate file or directory at https://github.com/racket/racket. A Web search didn't turn up anything useful. Any ideas?
  • Tips for CS011 and CS10B?
    3 projects | /r/ucr | 30 Mar 2023
    https://racket-lang.org/ (Racket) is pretty cool for recursion (see: tail recursive) - it's also a functional language which is pretty cool.

TablaM

Posts with mentions or reviews of TablaM. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-14.
  • YC's Latest Request for Startups
    2 projects | news.ycombinator.com | 14 Feb 2024
    > Very curious if anyone knows how to pull this off.

    I work in this space (small/mid-size).

    The good news is that there are several "obvious" ways to pull this off because an ERP is the culmination of everything a company needs and does. So almost anything you can imagine on the software is part of it.

    The bad news, and the reason everyone wants a solution, is that is truly a big space, and then you need E.V.E.R.Y.T.H.I.N.G.

    ---

    My take is to start from the bottom, and build a much better version of Access/FoxPro (https://tablam.org).

    Any medium/big ERP end being a specialized computing platform that needs:

    - A programming language

    - A database engine

    - An orchestration engine

    - ELT engine

    - Auth

    - UI/Report builders

    And to be clear: NONE of the "programming language", "database engine", etc are a good fit today.

    NONE.

    This is the big thing, This is the reason (from a tech POW only) that most attempts fail.

    This is the secret of why Cobol rule(d): Is all of this! but is too old! (also, this is why SQL still is best: Is almost this).

    ---

    So, to pull this off, you need a team that knows what is "missing" from our current tools, makes a well-integrated package, and adds a "user-friendly" interface in a way that is palatable for the kind of user that uses excel (powerfully).

    Is not that impossible. FoxPro was the best example of this kind of integrated solution.

    P.D: This is my life's dream, to make this truth!

  • Ask HN: Looking for a project to volunteer on? (February 2024)
    15 projects | news.ycombinator.com | 1 Feb 2024
    SEEKING VOLUNTEERS: TablaM relational language (https://tablam.org)

    TablaM is an in-progress programming language to provide a more ergonomic experience for building data-oriented applications.

    This means that where most languages are focused on low-level details or engineering at large, TablaM is tailored with some small & big design decisions to make it enjoyable to write applications for e-commerce, finance, ERPs, and similar.

    Cool things:

    - TablaM marry the array + relational models. It means we should get very little need for manual loops and all the ops are vectorized.

    15 projects | news.ycombinator.com | 1 Feb 2024
  • What if an SQL Statement Returned a Database?
    4 projects | news.ycombinator.com | 12 Dec 2023
    Yeah, I worked on https://tablam.org and https://spacetimedb.com.

    It becomes pretty clear that `order` is a significant property to make useful (and performant!) programs. "Duplicates" is also required to make usefull programs.

    One nonobvious reason for this: You wanna report that a `customer` has a duplicated key `1`. If you CAN'T model `[(customer.id = 1), (customer.id = 1)]` then you can't report errors! And `erroneous` data is VITAL to make useful programs because then the only possibility is "perfect" data, and that is not possible!

    Another reason is that we want to `count` duplicates, to see `duplicates`, and other NON-obvious at first: "What is a duplicate?". Get fun with floats, Unicode, combining case and non-case sensitive input... and is obvious that for useful programs IS REQUIRED to support bags in an extended version of the relational model.

    And yet...

    IS very important to remember about `set semantics` and try to adhere to it when makes sense. Your query planner will like it. You "valid" constraints like it. And `unique index` like it. And so on...

  • If you were dictator of the world what would you force programmers to write in?
    2 projects | /r/ProgrammingLanguages | 10 Dec 2023
    Finally, for app development, I will "suggest" everyone use my lang https://tablam.org!
  • There are no strings on me
    2 projects | news.ycombinator.com | 25 Nov 2023
    This is moe interesting than it looks, probably because the best part (IMHO) is about the type system, that is what enables the other ideas.

    > In Julia, types are first-class and every value has a type

    This is what I do from the start in https://tablam.org and only later found that is not common! Is so intuitive this way and simpler to check, by a lot. In fact, I waste so much time adapting type inference algorithms that are hard to translate because for some reason graphs are imposed on trees, types are second-class and live at a distance (and erased) and all is a mess this way.

    The relational model already makes this so simple: `project / rename / extend` relational operators cover you.

    From this other facilities become possible. Note how in `SQL` you don't have functions as first-class per se, but now try to imagine that a function is a table and suddenly, is much better!

  • Ask HN: Show me your half baked project
    163 projects | news.ycombinator.com | 12 Oct 2023
    My relational lang (https://tablam.org) that I wish to be a Excel + Access replacement is still half-backed.

    I move it slowly in my personal computer but not much in public. Maybe adding another person will help me on that!

  • Ask HN: Why did Visual Basic die?
    7 projects | news.ycombinator.com | 11 Sep 2023
    > what is a good alternative to Access (or Fox, I add)

    Nothing.

    Access is(was) in fact a worse alternative to Fox:

    - Much worse DB engine, and that is saying a lot (FoxPro db can and get corrupted. A typical functionality that was added to any fox codebase was a utility to fix it)

    - MUCH MUCH worse programming language (VB) that is neither good as-is, much less as a data-programing language.

    Fox/dbase is the only data-oriented language that was relatively popular and fit for the use-case.

    This is by a mile the main point: Is a desert looking for languages that are made for business app/data oriented programing (and much harder looking for something not weird).

    The main options: Fox/dBase/Informix(? not remember), kdb+, Cobol, SQL(when extended as store procedure lang with loops and that)

    --

    This point is big. Having a good form builder (that is already rare) is not enough to be a real contender for this space. You need a language where making queries is truly nice.

    In short, you need a language that is `LINQ/Relational` as first-class end-to-end.

    - If this lang needs an ORM: FAIL.

    - If this lang needs to compose strings to make a query: FAIL.

    - If exist "impedance mismatch" between data manipulation/queries and the rest of the lang: FAIL.

    - It should also support super-advanced types like date, decimal, currency and ideally dimensional units. Ideally algebraic types as today.

    - It should have a version of Rust `serve, Into/From` for easy conversion between data + formats.

    - It should look "normal" like python/swift with `LINQ` queries.

    This is the lang I trying to build: https://tablam.org

  • SQLite 3.43.0 Released
    5 projects | news.ycombinator.com | 24 Aug 2023
    > I asked was about querying data without ever using a SQL language, like tapping directly into the data.

    I agree (making https://tablam.org to try a fix & working on https://github.com/clockworklabs/SpacetimeDB in the SQL conformance).

    Before I think SQL was bad. *Now I'm certain*. SQL is absurdly massive for things that could have collapse all the features 10x or more.

    However, working in an RDBM now I also understand why is not desirable to make "raw" calls to the DB: The engine MUST mediate all the calls to make things works (from query optimization, execution, iteration, lock management, transaction management, etc).

    Is incredible how much sophistication is in a simple `SELECT * FROM table`.

    What I wish is to build a `Wasm-like` IR so that is what anybody target, and `SQL` is not the mediator.

  • How to start learning a systems language
    7 projects | /r/rust | 17 May 2023
    In my case each lang I have learned (+12) I start coding a mini-ORM. I have done the same so many times, and that is a good way to learn from me. Also, I have to learn Rust building https://tablam.org.

What are some alternatives?

When comparing racket and TablaM you can also consider the following projects:

Visual Studio Code - Visual Studio Code

clojure - The Clojure programming language

nannou - A Creative Coding Framework for Rust.

antlr-tsql

babashka - Native, fast starting Clojure interpreter for scripting

coalton - Coalton is an efficient, statically typed functional programming language that supercharges Common Lisp.

NewPipe - A fork of NewPipe with SponsorBlock functionality.

guide.elm-lang.org - My book introducing you to Elm!

BQN - An APL-like programming language. Self-hosted!

.NET Runtime - .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

Sourcetrail - Sourcetrail - free and open-source interactive source explorer

wizer - The WebAssembly Pre-Initializer