Perl for OS Development?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
sanders

Re:Perl for OS Development?

Post by sanders »

I've moved my OS project to C++ (i'm finding C++ easier).

What are your opinions on using C++ for OS development. BeOS was written in C++ (as i'm sure you are all aware) and it's probably the best OS i ever found (based on the fact it runs faster than linux and win98 on my comp and with better graphics).

Your thoughts???

Martin Sanders
Software Developer
www.publiclinux.net
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Perl for OS Development?

Post by Solar »

The language used is only marginally related to the quality of the OS.

I'm writing my kernel in C++, too. It has some advantages, but:

* you have to learn C anyway;
* you have to implement all you need for C support anyway;
* you have to know the gory details of C anyway.

C++ is, as the name implies, not a language in its own, but a "C plus some more stuff".

Add to this that virtually all the docs, tutorials, and how-to's you'll find assume you are using C, using C++ adds much complexity to your project.
Every good solution is obvious once you've found it.
sanders

Re:Perl for OS Development?

Post by sanders »

Interesting, i'll probably mix-n-match and use C++ for whenever possible, and C when necessary!

There is something comforting about C++ that I don't feel when using C.

C++ almost feels i'm using Perl.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Perl for OS Development?

Post by Solar »

I fear I haven't made myself clear.

C++ is a superset of C. If you are using C++, you are automatically using C, too. Everything that's C++ is build on top of C. Any well-written C programm should - with minimal adjustments - compile in a C++ compiler just as well.

If you go to the extra effort of providing a C++ environment for your OS kernel, you don't have to "mix-n-match" anything.

The thing is, you have to learn C and C++, and you have to impement the environment for C and C++. I'm rather experienced with C++, and I still find it to be very hard to implement the C++ environment.
Every good solution is obvious once you've found it.
sanders

Re:Perl for OS Development?

Post by sanders »

Hmmm odd, my C++ book (Sams teach yourself C++ for Linux in 21 days) warns against learning C and says "not only is it uneccessary to learn C first, it may be advantageous not to do so".
bkilgore

Re:Perl for OS Development?

Post by bkilgore »

I think their point is that, by learning C++ you learn all of the C syntax as well, and if you try to learn C first, then when you go to learn the new C++ stuff you might be confused because there are ways you learned to do things in C that you can do differently in C++.

But by learning C++ you basically automatically learn C, you just wouldn't know which stuff comes from C and which is new to C++.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Perl for OS Development?

Post by Solar »

Not quite. The book is, basically, correct. There are some things you are "forced" to do in C, which are completely unneccessary in C++. You use vectors instead of arrays, you use <string> instead of char[], you use exceptions instead of setjmp / longjmp, you are using new() instead of malloc().

But we are not speaking about merely using C++. We are speaking about enabling the C++ environment. And this environment, by definition of the standard, includes a complete C environment. Even if you don't use arrays, char[], setjmp / longjmp and malloc(), you still have to enable them, in addition to vectors, <string>, exceptions and new().
Every good solution is obvious once you've found it.
sanders

Re:Perl for OS Development?

Post by sanders »

Oh ok, Cool :-)
Post Reply