4 ms·
Sure seems like it to me, lol. I learned web dev first by using Geocities and Frontpage, then Dreamweaver. These days I actually get paid to write Javascript (
by solardev 3y ago
Sure seems like it to me, lol.
I learned web dev first by using Geocities and Frontpage, then Dreamweaver. These days I actually get paid to write Javascript (something young me would've found unbelievable enough already), but to me that's still a huge difference from "real" programming, especially in C or assembly.
Web dev (at least the kind I do) is mostly still just declaring UI in a XML like syntax, then wrapping it up in some events and state management. It's not that different from, say, Visual Basic. At its core it's a bunch of event driven reactions and API calls based on UI clicks. Once upon time that was Perl or PHP or jQuery, now it's usually React, but the fundamental process of "declare UI, add event handlers, send to APIs" hasn't changed much IMO.
But an OS? Man, how do you work with memory access? Overflows? Garbage collection? Device drivers? Caching? Graphics pipelines? USB? Lightning? I don't even know where to start with any of that, and an OS is ALL of that and then some.
Mad props, is all I'm sayin'.
- SonOfLilit 3y agoIt's almost exactly the same, except the building blocks are much simpler (=more primitive) so you have to spend more time per useful thing you want to get the machine to do. If you want to get a taste of what that means that is definitely 100% within your abilities, try to write a Brainfuck interpreter in JS, and a Brainfuck to JavaScript compiler (that yields a string that you can eval() to run the program). Then try to write some simple Brainfuck programs, then try to write a Brainfuck interpreter in Brainfuck. At this point you won't yet know how to write an operating system, but you'll definitely know how it feels to write one.
- solardev 3y agoHeh, that seems like a perfect weekend project for whenever I feel like I'm missing a swift kick in the nuts.
- SonOfLilit 3y agoNot sure why I'm getting such negative reactions. I've given these exercises to many developers, some of them very junior, and seen them complete them successfully. It's not that hard to do each step after the previous ones, and very rewarding to complete the entire thing.
- bmicraft 3y agoIt might not be "hard", but it sure sounds very tedious to put it lightly
- SonOfLilit 3y agoNot too much work, either. I once live coded a Brainfuck interpreter in 30 minutes for PyCon IL, and there aren't really any tricks involved, just work, so it should take the average dev that didn't just practice it maybe 2-4 hours: https://www.youtube.com/watch?v=F5P6Q7vs_-Y https://www.youtube.com/watch?v=F5P6Q7vs_-Y
- solardev 3y agoI once live coded a vertically centered image in 30 minutes. My coworkers were pretty impressed. We had low standards... Another time, I read a Brainfuck wikipedia entry for about 30 seconds. I still haven't recovered.
- solardev 3y agoIt sounds doable, just painful! I'm not sure I'm masochistic enough. Like I could do that, or maybe go on a bike ride, or get some ice cream... I think I have pretty underwhelming dreams relative to OS devs, lol. I feel a ping of reward when a web page loads without crashing, or a npm audit passes without red, or I finish a level in Mini Motorways. Generally, my secret to a happy life is to aim low, and then be satisfied once I hit half that :)
- SonOfLilit 3y agoI promise you it isn't. It's a fun challenge, and not too hard. Smaller and easier, say, than delivering a full eCommerce website end-to-end. I'm not an OS dev myself, I just love playing with technology of all kinds and picking up elegant ideas, and this is one kind :)
- agar 3y agoThanks for the laugh.
- viraptor 3y ago> But an OS? Man, how do you work with memory access? Overflows? Garbage collection? Device drivers? Caching? Graphics pipelines? USB? Lightning? You start much simpler. Grab some ESP32 or ARM development board and start with trivial things on them. Simple devices also have simple drivers - sure, trying to connect to an NVIDIA card is hard, but an 128x128 LCD display is trivial. Then you build more complex things on top of that. Same with PHP - you start with 'echo "hello world"' rather than full reactive page with many server routing endpoints.
- hnfong 3y agoTechnologies become more complex as people accumulate experience. Web only started in the 90s, and was intentionally designed to be simple (html and stuff). Even so, it's morphed into a very complex thing already. It doesn't feel like so because you (and to some extent, I too) have been witnessing its evolution as it happens, so it's all incremental, but I can imagine a total newbie coming into the field and feeling overwhelmed. Like, try to explain things like CSRF tokens, Web Assembly, HTTP/3...