This is such a gem of a channel and I look forward to seeing more of your content. Also thanks for the kind words regarding my series. Sorry it was finished so abruptly. I’m planning some big stuff coming soon regarding compiler theory.
@ozzyCheshire-ci3bf10 ай бұрын
yoo hi
@AndrieMC10 ай бұрын
you're alive?
@krauterfrischkase893911 ай бұрын
So I can finally write spaghetti code and nobody can complain?
@CodeNoodles11 ай бұрын
yes
@matt8ress10 ай бұрын
fancaders will absolutely love this
@hexxt_10 ай бұрын
@@CodeNoodles does this mean you accept that noodles are spaghetti
@Notabot-211210 ай бұрын
@@hexxt_ I thought spaghetti was a type of noodle. So not all noodles are spaghetti, but all spaghetti are noodles. (Or, I guess spaghetti is a type of pasta, and then pasta is a type of noodle)
@lemonindiallc721010 ай бұрын
@@CodeNoodlesBro I downloaded yr language but I mnt understanding its not running it is showing many errors like many programs r missing like msvcp1400.dll vcruntime1400.dill ucrtbased.dll etc can u plz tell how to rectify this
@AdrianHereToHelp10 ай бұрын
By creating a programming language you have activated the internet's trap card Someone's going to port DOOM
@sinom10 ай бұрын
If you want to write a compiled language but don't want to learn about optimization, you can instead write only a compiler frontend that compiles into an intermediate representation and then let a compiler backend like LLVM handle the optimization and machine code generation for you.
@Zullfix10 ай бұрын
I was thinking exactly this as well
@redstonewizard0810 ай бұрын
I used cranelift when I made my language (in rust) and it wasn't too hard, you just gotta get the hang of it
@KaiHenningsen10 ай бұрын
That, or output, for example, C source code which can then be compiled by a C compiler. Bonus: your language is immediately able to talk to existing C code.
@Azoraqua10 ай бұрын
Might as well go a step further and use a parser generator (Bit of a joke, after all, this project is mostly for entertainment and education).
@vibaj1610 ай бұрын
Or you can make your own virtual computer architecture and compile to machine code for that.
@noodleman_eric11 ай бұрын
i have been created
@CodeNoodles11 ай бұрын
Nice!
@baddestmofoalive10 ай бұрын
beetlejuicing
@ToastExists10 ай бұрын
Give me
@snoowzin10 ай бұрын
A return statement could be called "serve"
@CodeNoodles10 ай бұрын
It's actually funny that you mention that, because the output function is called serve().
@jblen10 ай бұрын
Invisible ink would actually go so hard. There are 25 characters in unicode defined as whitespace which is more than enough. Edit: somewhat unsurprisingly it already exists. But the existing version uses only tabs, spaces and newlines so you could definitely get way more user friendly while still being invisible... Though still not at all user friendly
@CodeNoodles10 ай бұрын
That's funny!
@thatcatthatalwayseatsyourchees10 ай бұрын
I may make this thanks for the idea
@anon_y_mousse10 ай бұрын
Indeed there are so many esoteric languages that I'm not surprised you'd never heard of Whitespace. Though my favorite is still the one which I'll censor as BrainF***. It's probably the easiest one to write a compiler or interpreter for that can still perform useful work.
@KaiHenningsen10 ай бұрын
@@anon_y_mousse Was that the one with the "come from" statement, or was that a different one? (Turns out, implementing "come from" correctly introduces threading. Who'dve thought?)
@anon_y_mousse10 ай бұрын
@@KaiHenningsen You're thinking of Intercal. Though, it's not for concurrency, but a sort of backwards goto.
@1cubealot10 ай бұрын
9:33 but those bits are the best bits of programming videos. The "boring" bits are the most interesting because it is mostly trial and error, which is interesting because you get to see the persons thought process.
@BenjaminGoldberg110 ай бұрын
Interpreted Languages like Python and JavaScript, are typically compiled to an internal byte code which is run immediately. Many interpreted languages have a read-eval-print-loop, but that is not the normal way to run code. Some scripting languages used as shells only have a REPL, such as bash on *nix or batch on dos , but these are often not thought of as "real programming languages,"
@Shuhkky11 ай бұрын
This is really cool, I tried creating a mix of python and c# a while ago, it didn't go far but I might try it again
@CodeNoodles11 ай бұрын
That sounds really cool! If you try it again, I wish you luck!
@Shuhkky11 ай бұрын
@@CodeNoodles thanks!
@PrivacyNProgramming10 ай бұрын
i (kind of) did too, but uhh its based on C# and its kinda dead, i might work on it once annuals are over (cbse) but ye, its basically C# but eaiser ig idk
@Shuhkky10 ай бұрын
@Mervin14 yeah that's fair that's kinda what I was doing but python based instead of c# based, but it would take inspiration from it
@arjix873810 ай бұрын
I recommend watching the VODs where "Tsoding" created porth. Porth is a language inspired by forth
@mezzoflow11 ай бұрын
That's super creative, programming languages are hard enough so making one by yourself is crazy man
@danthon126710 ай бұрын
Just wait. Someday I'll make a game using your prog. language
@BlackneeedWasHere10 ай бұрын
I like the scopes the syntax and the way you return values, im subscribing
@robotnik088910 ай бұрын
Nice! It's always such a treat to see people take on this challenge. I build my own lang in C, and string manipulation definitely was a major roadblock XD. Fun watch, hope to see you update it in the future, perhaps you can move from a tree walker (running the AST) to a proper bytecode interpreter, this'll definitely make your language more speedy, even getting it at or above the speed of python!
@CodeNoodles10 ай бұрын
Thanks, I'm glad you liked it! In the future, I may want to try the bytecode approach.
@robotnik088910 ай бұрын
@@CodeNoodles Awesome! Making a vm in a low level language like c++ is fun and speedy, and as a bonus, you get to reuse the parser and tokeniser!
@anon_y_mousse10 ай бұрын
My recommendation for your next attempt, and I hope you have a next attempt, would be to write it in pure C and aim for translating your language into C. Generally they refer to that as transpiling, but it's still technically a compiler, and it has the added benefit of being exceedingly portable because you can use cross platform libraries for all the complex bits of your language. I would also aim for writing a BASIC variant instead of a custom language, but I really only recommend that because that was the first language I wrote a compiler for having nostalgia for QBasic. As far as parsing, consider using an FSM.
@kplays_600010 ай бұрын
An alternative to having a compiled language translate to machine code is to do what Java does and have it compile into a virtual machine. Kind of a best of both worlds!
@xyangst10 ай бұрын
worst*
@plaintext728810 ай бұрын
@@xyangstwhy? Is it because of development speed?
@anon_y_mousse10 ай бұрын
@@plaintext7288 He probably means because you still have to take the step of compiling the code first and it's still slower than a proper compiled language. Though, they've made great strides in JIT development and it's not as bad as it used to be, I'd still rather use C. As far as development speed, that's a knowledge issue because once you learn the correct libraries to use to piece everything together then it's as fast to write a program in a language like C as it is in Java.
@DigitalViscosity7 ай бұрын
@@anon_y_mousse You wouldn't say that about the CLR. A lot of the code is highly optimized and can run faster than the best C code. C# boasts a well defined floating-point model, which aligns seamlessly with the native operational mode of the Floating Point Unit (FPU) and Streaming SIMD Extensions (SSE) on x86 and x64 processors-a strategic design choice rather than mere coincidence. The Just-In-Time compiler (JITter) efficiently translates Math.Sqrt() into a handful of inline instructions. In contrast, native C/C++ is encumbered by decades of backward compatibility requirements. The compiler options /fp:precise, /fp:fast, and /fp:strict are the most prominent manifestations of this legacy. Consequently, it necessitates invoking a C Runtime (CRT) function to execute sqrt(), which must then verify the selected floating-point options to fine-tune the outcome, resulting in a discernible reduction in speed.
@oglothenerd10 ай бұрын
Next step: make a compiled language using LLVM.
@bunabyt310 ай бұрын
I appreciate your decision to make this in C++ instead of Python, because an interpreted language running on an interpreted language would be catastrophically slow and resource-intensive. I plan to make my own programming language someday: a fusion of Java, Lua, and some of my other favourite languages that compiles to bytecode and runs in a VM. Anyways, nice video! NOTES: The function declaration syntax reminds me a lot of Lua (which uses `function` to define a function, and `end` to finish it), I don't really see that sort of thing in most languages.
@ThatRandomError4 ай бұрын
0:12 im taking this personally
@rodrigoqteixeira10 ай бұрын
1:39 "which can cost a bit of performance, or in case of python A LOT OF PERFORMANCE" 💀💀
@xanderplayz344610 ай бұрын
I am probably going to modify this to make it “normal” and see how it is. Turning a “esoteric” language into a “practical” language.
@Lampe202010 ай бұрын
Well, I'm working on an own compiled esolang, called "arrowey". And I'm just compiling it to LLVM's IR and then let LLVM do the architecture-specific stuff. But I might also make it interpreted (first I have to get an AST generator), to be able to implement it in JS to run inside my own OS simulation. By the way, I'm using LARK to get a parse tree from the source code, which also made it easy to define the syntax, because I could just see the parse tree, adjust and see the new tree.
@trevoro.973110 ай бұрын
Python is compiled to bytecode, like many other languages do.
@programmer-75310 ай бұрын
As a German, "NS" reminds me of something else...
@SpringySpring0410 ай бұрын
automatically returning the last statement from a function is really cool. It's kinda like Ruby
@wafinashwan824210 ай бұрын
if you were to try a hybrid approach then you could use zig for bytecode and rust for compalation
@koder773810 ай бұрын
Nice project! I did write a compiler for my own language "Brackets", which generates bytecode for my VM L1VM. It was not easy to write.
@Mr.RandomB1210 ай бұрын
I have a very crazy challenge for you, try to create a computer operating system with this language
@CodeNoodles10 ай бұрын
I don't think I could make an operating system to begin with 😅
@Classfied3D10 ай бұрын
You should add a 'spaghetti' statement that acts as a goto lmao
@CodeNoodles10 ай бұрын
That's an epic idea 😆
@limec4t2 ай бұрын
0:42 code bro refrence😂
@paulzupan37325 ай бұрын
I'm sorry but not calling the language spaghetti code is such a missed opportunity
@tjautomatin414510 ай бұрын
I'd make my own, basic script, it's so simple that it's literally scratch but you type out the block names
@YouTubeName-hw1uk10 ай бұрын
This is pretty cool, also you've inspired me to do something similar
@mathgeniuszach10 ай бұрын
Ever heard of smart pointers? Makes writing C++ code much cleaner. I usually macro the names to be shorter but they're quite nice
@divine20311 ай бұрын
Your gonna trigger alot of Java devs with that intro
@PaulFisher10 ай бұрын
the “jk” is that it should have been golang
@williamgill62410 ай бұрын
"devs" 😂
@GustyCube10 ай бұрын
Yes fr
@NS8world8 ай бұрын
Java is my all time favourite language
@TheRealKingofCubing9 ай бұрын
i'm pretty new to programming and don't understand most of this but it sure is cool
@TomatoSaucey9510 ай бұрын
now i want library support, also the syntax is a bit werid for programers, since they have things like "eat or "server", standarding them for things like "end" or "print" would be welcome in my opinion!
@happyman_smiling10 ай бұрын
writing a compiler sometimes is more easy than interpreter
@someonerandom99399 ай бұрын
This is a nice example of a recursive descent parser. I'm not going to lie I'm obsessed with parsers because I've made a javascript interpreter in C++. My most recent project is so painful I haven't coded in months because it scares me. I'm making a language that compiles to brainfk
@CodeNoodles9 ай бұрын
Wow. This project got pretty complicated towards the end, but making a language that compiles to brainfk sounds brutal 💀
@AlexTsaavaАй бұрын
damn i clicked on this video cuz i was also making my own programming lang in python, you did a really got job with making this unlike me 🤣🤣🤣 This video and programming language is a W
@CodeNoodlesАй бұрын
Thanks! I hope your programming language turns out nicely!
@AlexTsaavaАй бұрын
It’s not the best it’s interpreted I might make a compiler that compiles my programming language to python
@slizedk11 ай бұрын
The rotating background is really distracting, in my opinion. Thanks for your content. :)
@EasonTek10 ай бұрын
if you wanna write a compiler you can actually just generate C you acn learn the ins and outs of pure C (no C++ BS) and make your code generator generate C that can theoretically compile anywhere (thats what nelua, nim, etc does)
@TimeLords91010 ай бұрын
I’m glad that I’m not the only one who used the word resonated
@CodeNoodles10 ай бұрын
I know right 😆
@TimeLords91010 ай бұрын
@@CodeNoodles when I used it it sounded like I was old
@PumpkinBear10 ай бұрын
whats the song at 0:22 i've heard it before but can't think of where it's from
@CodeNoodles10 ай бұрын
It's a song from the KZbin Audio Library called English Country Garden by Aaron Kenny.
@PumpkinBear10 ай бұрын
@@CodeNoodles ty
@Bl0xxy10 ай бұрын
omg the music at the beginning i swear it's dantdm's old hardcore music
@ikytsu782210 ай бұрын
I had a similar project and I used C++. It's really good if you want performance. In my case, my programming language could calculate 2^9999999999999999 in only 3 minutes. I admit that writing C++ code can be a bit slow, but for projects where performance is important, that makes all the difference.Nice video tho.
@n0o0b090lv10 ай бұрын
Why isnt there a langue that can be compiled and interpreted or there is and i dont know
@CodeNoodles10 ай бұрын
You are correct. Some languages use a hybrid approach like Java.
@iilogll10 ай бұрын
hey what is ur vsc theme? it looks nice
@devOnHoliday2 ай бұрын
I would've suggested for a framework based on noodlescript titled Ramen, but Js already has that one too
@ameiumАй бұрын
wait a minute. if you make an interpreter for a language, then write a compiler in that new language, then compile the compiler using the compiler you wrote in the interpreted language. bootstrapping is god-tier programming fr
@BPGHchess5 ай бұрын
when is syntax highlighting coming ;)
@Zwiebelgian10 ай бұрын
Be careful with the abbreviation NS…
@DemonicMeWasHere10 ай бұрын
Is this lang available for everyone to code in? If it is, imma make a game with it
@CodeNoodles10 ай бұрын
Yes, it's on my GitHub. To make games though, you'd have to modify the language to support external packages so that you could render graphics.
@rafagd10 ай бұрын
If you target llvm, it's not that much more work to make a compiler.
@GlitchTrap1234511 ай бұрын
Mrbeast wake up codenoodles posted
@CodeNoodles11 ай бұрын
I wish 😆
@GlitchTrap1234511 ай бұрын
@@CodeNoodles maybe someday
@lancemckenzie107410 ай бұрын
Step 1 identify performance failures, barriers, and lack of situational suitability in the existing programming languages - e.g. Call speed during certain tasks; bitsize required on RAM for edge computing; etc). Step 2 locate specific features in the existing languages that are sources of failure - e.g. requirement to store a reference table of basic operations and any function specific operations. Step 3 research logic systems used in other fields and products (e.g. Different natural language structures in real foreign languages, or matrix representation and reduction in theoretical mathematics) in order to craft a list of top candidate syntax features that MIGHT alleviate your speed/bit size problem identified in step 1. Theorise the degree of improvement that you can expect to see if you used these candidates - e.g. 50% faster; 30% reduction in bit size. Also determine if you will make sacrifices in other areas of performance, or be able to maintain certain features - e.g. retain lookup of value arrays of greater than 50,000 integers. Step 4 write your new language around those candidate syntax features identified in step 3. In plain English this looks like... My current interpreter language used in my smartwatch operating system requires 30MB of active RAM partitioned in order to be available for any and all health sensor data to be processed concurrently. As a result, a larger physical RAM card is required on the watch to provide sufficient RAM for applications. I believe that by incorporating both a non-deterministic rewriting logic like Java Script and a base 20 integer structure will allow me to reduce sensor partitioning to 17MB. This reduce RAM chip size required by 10% based on modern day RAM chip standard components, further increasing the space available for the battery and therefore simultaneously provide the potential for a further 6% increase in maximum battery capacity based on modern day standard components. And then you make those things.
@lancemckenzie107410 ай бұрын
Your new programming language does not need to be better in every regard. It can be worse than current languages in most ways, but highly efficient in your target use case (e.g. machine text interpretation). That would make it a specialised language, and you can have many languages for different tasks. You may also create multiple specialised languages to build out a technology stack that, on the whole, provides specific performance improvements in a broader use case (e.g. A.I. text generation from natural language voice commands).
@Ryland-tu6pj6 ай бұрын
I like how every variable is called noodle
@dharma.vibrates9 ай бұрын
Awesome can you make it oops 😅 and update it's beam compiler ? I was thinking today that which is more natural opps or functional and I found that opps is more natural. Thus feeling sad about elixir😢
@alebud140310 ай бұрын
7:31 what app you used?
@TheoParis10 ай бұрын
When you have time, please check your 2D-minecraft repository, I made a PR but it has gone unnoticed for several months... It solves several other issues in the repository.
@CodeNoodles10 ай бұрын
Sorry about the speed of things. I looked at your PR, and it looks good! You mentioned that Glass.hpp is needed, which is now on my GitHub, since I uploaded Glass 4.0 to it.
@TheoParis10 ай бұрын
@@CodeNoodles Thanks! I will try and finish it soon. Sorry if I sounded impatient, I just wanted to make sure it was being looked into.
@jdudeofficial426310 ай бұрын
What is your visual studio theme? And also nice video
@li-lunarink8 ай бұрын
add a language server for vim, nvim, vscode, visual studio, etc
@boogaming974410 ай бұрын
I should learn noodlescript as my first coding language, I wanna learn one since i started what hung your videos so why won’t I start with this ?
@CodeNoodles10 ай бұрын
I love the idea, but definitely don't. My language is extremely limited and has a bunch of little issues with it. If you want a good language to start with though, I recommend Python.
@jtnoble32110 ай бұрын
I made 99 bottles in .ns and it definitely irked me lol. Minor issues I had: - early returns don't exist - numbers must be cast to a string if serving - no sleep function? - errors in the wrong place (I had an error on line 9, and interpreter kept saying error on line 11) - eat, eat, eat, eat I definitely could not make my own language though, and I found it fun digging through this! 99 Bottles Code: ``` recipe bottles(noodle num) if num 0 serve(str(num) + " bottles of beer on the wall ") serve(str(num) + " bottles of beer ") serve("You take one down, pass it around ) num = num - 1 if num == 0 serve("That's all the bottles of beer on the wall! ") else serve(str(num) + " bottles of beer on the wall! ) eat eat eat eat recipe main() bottles(99) eat main() ```
@CodeNoodles10 ай бұрын
Thank you for trying the language out! The number outputed as part of the error message is actually an error number, so it doesn't mention what line the error occurs on. Also, the serve function can take multiple arguments like so: serve(str(num) " bottles of beer on the wall ") ^ Notice the space to separate the arguments Regardless, it's awesome you were able to get something working, despite it being quite inconvenient.
@jtnoble32110 ай бұрын
I realized the error number wasn't a line a couple hours later 😅 And that's good to know. My biggest trouble debugging originally was I was separating variables in functions with commas, and didn't even realize your examples don't have commas
@clyptos27058 ай бұрын
very cool idea. very nice video! however, the abbreviation of noodlescript is quite dangerous
@iltcuhtml11 ай бұрын
I thought you were making nood.js
@Omena0MC10 ай бұрын
When syntax highlighting?
@DJ_gtagVR10 ай бұрын
Wait didnt this cooy that one chef programming language? I guess this is the best language now
@shadow_blader19211 ай бұрын
Valve favourite language.
@derpcar3 ай бұрын
i want to download this.
@EverTGX10 ай бұрын
now make a syntax highlighter for vscode of this language
@SeriouslySurprised10 ай бұрын
idk, it is a very cool video but I can't handle with this programming language. haha, I meant I only know python, js, html and css, (html and css are markup languages not programming languages). but back to the point, I like your content, it seems like to be very difficult, but you mad ea good job! a big THANKS!
@perunkarunai79573 ай бұрын
where to download your language interpretor brother
@TheRealMangoDev10 ай бұрын
im making a compiler btw
@TheRealMangoDev10 ай бұрын
so far its going well but im making it in rust and bc of that… i have to fight the borrow checker a LOT.
@goobertnelius10 ай бұрын
Now make a package manager and or a way to create windows and draw to them
@Lemoniii0010 ай бұрын
Which code editor are you using ?
@CodeNoodles10 ай бұрын
Visual Studios 2022
@Lemoniii0010 ай бұрын
Ok thx
@efekos9 ай бұрын
now make a language server for it
@mohamedsimo602110 ай бұрын
How to implement complex stuffs like networking and file system accessing etc .. ?
@BeginnersAcademy10 ай бұрын
you'd have to implement built in functions, which can range from simple implementations like defining a global list of functions at the global scope of the interpreters variable environment/scope, or you could build a more complex library system. Either way whichever route you take youd basically just be creating wrapper functions on top of whatever I/O functionality C++ has.
@darshplaysmc10158 ай бұрын
which theme do you use??
@SamiSaba210 ай бұрын
Is NS used in NSURL?
@johnyeldry3 ай бұрын
WHAT HAPPENED TO THE SPAGHETTI CODE NAME IT IS SUCH A GOOD PUN >:(
@tanhrs871111 ай бұрын
Can I make recursivity with your language ?
@rancidrandis10 ай бұрын
I have no idea what's going on in the slightest
@note.swiper-main9 ай бұрын
aleight, let's learn this code and make the programming language using this if can
@StumbleDev5 ай бұрын
bri noodlescript is really really good, you can make NoodleScript II
@sinom10 ай бұрын
Just wanna say that that abbreviation for the logo might not be the best idea since it is commonly associated with a certain political party that rose to power in Germany during the 1930s.
@Germisstucklmao10 ай бұрын
Hmm why not use LLVM? I mean, it simplifies everything
@meta91live6 ай бұрын
Time to make my own coding language. (Tried to for the 98th time.)
@Adasiek5329 ай бұрын
now make a game with this programming language
@caballerosalas14 күн бұрын
Python doesn’t work that way. It compiles to a python internal bycode and then that code is executed by a virtual machine
@felixargyle318 ай бұрын
Is there any way to run it?
@aarondelasy10 ай бұрын
Me developing my own programming language 5 years. CodeNoodles developing his own programming language in 6 months :(
@robbeflot54289 ай бұрын
Why can't i run it???
@m3mes4209 ай бұрын
I feel like everyone is making programming languages now ever since that guys tutorial dropped lol
@danielgysi572911 ай бұрын
The programming language is insanely impressive Listening to other people talk about their chatgpt conversations is really boring. It wasn't even relevant to the final idea and you attributed ideas to chatgpt that it stole from real projects (whitespace programming languages have been done before)
@CodeNoodles11 ай бұрын
That's fair. I'll be more careful in the future about that. Thanks for the feedback!
@BelBox9 ай бұрын
Bro,when new Minecraft 2D video?
@thewhat422810 ай бұрын
What theme is that?
@szymongrzebyk594810 ай бұрын
You can add something like this : Repeat Forever Script here End
@Kirby_Super10 ай бұрын
I did this in Scratch once. It was fun even if the final result was impractical