From the site:

We have entered a world in which we need to do more with less. If you, like us, have frowned at the difficulty and inefficiency of creating software, and wondered if there is a better way, Meta is for you. It is a descendant of the acclaimed REBOL and Logo computer languages. Logo was designed in academia to teach programming in a simple yet powerful way. It is widely used in education and influenced many newer systems and languages. REBOL extended this concept to professional programming. It was invented by Carl Sassenrath, the chief software designer of the famous Amiga computer, the first consumer multimedia system. Meta takes the next step by combining this design with the virtues of the C programming language, which has been the standard for software interoperability and performance for half a century.

meta-lang-examples (GitHub)

Try online (“console”)

  • porgamrer@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    2 months ago

    REBOL is one of my biggest blind spots in programming language familiarity. I remember there was another REBOL revival project called RED, which always boasted huge feature sets with small amounts of code, though I never got around to investigating those claims myself.

    This project seems to aim to provide strong foundations for a more performant compiler, but still lacks the most powerful REBOL features. I wonder if anyone can summarise those features? In particular, is there anything fundamental that distinguishes REBOL from Lisp, Smalltalk, Ruby, etc?

    • hardkorebob@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      2 months ago

      Also to be fully homoiconic, Meta needs to be able to manipulate its own code. Currently, that is done by REBOL 3. REBOL is homoiconic, and Meta is currently a REBOL 3 format. It will take a lot more to enable Meta to handle its own code, so that will take time. Even though REBOL and Red are homoiconic, they’re not implemented in themselves. REBOL has a C interpreter and Red a Red/System interpreter. Meta is two to three orders of magnitude faster and designed to be able to implement itself eventually.

    • hardkorebob@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      2 months ago

      Red/REBOL are a data format first. Many native data types. Lisp uses Fexpr and Red use a basic token. Each character!

      Originally Posted on Hacker News by 9214

      Red (and Rebol) are based on research in denotational semantics that Carl Sassenrath did. I’ll try to briefly explain the main points.

      Everything starts with a UTF-8 encoded string. Each valid token in this string is converted to an internal data representation - a boxed structure 4 machine pointers in size, called a value slot or sometimes a cell.

      Value slot is composed of a header and a payload. Header contains various flags and datatype ID, payload specifies exact content of the value. If content doesn’t fit in one value slot, then payload contains a pointer to an external buffer (an array of value slots, bytes, or other units + offset and start/end addresses IIRC) with extra data.

      So, lexer converts string representation to a tree of value slots (this phase is called loading), which is essentially a concrete syntax tree (CST) — this is the crux of homoiconicity.

      https://github.com/red/red/wiki/[DOC]-How-Red-works,-a-brief-explanation

      https://github.com/red/red/wiki/[DOC]-Guru-Meditations#contexts-and-binding

      https://github.com/red/red/wiki/[DOC]-Function-Evaluation

      Who cares if creators cant name things great. Forget names lets use and improve technology.

  • John@mastodon.social
    link
    fedilink
    arrow-up
    0
    ·
    2 months ago

    @armchair_progamer

    Awful naming. Forgetting the fortune 500 company you’re already thinking of, there’s already a Meta Lang, abbreviated to ML.

    Besides that, does it have any ‘meta’ features? E.g. Homoiconicity?

    • unexposedhazard@discuss.tchncs.de
      link
      fedilink
      arrow-up
      0
      ·
      2 months ago

      Omg im gonna fuking rage if i see any more of these horrible names. Ever had to search for something, yeah?

      Its impossible to find anything about a topic if your keyword is something like meta, signal, element, matrix, session, rust.

      • hardkorebob@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        2 months ago

        Fukin rage somewhere else. What is it with anger and programming? What in the flying hell is up with most of you keyboard junkies?

        • unexposedhazard@discuss.tchncs.de
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          2 months ago

          Way to admit that you have never done anything productive with a computer in your life.

          This is a post about programming in a community about programming. Anybody that ever did any programming, knows how important searchability is.

          • hardkorebob@programming.dev
            link
            fedilink
            arrow-up
            0
            ·
            edit-2
            2 months ago

            That makes no sense. Wth is up with all y’alls biased minds? LOL I admit I never done anything productive in my life. Are you feeling better that I agree with your so keen wise insight on my life’s work, history and activities? Interesting skill you have. You are wasting it replying to me. You could be making $$$ helping companies with that mighty skill of keen life reading ability. Very impressive!

            PS: If programmers can’t find shit and complain then unlabel yourself as one. I never claimed to be one anyways smartalec.

            • Lmaydev@programming.dev
              link
              fedilink
              arrow-up
              0
              ·
              2 months ago

              This comment really doesn’t make sense.

              They explained the issue. Using a generic name makes it difficult to get good search results.

              It’s a pain in the ass that almost all developers will have faced.

        • wahming@monyet.cc
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 months ago

          It’s extremely ironic how this comment displays the most anger in the entire post

  • kakes@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    2 months ago

    For anyone curious, FizzBuzz:

    Meta [
    	Title:   {Fizz Buzz math "game"}
    	Author:  "Kaj de Vos"
    	Rights:  "Copyright (c) 2021,2022 Kaj de Vos"
    	License: {
    		PD/CC0
    		http://creativecommons.org/publicdomain/zero/1.0/
    	}
    	Notes: {
    		https://en.wikipedia.org/wiki/Fizz_buzz
    		https://wiki.c2.com/?FizzBuzzTest
    		https://www.rosettacode.org/wiki/FizzBuzz
    	}
    ]
    
    For counter 100 [                                   ; Count to 100
        Third?: unless modulo counter 3 [write "Fizz"]  ; Display "Fizz" every third count; remember whether we did
    
        Any [
            unless modulo counter 5 [write "Buzz"]      ; Display "Buzz" every fifth count
            third?                                      ; Remember earlier result
            write counter                               ; Display the number if not third or fifth
        ]
        Write " "                                       ; Separate the displayed items
    ]
    Write new-line                                      ; Return the text cursor to the start of the line
    
  • YIj54yALOJxEsY20eU@lemm.ee
    link
    fedilink
    arrow-up
    0
    ·
    2 months ago

    People think its a joke when we say us developers are terrible at naming things.

    Theres this phenomenal automation app on android called “automate”. Searching for anything marginally related is a PIA.