Comment on The C programming language is like debating a philosopher and Python is like debating someone who ate an edible

<- View Parent
DarkAri@lemmy.blahaj.zone ⁨1⁩ ⁨day⁩ ago

I actually pay for software but I run Linux, I’m not paying for windows because it’s bad. I prefer to pay then have ads. I value my time.

What you are saying is somewhat true. There are hundreds of thousands of programmers these days if not millions. The quality of the person who writes software just isn’t what it used to be. Not that they don’t work hard, but just that they aren’t capable of writing C.

You also can understand everything in a system, at least some people can. I understand those people are rare and expensive to hire.

One thing C really lacks is modern libraries to do these things. It’s not a limitation of C itself it’s just that most modern tools are targeted towards other languages. I understand that writing webapps in C isn’t the best idea because you don’t want web stuff running on hardware directly most of the time if you care about security anyways, but it’s really just a trend where the industry moved away from C with all of its frameworks and stuff which has not been good for the users.

Windows 98 was really good if you knew how it worked. I never had any issues really with stuff like XP. It always worked, it was always fast, it was always stable. I used XP for probably 10 years and never had any issues with instability and stuff and I was constantly modifying stuff, overclocking, patching drivers, modding bios, doing weird stuff that others didn’t do coming up with my own solutions. It worked really well. It’s modern windows that’s a buggy mess that crashes all the time.

To get back to the other point though, to move away from C was a mistake. It’s not that much more complicated than using other languages. Most of the complexity was just in setting up the environment which was admittedly terrible under C. Trying to link libraries and stuff. The actual code itself is not really that much more difficult than say python, but it’s a different paradigm. You are getting closer to the hardware, and it’s not automatic that your code is going to be cross platform unless you use platform agnostic libraries. It’s entirely possible to write multiplatform code in C and most programs could be written in a multiplatform way if users use libraries that target multiplatform development and let users compile them ahead of time. It’s just that companies like Microsoft created proprietary junk like .net and direct X which made writing multiplatform code much harder if you didn’t start with libraries like it or gtk, and openGL. Again, this was never a fault of C. You could even have a standard in CPUs that would run any code to bootstrap a compiler and you could have platform agnostic binaries, which is just something that never happened because there was not really a point to it since so much code was written in lockdown .net and directx.

Interpreted language were intended to solve those issues. Making platform agnostic code, and to make code that was safe to run from websites without compromising the integrity of the users root filesystem, but these are terrible solutions. Especially as interpreted languages moved beyond web stuff and small simple apps to being used everywhere and integrated into every part of the system.

Python is a scripting language. It’s best used to call C libraries or to write very lightweight apps that don’t depend on low level hardware access. Java is like C but worse. JavaScript is like the worst of all worlds, strongly typed, verbose, picky about syntax, slow, interpreted, insecure, bloated, but it is cross platform which was originally probably why it was so popular. That should have just been added to C however. When you have code that runs 10x-10,000 times slower and you have bad programmers who don’t know how to write code that doesn’t destroy the bus, or use 100% of your system resources for no benefit, you end up in this mess we have today, for every app that uses 100% of your memory bandwidth, that halves the speed of the next program. If you have 3 programs running that peg then Emory bus, that means your next program is going to run at 0.25 the speed roughly. This is not how software should be written.

Python can also be great for prototyping algorithms and stuff, automating things that run once, not in loops. However once you figure it out, it should be written in C. All of these libraries that are written for the modern web should have been written to target C.

The cool thing about C is you can use it like basic if you really want. With a bit more syntax, but you don’t have to use it with classes. You can just allocate memory on stack and heap and then delete all of it with like one class if you really want to. Everything that’s cool about other languages mostly just already exists in C.

It’s kind of amazing to see the difference between a Linux smartphone and an android smartphone these days. A Linux smartphone running terrible hardware by today’s standard is just instant. 32 GBs of storage is enough to add everything you want to the operating systems because binaries are like 2 MB. Then that all goes away as soon as you open a web browser. A single website just kills it. Then you sit down on a modern windows machine and everything is slow and buggy as shit. It draws 500w of power on a 2nm process node. It’s a real issue. No amount of computer power will ever overcome interpreted languages because people will always do the minimum possible work to get it to run at an unstable 30 FPS and call it good.

source
Sort:hotnewtop