Re: Real alternatives of C
Posted: Sat Jan 30, 2021 7:21 am
That's what I say .bzt wrote:- C works. It is here, and have been for decades, and going to be many more. Why trying to fix something that's not broken?
The Place to Start for Operating System Developers
https://f.osdev.org/
That's what I say .bzt wrote:- C works. It is here, and have been for decades, and going to be many more. Why trying to fix something that's not broken?
Makes sense, I heard Niklaus Wirth and Ken Thompson studied under the same professor; he taught the importance of simplicity.bzt wrote:- Pascal, there's nothing I can say about it other than a bit different than C (no run-time needed, works pretty well for kernels. The old MacOS kernel was written in Pascal)
Well, it was always a niche product. Pascal was always said to be a good beginner's language (and I concur), which gave it the air of a beginner's language, like Basic. Whereas C was the language for grown-ups. So there was a natural pull away from Pascal and towards C. Next problem was likely a lack of diversity of implementation. in the DOS days you had Borland Pascal, in the WIndows days you had Delphi, and now you have FreePascal. Whereas for C, everyone and their dog have written an implementation, and you can probably find a C implementation for everything that passes electric current.eekee wrote:I do wonder why Pascal isn't used more.
That is probably the reason for its endurance. When Delphi came out, RAD was a new thing, and being able to quickly click a GUI together and have a GUI "Hello World" be not a lot longer than the console version was pretty significant. But soon, RAD tools were developed for other widget toolkits, and Pascal lost that edge. Whatever popularity it had remaining dwindled at that point. Whereas C in Linux has been going strong for 30 years and is barely moving from its place. Other languages come and go, but C remains. Think we will still be talking about Ruby in ten years?eekee wrote:But then the real reason for C's dominance is probably Linux and Gnu,
Not by a long shot.iansjack wrote:In which case, why bother with C? We might as well still use PL/I.
Yeah, but what for? Let me answer with some quotes:iansjack wrote:Nothing is so good that it can't be improved upon.
Code: Select all
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius—and a lot of courage to move in the opposite direction. /unknown, maybe Einstein/
Code: Select all
One of my most productive days was throwing away 1000 lines of code. /Ken Thompson/
If you really want go into "hardcode C" like kernel development, my personal advice is to stick with it from now (you're a student, right?). Sure, you'll need to learn other languages in the meanwhile like python and bash for scripting etc, but, if you're sure about your plans, don't go working as a C#, Java, Web (etc.) developer. Even if C++, which seems somehow closer to C, in reality is very far from C in the job market. Let me explain that better: once you start your professional career, people and companies will search for you because you have experience with "XYZ", over and over again. Recruiters and hiring managers think about potential candidates considering their "profile". So, if you build a profile different than want to you want in the long term, it will be harder to switch. The "C++ profile" is typically far from the low-level C "kernel/embedded developer" profile. Even if C++ is sometimes used there, 99% of the C++ jobs will be about high-level stuff like software services in the cloud (backend) or video games (but there you need to have knowledge about computer graphics etc.). Other languages like Rust might be used in kernel development too but, it's the same problem as for C++. Actually, it's even worse because there are even fewer job offers for Rust developers.pranavappu007 wrote:Exactly. Actually in the far future I want to get into hardcore C like, well, OS Dev. But nobody is gonna hire a simple guy who just completed his degree(after 1 yr) to make their next revolutionary OS. So I wanted some other stop gap soln. to get experience in C. My initial plan was to go something other than C but is close to C to later make the jump. But now I think it's better to go with something likeWin32, because it is used a lot in traditional applications(everything except store apps as I understand) and is completely compatible with C.