Holy moly... just taught a comp sci class in high school yesterday and someone brought up Brainfuck. It wasn't written down anywhere except the very much non-digital whiteboard and today this video pops up with the name of the language not in the title but only the thumbnail... All the actual data stealing and observation that's going is making me quite paranoid I think. Regardless, really fun project (to watch, probably not to write), good job :)
trippy! I was back home for like two days and jokingly told my mom she should buy an old volvo as her next car and next thing you know she's getting inundated with Volvo ads on facebook. Scary stuff lol.
absolutely insane to have attempted this, good job. You're also the only person who's been able to explain brainfck in a way that I can sort of understand
I'm glad! This is like the fourth attempt at making this video, and the first that was able to fit in under two hours, so I'm glad it made some sense for how brief it was lol
You know, every time I embark on learning Assembly I get so hung up on the mechanics of the language. Maybe my problem is just that I'm jumping feet first into x86 and should instead learn ARM, but oh lord it's a doozy getting past the underlying theoretical aspects of the language.
@@junebug9320 Keep in mind that modern x86 is in no way intended to be used by humans. If you want to learn assembly, I would highly recommend looking to MIPS, or 6502. (MIPS was used for N64, PS, and PS2; 6502 was most famously used in the C64, but was used in a whole bunch of computers from that era) x86 can be used by people, of course, especially if you stick to the more basic instructions, but you have to deal with a lot of extra stuff to do even basic tasks. Like interfacing with the operating system to tell it to write a character to the console.
@@junebug9320Some of the old 8 bit CPUs have really simple assembly instruction sets, and remain popular for hobbyists to this day. Both the 6502 and z80 are easy to pick up and super simple!
Wow, all of that was amazing! You inspired me to make a bite-sized bf interpreter in nasm because all of the ones i found online were buggy or slow :D I'm very proud of you for having the skill (and patience!) to do this.
I found bf so interesting, but I would never program in it. It's easier to make a language to compile to brainfuck, just like C compiling to assembly that compile to machine language.
I made a traversable array in bf so I could write a tic tac toe game... it was wild. I needed to index into the array based on user input, so each cell of my array basically had 2 values. If I remember correctly it was 0,x where x was the data. And I would store the user input somewhere and basically do [[>>]+[-] So, if the user entered 2, we'd start with 0,0, 2,0, 0,a, 0,b, 0,c, 0,d, 0,e (The letters are unknown array values) So after the first time running the code snippet loop above (assuming we started at memory cell with 2) we'd end up with 0,0, 1,0, 1,a, 0,b, 0,c, 0,d, 0,e And the next iteration 0,0, 0,0, 2,a, 1,b, 0,c, 0,d, 0,e Now we're at the cell that originally stored 2 and we're out of the loop. So my next piece of code would be >>[>>] which would bring us to array element 2/c. When we're done, we just cleanup with
Hell yeah, that's rad! That's actually very similar to what I did in the second iteration of my code. You can see it on my github linked somewhere or other in this video if you're willing to sort through the madness that is my code. That's definitely the way to handle large dataset manipulation in Brainfuck.
This remember, me old programming languages. Old Clipper (a compiler variant of DB II, Ok you don't know that either it doesn't matter) didn't had arrays...but...it had macros...everything contained in a variable preceded by & was substituted on the source code itself...so...I made a variable lets say A followed by the indexes lets say X and Y getting A0&X0&Y this made a variable lest say like A0102 meaning A[1, 2]. I got so proud of myself back then (I was 18 on my second job) But using BF or Turing Machines is like going back much more...
On “the worst”: x86 assembly can be worse, Visual Basic 6 (the last classic version, not .net) or VBA can be worse, COBOL is probably very bad but I don’t know if a trubute to COBOL legacy code maintenance or VB(A) legacy code maintenance is due more. Among esoteric languages, there are those that are even more Turing tarpit-y, like Underload. Writing a game that can give out any reasonable framerate in Unlambda is probably very hard. And I don’t even mention Malbloge here... ugh wait I did. Good luck writing in _that_. And that’s just scratching the surface, in both worlds. Brainfuck is simply _too_ popular. It’s a language with many interesting stories about it, but it overshadows other languages that could’ve ended up in its place in alternate histories-so it should share.
Sorry sorry I didn’t mean to say your work was for nothing. 🙂 This was certainly a challenge and a good thing, it was just a place I ended up grumbling about the overal situation.
Respect. I'd love to see more projects. You definitely have what it takes to make it as a content creator if you want. It's an honor to be part of this journey. Ps. Why am I talking like a medieval noble
you have no excuse for doing this!! ❤🎉🙈 imho, it's really impressive when people are challenging themselves so hard just to learn/try something new. typical dark souls bro, nice job. 😎 p.s. this language is so... fucked up? but you made me pretty excited about its concept, will wait to see new vids.
I can't believe someone would actually take on such a challenge. I had to stop myself from extending the language a huge ton, but maybe you should. I ended up adding functions and variables to my interpreter and compiler for BF. I not-so-cleverly named it eBF, but maybe it'd be better to have all the basic constructs as well. Although, I do wonder why your "Hello, World!" was so bloated. You should use multiplication more and just set up the first four or five cells to go back and forth on printing characters. Also, if you're going to do a grid, why not use every other cell for the printing characters of the grid and the cells in between as a control to iterate through the grid. Start with copying 32 to each point in the grid and use a grid counter to push the memory pointer to the end of the grid and then cycle back.
oh yo! I'd love to see your extended brain fuck, I've got this silly idea of building an interpreter into an arduino and having like a brainfuck computer, and you'd definitely need extended brainfuck for something like that. What kind of functionality did you add? And yeah, that Hello World is kind of bloated isn't it, lol, I was trying to come up with a good way to give a sparks note, crash course tutorial on Brainfuck, so I wanted to use a simplified Hello World to demonstrate the basic functions. I like where you're heads at using the reference cells in memory, I'll have to play around with that, it would save a tonnnn of memory in the program index. I don't know when I'll have another video out about Brainfuck, it might take me a little while, but keep an eye on my github, and I'm going to try to release an early v2 soon!
Oh hey, totally started playing around with your idea, and it was definitely the way to go. I wrote a brainfuck function that assigns an index value of n+1 to every third memory cell, and it's sooooo much less resource intensive than the way I was doing it before. github.com/ABugNamedJune/GhostEvade
Brainfuck is esoteric but by no means obscure and in fact is useful: it is a notation that represents a program in a (very specific type of) Turing Machine. The problem is that programs in Turing machines are in no way intuitive to write or read. But Brainfuck is a far better way to describe a TM as the table transition-action format used by mathematicians and computer scientists is far far worse; for instance TMs have no provisions for loops only conditions coded as states....well you see how is nightmarish. In fact BF is more similar to the Post Machine notation of the Turing Machine. TMs are best represented by finite state automata graphs but with movement and writing commands.
I can! Wait your small successful company be purchased by a big tech or big fund. You would volunteer to be the debug Borg nanite testing ground only to work your suffering or like I did learnt EMACS. Now I only use EMACS.
I found your channel just about now. The game looks cool! But i think the programming language looks or kinda "feels" really hard to learn or grasp. I am interested in learning programming, for start i even learned a bit python, but i feel like im getting stuck or sometimes don"t really know how to really start learning it. How could one learn or start learning programming and maybe start with which language?
Oh yeah, you don't want to be starting with Brainfuck, it's a bullshit language not for anything practical lol. It's hard to recommend which language to get started in, I'd say just mess around with a whole bunch of different languages until you find the one with syntax that works for the way your brain is wired. I started programming with Actionscript 2.0 for making Flash games, but moved on to Java and C# pretty quickly. C# is a good language for beginners imo. I despise microsoft and don't use C# much more these days, but if you're interested in writing desktop applications C# makes it easy, and shares syntax with several other languages meaning you can hop over once you feel more comfortable. If you're interested in hardware I'd start with programming Arduinos, if you're interested in web development you'll want to learn JavaScript, and if you want to learn games I'd download the game engine godot and keep plugging away at Python. (this paragraph is very subjective and will get you in a fist fight if a redditor hears you repeat it.) In your local area there may be free or cheap coding boot camps, and if you're in school (high school or college) I'd reach out to your administration, 'cause I'm sure they will have free resources for learning to code. Hot take, but youtube tutorials won't get you anywhere with learning to program, I really needed to fuck around in my basement getting frustrated as hell trying to make things work and taking classes. Hope that helps!
If you're just starting out, I'd suggest getting a copy of DOSBox and QBasic and learning that first. After getting tired of its limitations, find a copy of TurboPascal for DOS and learn that. If you can feel comfortable using Pascal, then consider trying C. They have a similar enough syntax and if you ignore all the complex bits of C the only thing that'll trip you up is pointers, but if you can handle that then consider learning 32-bit x86 assembly to augment the C. This is just my advice for a pathway to becoming a great programmer, but if you only want to get a few things done and don't care if you understand the underlying mechanisms, then I'd suggest Python. There are a ton of libraries to enable Python to run within the time frame of the heat death of the universe and using Python to glue them together to accomplish things is perfectly fine these days.
Holy moly... just taught a comp sci class in high school yesterday and someone brought up Brainfuck. It wasn't written down anywhere except the very much non-digital whiteboard and today this video pops up with the name of the language not in the title but only the thumbnail...
All the actual data stealing and observation that's going is making me quite paranoid I think. Regardless, really fun project (to watch, probably not to write), good job :)
trippy! I was back home for like two days and jokingly told my mom she should buy an old volvo as her next car and next thing you know she's getting inundated with Volvo ads on facebook. Scary stuff lol.
absolutely insane to have attempted this, good job. You're also the only person who's been able to explain brainfck in a way that I can sort of understand
I'm glad! This is like the fourth attempt at making this video, and the first that was able to fit in under two hours, so I'm glad it made some sense for how brief it was lol
If you can write functioning bf, you DEFINITELY can write (or, learn) assembly.
You know, every time I embark on learning Assembly I get so hung up on the mechanics of the language. Maybe my problem is just that I'm jumping feet first into x86 and should instead learn ARM, but oh lord it's a doozy getting past the underlying theoretical aspects of the language.
@@junebug9320 Keep in mind that modern x86 is in no way intended to be used by humans. If you want to learn assembly, I would highly recommend looking to MIPS, or 6502. (MIPS was used for N64, PS, and PS2; 6502 was most famously used in the C64, but was used in a whole bunch of computers from that era)
x86 can be used by people, of course, especially if you stick to the more basic instructions, but you have to deal with a lot of extra stuff to do even basic tasks. Like interfacing with the operating system to tell it to write a character to the console.
@@junebug9320 just use the simplest instructions that are required out of the x86 instruction set lmao
@@junebug9320Some of the old 8 bit CPUs have really simple assembly instruction sets, and remain popular for hobbyists to this day. Both the 6502 and z80 are easy to pick up and super simple!
I am very excited to see where this goes, and I will be sticking around! Well done on this video and the game so far
Hey thanks! I can't wait to see how this turns out too!
are those 'hir'' pronouns? wow!!! represent!!! this is such a clean, well paced explanation and clear, concise visuals to boot!
yep! I wish I had such a cool set of pronouns, but I'm just a she/they myself
@@junebug9320 lol I totally feel that, I’m a fellow they/she! :)
Wow, all of that was amazing! You inspired me to make a bite-sized bf interpreter in nasm because all of the ones i found online were buggy or slow :D
I'm very proud of you for having the skill (and patience!) to do this.
Hey thanks! Throw your interpreter my way when you've finished! I'd love to check it out!
I found bf so interesting, but I would never program in it. It's easier to make a language to compile to brainfuck, just like C compiling to assembly that compile to machine language.
High quality video for someone with only 361 subs
Hey thanks!
I made a traversable array in bf so I could write a tic tac toe game... it was wild.
I needed to index into the array based on user input, so each cell of my array basically had 2 values.
If I remember correctly it was 0,x where x was the data. And I would store the user input somewhere and basically do [[>>]+[-]
So, if the user entered 2, we'd start with
0,0, 2,0, 0,a, 0,b, 0,c, 0,d, 0,e
(The letters are unknown array values)
So after the first time running the code snippet loop above (assuming we started at memory cell with 2) we'd end up with
0,0, 1,0, 1,a, 0,b, 0,c, 0,d, 0,e
And the next iteration
0,0, 0,0, 2,a, 1,b, 0,c, 0,d, 0,e
Now we're at the cell that originally stored 2 and we're out of the loop. So my next piece of code would be >>[>>] which would bring us to array element 2/c. When we're done, we just cleanup with
Hell yeah, that's rad! That's actually very similar to what I did in the second iteration of my code. You can see it on my github linked somewhere or other in this video if you're willing to sort through the madness that is my code. That's definitely the way to handle large dataset manipulation in Brainfuck.
This remember, me old programming languages. Old Clipper (a compiler variant of DB II, Ok you don't know that either it doesn't matter) didn't had arrays...but...it had macros...everything contained in a variable preceded by & was substituted on the source code itself...so...I made a variable lets say A followed by the indexes lets say X and Y getting A0&X0&Y this made a variable lest say like A0102 meaning A[1, 2]. I got so proud of myself back then (I was 18 on my second job) But using BF or Turing Machines is like going back much more...
This is my favorite video for all this year ❤
On “the worst”:
x86 assembly can be worse, Visual Basic 6 (the last classic version, not .net) or VBA can be worse, COBOL is probably very bad but I don’t know if a trubute to COBOL legacy code maintenance or VB(A) legacy code maintenance is due more.
Among esoteric languages, there are those that are even more Turing tarpit-y, like Underload. Writing a game that can give out any reasonable framerate in Unlambda is probably very hard. And I don’t even mention Malbloge here... ugh wait I did. Good luck writing in _that_.
And that’s just scratching the surface, in both worlds. Brainfuck is simply _too_ popular. It’s a language with many interesting stories about it, but it overshadows other languages that could’ve ended up in its place in alternate histories-so it should share.
Sorry sorry I didn’t mean to say your work was for nothing. 🙂 This was certainly a challenge and a good thing, it was just a place I ended up grumbling about the overal situation.
Meanwhile I can't even get Godot 3 to work with its own built-in shaders. Props to you!
I did one programming challenge in this "language"... never again
Respect. I'd love to see more projects.
You definitely have what it takes to make it as a content creator if you want. It's an honor to be part of this journey.
Ps. Why am I talking like a medieval noble
you have no excuse for doing this!! ❤🎉🙈
imho, it's really impressive when people are challenging themselves so hard just to learn/try something new.
typical dark souls bro, nice job. 😎
p.s. this language is so... fucked up? but you made me pretty excited about its concept, will wait to see new vids.
why are software developers like this?
liked and subscribed
Masochism is fun lmao
I want to try brainrck... but I shouldn't ... but I should...
Okay I get it. BF is Turing Complete
Feral as always June keep it up
I try my best
catch my next video where I kickflip off the roof of my house
I can't believe someone would actually take on such a challenge. I had to stop myself from extending the language a huge ton, but maybe you should. I ended up adding functions and variables to my interpreter and compiler for BF. I not-so-cleverly named it eBF, but maybe it'd be better to have all the basic constructs as well. Although, I do wonder why your "Hello, World!" was so bloated. You should use multiplication more and just set up the first four or five cells to go back and forth on printing characters. Also, if you're going to do a grid, why not use every other cell for the printing characters of the grid and the cells in between as a control to iterate through the grid. Start with copying 32 to each point in the grid and use a grid counter to push the memory pointer to the end of the grid and then cycle back.
oh yo! I'd love to see your extended brain fuck, I've got this silly idea of building an interpreter into an arduino and having like a brainfuck computer, and you'd definitely need extended brainfuck for something like that. What kind of functionality did you add?
And yeah, that Hello World is kind of bloated isn't it, lol, I was trying to come up with a good way to give a sparks note, crash course tutorial on Brainfuck, so I wanted to use a simplified Hello World to demonstrate the basic functions.
I like where you're heads at using the reference cells in memory, I'll have to play around with that, it would save a tonnnn of memory in the program index.
I don't know when I'll have another video out about Brainfuck, it might take me a little while, but keep an eye on my github, and I'm going to try to release an early v2 soon!
Oh hey, totally started playing around with your idea, and it was definitely the way to go. I wrote a brainfuck function that assigns an index value of n+1 to every third memory cell, and it's sooooo much less resource intensive than the way I was doing it before.
github.com/ABugNamedJune/GhostEvade
You should definetly try assembly! Compared to brainfuck, assembly is really easy.
Brainfuck is esoteric but by no means obscure and in fact is useful: it is a notation that represents a program in a (very specific type of) Turing Machine. The problem is that programs in Turing machines are in no way intuitive to write or read. But Brainfuck is a far better way to describe a TM as the table transition-action format used by mathematicians and computer scientists is far far worse; for instance TMs have no provisions for loops only conditions coded as states....well you see how is nightmarish. In fact BF is more similar to the Post Machine notation of the Turing Machine. TMs are best represented by finite state automata graphs but with movement and writing commands.
I cannot possibly fathom being bored enough at work or anywhere else to voluntarily start coding things in BF.
I can! Wait your small successful company be purchased by a big tech or big fund. You would volunteer to be the debug Borg nanite testing ground only to work your suffering or like I did learnt EMACS. Now I only use EMACS.
That's really impressive! I've never seen anyone actually do anything beyond Hello World with that language.
actually, there are C compilers that target brainfuck.
There is a compiler from a simple form of BASIC, so you can code a lot of things - BFBASIC.
Still waiting for p2
Yeah, sorry, I've been really busy eating nickels, I'll eventually make a part two
WOW LOL. standing ovation
bruh i thought this was a massive channel , you are far overdo for the alg to pick you up.
eh, UA-cam doesn't like my channel 'cause it's 90% shitposts lol
I found your channel just about now. The game looks cool! But i think the programming language looks or kinda "feels" really hard to learn or grasp. I am interested in learning programming, for start i even learned a bit python, but i feel like im getting stuck or sometimes don"t really know how to really start learning it. How could one learn or start learning programming and maybe start with which language?
Oh yeah, you don't want to be starting with Brainfuck, it's a bullshit language not for anything practical lol. It's hard to recommend which language to get started in, I'd say just mess around with a whole bunch of different languages until you find the one with syntax that works for the way your brain is wired. I started programming with Actionscript 2.0 for making Flash games, but moved on to Java and C# pretty quickly.
C# is a good language for beginners imo. I despise microsoft and don't use C# much more these days, but if you're interested in writing desktop applications C# makes it easy, and shares syntax with several other languages meaning you can hop over once you feel more comfortable. If you're interested in hardware I'd start with programming Arduinos, if you're interested in web development you'll want to learn JavaScript, and if you want to learn games I'd download the game engine godot and keep plugging away at Python. (this paragraph is very subjective and will get you in a fist fight if a redditor hears you repeat it.)
In your local area there may be free or cheap coding boot camps, and if you're in school (high school or college) I'd reach out to your administration, 'cause I'm sure they will have free resources for learning to code. Hot take, but youtube tutorials won't get you anywhere with learning to program, I really needed to fuck around in my basement getting frustrated as hell trying to make things work and taking classes.
Hope that helps!
@@junebug9320 Thank you!
If you're just starting out, I'd suggest getting a copy of DOSBox and QBasic and learning that first. After getting tired of its limitations, find a copy of TurboPascal for DOS and learn that. If you can feel comfortable using Pascal, then consider trying C. They have a similar enough syntax and if you ignore all the complex bits of C the only thing that'll trip you up is pointers, but if you can handle that then consider learning 32-bit x86 assembly to augment the C. This is just my advice for a pathway to becoming a great programmer, but if you only want to get a few things done and don't care if you understand the underlying mechanisms, then I'd suggest Python. There are a ton of libraries to enable Python to run within the time frame of the heat death of the universe and using Python to glue them together to accomplish things is perfectly fine these days.
Time to boost to algorithm
There are worse programming languages, try malbodge
Oh god, Malbodge is how you actually go insane lmao
ooh your background makes me dizzy.
Cool
me = brainfck = true