I re-invent the wheel - a rant.

I like to re-invent the wheel.
People who say you shouldn’t, are probably employers and silly people (well, perhaps I am a bit harsh now, so forgive me).
I am now 56 years old, and there seems to be an inate aversion to learning frameworks - don’t know exactly why.
For some reason I come from an era where we used to do so many things ourselves. My first computer in the '80s was a TS1000 (ZX81) and later a ZX Spectrum. Back then you loaded things from audio tape. If you wanted to print something, you bought a Centronix interface so your simple computer could talk to the printer.

That is getting your hands dirty.
I have to admit that I don’t write software commercially nor work in the IT field fulltime anymore. However, writing and inventing software is extremely satisfying.

I started with Javascript when the lockdowns hit. I wanted to see what it looked like after all those years ago when I dabbled in it a bit.

Now I am trying to create a framework of my own. Just for me.
No, I am not a hypocrite, I just don’t want to have to wrap my limited mind around the warped minds of some other framework developers. If I create something in my framework, I live or die by it. How many of the “frameworkers” out there can say the same?

I think that re-inventing the wheel is both fun and frustrating at the same time. You discover the issues that the developers like react ( not that I am using it) must have grappled with.

I am also trying to create an OS-like thingy but running in a browser - also vanilla JS. What a crazy idea! I pity the people who have to produce code for a job working in projects similar to this. It is fun, but also a pain. Sometimes I have to remind myself that this is a fun project, not for a boss. I admire people like Andreas Kling and his SerenityOS project on YT. He has become a legend.

I am still learning JS, but everytime I get stuck, I GOOGLE things. I use to do this with MSDN way back when I was a MCSD (Microsoft Certified Solution Developer - among the first 250 in the world back in 1995). You had a question, you go search MSDN. People like to criticise MS, but I still think they developed the best software dev tools, just see how popular VSCODE has become, and we all use it - the sane people amongst us, that is. Visual interdev - I don’t know if it still exists, was something 50 years ahead of its time. Pity that Bill has now become a vendor of vaccines - almos t Kavorkian…

Who else shares my crazy mind?

:grin: This is my favorite quote:

“The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.”

― George Bernard Shaw

2 Likes

Thanks for your response. I admired Nikola Tesla growing up and read his biography while still in school. I have always sought to put my own stamp on things. Have a nice day and remember: code for fun!

If you really are interested in going deep on the OS-in-a-browser idea, something like WebGL or WebNative may be something that you can use to get the perf down to a great level.

2 Likes

I’ve come to realize that with all the CSS and JS frameworks in existence, it seems that all try to reinvent the wheel to do the same exact thing; it boils down to which you like best.

I feel overwhelmed by all the various solutions out there, so I feel compelled to reinvent the wheel myself, further adding to the myriad of choices. I feel like I’m relearning things every 6 months because of how drastically some of these tools change how they operate.

By the time we all hop on board with the latest trends, they’re already obsolete and something shiny and new is on the horizon :smiling_face_with_tear:

Hopefully the new frameworks and things becomes easier to learn once you’ve gotten good at one.

You also don’t have to go deep in learning all of the new frameworks that come out. There are a lot of people who are quite happy and successful building Angular and React-based apps without having jumped on anything more recent! :horse_racing:

Very true, but it’s hard getting over the sense of FOMO or being “shamed” for not sticking with the times.

Reddit is nothing but a bashing party these days, which is sad that as developers we’ve become so divided on things, but I guess that variety is also the spice of life!

It’s been years since I’ve messed with Angular, I could never really grasp it.

Just ignore the noise on social media :stuck_out_tongue:

If you are interested in web development just because you enjoy it, then pick and choose whatever framework you enjoy. Personally, I prefer no frameworks at all. I do almost all of my fiddling with vanilla HTML/CSS/JS.

If you are interested in web development as a career, look for where the jobs are. While there are those that advertise ridiculous requirements in number of frameworks you must be proficient at, many are looking for someone who is a good problem solver and knows which tool can be repurposed for the task at hand.

1 Like

I’ve done web development as a hobby since the 90s as a wee lad, with a few paying gigs between then and now.

