Interesting book reference

I

Ioannis Vranos

Ioannis said:
I happened to click a link to check the page of VC++ 208 Express
Edition, and I found out that a book of Schildt is mentioned there:


http://www.microsoft.com/express/vc


"Access the C++ Beginner's Guide free e-book by Herb Schildt to get
started learning the fundamentals today".



There it has a link:


http://msdn.microsoft.com/en-us/beginner/cc305129.aspx



Anyone else impressed?


Yeap, it is interesting from the beginning of the first chapter:



"CRITICAL SKILL 1.1: A Brief History of C++

The history of C++ begins with C. The reason for this is easy to understand: C++ is built upon the
foundation of C. Thus, C++ is a superset of C. C++ expanded and enhanced the C language to support
object-oriented programming (which is described later in this module). C++ also added several other
improvements to the C language, including an extended set of library routines. However, much of the
spirit and flavor of C++ is directly inherited from C. ==> Therefore, to fully understand and appreciate C++,
you need to understand the “how and why” behind C".




--
Ioannis A. Vranos

C95 / C++03 Developer

http://www.cpp-software.net
 
P

Phlip

Ioannis said:
"CRITICAL SKILL 1.1: A Brief History of C++

Ooh, a Schildt Bashing Thread!
The history of C++ begins with C. The reason for this is easy to
understand: C++ is built upon the
foundation of C. Thus, C++ is a superset of C. C++ expanded and enhanced
the C language to support
object-oriented programming (which is described later in this module).
C++ also added several other
improvements to the C language, including an extended set of library
routines. However, much of the
spirit and flavor of C++ is directly inherited from C. ==> Therefore, to
fully understand and appreciate C++,
you need to understand the “how and why” behind C".

Ho hum ... C++ is not a "superset" if it also redefines a few C things, like
void* grammar ... whatever. I don't see how writing the word "superset" there
will corrupt the youth of America.

Next, we all know that the best way to learn C++ is as a high-level language,
starting at the non-C things like std::string. The /Ruminations on C++/ approach
by Koenig, IIRC. Learn C when its time to debug array overruns (like you can get
even with std::string.)

Could you go in after some raw details that suck? I doubt, this late, you will
find a 'void main' - even when describing a MS product.

And whose names are in the Acknowledgements? Any VC++ bigwigs we know?
 
I

Ioannis Vranos

Phlip said:
Ooh, a Schildt Bashing Thread!


Could you go in after some raw details that suck? I doubt, this late,
you will find a 'void main' - even when describing a MS product.

And whose names are in the Acknowledgements? Any VC++ bigwigs we know?


Actually there are many details that I thing are wrong or quite inaccurate, when taking quick looks at chapter
1 pdf.



For example this paragraph:

"==> C++ is the parent for both Java and C#. Although both Java and C# added, removed, and modified
various features, in total the syntax for these three languages is nearly identical. Furthermore, the
object model used by C++ is similar to the ones used by Java and C#. Finally, the overall “look and feel”
of these languages is very similar. ==> This means that once you know C++, you can easily learn Java or C#.
==> The opposite is also true. ==> If you know Java or C#, learning C++ is easy. ==> This is one reason that
Java and C# share C++’s syntax and object model; it facilitated their rapid adoption by legions of experienced
C++ programmers".



--
Ioannis A. Vranos

C95 / C++03 Developer

http://www.cpp-software.net
 
P

Phlip

Ioannis said:
For example this paragraph:

"==> C++ is the parent for both Java and C#.

You selecting the exact paragraph to motivate me. Regardless of Java's
advertising copy, it has nothing to do with C++. Further, C++ is a member of a
healthy family tree of living "C languages", including Objective-C (and
Objective-C++!), various reference implementations, and the new forthcoming
standards. Actually researching those relations would have added a lot of value
here.

And C# is nothing but Java with some keywords search-replaced. Calling Java a C
language is like calling JavaScript both a C language and a Java language -
because they all have curly braces {} in common! 'Nuff said.
This means that once you know
C++, you can easily learn Java or C#.

Then he goes for the exact crucial reason not to compare C++ to those pieces of
pure shit. Anyone deluded into thinking C++ gets them any closer to Java/C# is
headed for the kind of nasty surprise that wastes a lot of time and effort.

