The Weirdest Language I've Ever Seen (I kinda love it...)

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 มิ.ย. 2024
  • Everything about Dreamberd is beautiful. Todepond is a legend for this. And somehow DAN ABRAMOV IS INVOLVED??! Legendary.
    FOLLOW TODEPOND ‪@TodePond‬
    Source
    github.com/TodePond/DreamBerd
    Check out my Twitch, Twitter, Discord more at t3.gg
    S/O Ph4se0n3 for the awesome edit 🙏
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 242

  • @ottergauze
    @ottergauze 12 วันที่ผ่านมา +188

    Satire aside, ending a statement with a question mark to print debug information honestly is so sick as an idea

    • @fionnlanghans
      @fionnlanghans 12 วันที่ผ่านมา +3

      var_dump()

    • @RenderingUser
      @RenderingUser 8 วันที่ผ่านมา +7

      atleast rust has debug macro
      question mark is for resolving return type errors

  • @kylescomments6033
    @kylescomments6033 12 วันที่ผ่านมา +236

    What says intuitive like realizing "union" is a keyword that defines a fUNctION

    • @thunder____
      @thunder____ 12 วันที่ผ่านมา +21

      Also futon

    • @graydhd8688
      @graydhd8688 12 วันที่ผ่านมา +11

      I'm a fan of funion

    • @SimplyWondering
      @SimplyWondering 8 วันที่ผ่านมา +1

      so is IO

    • @lowlevelcodingch
      @lowlevelcodingch 6 วันที่ผ่านมา +1

      "FUC" is also a valid lne

  • @jerondiovis6128
    @jerondiovis6128 12 วันที่ผ่านมา +157

    31:16 "delete fun" is a thing that some languages just do by default.

  • @keenoogodlike
    @keenoogodlike 12 วันที่ผ่านมา +77

    It's a top meme language. This language allow people to declare function "fuct".

    • @aDaily1222
      @aDaily1222 12 วันที่ผ่านมา

      or just fuc

    • @michawhite7613
      @michawhite7613 6 วันที่ผ่านมา +1

      also fucn

  • @avi7278
    @avi7278 12 วันที่ผ่านมา +219

    too many "duh"'s

    • @prashantjha73
      @prashantjha73 12 วันที่ผ่านมา +30

      he said 'duh' 58 times.
      duh!!!

    • @corewwwi
      @corewwwi 12 วันที่ผ่านมา +5

      [duh intensifies]

    • @akinoreh
      @akinoreh 12 วันที่ผ่านมา +14

      I suggest they change true == duh, and false == huh

    • @arstneio
      @arstneio 12 วันที่ผ่านมา +3

      @@prashantjha73duh i swear duh its so many more than duh 58 duh times duhhhhhhhhhh

    • @delusoire7125
      @delusoire7125 12 วันที่ผ่านมา

      Duh

  • @AvanaVana
    @AvanaVana 12 วันที่ผ่านมา +30

    16:00 I would make a habit of just using the keyword “unction” for all my functions, to heap blessings upon my code. This would also allow for some interesting usage of “on” as the function keyword before event handlers, “ui” before render functions in front end frameworks, and others…

  • @Fupicat
    @Fupicat 12 วันที่ผ่านมา +37

    I hate that I kinda like the significant whitespace for arithmetic. Also, for someone who's had to install and uninstall the gigabyte-big "Visual Studio Installer" multiple times just to get one or two things, the "DreamBerd installer installer" hits close to home!

  • @Daranix
    @Daranix 12 วันที่ผ่านมา +32

    I like the question mark as "What the f* is this" operator

  • @huyen6784
    @huyen6784 12 วันที่ผ่านมา +29

    Not enough "duh"'s

  • @thunder____
    @thunder____ 12 วันที่ผ่านมา +15

    Gd Theo, when did you become the funniest TH-camr?
    Also, thank you for voicing a clear and firm stance on the rights of queer people. This is a scary time for lots of people, particularly transgender people, and I know the opinion of one person isn't make or break, but by collectively standing together and affirming that queer people deserve the same rights and respect as anybody, we can make the world a better place and I appreciate you doing your part.

  • @hyperkiko
    @hyperkiko 12 วันที่ผ่านมา +56

    ah yes, todepond reaction video

  • @wlockuz4467
    @wlockuz4467 12 วันที่ผ่านมา +18

    Nobody:
    Me calling all my functions "funion" because I can

  • @bnjmn21
    @bnjmn21 12 วันที่ผ่านมา +10

    I love how the const const, const var, ..., is actually a thing in rust its just like this:
    let x: &mut str = ... //const const
    let x: & str = ... //const var
    let mut x: & str = ... //var const
    let mut x: &mut str = ... //var var

    • @avishjha4030
      @avishjha4030 12 วันที่ผ่านมา +6

      You mixed up the first 2:
      const const - let x: &str
      const var - let x: &mut str
      var const - let mut x: &str
      var var - let mut x: &mut str

    • @wetfloo
      @wetfloo 6 วันที่ผ่านมา +1

      it's a thing in C too with constant variables and pointers to mutable data and vice versa :з

  • @Interpause
    @Interpause วันที่ผ่านมา +3

    that const const const example was a mistake; now pi is permanently just 3 significant figures... that means we now need a pi2 with more significant figures....

  • @Tekay37
    @Tekay37 12 วันที่ผ่านมา +43

    4:30 don't you think, 👍should be the boolean "True" and 👎should be the boolean "False"? It would be so much more international!

    • @COArSe_D1RTxxx
      @COArSe_D1RTxxx 12 วันที่ผ่านมา

      In Brazil, a thumbs-up is equivalent to flipping someone off.

    • @tusharjain9701
      @tusharjain9701 12 วันที่ผ่านมา +4

      It's just variable declaration. You can do for False also. Even use 🤔 for maybe 😂

  • @limbo3545
    @limbo3545 12 วันที่ผ่านมา +5

    ngl some concepts are really interesting. Questionmark at the end, previous/next. I actually like that.

  • @kisaragi-hiu
    @kisaragi-hiu 12 วันที่ผ่านมา +9

    13:28 Common Lisp and Scheme (including Racket) and a bunch of other Lisps also have fractions. It's pretty nice.
    In Scheme and Racket, there is a distinction between exact and inexact numbers --- 1/3 is exact, and you can turn it into the floating point approximation with the function "exact->inexact" (as far as I remember).
    Racket's reference documentation about numbers is a pretty good read. An excerpt:
    "All numbers are complex numbers. Some of them are real numbers, and all of the real numbers that can be represented are also rational numbers, except for +inf.0 (positive infinity), +inf.f (single-precision variant, when enabled via `read-single-flonum`), -inf.0 (negative infinity), -inf.f (single-precision variant, when enabled), +nan.0 (not-a-number), and +nan.f (single-precision variant, when enabled). Among the rational numbers, some are integers, because `round` applied to the number produces the same number."

    • @slayvict
      @slayvict 12 วันที่ผ่านมา

      Also c# has decimal type, that allow precise fraction arithmetic

  • @priyanshshah6905
    @priyanshshah6905 12 วันที่ผ่านมา +10

    can someone give me a duh count

    • @avishjha4030
      @avishjha4030 12 วันที่ผ่านมา +2

      Someone replied above, saying 58.

  • @StickySli
    @StickySli 12 วันที่ผ่านมา +8

    const const const pi = 3.14!
    Nothing can change this!

    • @christopheriman4921
      @christopheriman4921 12 วันที่ผ่านมา +5

      delete pi!

    • @jessequartey
      @jessequartey 12 วันที่ผ่านมา

      😂😂😂

    • @Niki1A_
      @Niki1A_ วันที่ผ่านมา +1

      var var pi = 3.1415!!

  • @ReneHartmann
    @ReneHartmann 12 วันที่ผ่านมา +9

    As for 'when', Tcl has this feature in form of the 'watch' command.

  • @arogueotaku
    @arogueotaku 12 วันที่ผ่านมา +4

    I want the Theo "duh" sound byte as my morning alarm.

  • @kettenbach
    @kettenbach 12 วันที่ผ่านมา +6

    This was great! Got a really good laugh. Thanks 👍

  • @pablovaldes2397
    @pablovaldes2397 12 วันที่ผ่านมา +80

    brainrot language

    • @bloozy85
      @bloozy85 12 วันที่ผ่านมา +6

      const const const 3 = 3;
      3 = 3 // maybe?

    • @theunknown4834
      @theunknown4834 12 วันที่ผ่านมา +5

      @@bloozy85 Use ! not ; Now you got the opposite of what you want :O

    • @bloozy85
      @bloozy85 12 วันที่ผ่านมา

      @@theunknown4834 😂😂👍👍

    • @Nick12_45
      @Nick12_45 10 วันที่ผ่านมา

      @@theunknown4834 i mean it still works for negative priority

  • @shapelessed
    @shapelessed 12 วันที่ผ่านมา +4

    The question mark is actually a really nice feature... Just type a character instead of having to set up debuggers and connections and ehat not in your IDE...

  • @Kas-tle
    @Kas-tle 12 วันที่ผ่านมา +9

    Lol it’s literally just the language that guy proposed in his talk about making the worst language

  • @lengors7327
    @lengors7327 12 วันที่ผ่านมา +2

    Take a shot everytime Theo says "duh" or "obviously"

  • @patrickjreid
    @patrickjreid 12 วันที่ผ่านมา +1

    This looks so cool. I have honestly been wondering why we are sticking so closely with JS and why there isn't an evolution in front end language. we have 1000's of back end languages and 1 front end language.

  • @Seedwreck
    @Seedwreck 5 วันที่ผ่านมา +1

    "You could use their while instead"
    Uh
    Tail Call, recursion?

  • @gosnooky
    @gosnooky 12 วันที่ผ่านมา +4

    If I use DreamBerd Enterprise Edition, do I need to use 'whilst' instead of 'when'?

  • @orisphera
    @orisphera 4 วันที่ผ่านมา

    5:17 Maybe some count as follows: 0, 1, the next one should be 2, but I ran out of them, so there are 2
    In C/C++:
    int i = 0;
    while (cats >> cur) ++i;
    You can use the for loop for 1-based counting, too. However, the variable would be incremented once more. So, if you move the declaration outside the loop, you get
    int i;
    for (i = 1; i

  • @barneylaurance1865
    @barneylaurance1865 วันที่ผ่านมา +1

    One and a half bits isn't enough for a three-valued variable though. That would log2(3), approx 1.585 bits.

  • @cherubin7th
    @cherubin7th 12 วันที่ผ่านมา +5

    I am more hyped that a new Fortran is out!

  • @jefferyosei101
    @jefferyosei101 12 วันที่ผ่านมา +2

    This was so much fun to watch, Love it!

  • @miguelguthridge
    @miguelguthridge 6 วันที่ผ่านมา +1

    I wish the "don't skip this section" section wasn't skipped. It's very important.

    • @CrushedAsian255
      @CrushedAsian255 3 วันที่ผ่านมา

      ?

    • @CrushedAsian255
      @CrushedAsian255 3 วันที่ผ่านมา

      If it’s important make a PR and add more exclamation marks to the statement? Idk I haven’t read it either

  • @_tenshiro
    @_tenshiro 12 วันที่ผ่านมา +2

    My broccoli brain is now a balloon

  • @joshuathomasbird
    @joshuathomasbird 12 วันที่ผ่านมา +3

    constconstconst writes a value to blockchain lol

    • @TimeLemur6
      @TimeLemur6 10 วันที่ผ่านมา

      I thought that was const const const const?

  • @CodingPuff
    @CodingPuff 12 วันที่ผ่านมา +1

    How do you keep a straight face while reading this 😂

  • @RandomGeometryDashStuff
    @RandomGeometryDashStuff 12 วันที่ผ่านมา +2

    10:27 undefined is just property of window, you can do this: {const undefined='maybe';}

  • @zeocamo
    @zeocamo 12 วันที่ผ่านมา +1

    make a PR Theo, you got so many idea to make this a better language.

  • @abuzain859
    @abuzain859 10 ชั่วโมงที่ผ่านมา

    @t3dotgg I am using Next.js 14 with the app router. In my main layout file, I am fetching user data using a server component and then sharing that data with a client component. I have a context provider that passes this data to the context, allowing me to easily access the user data across all client components on different pages.
    However, I am facing an issue: while I can easily access the user data from the context in client components on all pages, I need to access this data in a few server components on other pages as well. How can I achieve this? Should I use cookies on the server side for this, or is there a better approach?

  • @godowskygodowsky1155
    @godowskygodowsky1155 วันที่ผ่านมา

    13:26 Wolfram Mathematica defaults to fractions until you pass to a numerical function.

  • @benscherer7256
    @benscherer7256 11 วันที่ผ่านมา

    Burp, please excuse my dear aunt sally
    Brackets > Parenthesis > exponents > mult/divide > add/substract
    The one thing i will never forget from 6th grade math class apparently.

  • @RadioactiveBluePlatypus
    @RadioactiveBluePlatypus 13 ชั่วโมงที่ผ่านมา

    Dude just casually threw 500 dollars at a charity on stream -unprompted- and I'm eternally thankful.
    Edit: actually very much prompted but whatever

  • @tempestalle
    @tempestalle 12 วันที่ผ่านมา +1

    why are they still using print(scores[0])!
    instead of just scores[0]?

  • @CTimmerman
    @CTimmerman 12 วันที่ผ่านมา +3

    Fuzzy keyword matching could be a thing.

  • @Anonymous-cw1hn
    @Anonymous-cw1hn 10 วันที่ผ่านมา

    I can already see developers pulling their hair and jumping out of the window..
    Imagine dream bird becoming as popular as JavaScript

  • @cerulity32k
    @cerulity32k 5 วันที่ผ่านมา

    5:59 Here's how I think about it: It's not indexing, the possible indices for the list are now -1, 0, 0.5, and 1. Like Lua!

  • @Zaro2008
    @Zaro2008 วันที่ผ่านมา

    The whole "const" and "var" idea is actually pretty good ngl

  • @huxleyleigh4856
    @huxleyleigh4856 18 ชั่วโมงที่ผ่านมา

    Ok but the programming language Uiua is totally different to C, JS and even DreamBerd it implements a bunch of nice things and is genuinely a really useful and fun language. (and it uses ? for debug)

  • @joselmedrano
    @joselmedrano 12 วันที่ผ่านมา

    Why is it that every time I search for web technologies on TH-cam that TH-cam insists on spamming with Theo's videos?

  • @goldie3238
    @goldie3238 2 วันที่ผ่านมา

    Parenthesis
    Exponent
    Multiplication
    Divison
    Addition
    Subtraction
    do not think multiplication comes before divison they are in the same step so for that you read left to right with the calculation of multiplication and division and the same is true for addition and subtraction, they are in the same step do left to right with the calculation.

  • @logalot
    @logalot 2 วันที่ผ่านมา

    yoo my logo shows up because i was the second biggest contributor!

  • @fotnite_
    @fotnite_ 2 วันที่ผ่านมา

    This language is very promising, but the interpreter needs to be Blazingly Fast to consider using it.

  • @johnsmith8981
    @johnsmith8981 10 วันที่ผ่านมา

    "loops are a complicated relic of archaic programming languages" reads a lot like "I don't want to spend the time to implement loops so deal with it" 🤣

  • @AndrewMcDonald-g6j
    @AndrewMcDonald-g6j วันที่ผ่านมา

    DreamBird: 🫴 Variable variables, 🫳 Float array indexes. 😂Lol
    PHP: Can someone explain the joke?😦

  • @yanivg.h.1942
    @yanivg.h.1942 6 วันที่ผ่านมา

    There was a mistake in the vid
    in js you can actually define undefined = 'mabye'
    That is why void 0 exists in js

  • @StickySli
    @StickySli 12 วันที่ผ่านมา

    I could see negative indents being useful for conditionals that with "maybe" keyword to write functions with multipurposes, like if the variable is not maybe, process the code block below including negative and positive indents, but if it is maybe, parse only the negative indents.

  • @SigmaTapion
    @SigmaTapion 12 วันที่ผ่านมา

    The exporting thing, isn't that actually sort of what Java now does where you can define who can inherit a class? Or something like that

  • @andrew_ray
    @andrew_ray 8 วันที่ผ่านมา

    13:27 Haskell has a boatload of built-in numeric types, including Rational (aka Ratio Integer), which is for "arbitrary-precision rational numbers." You can even have a Complex Rational without requiring any packages!

  • @tato-chip7612
    @tato-chip7612 12 วันที่ผ่านมา +1

    did you know the best april fools jokes are not done on april first?

  • @joe-robin
    @joe-robin 12 วันที่ผ่านมา

    I just saw the thumbnail.
    Did they think options are better

  • @sqivea
    @sqivea 12 วันที่ผ่านมา

    Thank you for the video, it's a funny concept although I doubt this language is going to be practical. It's true that it kinda challenges the way we got used to code but the thing is there are reasons why we do a lot of things the way we do them. For instance, there are reasons why no language allows you to define lifetime duration for a variable: no code ever runs consistently, there's no telling how long a specific procedure will take on different cpus/systems/machines, even during different runs on the same machine; and if some piece of your code is dependent on a variable with a specific lifetime duration it may work one time and fail another time in the most unpredictable ways.
    There are also a lot of features that look curious but make no real use, like the ability to redefine 5 and make it become 4. There is absolutely no use case when allowing that could do anything helpful but it definitely makes it easier to "shoot your leg with a -gun- cannon". And that can be said for a lot of other features of the language.
    Anyways thanks for bringing it up

  • @solonovamax
    @solonovamax 12 วันที่ผ่านมา +5

    major props for the donation at the end

  • @AAA-vq6lz
    @AAA-vq6lz 7 วันที่ผ่านมา

    14:59
    jshell> String hi = new String(new byte[]{'h', 'e', 'l', 'l', 'o'});
    hi ==> "hello"
    jshell> String hello = "hello";
    hello ==> "hello"
    jshell> hi == hello
    $3 ==> false

  • @eazystudio
    @eazystudio 12 วันที่ผ่านมา

    No way setting a 20s timer for a variable would go wrong 👀👀

  • @HeroOfHyla
    @HeroOfHyla 12 วันที่ผ่านมา

    In Godot, a const Dictionary is immutable, unlike a const Object. I don't _want_ immutability, I just want to prevent reassignment. The "const const" syntax from DreamBerd sounds like it would be great to have.

  • @fionnlanghans
    @fionnlanghans 12 วันที่ผ่านมา +1

    My programming language actually implements floating-point numbers as fractions (pgcl)

  • @lylyscuir
    @lylyscuir 12 วันที่ผ่านมา +2

    LISPs like Common Lisp, Racket, and Clojure have native rationals. 13:38

  • @varhar3296
    @varhar3296 7 วันที่ผ่านมา

    Great satire, lets learn from it, here's what i like:
    Declarations + but mixed var const is cursed, make use of numbers, so const3 instead of const const const, oh, and 'const' now means const2
    Functions + but not like this, let me assign const4 fn= function (const4 means its a part of the language now)
    Types + this helps support lexers, but allow it to restrict type, give me byte for int8 and Bigint for int300
    Time + sometimes the client has their clock wrong and it affects synchronization, so just fix it :)

  • @bearvarine
    @bearvarine 11 วันที่ผ่านมา

    It is hard to form a proper response to this language. But 'laughable' comes to mind.

  • @graydhd8688
    @graydhd8688 12 วันที่ผ่านมา +1

    TodePond is great, makes awesome videos

  • @Bit125_
    @Bit125_ 2 วันที่ผ่านมา

    would array[-2] get the last element?

  • @RoughB8
    @RoughB8 12 วันที่ผ่านมา

    7:20 The lifetime of objects sounds like fun unexpected behavior between 'lifetime ended' and GC cleanup. Or should the interpreter check the time for each line which would be absurd to do lol

  • @frankkuipers2024
    @frankkuipers2024 12 วันที่ผ่านมา

    Hey Theo, what equipment/software do you use beside the Shure sm7b for your audio?

  • @bibblebabl
    @bibblebabl 12 วันที่ผ่านมา +2

    58 min, seriously?

  • @jerondiovis6128
    @jerondiovis6128 12 วันที่ผ่านมา +14

    This kind of videos needs its own special tag in title.
    So those who don't need their daily dose of sarcasm won't waste time clicking on it.

    • @RoflMcCopter
      @RoflMcCopter 12 วันที่ผ่านมา +2

      It wouldn't be so bad if it wasn't so over the top. Sarcasm is fine, but it became annoying so quickly that I can't even finish the video lol

  • @ericgoldman7533
    @ericgoldman7533 12 วันที่ผ่านมา +1

    Am I the only one triggered by the file extension being ".db"? Maybe it's because I'm (partially) a dba 😂

    • @TimeLemur6
      @TimeLemur6 10 วันที่ผ่านมา

      DreamBerd 2.0; now SQLite compatible.

  • @ThomasWSmith-wm5xn
    @ThomasWSmith-wm5xn 12 วันที่ผ่านมา

    whoever owns this repo needs to be banished to the shadow realm.

  • @SnowTheParrot
    @SnowTheParrot 12 วันที่ผ่านมา +1

    Theo the fact that youre so obsessed with emogis as variables is wild. lol
    i mean i get that you like it. thats fine.
    but to say its "annoying" that a language doesnt support that is crazy.
    its a programimng language, youre not texting your bff lol
    love your content though, great video!

  • @NithinJune
    @NithinJune 12 วันที่ผ่านมา

    pov: you’re looking for the TodePond comment

  • @cerulity32k
    @cerulity32k 5 วันที่ผ่านมา

    You can also create a function using `union`...

  • @trshdev
    @trshdev 12 วันที่ผ่านมา

    I can see why there is no interpreter written for DreamBerd yet, haha.

  • @elagrion
    @elagrion 12 วันที่ผ่านมา

    In Swift you can actually use emojis as variable names. Any unicode goes: cyrilic, chineese, etc.

    • @elagrion
      @elagrion 12 วันที่ผ่านมา

      It can't start with numbers, though. Obviously ).

  • @vinesnts
    @vinesnts 11 วันที่ผ่านมา

    Did anyone count how many times he said "duh"?

  • @JayBlooBird
    @JayBlooBird 12 วันที่ผ่านมา

    “Duh” is starting to sound like a tick

  • @andrewkosenko2757
    @andrewkosenko2757 9 วันที่ผ่านมา

    Imagine adding let to the equation

  • @pawelparadysz
    @pawelparadysz 12 วันที่ผ่านมา

    speaking of programming languages, I still feel there's a language missing
    there's nothing like rust (statically checked) but garbage collected (and thus without all the semantics)
    Haskell is impractical, OCaml/F# have no typeclasses, Scala depends on JVM etc
    there should be something that hits the spot there

  • @benscherer7256
    @benscherer7256 11 วันที่ผ่านมา

    Swift actually supports emoji in variable and method names i believe

  • @sailingspearo1074
    @sailingspearo1074 12 วันที่ผ่านมา

    The new file tag seems a bit like Bamboo yaml spec "Document" tag... Its allready out there...

  • @RapLyricalVideos
    @RapLyricalVideos 11 วันที่ผ่านมา

    Theo nice you changed the title after you saw the comments? Lmao

  • @lilyzheng2322
    @lilyzheng2322 12 วันที่ผ่านมา

    everything is a string and a number

  • @sean_r
    @sean_r 12 วันที่ผ่านมา

    the language that all gameclam gamea are written in

  • @SimonHuggins
    @SimonHuggins 12 วันที่ผ่านมา

    Ah, is it back to being called DreamBerd again? Take a look at the version history for an extra laugh

  • @RandomGeometryDashStuff
    @RandomGeometryDashStuff 12 วันที่ผ่านมา +2

    13:28 python3 has fractions module

  • @Seedwreck
    @Seedwreck 5 วันที่ผ่านมา

    You literally can't code -3 indents on the root lmao

  • @opposite342
    @opposite342 12 วันที่ผ่านมา

    11:32 parentheses, exponents, multiplication, division, addition, subtraction

  • @rct999
    @rct999 12 วันที่ผ่านมา

    I have been designing my own language which has let/const for assignment and 'mut' for allowing mutation. It makes nothing but sense to me.

  • @opposite342
    @opposite342 12 วันที่ผ่านมา

    I know this vid is kind of a joke but var const makes so much sense.

  • @bjoern_eberhardt
    @bjoern_eberhardt 12 วันที่ผ่านมา

    Any substring of function works. But what about:
    SUB test: END SUB
    int main() {}
    public static void main(String[] args) {}
    both don't work

  • @addcoding8150
    @addcoding8150 12 วันที่ผ่านมา

    idk why you thought of javascript with the const const thing. Thats just how c works. I'm not joking.