A Brief Introduction to Esoteric Programming Languages

Поделиться
HTML-код
  • Опубликовано: 29 ноя 2024

Комментарии • 528

  • @hillelwayne3236
    @hillelwayne3236  3 года назад +213

    FAQ
    > Where's Malbolge?
    Malbolge is a very interesting esolang, with the goal of being "as hard as possible to write programs in." I left it out because I couldn't figure out how to cover it well. It makes a brief cameo at 0:59 (lower-left), and I say a bit about it at the companion site: hillelwayne.com/talks/esolangs/#diversity
    > Is Game of Life an esolang?
    GoL is a special case of a **cellular automata**, which has been the model for several esolangs (esolangs.org/wiki/Cellular_automaton). GoL is Turing complete, but it's not really a *language*. It's more of a language substrate. You can use GoL to create OCTA metapixels, and then wires, and then spaceship signals, and then logic gates, and then circuits...
    ...29 billion GoL cells later, you get Tetris. codegolf.stackexchange.com/questions/11880/build-a-working-game-of-tetris-in-conways-game-of-life
    > Is HolyC an esolang?
    Yeah probs
    > Is Minecraft Redstone an esolang?
    Yes! A lot of games have mechanisms you can use to build programs *inside* the game. Redstone is a good example, as are Factorio circuits and Baba is You blocks. There's no collective term for this category; I personally call them "game-emergent languages".
    The big challenge with studying them is that, well, you have to have the game! I've already given Factorio hundreds of hours of my life, I can't afford to download Minecraft, even if it's for "research".
    > You mispronounced "Piet".
    Piet Mondrian was a Dutch artist, so I'm using the Dutch pronunciation of Piet ("Peet").
    > Where's the music from?
    Richard Whaling's instagram: instagram.com/p/BzVjW7LBv1K/.
    > Is that Ida Noyes?
    SCAV

    • @marly1017
      @marly1017 3 года назад +3

      SCAV

    • @Fr3AkFr3Ak
      @Fr3AkFr3Ak 3 года назад +1

      kkkkkk Man, I loved the video, it made me want to go back to programing, but the brightness is killing my eyes lkkkkkk

    • @Nerketur
      @Nerketur 3 года назад

      I was wondering if you'd showcase malboge.
      I've never attempted to program in it, but I've seen a few attempts to code golf with it.

    • @Eylrid
      @Eylrid 3 года назад +2

      "I've already given Factorio hundreds of hours of my life"
      Relatable

    • @killerbee.13
      @killerbee.13 3 года назад +1

      "I've already given Factorio hundreds of hours of my life"
      Ah, I remember when I was a Factorio newbie too. (Actually I have only a bit over a thousand hours in it so making this joke makes me a poseur lol)

  • @Badspot
    @Badspot 3 года назад +2766

    1:24 "I've only made one esolang in my entire life" "I'm not part of the community" I think you're vastly overestimating how many programming languages the average person creates.

    • @SimGunther
      @SimGunther 3 года назад +82

      I think we all overestimate how many languages people have made, let alone languages with complete implementations that are worthy of production use. Congrats to Hillel! One day I make it to the club with them...

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +343

      @@SimGunther > let alone languages with complete implementations that are worthy of production use.
      You are WAY overestimating my accomplishment, haha. It was a minor variant of Brainfuck I wrote as part of a cheeky FizzBuzz solution. Definitely not production usable :)

    • @rykehuss3435
      @rykehuss3435 3 года назад +11

      @@hillelwayne3236 Have you seen Ben Awad's video on FizzBuzz? Next level shit.

    • @andrewferguson6901
      @andrewferguson6901 3 года назад +55

      I've only forked a whole new language and regularly publish my research with high quality video slides. Dude you ARE the community, at least a solid part of it

    • @illyay1337
      @illyay1337 3 года назад +39

      I think creating one esolang and a youtube video on this subject definitely qualifies you to be in the community more than the 99% of us who have never done such a thing.

  • @oinkymomo
    @oinkymomo 3 года назад +1063

    my favorite esolang is babalang, a decently usable language based on the syntax of puzzle game baba is you

    • @centdemeern1
      @centdemeern1 3 года назад +38

      Rocketrace is win

    • @weighttan3675
      @weighttan3675 3 года назад +4

      Me!?

    • @malusmundus-9605
      @malusmundus-9605 3 года назад +5

      I have to try this now

    • @cammobox
      @cammobox 3 года назад +26

      I mean it’s logically complete so… yeah? I guess it COULD work? I need to see someone do it

    • @hstubbs3
      @hstubbs3 3 года назад +7

      Define babalang: [noun] notice; alert; caution; sign; warning; announcement; Tagalog / Filipino word.

  • @MultiCraftTube
    @MultiCraftTube 3 года назад +518

    At my first day of studying computer science at university, every new student got a bag with the name of an esolang written on it. They used it to asign us into introduction tutorial groups. It was the first time I heard of the strange concept of these languages. Mine was 'ArnoldC', a programming language completely consisting of Arnold Schwarzenegger quotes, coding in it is quite fun!

    • @irok1
      @irok1 3 года назад +2

      Dang

    • @MultiCraftTube
      @MultiCraftTube 3 года назад +25

      @@firephoenixgamers8590 RWTH Aachen, western Germany

    • @LoneWolf-wp9dn
      @LoneWolf-wp9dn 3 года назад +22

      What does "Get to the chopper!" do?

    • @baptistedelplanque8859
      @baptistedelplanque8859 3 года назад +21

      @@LoneWolf-wp9dn assign variable

    • @starbournehero771
      @starbournehero771 3 года назад +6

      @@baptistedelplanque8859 I'm literally laughing at how much sense that makes!

  • @TimwiTerby
    @TimwiTerby 3 года назад +549

    I am the original author of the “J and GolfScript suck all the fun out of golfing” post. I am not proud of it because I have since enjoyed golfing for reasons other than competing on character count. The posting was entirely borne out of a competitive mindset. I have since posted several answers in which I golfed in languages that are woefully unsuitable for golfing (mostly Unreadable). I would prefer to erase the posting from ever having existed, but I accept that it has historical value now.
    Amazing summary of the whole esolangs and codegolfing thing. Great video. Love it.

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +75

      I think, even if you're not proud of the post, it captures well what a *lot* of people were thinking at the time (and still are!) about golflangs. There's an alternate history where the CGCC collectively decided to ban them, and I think it could have happened. Ultimately the site went a different way. I imagine if it banned golfscript we'd have seen a "schism" in the golfing community, with different competing sites.

    • @rivenroyce9923
      @rivenroyce9923 3 года назад +17

      That post standing and then this comment as a marker to your growth is pretty cool

    • @mrosskne
      @mrosskne 3 года назад +2

      You were right.

    • @dIancaster
      @dIancaster 3 года назад +3

      No, I think you had a point. Golfing is fun in any language, and if you want to golf well, your only option is to use an esolang now.

    • @mrosskne
      @mrosskne 3 года назад +2

      @@rivenroyce9923 What growth? He was right the first time.

  • @MechanicalMooCow
    @MechanicalMooCow 3 года назад +316

    It's not lost on me that a person proficient in programming and music, who uses a esolang called Orca also has the surname Whaling.

    • @Lucaazade
      @Lucaazade 3 года назад +11

      His song also definitely sounded like a whale (my knowledge about this is limited to Finding Nemo)

    • @MeriaDuck
      @MeriaDuck 3 года назад +10

      The university pastor, in the nineties when my alma mater was still catholic, had the brilliant name John Hacking.
      Radboud universiteit Nijmegen, the Netherlands.

    • @CrystalLily1302
      @CrystalLily1302 3 года назад +3

      @@MeriaDuck Lol my boss at my coding job is named Jon Hacker

    • @ImXyper
      @ImXyper 3 года назад

      @@CrystalLily1302 suuure bro, defo real

    • @Dark_Peace
      @Dark_Peace 2 года назад +2

      @@CrystalLily1302 my Highschool music teacher's name was Mr Hoven. Almost Beethoven.
      One of my Latin teacher's first name was Virgile and french teacher's first name was François.

  • @HazhMcMoor
    @HazhMcMoor 3 года назад +140

    As soon as you talk about using any language for code golf I knew that there'd be someone who make a custom compiler solely to solve that single problem in a single byte. Turn out it's even better.

  • @purplenanite
    @purplenanite 3 года назад +191

    The performance of the shakespeare code must have been awesome

    • @hendrikd2113
      @hendrikd2113 3 года назад +111

      No, it had a polynomial runtime and used a lot of memory.

    • @Xarius
      @Xarius 3 года назад +21

      @@hendrikd2113 This comment is genius

    • @renerpho
      @renerpho 3 года назад +6

      @@hendrikd2113 You just broke me. Thanks!

  • @lesfreresdelaquote1176
    @lesfreresdelaquote1176 3 года назад +876

    Brainfuck is not only Turing Complete, it is actually a PURE Turing machine... Turing defined his machine exactly along these lines. Brainfuck only provides a smart short formalism to handle it.

    • @thiesenf
      @thiesenf 3 года назад +57

      Brqainfuck is a language that can be compiled in a compiler writtten in Brainfuck.

    • @W1ngSMC
      @W1ngSMC 3 года назад +160

      @@thiesenf Any language that is Turing Complete can do that.

    • @MagicGonads
      @MagicGonads 3 года назад +39

      It isn't quite a turing machine since the state is encoded as the linear strip when a turing machine doesn't have that linear restriction (such as it does not need a looping construct, it just has state transitions that exist in cycles)

    • @lesfreresdelaquote1176
      @lesfreresdelaquote1176 3 года назад +35

      @@MagicGonads You are absolutly right. However, translating a Brainfuck program in a Turing machine is quite straightforward...

    • @supernova5434
      @supernova5434 3 года назад +20

      ah yes, enslaved turing

  • @strafeae4618
    @strafeae4618 3 года назад +55

    As a math guy I think my favorite esolang has got to be Fractran, which uses a list of fractions and a single input as the entire program. You basically multiply by each fraction in the list until it no longer gives an integer, which becomes the final output. Very fun to play around with and try to figure things out

  • @satyrkrieg
    @satyrkrieg 3 года назад +69

    "Richard Whaling is an accomplished Orca programmer"

  • @eth3792
    @eth3792 3 года назад +48

    I've seen a few videos on esoteric languages recently but this was the first one that went into any depth on golfing languages. As a very active member of CGSE back in its heyday (PPCG anyone?), having created at least one golfing language and several more general esolangs myself, I really appreciate all the research that went into this video and I feel it was very well explained. It brings me such joy to see an old esoteric hobby of mine being given this type of attention :)

  • @thelegend8570
    @thelegend8570 3 года назад +204

    I really hope someone's made a chef program that calculates pi, with source code that also functions as a recipe for a pie.
    (EDIT): Make it a recipe for a raspberry pie, then run the program on a raspberry pi for bonus points.

    • @guerra_dos_bichos
      @guerra_dos_bichos 3 года назад +5

      Does the pie need to taste good?

    • @Intelwinsbigly
      @Intelwinsbigly 3 года назад +12

      @@guerra_dos_bichos ofc it does. Needs to be for a rhubarb pie.

    • @thelegend8570
      @thelegend8570 3 года назад +33

      @@guerra_dos_bichos Preferably, but I would be happy with just "reasonably edible".

    • @Clumsyoof
      @Clumsyoof 3 года назад +1

      Someone call Gorden Ramsey,I want him to bake and critique the pie recipe

  • @slmjkdbtl
    @slmjkdbtl 3 года назад +45

    golfscript is actually clean af, less computationally interesting but looks like a more accessible variant to guys like APL

  • @cmyk8964
    @cmyk8964 3 года назад +308

    18:00-ish: Actually, one Unicode character is most likely not 1 byte.
    In UTF-8, non-ASCII characters take more space the higher the character’s code point is. Æ takes 2 bytes to store, making “ÆP” 3 bytes long.
    The file size is worse in UTF-16 (every character is 2 bytes, unless the char code is U+10000 or larger, which makes it 4 bytes) or UTF-32 (every character is 4 bytes).

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +81

      Yup, that was the mistake I called out I made ~17:59. It's still two bytes, though, because it's not using unicode! From the companion:
      > I made two mistakes in the section on Jelly:
      > 1. In the talk I mistakenly said that it uses Unicode “to pack in more opcodes”. Most golfing challenges are scored on bytes, not characters, so a single two-byte Unicode character scores the same as two ASCII characters. Instead, Jelly uses a different encoding than ASCII pack in more useful characters. The byte 0000 0100 in ASCII is the End of Transmission signal, while in Jelly it’s ¥. Some golfing languages do use Unicode, but the main saving is in a better codepage.
      > 2. I said Æ was “is prime”, but it’s actually the prefix for 2-byte arithmetic functions. ÆP is “is prime”.
      So in the codepage they chose, Æ is still a single byte, and Dennis picked Æ because it was a good mnemonic for "arithmetic expressions".

    • @0LoneTech
      @0LoneTech 3 года назад +9

      Tongue in cheek pedantry: UTF-16 is not worse than UTF-8 if your characters are in the U+0800 to U+FFFF range (excluding U+D800 through U+DFFF). Those encode to three bytes in UTF-8 but two in UTF-16.

    • @chrisvinciguerra4128
      @chrisvinciguerra4128 3 года назад

      @@0LoneTech the beauty of UTF

    • @anidnmeno
      @anidnmeno 3 года назад +1

      OÆP got eem

    • @FlameRat_YehLon
      @FlameRat_YehLon 3 года назад +1

      If it involves tons of CJK characters, though, UTF-16 could be more space efficient than UTF-8, as most CJK characters could be stored using 2 bytes with UTF-16, but takes 3 bytes with UTF-8.
      While UTF-32 makes completely no sense yet since IIRC only codepoints up to 10FFFF was assigned at the moment.

  • @Gregzenegair
    @Gregzenegair 3 года назад +905

    My favorite esolang is Java, a pure Shakespirian language of beauty

  • @503unavailable
    @503unavailable 3 года назад +30

    This is genuinely the most entertaining Video i've seen in months, and I have close to no coding knowledge. The absurd quirks of code golfing are just hillarious to me

  • @abdulmasaiev9024
    @abdulmasaiev9024 3 года назад +128

    0 bytes? Pfah. It still needs an interpreter which is some bytes. I can do better. What you need is just memory registers, and in fact specifically for the "is this a prime" question just one memory register capable of storing 1 bit of information, and by that I mean a physical piece of hardware, and that's it, you're done. Let's see how it works:
    "Is 2 a prime number?" - the memory register stores either a value that corresponds to true or false. If it's true, then hey, neat, it answered okay. If it's not, no biggie, just give it some time. After a while some cosmic rays or quantum fluctuations or somesuch will hit the register and flip the bit, and then it'll be giving the correct answer. It works the same for non-primes, too, with the correct/incorrect being reversed. With the requirements for correctness and time being as lax as they are, this should actually be good enough.
    0 bytes for the program AND 0 bytes for the interpreter AND 0 bytes for the compiler.

    • @cobaltno51
      @cobaltno51 3 года назад +40

      it even gives the right solution to p=np if you observe the answer at the right time!

    • @elitebyte_
      @elitebyte_ 3 года назад +1

      @@cobaltno51 how

    • @cobaltno51
      @cobaltno51 3 года назад +19

      @@elitebyte_ lets say 1 in the memory register stands for p=np and 0 stands for p!=np. if one of those answers is true, the register will contain the right answer at some point in time, given that cosmic radiation will flip the register atleast once. if you happen to observe the register at the moment it contains the answer, you can observe it. of course causation and correlation differ in this case. seeing a truthy value in a random sequence may correlate with the answer 'true' to some question, but the question never caused said answer.

    • @markusklyver6277
      @markusklyver6277 3 года назад +1

      Technically that relies on the physical world to work.

    • @cobaltno51
      @cobaltno51 3 года назад +3

      @@markusklyver6277 so does every other program

  • @emielfy2988
    @emielfy2988 3 года назад +164

    I recently actually created my own esolang, and I'd like to introduce it to others, but I don't really know where to go with it. It definitely falls (imo) under the "computationally interesting" category

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +73

      The best place to start would be the esolangs wiki (esolangs.org/wiki/Main_Page), because that'll give you a public place to document and talk about it, as well as get feedback from others. There's some overlap between 19th Byte regulars and esolangs enthusiasts; I'm sure if you asked in the chat channel, some people would be up for private convos and feedback.
      I suspect there's an esolangs discord somewhere, but I'm an Old who is afraid of discords

    • @Bratjuuc
      @Bratjuuc 3 года назад +19

      Can you please post a link here, under your comment? I would like to take a look, and I bet that I'm not the only one

    • @h-Films
      @h-Films 2 года назад

      v

  • @Gunbudder
    @Gunbudder 3 года назад +16

    i LOVE perl code golfing. i still remember the most useful program i wrote in perl, and its while()split;chomp; (or something like that). it makes use of a ton of implicit features of perl to read input from stdin and remove all whitespace, then blast it out to stdout. i loved the idea of writing useful code that uses no variables and looks like nonsense

  • @RolandTheJabberwocky
    @RolandTheJabberwocky 3 года назад +4

    I love how someone literally just made a "Fuck you I always win" golf script.

  • @gasparliboreiro4572
    @gasparliboreiro4572 3 года назад +59

    I think conway's game of life could count as an esoteric lenguage

    • @FlameRat_YehLon
      @FlameRat_YehLon 3 года назад +8

      Then maybe so does Minecraft and The Powder Toy.

    • @gasparliboreiro4572
      @gasparliboreiro4572 3 года назад +6

      @@FlameRat_YehLon I like where this is going

    • @karolbomba6704
      @karolbomba6704 3 года назад +2

      @@FlameRat_YehLon tpt, a name I havent heard in ages...

    • @wfd87
      @wfd87 3 года назад +6

      @@gasparliboreiro4572 Life itself is the ultimate esoteric programming language

    • @carloselfrancos7205
      @carloselfrancos7205 2 года назад +3

      I don't think so, GoL would be more of a virtual universe where you could build and program Turing machines, which then could execute programs in various (yet highly complex) languages. There are programs, there are programming languages, there are machines that run those, and there is the universe in which machines are built - game of life is such universe.

  • @hahrhthuhrh3542
    @hahrhthuhrh3542 3 года назад +1

    I opened the video expecting an boring programming lecture but its actually an good humour presentation of one of the most interesting (and fun) subjects I've seen. I had no idea codegolfing was a thing and that Orca esolang is straight up mesmerizing

  • @mikaeels2691
    @mikaeels2691 3 года назад +5

    I've been messing around with Orca for a long time. I love music and programming so it really hit the spot for me

  • @em.1633
    @em.1633 3 года назад +84

    You need to rename this away from what sounds like a lecture upload from a community college class! This is way too good a vid! "Writing code with Shakespeare and cake recipes: an intro to esoteric programming languages"
    Also, the algorithim sent me here, so here's hoping you're gonna see a lot more traffic. This is great!!!

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +43

      So, while that's objectively a good idea, right now I'm hesitant because
      1. The title is pretty long already, and I want to keep it relatively close to the title on the slides
      2. (and this is the big one), I am DELIGHTED to know that it sounds like a boring lecture upload. I have a deep, deep fondness for that kind of sucker punch, where people are expecting something boring and are surprised when it's actually high quality. I know it's weird and kinda self-sabotaging; it just tickles the prankster in me.
      (This time it was unintentional, but I've also tried to play with that consciously too, like in this parody of clickfarm: www.hillelwayne.com/post/sudoku/)

    • @em.1633
      @em.1633 3 года назад +2

      @@hillelwayne3236 thanks for the response! can appreciate the sentiment, but I feel like that logic only works if you were a teacher, for example, with a captive audience. The thing about having a boring lecture title doesn't mean people get sucker punched, it means they don't click on it. I clicked on this thinking it was about *human* language, even, I couldn't tell from the title or photo that it was for people into computers at all.

    • @GDroidHacker
      @GDroidHacker 3 года назад

      When you said sucker punch, I thought of another RUclips channel with similar content: Sucker pinch. It's a similar lecture format, but his NES videos make me laugh every time!

  • @scmiller
    @scmiller 3 года назад +3

    I did not expect to actually watch the whole video. Good job!

  • @rmt3589
    @rmt3589 2 года назад +1

    This is amazing and life-changing! Thank you so much!

  • @pentelegomenon1175
    @pentelegomenon1175 3 года назад +65

    I think the code golfers complaining about golf-themed esolangs are just scared to acknowledge the obvious problem: if your challenges are too easily broken by comedic custom esolangs, then they are probably too simple. What if the challenge is to make a version of the game Sokoban, or a spreadsheet program? Then the people who try to break the challenge with custom esolangs might accidentally build a superior programming language.

    • @Miju001
      @Miju001 3 года назад +12

      MetaGolfScript still easily wins the golfing challenge in both cases, so that's not the issue. On the other hand, I think the problem of code golfing itself is somewhat ill-posed; and that adding outputs to the evaluation metric like the video mentions could be a step towards the solution

    • @Nerketur
      @Nerketur 3 года назад +5

      There's also the obvious issue (banned by the community) of creating a language specifically to solve a challenge in one byte. Like H, for example.
      Now, you have to use a language that existed before the challenge was created. If a newer version is made after the date of the challenge, by default it can't be used, but the older version still can.

    • @h-Films
      @h-Films 2 года назад

      @@Nerketur h

  • @MagicGonads
    @MagicGonads 3 года назад +24

    I think esolangs have a place in puzzle games quite often since they turn out to be turing complete (such as Opus Magnum, Baba Is You, 7 Billion Humans etc)

  • @Golem642
    @Golem642 3 года назад +2

    This is underrated, please make more content like this

  • @crides0
    @crides0 11 месяцев назад

    The Python program at around 14:09 can be simplified even further:
    1. you don't need a list comprehesion. you can use a generator comprehension, and when it's inside parentheses (from the function call), you don't need another pair of parentheses (so, remove the brackets, -2 bytes)
    2. you could use python truthiness, making `x!=1` into `x-1`, and `x%i!=0` into just `x%i` (-4 bytes)

  • @filker0
    @filker0 3 года назад +1

    I wrote an interpreter for a variable length coding that packs the most common operation as 1 bit, the 3 as 4 bits, the next 16 as 8 bits, and the other operations following a similar pattern. It was not an esolang, instead it was intended to create bitstring programs that would be executed by a very simple FPGA based soft processor that I never created. It was based on compression techniques.

  • @esotericsean
    @esotericsean 2 года назад +1

    This is right up my alley.

  • @trollbreeder2534
    @trollbreeder2534 3 года назад +8

    I made an esolang called Metastack where the program is made from an infinite line of stacks, wherein 2 of those stacks are special. (the command stack and the input stack)
    As the program is executed, it destroys itself. To loop it must copy from another stack. To conditionally jump it must swap the command stack with another stack. Yes, really.
    It traces its origins to Befunge which uses a stack to store data short-term, and i thought "what if we only had stacks to work with?"
    Its interpreter is made with ComputerCraft: Tweaked's integration of Lua.
    I haven't found an esolang that used a paradigm like this. If this is the first stack paradigm language (just like 2D paradigms of befunge), i'll be so happy.
    (i haven't proven it but i believe it may be turing complete according to esolang wiki on stacks)
    Reverse Cat
    î7?02=0÷i
    î6.?03=-21÷?04=0¶?08=-21÷\\
    ?333î5.*48
    ÿ
    ?333î5.*48
    î6.?03=-21÷?04=0¶
    î7?02=0÷i
    ?881\\

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +1

      You may be interested in forth: en.wikipedia.org/wiki/Forth_(programming_language)
      Re proving TC, my usual way to do that is to either write a brainfuck interpreter or a Tag System (buttondown.email/hillelwayne/archive/vim-is-turing-complete/), both of which are a lot easier to wrangle than a pure Turing machine simulation. In your case, simulating a 2-stack PDA (en.wikipedia.org/wiki/Pushdown_automaton) is enough to prove TC.

  • @Whelknarge
    @Whelknarge 3 года назад +4

    This is the conlanging of programming languages. Cool!

  • @noahthompson95
    @noahthompson95 3 года назад +1

    This showed up in my youtube recommended and was very interesting to watch! Great presentation, I had googled esolangs recently but didn't really understand much until I watched this video.

  • @JotakRTS
    @JotakRTS 3 года назад

    No idea how I got to this video as I am not a coder, but I found this marvellously interesting and fun to watch. Cheers! Love the video.

  • @MeriaDuck
    @MeriaDuck 3 года назад +14

    1:42 Intercal, at least the document, was quite brilliant; it was a parody on ALGOL68 which took itself quite seriously (for quite good reasons, ALGOL /ALGOL68 may be considered quite ahead of its time; but as a student and friend of the late C.H.A. Koster I'm probably biassed).
    Admittedly, Intercal is more than a bit horrific to work with and not as artistic as more contemporary esoteric languages. But in my opinion it had its place in history.

  • @-prisems
    @-prisems 2 года назад +1

    Amazing video!

  • @dabbopabblo
    @dabbopabblo 2 года назад +3

    this is an amazing video

  • @sirreginaldfishingtonxvii6149
    @sirreginaldfishingtonxvii6149 3 года назад +1

    I'm no programmer, I only ever dabbled a bit in visual programming, but this is good stuff.
    Thanks for the content!

  • @v0ldy54
    @v0ldy54 3 года назад +10

    18:19 even before seeing that I was asking myself what's the point of Golf Scrips, the beauty of CG should be to "exploit" every nook, cranny and trick of a programming language and come up with the shortest code within that language, a procedure that also has an educational purpose if you're learning a language, comparing different languages is pointless.

  • @orbismworldbuilding8428
    @orbismworldbuilding8428 3 года назад

    Ok now this is what I've been looking for, this is what I've been looking for all this time

  • @WarLordN1k
    @WarLordN1k 3 года назад +6

    love this and hope you got top marks for this

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +8

      Hah, thank you! It was actually a guest lecture for her class; I made a video because we had a 7 hour timezone difference and I didn't want to do a lecture at 2 AM

  • @bonehelm
    @bonehelm 2 года назад +2

    One of my favs is PuzzleScript which has a web based tool for building simple 2d puzzle games. I consider it an esolang but is pretty fun to mess around in.

    • @presauced
      @presauced Год назад

      Idk man, doesn't sound like it.

  • @mikaeels2691
    @mikaeels2691 3 года назад +25

    A geometry dash creator called Spu7nix made a programming language that would compile into GD triggers in a level. He used to make a Brainfuck interpreter inside the game. So would GD triggers also count as an esolang?

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +9

      Yes!

    • @dshifter7
      @dshifter7 3 года назад +6

      People have taken GD's Esolang of Triggers so far that they've made entire games inside Geometry Dash! Examples are Mastergame by Serponge (and a bunch of his other works), there's a Tic-Tac-Toe game with an AI in GD, an entire Rubik's Cube that is randomly scrambled that you can solves, etc. Given enough time and groups, anything can be made with GD Triggers!

  • @heroesnz200
    @heroesnz200 3 года назад +2

    15:27 "its more important to shave a byte than to run in our lifetimes"

  • @noobian458
    @noobian458 3 года назад

    This was intensely interesting to watch, very well done

  • @wolfboos
    @wolfboos 3 года назад

    I really liked this, truly makes you take a different look about what programming is.

  • @DeadCatX2
    @DeadCatX2 3 года назад +1

    Finding video game glitches is sometimes like a fancy Piet implementation. It can sometimes create full multimedia experiences with random colors and pixels and even sounds being generated as various processors attempt to interpret nonsense as instructions. Exploits then become intricate works of art. An easily searchable example on RUclips would be the Super Mario 3 Wrong Warp, but from the perspective of artwork, it is more interesting when things "go wrong", as that is when you get a cacophony of random sprites and gibberish pixels smeared all over the screen.

  • @likethebookshop
    @likethebookshop 3 года назад

    I don't know how the algorithm knew that this was my jam, but holy shit this was cool.

  • @haksell5462
    @haksell5462 2 года назад +1

    make more content! you're amazing.

  • @leonponce8437
    @leonponce8437 2 года назад

    This makes me wanna take your friend' "Psychology of Programming" class!

  • @narkash
    @narkash 3 года назад +9

    That's a violently American pronunciation of "Piet" you've got there.

  • @sebbes333
    @sebbes333 3 года назад +13

    *11:58** OWWWW!!!! My eyes!!! Fucking flash-bang!!!*
    (You could have had a gradient transition there! From black, through gray, to white, over like 10 seconds or so!)

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +8

      Noted for next time I make a video! Which will probably be in 2025. I have no idea how people manage to regularly make videos

  • @brazilian_orthodox
    @brazilian_orthodox 3 года назад +5

    You literally became the image of the community just by making the biggest video about it. Quality video-making content too!! Ur awesome keep it up!

  • @PerdroLuvas
    @PerdroLuvas 3 года назад

    Such a good video! Really got me into seeing how beautiful coding is. Hope you continue with the channel!

  • @kodirovsshik
    @kodirovsshik 3 года назад +1

    I would like to see you uploading more in future ngl, I enjoyed the video a lot

  • @xeridea
    @xeridea 3 года назад +4

    Fun fact. The game Conway's Game of Life is Turing complete.

    • @fussyboy2000
      @fussyboy2000 3 года назад

      There are implementations of Game of Life in Game of Life.

    • @xeridea
      @xeridea 3 года назад

      @@fussyboy2000 That's some next level stuff. I have written the game of life, and done small optimizations, but no where near what others have done. Also, the creations people have made with it are astounding, way above me to figure out.

  • @barmetler
    @barmetler 3 года назад +5

    One thing I don't understand about the FALSE program:
    After the line where the input is checked, we now have two copies of the same boolean on the stack. This is because we need the second one for the "else" part essentially.
    However, when f is executed, we now have our input, and then a boolean on top of that on the stack.
    Usually, you would use the backslash to swap those around, so shouldn't that part look like this?:
    ~[\f;!.\]?
    And also, the comparison to 8 would compare the boolean to 8, and not the input.
    Am I missing something?
    Edit: I am right (I think)! The example on the website of the guy that invented the programming language is incorrect (again, no guarantees)! The correct code would be:
    { factorial program in false! }
    [$1=~[$1-f;!*]?]f: { fac() in false }
    "calculate the factorial of [1..8]: "
    ß^ß'0-$$0>~\8>|$
    "result: "
    ~[\f;!.\]?
    ["illegal input!"]?"
    "
    See the backslashes? They are needed to push the boolean down so that we can actually compare the number 8 to the input.
    Another edit: it seems like the backslashes got lost when pasting the code around for the website, and that makes sense since backslashes are the escape character for control characters.

  • @gabrote42
    @gabrote42 3 года назад +2

    7:05 This has to be my favourite one so far

  • @hallfiry
    @hallfiry 3 года назад +1

    Shakespeare can also be interpreted as a steganographic programming language, since it can be used to hide source code.

  • @djbioxic4023
    @djbioxic4023 3 года назад +1

    Excellent video. I love discussions of the history of programming languages. Keep it up!

  • @aznashwan
    @aznashwan 3 года назад

    Absolutely amazing and insightful vid, an honest thank you for making it!

  • @8bit_pineapple
    @8bit_pineapple 3 года назад +1

    My favourite esolang is Haskell.

  • @sjuvanet
    @sjuvanet 3 года назад +6

    really interesting stuff. code is art

  • @Slingming
    @Slingming 3 года назад +1

    great video and I agree with the conclusion

  • @szymach
    @szymach 3 года назад +5

    That song by Richard hit's different/ Is there someplace I can listen to the full version? I have found a album on band camp but sadly this song wasn't there

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +4

      Full piece is here: instagram.com/p/BzVjW7LBv1K/

  • @Uveryahi
    @Uveryahi 3 года назад

    I just stumble on this video. Man that was quite a ride! Golfing seems interesting :p thank you!

  • @AndyAlex-dz6wf
    @AndyAlex-dz6wf Год назад +1

    - Sign in to RUclips
    - Drop a great video
    - Sign out
    GG my friend.

  • @jaydenyamada2916
    @jaydenyamada2916 3 года назад +1

    A fun esolang is Rockstar by Dylan Beatte (I think that's how you spell his name). A language that uses power ballad lyrics for its code. It's glorious

  • @virkony
    @virkony 2 года назад

    Multicoding also used in other languages. E.g. type is one of the aspect you usually get. In Mercury you have modes and insts. It's just such languages usually use similar way to encode/represent that information as main code.
    But colorForth uses formatting as part of language and it is still generic language. If you think about how we have all that syntax highlighting in editors/IDEs trying to be in sync with how source code interpreted, it because mind blowing that colorForth solves that problem in its root cause since highlighting is a part of language.

  • @theaureliasys6362
    @theaureliasys6362 2 года назад

    Will you make more videos?
    Because this was awesome.

  • @dazzlemon
    @dazzlemon 3 года назад +11

    orca seemed kinda similar to Minecraft's redstone

    • @stelcxantisto
      @stelcxantisto 3 года назад +3

      Then should we call Minecraft redstone a programming language?

    • @dazzlemon
      @dazzlemon 3 года назад +6

      @@stelcxantisto I think yes, because it can be programmed to do very complex things, it's even turing complete, so it can be considered as esolang in its own way probably

    • @hillelwayne3236
      @hillelwayne3236  3 года назад +8

      ​@@stelcxantisto Yup! There's no formal category of esolang, but I like the term "game-emergent language", where people create a programming language inside a game to do complex things. Factorio circuit networks also count, as do Super Mario Maker calculators: ruclips.net/video/a1YzOVEbguw/видео.html

    • @ownageDan
      @ownageDan 3 года назад +1

      @@hillelwayne3236 magic the gathering is turing complete :)

  • @jitumali9663
    @jitumali9663 3 года назад

    I am half time in the video and am enjoying it...

  • @presauced
    @presauced 3 года назад

    This video is incredible, it realy is. Haven't watchd a video this entertaining in a while.

    • @presauced
      @presauced 2 года назад

      This comment is from 5 months ago and I do not know if the misspellings were intentional or not.

  • @haksell5462
    @haksell5462 2 года назад +1

    very good.

  • @aaiieenn
    @aaiieenn 2 года назад

    I knew you would mention Orca!
    It's a really fun language and honestly so inspiring in making music.
    So far Shakespeare is my favorite because it's so ridiculous

  • @ArthurRainbow
    @ArthurRainbow 2 года назад

    Thanks. I had no idea esolangs were used for more than just fun

  • @gabotron94
    @gabotron94 2 года назад +1

    getting some jan Misali/conlang critic vibes here

  • @satorian7157
    @satorian7157 3 года назад

    Orca, nice! this is the kick in the pants I needed to actually go and start making stuff with it

  • @runforitman
    @runforitman 3 года назад +3

    yeah I agree i don't like golfscript or anything else like that
    I can make a zero byte script find all the primes because the compiler will generate a program that finds all primes whether you give it a file or not
    I think its like putting the golf tee in the hole and being impressed youre getting 0 strokes

    • @runforitman
      @runforitman 3 года назад

      oh lmao he then said something like it
      though more impressive

  • @codywaller2840
    @codywaller2840 3 года назад

    My favorite esolang has to be HolyC. Not necessarily due to anything particular except the background of it, an absolutely fascinating story.
    Is it functional? If you want to talk to talk to God or make pictures of elephants, then yeah, other wise, not really.
    I’m sure most people here have heard of it, but if somehow you have not heard of Terry A Davis and his coding, give him a look up.
    Great video!

  • @RossOzarka
    @RossOzarka 3 года назад

    This was really interesting, I enjoyed it even though I couldn't write you a hello world program

  • @gustavgnoettgen
    @gustavgnoettgen 2 года назад

    I thought about how short programs could be or how graphic programing could look like but... wow i didn't know this whole genre existed!

  • @ownageDan
    @ownageDan 3 года назад +3

    orca kinda looks like the roguelike version of puredata. very cool :)

  • @Tigrou7777
    @Tigrou7777 Год назад

    I was hoping to see the example shown in the screenshot (for computing PI).

  • @EFO841
    @EFO841 2 года назад

    two-dimensional coding languages! this concept alone is blowing my mind, but so is metagolfscript!!

  • @MaceOjala
    @MaceOjala 3 года назад

    Thanks this was fun. I occasionally use ("use" ;)) Orca and found myself golfing, but this is totally next level haha. Thanks for the intro and drawing those trajectories between languages

  • @audiodiwhy2195
    @audiodiwhy2195 3 года назад

    Great video. Interesting!! I knew nothing about any of this. I figure this was a lot of work to create but please more vids.

  • @mackexr
    @mackexr 3 года назад +2

    great vid cant believe it has so little views

  • @elson2270
    @elson2270 3 года назад

    Such a informative video! Great job!

  • @YEWCHENGYINMoe
    @YEWCHENGYINMoe Год назад +1

    Scratch was technically finished in 2001.

  • @Katniss218
    @Katniss218 3 года назад +1

    That orca thing seems really fucking cool!!

  • @LeLa_Lu
    @LeLa_Lu 2 года назад +2

    Minecraft Redstone is an esoteric programming language and I'm preeetty sure it's Turing complete

  • @uninteressant2151
    @uninteressant2151 2 года назад

    Thank you for that great video!

  • @ZSquaredPlusC
    @ZSquaredPlusC 3 года назад

    This is a really interesting video! Will you make more videos?

  • @rustkitty
    @rustkitty 3 года назад +13

    Is it really valid to call orca a programming language, as opposed to a musician tool similar to chiptune trackers and physical midi grid instruments like a Launchpad? Or perhaps those are programming languages to? What is a programming language? Sorry, got a bit philosophical there... Anyway, very interesting talk and a lot of good food for thought.

  • @p1geon45
    @p1geon45 3 года назад +1

    most important piece if knowlege i got from this video, is that there is are languages called "Brainfuck, but every + is replaced with the bee movie script"

  • @fntthesmth423
    @fntthesmth423 Год назад

    "The Psychology of Programming" sounds like the coolest fucking class