Why I like C programming more than Web Dev (rant)

preview_player
Показать описание


#neetcode #leetcode #python
Рекомендации по теме
Комментарии
Автор

Yes I could've built my own graph lib. But my point is it doesn't make sense to do that in web dev. The reason you don't use a lot of external dependencies in C isnt a matter of personal preference, it's just that most types of C programming don't require many dependencies.

I'm NOT saying C is the better tool for the job in this case. I'm saying I like C programming better, partially because it's closer to the hardware level and requires less abstraction in most cases.

The abstraction that actually is required can be understood by C fundamentals, e.g. fork a process, file descriptors, etc.

Anyways, this was more of a rant video. Not trying to downplay webdevs, obviously most of the important software being made today is web applications.

---

I'm curious, what part of webdev do you guys actually enjoy? (other than learning a new framework every year to solve the exact same problems as before, except in a slightly different way :p).

Feel free to roast me back, I like it.

NeetCodeIO
Автор

This has happened to me so many times and it finally made me understand why a lot of people hate web development.

elias
Автор

Earlier the job used to be Software Engineering. Now the job is just glueing together APIs.

annaczgli
Автор

Exactly my experience. C, C++ programming and actually implementing the algorithms and data structures is what's fun to me, and learning new things in the process.
Web development is just this, handling many dependencies hoping they play nice with each other, and you don't get to build the interesting parts, you only connect them together... Exactly my problem with web dev.

Nunoflashy
Автор

I was a low level device driver dev in C for the first 7 years of my career. Learned a ton building out all sorts of drivers and OS features for a router like product. Then, made the switch to web development doing loads of React and Nextjs. For me each has their own values. I love building something I can show my family instead of a command line interface. Building great UX is practically an art. But so can writing C. I’ve spent hours debugging webpack before. I’ve also spent days trying to track down some esoteric makefile problem with a gigantic makefile that had a lot of tech debt. No matter what level you are programming at you will bang your head on the wall at some point or another.

aiw
Автор

Bro so relatable lmao. You spend hours figuring out why something isn't working, but even after you fix it you don't feel like you learnt anything cos you'll never use that crap again. When you aren't using libraries and external tools as much, you know more about the inner working and can debug better. Even if you have to go hunting for a solution to your bug, you'll end up learning stuff and will use this later.
Shoutout to everyone who gives back to the community by answering on stack overflow and such

gnes
Автор

Web development nowadays basically boils down to integrating dozen SaaS services "with generous free tier". Which is understandable, using already existing solutions is a good idea instead of making your own. I hate it but I understand it. With that said, if you hate this trend then maybe web development is not for you. You should try embedded programming, systems programming, game development or whatever else exists.

IvanRandomDude
Автор

I remember back in college, I was chilling programming in c++ for two years and web programming course came to me. The learning curve was a mess. That's the first time I felt hatred in programming.

hlrbBrambleX
Автор

I've just been thinking about this recently. I've been feeling not unhappy, but sort of half-happy in my daily work for years at this point, like most days I'm not into it that much but then I'll get one or two days every week when I really just get into the flow of coding and solve problems and I feel happy, and this is why I became a developer, this is the high I'm chasing. And I realized this happens the moment I go back to basics, when I'm writing algorithms, doing loops, and conditions, so in summary when I'm solving complex logical puzzles, not when I'm basically just configuring and orchestrating already existing tools. And sadly a lot of the most in demand and well paid areas of the industry have been for a good while becoming less and less of the former and more and more of the latter. I guess it's sort of just the way it works, it's our profession, creating software so other people can get things done more efficiently, but ironically this affects our own field as well, we're basically continually optimizing out the fun part of our work, which makes me incredibly sad.

recarsion
Автор

Sometimes I honestly find it simpler to "reinvent the wheel" then having to learn someone else's api. Most of my PR comments at work have been "use <some library> instead". If the use case is complex and my own implementation is buggy, I get it. but a lot of times if it is something fairly simple and it works I dont see the point of ripping it out and npm installing another package. But hey...

midlFidl
Автор

Truly feel the same way.
Feels more like fiddling and getting "stuff to work" than problem solving

bharghavak
Автор

why didn't you create your own graph-ui from scratch for your website? 🤔

rog
Автор

My take on the problem is that if you're a professional C programmer, you either build up your own dependencies or you build up a list of other's dependencies that you know how to make use of. If you already know how to implement the various data structures you need, don't keep reimplementing them unless it's for fun, use a library. If it's your own, then great, but it doesn't have to be. Though, I will say that I've been unhappy with most of the various UI libraries for a while now. It doesn't help when they seem to revel in making breaking changes. I'm sure some people will make excuses and rationalize on the time periods but when you've been at it for 25 years you expect an interface to last longer than 5 or 10 years.

anon_y_mousse
Автор

This is why i love game dev, more primarily graphics development and using maths everywhere, its fun

pengie_
Автор

To me this is just a general approach that some people have. Regardless of language. C is no different when it comes to dependency hell. It's just that you kind of create it yourself, due to vendoring, or your forget it after having spent an enormous amount of time with CMake or the like.

If you were to do any async programming, graphics (3D, 2D, GUI, etc.), audio, you name it; something more that "just manipulating memory", chances are that you'd have a similar experience scouring for suitable libraries in the same vein, and having to deal with those who then have ton of extra dependencies.


I agree with your last statement. It's fun to build it yourself; of course it's not always viable in cases where you are restricted by deadlines and whatnot, but for the most part, whether it's C, JavaScript or any other ecosystem, it's fun to try and build it yourself and learn from it.

dealloc
Автор

I feel that way too. We want to become engineers that make those tools (make libraries), not be developers (use libraries).

akifimran
Автор

I've only used vanilla JS to code some small functionalities for basic sites but wow I feel this way about Python (data science type work)! It feels like lego but the pieces are from different sets! The data types coming out of the libraries don't want to talk to each other and then suddenly my version of Python is too high for the library, then C/C++ dependency issues creep in and I need to containerise everything with specific pinned libraries (down to the patch) tied to a specific version of Python and such so it doesn't break... I also find the whole 'reads like English' thing to be overstated imho

patrickmoehrke
Автор

If you want to do it by hand like you do in C, do it, none is stopping you.
The thing with web development is that it's a lot of complexity abstracted away form you, you have the freedom to do things by hand and do them however you want, which is something i prefer to do personally (for everything that isn't "really hard" to make like monaco editor) because it gives you more control on your code, but many people just go the lazy route and just install the dependency, you do that to yourself, it's not web development.

C has libraries too, and things that you absolutely need to use if you don't want to go on a one year roll on making your own implementation, it always depends on what you need to do, people see web development with things premade so they think it's all nice and simple, but all those dependencies are really complex under the hood.

I also see many many first coders saying "oh c and c++ is better" yet the most they have done is a one/two files script with some CLI input and output, ofc you like it more, you barely got the tip of your foot into it, the program opens once, runs, and finishes.

specy_
Автор

You actually articulated this so well, I've been feeling like my job has just been piecing together libraries to make something useful instead of actually building something myself, I still enjoy it but it feels more like combining different pre-built Lego sets to make a cool city of Lego buildings, instead of building a Lego house from scratch by yourself.

HemstitchedIrony
Автор

This is exactly how I feel. I like the problem solving part of programming. Not the finding other stuff to do this for me part.

darkdudironaji