Run wrote:
Ah, I recognize another hacker in ScratchMonkey (in the meaning that he knows what he's talking about).
Thanks!
http://www.catb.org/~esr/faqs/hacker-howto.html
Quote:
Personally, I despise java - but that is probably personal, and because I already knew C++ before I looked at java
(java can't do a lot of things, so I thought it was stupid). Also, the reason that java was "promoted" is political,
and I hate politics - while C++ is written by some hacker type of guy (working for Bell Labs) from a pure scientific
point of view.
(java can't do a lot of things, so I thought it was stupid). Also, the reason that java was "promoted" is political,
and I hate politics - while C++ is written by some hacker type of guy (working for Bell Labs) from a pure scientific
point of view.
I understand what you're saying, and I felt similar trepidation towards Java for a long time. Sun's opening the source mitigates that a lot.
Java and C# both target a virtual machine, which makes them platform-independent but introduces an additional compilation step at runtime which can give the perception of slowness. They also introduce a garbage-collected heap, which can lead to indeterminacy, and that can cause grief with time-critical problems.
Quote:
1) It had to be backwards compatible with C. As a result it is not as good as a brand new language could be.
"Quality" of a language really depends on the application and the developer environment. C++ is a good compromise between systems programming (pure C) and OOP. C itself is a compromise between a high-level language (HLL) and assembly language, and mostly models the assembly language of the PDP-11. Java, C#, and Perl attempt to mimic C and C++ syntax while providing an interpreted/JIT language. (Perl also brings native regex processing, inherited from Awk.) Ada looks very attractive for applications that require a high degree of provable correctness, such as a flight control system or a piece of medical equipment.
Quote:
3) If you code the right way in C++, then still you need to code a LOT of code before you have something
that actually does something. It's not a fast language thus (C++ hardly ever wins programming contests with
a limitted amount of time).
that actually does something. It's not a fast language thus (C++ hardly ever wins programming contests with
a limitted amount of time).
It's no worse than C in this regard. You don't even have to use classes to use C++. It's got other features that make it a "better C", like easier scoping rules (eg. no need to declare variables at the start of a block, and you can declare them in control constructs like for). Remember that code-fat GUI's are not the only things people code. (I mostly do communications stuff to talk to robotics.)
Quote:
The only really (technical) positive side of C++ is therefore that you can do anything with it. No restrictions.
This is only a benefit for the hackish type of programs, that is, a program written by a single hacker who is
damn good. Such a program isn't very maintainable though.
This is only a benefit for the hackish type of programs, that is, a program written by a single hacker who is
damn good. Such a program isn't very maintainable though.
I'd say its benefits are that it's deterministic (hence an improvement over Java) and more expressable than C (ie. things that take many lines of C can be said with just a few in C++).
Quote:
If you want to learn C++ the Right Way(tm) then there are a lot books the AVOID (like "C++ for dummies",
which is really really bad). Actually, for the beginner there is only one book that you should start with:
"Accelerated C++" by Koenig & Moo. Once having finished that you hardly can say you know the language,
so after that you should continue with "Effective C++" (Meyers) and/or "Exceptional C++" (Sutter). Of course,
you'll also need a "bible", as reference, for which you should use "The C++ Standard Library" by Josuttis.
which is really really bad). Actually, for the beginner there is only one book that you should start with:
"Accelerated C++" by Koenig & Moo. Once having finished that you hardly can say you know the language,
so after that you should continue with "Effective C++" (Meyers) and/or "Exceptional C++" (Sutter). Of course,
you'll also need a "bible", as reference, for which you should use "The C++ Standard Library" by Josuttis.
Definitely get Meyers. You can read chapters from his first book online.