Writing software without a programming language - Kronark - No. 0

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

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

  • @BooLightning
    @BooLightning Месяц назад +301

    This is what happens when programmers let intrusive thoughts win

    • @mitaskeledzija6269
      @mitaskeledzija6269 Месяц назад +16

      You cannot escape God's Temple - Terry Davis prob

    • @running.on.c82
      @running.on.c82 29 дней назад

      I wrote my own Transformer Neural Network from scratch in C++ and thought I'm good, but this guy is really pushing my limits.

    • @jonnupe1645
      @jonnupe1645 20 дней назад +1

      Seems like a win for the rest of us most of the time

  • @dang-x3n0t1ct
    @dang-x3n0t1ct Месяц назад +75

    bro made scratch for adults

  • @Una-R
    @Una-R Месяц назад +146

    > Comes with a challenging proposition
    > will program but at the same time will not program
    > builds its own system for using the binary
    > speaks as if he were the smartest antagonist/allied character in the plot explaining an artifact that totally changes the direction of the story
    > What a determined and badass guy, I subscribe.

    • @Kronark
      @Kronark  Месяц назад +14

      💀

    • @amalirfan
      @amalirfan Месяц назад +2

      ​@@Kronarkngl, this seems much like fiction, but so what, I say embrace it, full send 🎉

    • @amalirfan
      @amalirfan Месяц назад +1

      ​@@Kronarkalso would you consider publishing the source code with a proprietary or open source licence? That would be cool. And community posts with screenshots, plans, etc. would be cool too.

    • @Kronark
      @Kronark  Месяц назад +2

      Not in the near future. Not sure if I'll ever release the source code of this prototype - but we will re-implement a release build using the prototype, and that node-source-code will be public. Definitely leaning towards proprietary or non-commercial licenses, open source / public domain is to often abused by huge corporations who'll then make even more profit from it.
      Regarding community posts, they'll come soon. I only started 6 days ago, so I want to get the weekly upload schedule rolling first. But I will make community posts eventually, since I want to update you guys on my behind the scenes progress regarding the computer graphics stuff - the dev-logs will lag behind in content eventually since I develop faster than I upload.

  • @paxcoder
    @paxcoder Месяц назад +159

    A visual dataflow programming language.

    • @Kronark
      @Kronark  Месяц назад +38

      kind of, with a little bit of magic sprinkled on

    • @JanB1605
      @JanB1605 Месяц назад +5

      ​@@Kronark Sounds a lot like G to me, used in LabVIEW.

  • @BadBoy65t
    @BadBoy65t Месяц назад +201

    I think I just found the coolest channel ever…

  • @gyrotta
    @gyrotta Месяц назад +70

    your channel feels like i've been just exposed to another world of dev youtube this is pure gold i cant wait to see how this all turns out in the end

  • @christobothma368
    @christobothma368 Месяц назад +68

    I'm curios how this project won't just end up being another high level language itself. What i do find interesting though is the idea of programming in a very low level. My thinking has always been that we could perhaps achieve much greater degrees of efficiency like this but it's really hard and maybe impractical to do this for a very large system. This is something I've been thinking that AI might end up doing in the future. Removing the need for abstraction or compilation altogether.

    • @Kronark
      @Kronark  Месяц назад +31

      I'd argue that it'll be similar to any high level programming language, but distinct in some key points. The main benefit I find extremely helpful is that the compiled output isn't produced by some black box. All the program does is string a bunch of bytes together - the user controls everything else. So if you want to make something more efficient, you can technically adjust the code at every level of abstraction, which is something you simply can't do with what we have currently. I can't open up my C++ compiler of choice to achieve some specific improvements (at least not without great effort), I'll mostly be at the mercy of the compiler-architect's implementations regarding optimisation.
      I think a large part of the reason behind the large amount of different programming languages we have right now is, that different developers optimised different things. You have Go for systems programming, R for data science, Python for prototyping and AI stuff etc... I'm honestly just so tired of learning yet another specification. So I'm hoping I can sort of escape all this and just use one frontend for everything - it will be less efficient / optimised in the beginning but I should be able to beat most standard programming languages eventually, since I can add lower level optimisations "on the fly".
      Regarding practicality, I guess we'll have to wait and see. I'm still very sceptical myself since the project has thrown some pretty annoying design problems at me over the past 2 years - still not 100% sure if my optimisations will keep the low compilation times up once projects grow to standard software sizes. Theoretically they should, but you never know... :D

    • @christobothma368
      @christobothma368 Месяц назад +22

      @Kronark One thing is for sure you'll know a hell of a lot once this is finished. I admire your dedication to something so daunting. I wish you the best of luck!

    • @Kronark
      @Kronark  Месяц назад +15

      Thanks man! Appreciate it :)

    • @hexxt_
      @hexxt_ Месяц назад +5

      the interesting thing about this is that as he builds abstractions and it starts feeling more and more high level he always has access to the low level stuff

    • @lordrusk6118
      @lordrusk6118 Месяц назад +1

      @christobothma368 geometry is a higher form than the written word, it has been said, but having this direct access is not available in any high level language…

  • @itsjustboarsley
    @itsjustboarsley Месяц назад +39

    So you’re using a sort of actor model to represent a “primitive” type that is made manifest by clearly separated nodes of logic. Then, using these little actors, you’re stacking functionality.
    Feels the same conceptually as a lisp, but decomposed a bit where each node would be akin to a list member with the sockets defining how data flows between them. Very unix-like in principle. I made a toy language with similar underlying concepts but a wildly different imagining of implementation than you.
    Very excited to see this

    • @Kronark
      @Kronark  Месяц назад +8

      Essentially, yes.
      I'm just as excited as you are! :)

  • @The-Nie
    @The-Nie Месяц назад +17

    No way
    Seems like I found something really interesting in my recommendations
    And that "something" is your video :)
    I just want to thank you for making my day better lol

    • @Kronark
      @Kronark  Месяц назад +1

      And I thank you for the kind comment! :D
      I'll definitely try again next wednesday ;)

  • @old-gamer-01
    @old-gamer-01 22 дня назад +3

    WOOW DUDE!
    YOU SOLVED A LOT OF PROBLEMS!
    I NEED YOUR KNOWLEDGE!
    THANK YOU TO EXISTS, LEARN AND PUBLISH SUCH HIGH KEVEL KNOWLEDGE!
    JUST WOW!

  • @perfectionbox
    @perfectionbox Месяц назад +21

    It sounds very cool but all node-based language attempts suffer from graph complexity as program size grows. I recommend prototyping some test projects to see what they'd be like in graph form. Shaders tend to be okay because they're small (although some graphs are still cryptic) but e.g. things like UE Blueprint break down forcing devs to switch to C++. A differ is also needed to make it workable in team environments.

    • @Kronark
      @Kronark  Месяц назад +7

      There's already (somewhat) a solution for that in place, but it's difficult to explain or show to be honest - just know this compiler heavily incentivises modular and compact node graph building. I haven't seen super complex graphs during usage yet, they're usually compacted into new custom nodes before that point is reached. It'd probably become most apparent in a dedicated video on that topic, but right now that just isn't a priority for me.
      Regarding the differ, that's an easy addition - but again, just not relevant at the moment. However I do admit that I didn't see all this exploding like it is right now, so I don't know if some community efforts will arise sooner than later.

    • @fltfathin
      @fltfathin Месяц назад +2

      ​@@Kronark imo a graph representation in a text format will help alot. Like how mermaid graph file, but more on what each node connects where.
      Wait that sounds like VHDL/ Verilog.

    • @hotworlds
      @hotworlds 16 дней назад +1

      Something I've been thinking about for ages as a solution to this problem is being able to make some kind of more complex sub-modules that you then use as nodes to abstract behaviors for other modules.
      There's this old game called 'Robot Odyssey' where you essentially build real circuits using logic gates to control some simple robots to solve puzzles. The thing I found really fascinating about it is you could build a circuit and then bake it into a tiny microchip to use in other circuits. Since it all took place on a tiny 80s monitor and it was graphical you were basically forced to do this to make anything complex, but since you could go as deep as you want you could still program pretty much anything in theory.
      So I hope something like that gets into this project lol

  • @Kknewkles
    @Kknewkles Месяц назад +6

    Looking forward to learning all these things at an extreme level of detail, and to seeing the journey(one of the very few times this word seems warranted).
    You, my friend, got yourself a sub :) Cheers!

    • @Kronark
      @Kronark  Месяц назад +2

      Thanks man!
      I do hope I'll not go into TO MUCH detail, the next video script is already quite long ^^ x64 instruction encoding is a bit of a beast :S

  • @casungo
    @casungo Месяц назад +12

    mark my words, this channel is going to the moon. Really great content!

    • @Kronark
      @Kronark  Месяц назад +3

      Thank you! This is all going so fast right now, I'm not even sure I'm ready to go to the moon lol

    • @mitaskeledzija6269
      @mitaskeledzija6269 Месяц назад +1

      ​@@Kronarklet's go to Andromeda

    • @Kronark
      @Kronark  Месяц назад +1

      We‘ll do rockrt science a bit further down the road!

  • @Jhonnydonny
    @Jhonnydonny Месяц назад +3

    This channel is the ScienceClic of Computer Science and that’s exactly what we all were craving for.

    • @Kronark
      @Kronark  Месяц назад +1

      Truly humbled you think so!

    • @Jhonnydonny
      @Jhonnydonny 9 дней назад

      @@Kronark❤

  • @MrKosiej
    @MrKosiej 8 часов назад

    I just wanna say i was thinking about making real software in "visual" programming for such a long time, i got used to ue5 blueprints but it's not really meant for that low level programming. I tried to find anything useful on that field but to no avail. I'm so happy to see your videos and i totally share your motivation of reinventing every wheel. We've got so used to doing everything the "standard" way that we've forgotten how to think outside of that. You've got my sub and my sword, Good luck on your journey.

  • @sinus4784
    @sinus4784 Месяц назад +7

    Wow! The sounds and visuals are superb!
    I'm really excited to see more of what you make.

    • @sinus4784
      @sinus4784 Месяц назад +1

      That "intro" sound I especially like!

    • @Kronark
      @Kronark  Месяц назад +1

      Thank you, I did put some effort into those!

    • @sinus4784
      @sinus4784 Месяц назад +1

      @@Kronark deff gonna have to search those up later

  • @maolmhuire
    @maolmhuire Месяц назад +5

    i have been vexed by this problem for years: how to bring the node graph paradigm to the machine instruction level. a byte sequence generator is a fascinating approach. instead of the nodes being a map of the program logic, they are a map of a factory for generating the program file. it is absolutely first principles reworking of the process of creating an executable file.

  • @adlerkampf
    @adlerkampf Месяц назад +2

    Wow, this is amazing! I find graphic stuff challenging even in high-level languages, and you're tackling it in machine code? That’s beyond impressive. I'm definitely following your series!

    • @Kronark
      @Kronark  Месяц назад +1

      Well I haven't started with the graphics stuff yet using this compiler - so don't jinx it :D Glad you're on board!

  • @Andressuquaz156
    @Andressuquaz156 Месяц назад +1

    Such a complex topic, packed in a nice format. This is gold my man, can't wait for the next videos!

    • @Kronark
      @Kronark  Месяц назад +1

      Hope the next video doesn't disappoint! It's some heavy sh*t

  • @joaquindomenech7541
    @joaquindomenech7541 Месяц назад +22

    We're better at spatial (thus visual) thinking than abstract thinking. Making our tools more visual can help us solve problems

    • @paulyflynn
      @paulyflynn Месяц назад +3

      Spatial yes. That is why the interface should be for a spatial computing platform like Vision Pro

  • @avgvstvs96
    @avgvstvs96 Месяц назад +4

    impressive work, phenomenal production. this is awesome!

  • @AliceHamori
    @AliceHamori 24 дня назад

    Super interesting concept what you have described. Can't wait to see how it will turn out! I am especially thrilled that this will be a weekly mini series, because I can witness how you will tackle issues that might come up when developing a tool like finding the balance between feature/function and easy of use^^

    • @Kronark
      @Kronark  24 дня назад

      Thanks! :)
      I will be trying to cut down on video length a bit, since these long ones are taking up quite a bit of time, but i‘m committed to keeping it weekly :)

  • @kongolandwalker
    @kongolandwalker Месяц назад +4

    3:00 "this.. is a node". Reminded of a ToadPond.

    • @Kronark
      @Kronark  Месяц назад

      What's ToadPond if you don't mind me asking? ^^

    • @kongolandwalker
      @kongolandwalker Месяц назад

      @@Kronark ruclips.net/video/Q4OIcwt8vcE/видео.htmlsi=-eXARwaG6sP2kH_2

    • @Kronark
      @Kronark  Месяц назад +2

      what in the artistic expression is this?! :D thanks for sharing :)

    • @nolram
      @nolram День назад

      @@Kronark TodePond (I believe the original poster misspelled it) is a very unique youtube channel about creative coding that is very worth checking out!

  • @wmpowell8
    @wmpowell8 Месяц назад +8

    You don't need to implement floating point arithmetic yourself; if you have all x86-64 processor instructions implemented into your editor, you can simply call the necessary instruction to do your math.
    Also, a naïve approach to turning each instruction into code would be to represent each node as an address in your program, then, to jump to the address corresponding to the next instruction. However this would use a lot of jump instructions, significantly slowing down the resulting program, so you'll have to implement some logic to reduce jump instructions.

    • @Kronark
      @Kronark  Месяц назад +2

      By „implementing floating point arithmetic“ i meant constructing some nodes that output the relevant x87 instructions to do floating point maths.
      The compiler doesn‘t execute the nodes, it uses them to construct an executable. A hypothetical „addition“ node with the inputs „1“ and „3“ doesn‘t return „4“, it returns „1 + 3“.
      It appears to be a common pitfall when thinking about node graphs - i fell into that myself about a year ago :)

    • @lverno7349
      @lverno7349 19 дней назад

      @@Kronark How do you implement constant folding then? Surely you would want 1 + 3 to be evaluated at compile time in most cases. Are there primitive nodes for compile time math?

    • @Kronark
      @Kronark  19 дней назад

      Yes, there is a math node that can do addition, subtraction, multiplication, division, modulo, minimum, maximum, logarithm and exponentiation :)
      Addition, subtraction, multiplication, minimum and maximum operations also are able to take in more than two operands.
      So you can determine the sum or the max of an array of numbers at compile time for example.

    • @lverno7349
      @lverno7349 19 дней назад

      @@Kronark Very cool. Do you plan on open sourcing this at some point? This project seems like a breath of fresh air in the systems programming space.

    • @Kronark
      @Kronark  19 дней назад

      Unfortunately no. This prototype is the only edge I have in the software development industry right now. But we will be implementing a release build using this prototype, which will then be made available for free in my store :)

  • @cn-ml
    @cn-ml 12 дней назад

    Also congratulations, you have basically built a wrapper around any functional programming language. Not downplaying, i love your idea, and the execution is also pretty cool :)

    • @Kronark
      @Kronark  12 дней назад

      Thanks ^^ the neat part is, that it‘s not limited to programming languages in any way :p

  • @yt_n-c0de-r
    @yt_n-c0de-r 22 дня назад

    Omg
    I've been thinking about making something like this, for years. But as I suck at coding, and barely passed my bachelor at 40, there was no way I'd ever achieve this.
    Will watch your series, to see someone with literal mastery level do it in a right way.

  • @MonkeyNBananas
    @MonkeyNBananas 18 дней назад

    This is really well done. I wouldn't be surprised to see this becoming the new norm for coding especially for people new to coding

    • @Kronark
      @Kronark  16 дней назад

      Thanks! Knowing the programming community, I‘m pretty sure there will be a significant chunk clinging to what worked best for them so far instead of moving to this… but if it helps some people to at least get into coding, that‘s a win for me :)

  • @YahiyaJasem
    @YahiyaJasem Месяц назад

    I’ve been using unreal engine for 10 years and I always wanted visual scripting to build apps! I recently started learning c++ ,, and im glad I found your channel, looking forward to follow your journey brother

    • @Kronark
      @Kronark  Месяц назад

      Thanks mate! Hope I don‘t disappoint :)

  • @trinity1969
    @trinity1969 Месяц назад +1

    All the best for your project! I am glad youtube recommended this video to me

    • @Kronark
      @Kronark  Месяц назад

      Glad you‘re here! :)

  • @tacobabyman1215
    @tacobabyman1215 Месяц назад +1

    This is such high production. You've earned a sub

    • @Kronark
      @Kronark  Месяц назад

      Thank you! :)

  • @ArmadiusC
    @ArmadiusC День назад

    If done right. This will revolutianize how many things will work.

  • @zububabu8249
    @zububabu8249 Месяц назад +4

    Wow u just blew my mind look forward to see how this goes!!

    • @Kronark
      @Kronark  Месяц назад

      I'm eager to find out myself :D

  • @jayyusi
    @jayyusi Месяц назад +3

    good luck, this seems like it's gonna be quite a ride

  • @dinoscheidt
    @dinoscheidt Месяц назад +2

    Subscribed. 🍿 But mostly because, since the invention of visual programming in the 70s, node based logic always end in “state explosion” as soon you have recursion and switches…. 👀 But “no code” comes back every decade or so… so I tag along 🤗 best of luck, definitely awesome learning experience !

    • @Kronark
      @Kronark  Месяц назад +1

      We'll see how this one turns out :D

  • @cakerer
    @cakerer 11 дней назад

    Subscribed. I’ve been a professional developer for 15+ years but never really got into low level stuff. Really interested to follow along and learn from this series.

    • @Kronark
      @Kronark  11 дней назад +1

      You picked the right channel for that! There really isn‘t a lower level than what we‘ll be doing here ^^
      We‘ll get back into actual implementations soon though, currently uploading a couple of explainers to help better understand the compiler itself first :)

    • @cakerer
      @cakerer 11 дней назад

      @@Kronark Good! I need the explainers. It’s been 20 years since I studied CPU architecture at university 😆

  • @cryptixdaemon7236
    @cryptixdaemon7236 16 дней назад +1

    Starting a new revolution I see...

  • @chrissalgaj4111
    @chrissalgaj4111 Месяц назад +1

    Hell yeah dude! Extremely excited to see this come along!

  • @rir-ll6gf
    @rir-ll6gf Месяц назад +2

    I see thi as a opportunity for growth bro work extremely hard to deliver thus and the views and subs will deffo grow ❤ youve gotso much potential and time

    • @Kronark
      @Kronark  Месяц назад

      Yeah, the pressure is getting real - hope the next video doesn't bore everyone to bits ^^ x64 instruction encoding is... very dry.

  • @EarnestWilliamsGeofferic
    @EarnestWilliamsGeofferic Месяц назад +8

    I'm here for it, King. Let's go.

  • @r0fael_programmer
    @r0fael_programmer Месяц назад +2

    I am making something similar to that project and it is cool. So good luck!

  • @bakdiabderrahmane8009
    @bakdiabderrahmane8009 Месяц назад +2

    Oh boy, this is extremely interesting, good luck.

    • @Kronark
      @Kronark  Месяц назад +1

      thanks! I'll need it ^^

  • @oglothenerd
    @oglothenerd Месяц назад +3

    Okay, this is pretty cool! 😎

  • @refeals
    @refeals Месяц назад +1

    this is really interesting, cant wait to see more

    • @Kronark
      @Kronark  Месяц назад +1

      Thanks! Gonna be a wild ride :D

  • @m4rt_
    @m4rt_ Месяц назад +1

    You're insane. Good luck! I'm exited to see how this unfolds.

    • @Kronark
      @Kronark  Месяц назад

      You and me both mate!
      Thanks :)

  • @radeeyate
    @radeeyate Месяц назад +3

    this looks so cool! best of luck!

  • @ThePowerRanger
    @ThePowerRanger 21 день назад

    Mad ambitious, I am here for what ever comes of it. Good luck bro.

    • @Kronark
      @Kronark  21 день назад

      Thanks mate!

  • @Carrymejane
    @Carrymejane Месяц назад +2

    Man u make me click this video because i know this technology sounds cool

    • @Kronark
      @Kronark  Месяц назад

      I am pretty proud of the thumnail + title tbh :D

  • @E_m1ly_6302
    @E_m1ly_6302 Месяц назад +1

    Damn, this is awesome and a big sounding project. I'm also currently working on a node based programming language. I also had the idea of partial compilation to speed up compilation in total. Also the abstraction nodes i also implemented. I was stupid in making inputs and outputs of an abstraction node individual nodes instead of you combining them into one, wich feels much smarter.
    Im currently only making the node editor part of the IDE. Making compilation comes when all necessary actions for making changes to the nodes are finished.
    I wanted to call it Duke (in German Graf, wich sounds the same as Graph, like a graph of nodes and edges).

    • @Kronark
      @Kronark  Месяц назад

      Good luck with your approach! :)

  • @harsx1122
    @harsx1122 Месяц назад +1

    Brooo it gonna be amazing and motivating!! Watching for futher videos:)

  • @lumiey
    @lumiey Месяц назад +2

    very interesting, I'd be watching

    • @Kronark
      @Kronark  Месяц назад

      Welcome aboard!

  • @zain9842
    @zain9842 23 дня назад

    Watching a few minutes of this video I really hoped it was a 3 year old video video and the software is out by now, but I guess now I'll be there for the journey.

    • @Kronark
      @Kronark  23 дня назад +1

      Glad you‘re here anyway! :P

  • @mrcavas
    @mrcavas 17 дней назад

    I wasn't hooked with the title. Clicked anyway and was not disappointed!

    • @Kronark
      @Kronark  16 дней назад

      Glad you liked it anyway :D
      I‘m not touching this title and thumbnail, this is the only video that got some significant attention so far ^^

  • @56independent42
    @56independent42 Месяц назад

    WOAH THIS VIDEO FEELS SO SUPERVILLAIN SCI-FI KEEP IT COMING

    • @Kronark
      @Kronark  Месяц назад

      I‘ll try! :)

  • @aeyedeyen
    @aeyedeyen 24 дня назад

    Wooooow! Very exiting stuff, and great aesthetics too :D

    • @Kronark
      @Kronark  24 дня назад

      Thank you! :D glad you like it :)

  • @ahmedabdulmalik4792
    @ahmedabdulmalik4792 Месяц назад

    what an inspiration you are man, love your content.

    • @Kronark
      @Kronark  Месяц назад

      Thank you! :)

  • @ProfShibe
    @ProfShibe Месяц назад +3

    Hope it works out dude that’s a big project but it’ll be insanely worth if you keep it up.
    If it’s python level easy to read but with pointers and low level functionality etc I may literally never learn another language again lol

    • @Kronark
      @Kronark  Месяц назад +2

      That‘s exactly my intention, actually! We‘ll add support for different targets later on, including source code formats such as javascript, python, etc. - so you‘ll be able to use the same nodes regardless of what your output needs to be :)

  • @ryashau3527
    @ryashau3527 Месяц назад +4

    Most interesting thing YT has served up in a while.
    Can't wait to see where you go with this.

    • @Kronark
      @Kronark  Месяц назад +1

      Thank you! Super excited to get into some heavy sh*t next week :D

  • @jeromewilson
    @jeromewilson Месяц назад +8

    Dude, you must have massive nerd cojones. Godspeed.

  • @rcpacini3128
    @rcpacini3128 Месяц назад +1

    I’m interested to see how you progress. Another reference is NI’s LabVIEW graphical data-flow programming language.

    • @Kronark
      @Kronark  Месяц назад

      Yet another node editor with limited applicability :D

  • @PaulPaulPaulson
    @PaulPaulPaulson Месяц назад

    This is very cool and I'm excited to follow your progress!
    I've done something similiar this year in my free time, or rather I started it. It's far from done and has a limited scope. I made a very rudimentary programming language from scratch, also setting every byte of the exe file myself, not using any compiler framework or assembler. Just a simple programm written in C++ that reads my language files and outputs an exe file byte by byte. It's a textual language, not a node based, but I think that's not that much of a difference for the lower layers.
    I do it just for fun and to learn the fundamentals. A toy language not supposed to be published or anything. I thought I might share some of my experience here, maybe it's helpful for someone.
    So far my language is still very limited. Only basic math with integers and some control structures, but more will come when I have the time for it. My goal was to have someting that can run as early as possible wihtout having to support many types of machine code instructions yet. Understanding the PE format of exe files is hard enough for the beginning. A good hex editor that shows the structure of the PE format and that can show all the bytes along with the corresponding instructions in assembler notation is very helpful for this.
    So far in my language I can basically add and multiply some numbers, have some control structures, and return a value as an exit code which I can print in a command line using $LastExitCode. That's not much, but I have something running that has barely any dependencies and I can go on from here. Writing the PE format myself works and I have a growing understanding of how all the machine code instructions work and what the difference to assembler code is (which is similiar but has more differences than I previously thought).
    Since I also wanted to learn how debuggers work, I implemented one for my language as early as possible, and this turned out to be a good idea because seeing what my program is doing helps a lot when working on the compiler. I could have used an existing debugger (which would have also been a good approach) but that still would have needed debug information about the addresses of the code and the variables, and it expects them in an existing complicated format that is made to fit existing languages, and I just didn't want that. So I made my own debug file format, wrote my own debugger (including UI) and can now start my program from it and step through my code, looking at all the registers, memory and variables. And I learned a lot about debuggers.
    Stepping through my code with an existing kind of a hex-editor-level debugger was also helpful in the beginning, but slows development down as the complexity growth.
    For a node based approach like yours I think existing debuggers don't fit well so you might consider writing your own one as well. Not so much because of the structure of the generated code (shouldn't be that different), but because you may want to step through it visually and show that in your editor. There might be libraries or command line style debuggers you can call for that so you don't have to implement every aspect of it yourself. But I haven't looked into it since my goal was to do it from scratch, so I can't tell much about that.
    There are many ways to approach such a task as yours, and many of them are good. But this worked well for me: Doing an extremly narrow slice of my end goal first but getting it to run very early. Having as much control as possible over what the code does is key, and being able to debug very early helps a lot for that.
    Sorry for this wall of text 😄
    Good luck with your project and thanks for sharing your journey with us!

  • @QisHD
    @QisHD Месяц назад +3

    Good luck! Will wait for updates.

    • @Kronark
      @Kronark  Месяц назад

      Welcome aboard! :) looking forward to uploading more

  • @Someone-df7tj
    @Someone-df7tj Месяц назад

    This is some peak content gonna turn on the notifications for this one

    • @Kronark
      @Kronark  Месяц назад

      Thanks! Welcome aboard :)

  • @theevilcottonball
    @theevilcottonball Месяц назад +1

    After i wrote a 800 bytes windows PE exectubal in ahex editor, I once had a similar idea of a universal programming language called binaula (binary authoring language, yeah the name sucks) where you start from bitpatterns and then you can have loops to repeat a pattern, functions to encode a pattern e. g. to write out a file format header, and other structures, basically a hex editor with macros, and with this language you could program sound, images, windows executables (maybe with an instruction encoding function in the stdlib), ELF files, etc. etc. But it was text based, not node based, and it would have probably been impractical and very low level (in some ways lower level than assembly) so it would have required a lot of library functionality to be useful, so I never really spent much time on it, maybe I will get back to it,

    • @Tron-010
      @Tron-010 5 дней назад

      can u elaborate more on ...how that looping works.....to repeat a pattern, say in form of curves in a graph perhaps...[for visual interpretation]

  • @DrW1ne
    @DrW1ne Месяц назад +1

    This is awesome.

    • @Kronark
      @Kronark  Месяц назад +1

      Thank you! :)

  • @sebastercats6123
    @sebastercats6123 Месяц назад +2

    Nah, forget making it for a thesis, you should propose this subject to department of education and make everyone in the world learn this concept, period.

    • @Kronark
      @Kronark  Месяц назад +2

      Not making it for the thesis, just preparing it for use during the thesis :)
      First gotta ensure that it actually works for larger projects, before doing anything like that :P

  • @robertbaldwin711
    @robertbaldwin711 Месяц назад +1

    There will be a few/many issues:
    1. how will you do system calls? especially anything async which might require threading..
    2. how will you do threading?can one 'lock' a node? if modifying a file is happening like you elude to in the video then you will have to do file sync strategies.also execution might be slow... like really really slow
    3. you seem to be choosing the more instructions is more approach, which is valid, but has the same issue in large assembly instruction sets compared to small assembly instruction sets (i.e. lots of fun writing docs for everything)
    4. nodes might get very complicated, and I don't just mean the mess of 1000s of nodes on screen that represent some algorithm, I mean just a single node in and of itself might get complicated. For example, if you need atomics ever, then you might need to make a special compare and swap node, or if a node requires multiple inputs that might also be 'fun'. Or if you allow for abstraction of nodes by nodes then you get other problems, like maybe you represent nodes of A..Z with fn(x) node or something.
    5. you might want to look at how fpgas work and languages for them, as they are basically just building blocks that allow for specifying inputs and then piecing these set of blocks/functions together. Might find good parallels.
    6. since you mention you want to be able to integrate with a gpu then you will have to have some way of using special nodes that do compile shader, submit shader, wait for result, get result from gpu, and whatever other special fns you might need to embed into a node for this to work.

    • @Kronark
      @Kronark  Месяц назад +4

      I think you fell into the same trap I fell into a year ago while designing this. The node graph compiler doesn‘t return the result of an operation, it returns the operations needed to get that result. A hypothetical „Addition“ node which recieves the inputs „1“ and „3“ does not return „4“ - it returns „1 + 3“. This compiler simply places instructions into an executable, it doesn‘t execute itself. It‘s exactly like traditional programming in that regard - your source code text editor doesn‘t execute your text, it uses it to build an executable which can then be executed.
      Once you see the compiler from this perspective, you‘ll see how none of these problems are actually on the horizon. Each problem you mentioned is solved exactly the same way you‘d solve it in traditional source code.
      For example system calls. They‘re just the syscall instruction (in the case of x64) with some setup required beforehand. They‘re handled by creating a node that returns the syscall opcode together with the necessary register-related operations beforehand - which is then placed into our executable.

    • @robertbaldwin711
      @robertbaldwin711 Месяц назад +2

      @Kronark I see now, that makes the job a lot easier if all you need to do is go from node to instruction set code and then let someone just run an executable afterward instead of having the node actually do an operation. I'm looking forward to seeing what the initial poc looks like!

    • @Kronark
      @Kronark  Месяц назад +1

      Me too man, me too

  • @nikelborm
    @nikelborm 29 дней назад

    Dude, that's not a programming video. That's ART
    WOW!

  • @rashedulkabir6227
    @rashedulkabir6227 Месяц назад +1

    It's a cool video. You are going to become the next Steve Ozniak.

  • @mariosadov
    @mariosadov Месяц назад +1

    Good luck with your master's degree. Looks like a really big project

    • @Kronark
      @Kronark  Месяц назад

      Definitely, it‘s gonna be a wild ride the next months ^^

  • @lordrusk6118
    @lordrusk6118 Месяц назад

    The moment you can create a node as a defined input and output of a group/map of sub nodes, which would implementing fractal abstraction, this is be amazing

  • @RostislavArts
    @RostislavArts Месяц назад +3

    Such a quality content with less than 1000 views. Man...

    • @Kronark
      @Kronark  Месяц назад +1

      Thank you!
      To be fair, this is not my first attempt at making youtube videos and I did work in the visual effects industry a bit... But man, I did not expect all this right now... after 2 god damn days...

  • @SumanPokhrel0
    @SumanPokhrel0 Месяц назад +1

    It seems really interesting , do you have any in-depth documentation about your idea ? Would love to go through the details.

    • @Kronark
      @Kronark  Месяц назад

      Not yet unfortunately, no time right now. I‘ll definitely make those once the release product is slowly getting going - once all the built-in nodes are locked in functionality-wise

  • @hermit25
    @hermit25 Месяц назад +2

    as a beginner i enjoyed this video quite a lot

    • @Kronark
      @Kronark  Месяц назад

      glad you liked it! :)

  • @Eevee8858
    @Eevee8858 Месяц назад

    Damn bro i didn't even notice this was from a channel which barely had 1k subs
    The quality is phenomenal 👍🏻
    Yt is weird the brain rot is on rise and then there's this peak hidden beneath shit 😅

    • @Kronark
      @Kronark  Месяц назад

      Bro, I have no idea how I got here… I wanted to start slow…
      Thank you!

  • @hugobarroca9538
    @hugobarroca9538 Месяц назад +1

    Seems closely related, in concept, to a low-code tool like outsystems, but much broader in scope and flexibility. Looking foward to the following devlogs, excelente video quality and production, and the concept itself is pretty interesting as well!

    • @Kronark
      @Kronark  Месяц назад

      Thank you! I hope the next video won't disappoint :D

  • @kravataf
    @kravataf Месяц назад +3

    looks really interesting

    • @Kronark
      @Kronark  Месяц назад +2

      thank you!

  • @andrewferguson6901
    @andrewferguson6901 Месяц назад +1

    Any nerd who cites the work of inigo quilez has my immediate attention

    • @Kronark
      @Kronark  Месяц назад

      iq is the best!

  • @midnightfuture
    @midnightfuture Месяц назад +2

    "Writing software by first building my own programming language." I presume you're familiar with what are sometimes called "4GLs," or Fourth-Generation programming languages? Node-based programmatic logic environments are fairly commonplace, as you mention, but most tend to focus on specialized contexts like the Blender/Unity node graphs for shaders or National Instruments LabVIEW for data acquisition and signal processing. Creating one that is general purpose tends to explode in complexity, necessitate abstraction, and end up being a flowchart of a fairly traditional text-token programming language in the end.
    Should be fun. I'll be watching.

    • @Kronark
      @Kronark  Месяц назад

      Guess we'll have to find out how this attempt goes! :)

  • @eternaldoorman5228
    @eternaldoorman5228 Месяц назад

    And you took some time out to do some really great sound design too!

    • @Kronark
      @Kronark  Месяц назад

      Glad you think so! :)

  • @_xX_me_Xx_
    @_xX_me_Xx_ Месяц назад +2

    A true 100x developer

  • @vasyavasilich7659
    @vasyavasilich7659 Месяц назад +1

    Bro is trying to make his own game engine, not from scratch, but from scratch scratch

  • @villagerjj
    @villagerjj Месяц назад

    I am excited about this, imagine being able to adapt it to any other instruction set

  • @MadDog7XL
    @MadDog7XL Месяц назад +2

    Somehow looking for information about ScratchJr has led me here. Cool project, understood none of it

    • @Kronark
      @Kronark  Месяц назад

      Yeah, I've had multiple comments about scratch already... RUclips took this concept and thought "this looks like scratch to me" ^^

  • @Zeus-hb3yn
    @Zeus-hb3yn Месяц назад +1

    Bruv, you might as well be coding in assembly 💀
    Ur incredible man, please keep this series up

    • @Kronark
      @Kronark  Месяц назад

      Thanks! Jep, the pressure to continue is getting pretty real right now ^^

  • @PlayBASIC-Developer
    @PlayBASIC-Developer Месяц назад +1

    I must be old, back when I was in high school a generation of kids wrote actual machine code everyday.. but yeah seems interesting

    • @Kronark
      @Kronark  Месяц назад

      Must‘ve been some exciting times back then :)

  • @cn-ml
    @cn-ml 12 дней назад

    I've also planned on doing a project like this, but apart from the obvious, a big problem of all node-based languages is that there is no easy way to efficiently solve merge conflicts.

    • @Kronark
      @Kronark  12 дней назад

      I‘ve gotten that quite a bit now and I honestly don‘t see the problem… could you maybe elaborate on which issues you‘d expect to encounter when implementing a merge-conflict resolution approach?

  • @medhanzo
    @medhanzo Месяц назад +9

    girl.. good luck

    • @Kronark
      @Kronark  Месяц назад +6

      Thanks, i‘ll need it :D

  • @PS3PCDJ
    @PS3PCDJ Месяц назад

    What most non-technical people and non-programmers fail to realize is that, programming is not about the language you use, but about your ability to turn something abstract like "automate this task" to actual working code.

  • @S0ft_b4b3
    @S0ft_b4b3 24 дня назад

    dammnn, badass programmers r back, im in lov with this

  • @TristanRega
    @TristanRega Месяц назад +1

    I’m all in

    • @Kronark
      @Kronark  Месяц назад

      Welcome aboard!

  • @veeloth
    @veeloth Месяц назад +7

    My man I think you're getting famous soon

    • @veeloth
      @veeloth Месяц назад

      This is the kind of fundamental understanding of systems and reinvention of technologies I love, best of luck!

    • @Kronark
      @Kronark  Месяц назад +1

      I really don't want to be famous though hahahaha
      But thanks man! Hope this all goes as planned this year :)

  • @Aplysia
    @Aplysia Месяц назад +3

    Call me a wimp, but this seems like a lot of work to do in one year, let alone 4 months. Maybe getting hello world to print to a serial terminal would be more achievable. Either way, you've hooked me.

    • @Kronark
      @Kronark  Месяц назад +1

      Eh, it's doable once I'm done with instruction encoding and registers - those are the two topics that are a bit heavy complexity wise. once those are done it's really just building new instructions and then programming as usual. :)
      To be fair, I don't have to be capable of full on light simulation in 4 months using this compiler - that's just when the thesis officially starts. so I still have some time to get vulkan and shaders etc working in january and febuary.
      But I'm just as curious as you are! Not super sure if this will work out either :D

  • @ozgureren91
    @ozgureren91 19 дней назад

    WOW. huge if possible.

  • @pykir74
    @pykir74 5 дней назад

    insane.
    subscribed 👍

    • @Kronark
      @Kronark  4 дня назад

      Welcome aboard!

  • @sofianealloui
    @sofianealloui Месяц назад

    GOD!! I'm having goosebumps rn, bro please please please read my comment, Just yesterday I was thinking about this stuff that for sure it could be a way to write serious programming software with something like Scratch, because in machine learning there's many tools just focus in building the architecture of the models with no need to complexe programming and coding, So the problem is not here the problem is that everytime i think of something i just find it next in social media or youtube or even just while navigating the websites with no attention of looking for it, it happened with me many times i really start hating it, it happened for things have no meaning and was just personal inner experience and ideas for me, that day i was working for a design thing and idk how i just accidentally mistaken an 'r' and an 'n' with 'm' because i was zooming out, and that was just like something i didn't really think about for not than 5 seconds, then after exactly 1 day , a meme post on instagram appeared suddenly talking about the same thing exactly the same thing (for sure it was in a different context, but it was talking exactly about the same thing). It happend a lot, i start believing that the world isn't what we think it is, im thinking now that ideas are floating and traveling alway and for real shapes our world some how even in things we think they are independent like the internet and technology, I really start hating it, and no one is talking about it, it really needs to get talked about. bro please please read my comment

    • @Kronark
      @Kronark  Месяц назад +1

      This idea isn't new :)

  • @fizipcfx
    @fizipcfx Месяц назад +3

    Lets see how this youtuber turns out

    • @Kronark
      @Kronark  Месяц назад +3

      I‘ll try to not disappoint ^^

    • @ewerybody
      @ewerybody 21 день назад +1

      Why do you have a Drakensang avatar image?!?! :D

    • @fizipcfx
      @fizipcfx 21 день назад

      @@ewerybodyhurray another one noticed :)
      because of memories, the good old 40 level days

  • @AaronLance
    @AaronLance Месяц назад

    I've often thought that the future of software development would follow a similar node-based interface. Especially when dealing with hardware I/O... I've tried a few, but have always been disappointed with the implementations. I'm curious to see what you come up with!

  • @BCannTV
    @BCannTV Месяц назад +1

    Would love to watch a livestream of you building this project.

    • @Kronark
      @Kronark  Месяц назад +2

      I had a similar thought yesterday, it could definitely make a relaxing little dev stream. But that'll have to wait until the prototype is 100% stable and we're doing some more interesting stuff - something like graphics programming where you see some visual feedback intermittently

    • @Kronark
      @Kronark  Месяц назад +1

      cheers! :)

  • @shashwatpatil4831
    @shashwatpatil4831 Месяц назад +1

    I also want to learn all this cool shit, hope you succeed in this 😊

    • @Kronark
      @Kronark  Месяц назад +1

      Hope i‘ll be able to teach you some of it with the next videos! :)

    • @shashwatpatil4831
      @shashwatpatil4831 Месяц назад +1

      @@Kronark looking forward to it

  • @fuzzy-02
    @fuzzy-02 Месяц назад +1

    Came here for the cool animations and narrator voice