Thanks! I needed to do some bashing today, but your first 'graph simply was not
doing it for me! (-:
 
J

James Kanze

You selecting the exact paragraph to motivate me. Regardless
of Java's advertising copy, it has nothing to do with C++.

Sure it does. It uses curly braces. It also has way too many
operators, with way too many different levels of precedence, a
completely broken variable declaration syntax, no nested
functions, it's compiled (so you can't execute text input at
runtime), with static typechecking (more or less) and explicit
(and implicit) conversions. Java is certainly closer to C++
than it is to, say, Lisp, or even Smalltalk.
Further, C++ is a member of a healthy family tree of living "C
languages", including Objective-C (and Objective-C++!),
various reference implementations, and the new forthcoming
standards. Actually researching those relations would have
added a lot of value here.

Probably, although I'm not sure how accurate the term "living"
is. Are new applications really being written in Objective-C?
(That's a serious question. I know a few places it was used 10
or more years ago, but I've not heard anything of it since.)
 
I

Ioannis Vranos

James said:
Sure it does. It uses curly braces. It also has way too many
operators, with way too many different levels of precedence, a
completely broken variable declaration syntax, no nested
functions, it's compiled (so you can't execute text input at
runtime), with static typechecking (more or less) and explicit
(and implicit) conversions.


Are you talking about Java or C++ here?

--
Ioannis A. Vranos

C95 / C++03 Developer

http://www.cpp-software.net
 
B

Bart van Ingen Schenau

James said:
Probably, although I'm not sure how accurate the term "living"
is. Are new applications really being written in Objective-C?
(That's a serious question. I know a few places it was used 10
or more years ago, but I've not heard anything of it since.)

As far as I am aware, Objective-C is the preferred language for writing
applications for the Apple iPhone & iPod. That means the language will
probably increase in popularity in the coming few years.

Bart v Ingen Schenau
 
P

Phlip

Are you talking about Java or C++ here?

He's listing the problems Java's architects didn't bother fixing because C++ had
them in spades. Yes, C++ influenced Java. Just not enough that any
self-respecting author should claim a parental relationship, only to spread his
C++ book into Java's market...
 
P

Phlip

Stuart said:
It's used for developing Mac OS X and iPhone applications. (I've been
looking into doing some coding for the latter, which is how I know.)
Incidentally, Wikipedia says it's "primarily" used in those
environments, which I didn't know:

http://en.wikipedia.org/wiki/Objective-C

Maaster!! You have created ... a monster!!

Yes, Igor! By tr-r-ransplanting Smalltalk's virtual dispatch system into zee
skull of my cadaver of zee C language, zee virtual messages shall move zee arms
and zee legs uvv structs and ints! Und zey vill doo our biddings!! Vee vill rool
zee wooorld!! Mwha-ha-haha!

Vhat vill you call heem, Maaster??

I vill call him... Id.
 
J

James Kanze

As far as I am aware, Objective-C is the preferred language
for writing applications for the Apple iPhone & iPod. That
means the language will probably increase in popularity in the
coming few years.

Interesting. Having Steve Jobs behind you certainly helps keep
you around:).

(Seriously, I've never used Objective-C, so I can't express any
real opinion about it. My comment was based on companies that I
knew who used Objective-C on NeXT, and had more or less decided
to change policies because NeXT wasn't going to be available any
more.)
 
I

Ioannis Vranos

James said:


OK then, I will comment regarding C++.


James said:
> Sure it does. It uses curly braces.


Which are at least as obvious as keywords "begin" and "end" in Pascal.


> It also has way too
> many operators, with way too many different levels of
> precedence,


Should they have, let's say, two levels of precedence only?


> a completely broken variable declaration syntax,


Why it is broken?

> no nested functions,


What would be the additional practical advantage of having that.


Also keep in mind, you can define function object types, and define function objects inside functions:



#include <iostream>


int main()
{
class NestedFunctionType
{
public:
void operator()(void)
{
std::cout<< "Function object!\n";
}
};


NestedFunctionType nestedfunction;

nestedfunction();
}



> it's compiled (so you can't execute
> text input at runtime),


An example of what you mean? You mean C++ source code input?


> with static typechecking (more or
> less) and explicit (and implicit) conversions.


Well it is a compiled language.



--
Ioannis A. Vranos

C95 / C++03 Developer

http://www.cpp-software.net
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,007
Messages
2,570,266
Members
46,863
Latest member
montyonthebonty

Latest Threads

Top