I’m a Network Engineer by trade, but have always had a passion for application development (C/C#, Commodore BASIC, Python, etc.), but I’ve found that keeping up with and staying current in those aforementioned topics has been far, far easier! I’m also a hardware junkie, so I pretty much dabble in all aspects tech, be it front end, back end, hardware, software, networking, etc.

Depending on the project, I’ll use all vanilla code, but sometimes it’s nice to use frameworks to quickly deploy something, and have something that someone who is familiar with said framework can administer long after I’ve departed; I’m still very anti-CMS, though I can appreciate its usefulness as a tool and will begrudgingly use it when appropriate.

I think one of the biggest issues I personally face in this particular discipline, is that I’m the only one of my friend group who’s into and understands this. I have no one I can dialog with one-on-one about stuff to bounce ideas off of and so on. I know I can always ask the kind folks around here, but I don’t feel comfortable bombarding the thread list!

My biggest weakness, and no one framework can fix this, is UX/UI design. I can make nice, easy UIs for desktop and mobile applications, but for some reason a webApp seems like a completely different ballgame, and it’s hard not feeling like what I’ve created is a copy-paste of another format. That’s also a personal issue I just need to build a bridge and get over :joy: If it works, it works and if the client’s happy, that’s all that matters.

1 Like

You should totally feel free to bombard this thread list and lean in on any of us to chat about these topics! For many of us here, and especially for me, there are few things I enjoy more than talking about web development and related topics! :slight_smile:

2 Likes

It’s truly a case of the desire to be different, and still succeed, in a world of frameworks, templates, and CMS!

I guess I should do just that, but let me make sure I’m not asking something I haven’t already :innocent:

I applaud your effort here! I pursued a similar idea a few years back (I think I actually sent it to @kirupa and got some feedback on it!) and eventually gave up on it due to the overall limitations of the web at the time coupled with my limited knowledge, especially of CSS. I think the more technical term is “web desktop”, but I called it a web OS anyway. :joy:

There is a browser-based emulator for a new 8-bit OS for a project called “Commander X16”. The emulator functions as you’d imagine on native hardware, however, seeing that it’s only an 8-bit, terminal OS, it’s lacking in functionality unless you’re proficient with Commodore’s BASIC.

I could see the creation of a DOS-style OS within a web browser, and that actually kinda sounds fun. Something that has a full-on Window’s style GUI may prove a little more challenging and resource intensive (as well as posing a challenge for load times due to potential size).

Here’s the emulator in question: Commander X16 Emulator
Looks like it’s made using WebAssembly.

IMO you guys aren’t really re-inventing the wheel.
What you are doing or trying to do is:

  • Understand in depth the code your writing/ using
  • Have performant code
  • Not worry about dependencies breaking
  • Be happy with your code when it performs and not refactor when there’s another hype.

Don’t be discouraged by wanting simplicity, reliability and performance when others in your “group” don’t have the same values.

This guy has taken simplicity to the extreme.

This is a bit dated but it’s an eye opener on the trade offs of using React.

This is a pretty strong argument against “TDD” as it’s used.

I’m 78 and
I for one would like to see your end result : )

Simplicity is definitely king, though I do feel people confuse “ease of use” with simplicity in the case of a lot of the tools that are out there. Sure, they make things easy, but they’re anything but simple after you peek under the hood!

I appreciate the videos, definitely worth the watch, and helps exonerate my position within the development space as a whole.

1 Like

I get your annoyance at the constantly changing frameworks landscape. I just find it so satisfying trying to get into the heads of the guys who develop these things b doing it myself. I do it not to necessarily to share it though, but to say to myself “I did that and I enjoyed every bit of it”. I regularly watch the “Tsoding Daily” channel on YT and I get a kick out of watching how he sometimes bungles through things, but also at the amazing things he creates. The same goes for the SerenityOS channel and what that project has become in the past 2 years. Coding/developing for fun is a movement worth joining.

1 Like

Wow that speed test was amazing. It would be the same with game dev on html canvas vs canvas frameworks

This might sound a bit nit-picky but object lookups and function calls have a cost.

When I build things I usually start by mapping out the UI interactions and the business logic using a state chart (finite state machines).

Then I map out the data structures, start building heaps of small functions and test them all out (basic tests)

Then I compose them together and test as a whole thing including business logic and ui.

Then I try to replace FSM logic with async/ Promise.all/ error handling as much as possible.

Then finally I copy & merge the functions into larger functions.
This usually involves extensive use of for/ while/ break/ continue/ if and retest them.
I generally use labels for code clarity.

The performance increase from using monolithic functions is usually a 2-5x speed up.

For some reason the more your JS looks like C code the faster it gets :smile:

Sounds like a good plan. What I miss is a known scalable application architecture for vanilla js projects. React brings forward comfortable architecture and code base versus jQuery which is still one of the top used js frameworks to date. Remember what backbone js did to our community?

1 Like