473,386 Members | 1,823 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

C++ is complicated and C is bloated.

So I'm reading books about perl, which may not be quite as powerful as
C++ but at least has more power than C & is very easy to learn from
the manuals. I'm also buying books on C++, and books about algorithms
for C. It isn't easy to learn it though, and I have been trying to
learn unix, linux, and C++ since day 1. Even when I first turned on a
windows machine I fantasized about running my own unix server. Now I
pay a good rate every month for an account on a linux shell box, with
webspace. And I have an iMac that runs UNIX, but can also handle all
of the artistic things you could only do on windows before. There is
more software available for iMac's than there is for linux, and the
operating system is better, much better hardware too. I can't afford
to buy an iMac supercomputer network, or a leased line from an ISP, so
I'm not going to be the next YouTube, MySpace, or Google, but I can at
least learn how to code perl, cgi, and C++. I know the ins and outs
of the shell, a bit about what's running under the hood, I know how to
use Vi and Emacs, and I know how to get around my system administrator
when I need to run programs that think they need root. There is a lot
more I need to learn, but what's so fun about it is they don't teach
it to you in school. School is just there to inspire you, and you
have to get your hands dirty to learn about it. Just get a linux
machine and learn the tricks of the trade, buy the books on unix from
Orielly (Hopefully FreeBSD instead of Linux). You don't even need an
iMac at this point.

But where on earth can I find a book that demonstrates how to make
tight compact algorithms with vectors, strings, lists, maps, and
containers in general with C++? I need to learn to use CONTAINERS,
and LOW LEVEL CONTROLS, and Understand ITERATORS & POINTERS. Once you
understand all of that the object oriented model of classes and
templates, and structures, and all of that falls into place. But I
need to learn by example, and compare what I'm learning to the old
bloated way of doing it in C. Actually come to think of it C++ isn't
that complicated, but it has just taken me years to understand the
basics. Hopefully I'll even be writing C++ backends for websites with
CGI, and maybe even one day will code my own webserver that doesn't
even need CGI as a middle man.

Mar 30 '07 #1
11 3241
On Mar 30, 1:30 pm, "CoreyWhite" <CoreyWh...@gmail.comwrote:
But where on earth can I find a book that demonstrates how to make
tight compact algorithms with vectors, strings, lists, maps, and
containers in general with C++?
I'm guessing NOT on alt.magick. Can you please stop cross-posting
this drivel?

Mar 30 '07 #2
"CoreyWhite" <Co********@gmail.comwrote in message
news:11*********************@d57g2000hsg.googlegro ups.com...
: But where on earth can I find a book that demonstrates how to make
: tight compact algorithms with vectors, strings, lists, maps, and
: containers in general with C++?

To make tight and compact algorithms, you should start by learning
the basics.
For someone who is bright and independent, I would recommend starting
with reading Knuth's The Art Of Computer Programming. I was 13 when
I started, and it has been a great and enriching experience.
This is simply the best, but many other books about algorithms
and data structures are good enough.

: I need to learn to use CONTAINERS,
: and LOW LEVEL CONTROLS, and Understand ITERATORS & POINTERS. Once you
: understand all of that the object oriented model of classes and
: templates, and structures, and all of that falls into place. But I
: need to learn by example, and compare what I'm learning to the old
: bloated way of doing it in C.

"Accelerated C++" is a good introductory book focusing on high-level
abstractions offered by the C++ language (rather than the C side of
it).

: Actually come to think of it C++ isn't
: that complicated, but it has just taken me years to understand the
: basics. Hopefully I'll even be writing C++ backends for websites with
: CGI, and maybe even one day will code my own webserver that doesn't
: even need CGI as a middle man.

If you study more about web servers, you'll find out that you probably
don't want to bother writing one from scratch.

--
http://ivan.vecerina.com/contact/?subject=NG_POST <- email contact form
Brainbench MVP for C++ <http://www.brainbench.com

Mar 30 '07 #3
In article <11*********************@d57g2000hsg.googlegroups. com>,
CoreyWhite <Co********@gmail.comwrote:
>So I'm reading books about perl, which may not be quite as powerful as
C++ but at least has more power than C
C and C++ and perl are all Turing Complete -- any deterministic
calculation can be expressed and computed in any of them (given
enough time and memory.) As far as computing theory is concerned,
none of them are more powerful than the other. If you aren't
using computing theory as your metric for which language is more
powerful, then you had best be more specific about what it
means for a language to have certain amounts of power.
>& is very easy to learn from
the manuals.
As a perl programmer for a number of years, I can say with confidence
that if you are finding perl easy to learn, then you don't understand
it yet! perl has a lot of hidden subtleties in the corner cases of its
many operators. perl is not defined by any theory or by any formal
specification, and not defined by its documentation: perl is defined
in such cases by what the perl implementation actually does (whether it
makes sense to do it or not.) When I say "is defined", I'm not speaking
loosely: I mean that Larry Wall has said specifically that it is the
implementation that defines the language.

If you are finding perl very easy to learn, search for perl "golfing"
contests, where the goal is to produce a specific output with
the shortest possible program. See if you can understand any
of the winning entries.

(Don't misunderstand me: I'm not putting perl down.)
--
Prototypes are supertypes of their clones. -- maplesoft
Mar 30 '07 #4
CoreyWhite wrote:
So I'm reading books about perl, which may not be quite as powerful as
C++ but at least has more power than C & is very easy to learn from
the manuals.
What's meant by "power" is not carved into stone. It's context
dependent.
I'm also buying books on C++, and books about algorithms
for C. It isn't easy to learn it though, and I have been trying to
learn unix, linux, and C++ since day 1.
I agree that learning C and C++ is not a walk in the park, but it's
exciting and rewarding in it's own way.
Even when I first turned on a
windows machine I fantasized about running my own unix server. Now I
pay a good rate every month for an account on a linux shell box, with
webspace. And I have an iMac that runs UNIX, but can also handle all
of the artistic things you could only do on windows before. There is
more software available for iMac's than there is for linux, and the
operating system is better, much better hardware too.
This group is about ISO C. Do you have a C related question or
comment?
I can't afford
to buy an iMac supercomputer network, or a leased line from an ISP, so
I'm not going to be the next YouTube, MySpace, or Google, but I can at
least learn how to code perl, cgi, and C++. I know the ins and outs
of the shell, a bit about what's running under the hood, I know how to
use Vi and Emacs, and I know how to get around my system administrator
when I need to run programs that think they need root. There is a lot
more I need to learn, but what's so fun about it is they don't teach
it to you in school. School is just there to inspire you, and you
have to get your hands dirty to learn about it. Just get a linux
machine and learn the tricks of the trade, buy the books on unix from
Orielly (Hopefully FreeBSD instead of Linux). You don't even need an
iMac at this point.
This would be more appropriate in comp.unix.programmer or
comp.programming.
But where on earth can I find a book that demonstrates how to make
tight compact algorithms with vectors, strings, lists, maps, and
containers in general with C++? I need to learn to use CONTAINERS,
and LOW LEVEL CONTROLS, and Understand ITERATORS & POINTERS. Once you
understand all of that the object oriented model of classes and
templates, and structures, and all of that falls into place. But I
need to learn by example, and compare what I'm learning to the old
bloated way of doing it in C.
Much of what goes on "behind the scenes", when you use C++'s fancy
features would be comparable to what a C programmer would do. C and C+
+ are not "bloated", particular pieces of code written by poor
programmers are.

<snip>

Mar 30 '07 #5
On Mar 30, 6:30 pm, "CoreyWhite" <CoreyWh...@gmail.comwrote:

Try the borland enviroment...You can get a free version for
educational
purposes.... I found this a good one for learning c++ and c.
So I'm reading books about perl, which may not be quite as powerful as
C++ but at least has more power than C & is very easy to learn from
the manuals. I'm also buying books on C++, and books about algorithms
for C. It isn't easy to learn it though, and I have been trying to
learn unix, linux, and C++ since day 1. Even when I first turned on a
windows machine I fantasized about running my own unix server. Now I
pay a good rate every month for an account on a linux shell box, with
webspace. And I have an iMac that runs UNIX, but can also handle all
of the artistic things you could only do on windows before. There is
more software available for iMac's than there is for linux, and the
operating system is better, much better hardware too. I can't afford
to buy an iMac supercomputer network, or a leased line from an ISP, so
I'm not going to be the next YouTube, MySpace, or Google, but I can at
least learn how to code perl, cgi, and C++. I know the ins and outs
of the shell, a bit about what's running under the hood, I know how to
use Vi and Emacs, and I know how to get around my system administrator
when I need to run programs that think they need root. There is a lot
more I need to learn, but what's so fun about it is they don't teach
it to you in school. School is just there to inspire you, and you
have to get your hands dirty to learn about it. Just get a linux
machine and learn the tricks of the trade, buy the books on unix from
Orielly (Hopefully FreeBSD instead of Linux). You don't even need an
iMac at this point.

But where on earth can I find a book that demonstrates how to make
tight compact algorithms with vectors, strings, lists, maps, and
containers in general with C++? I need to learn to use CONTAINERS,
and LOW LEVEL CONTROLS, and Understand ITERATORS & POINTERS. Once you
understand all of that the object oriented model of classes and
templates, and structures, and all of that falls into place. But I
need to learn by example, and compare what I'm learning to the old
bloated way of doing it in C. Actually come to think of it C++ isn't
that complicated, but it has just taken me years to understand the
basics. Hopefully I'll even be writing C++ backends for websites with
CGI, and maybe even one day will code my own webserver that doesn't
even need CGI as a middle man.

Mar 30 '07 #6
"santosh" <sa*********@gmail.comwrites:
CoreyWhite wrote:
[stuff]
>
This group is about ISO C. Do you have a C related question or
comment?
Trolls rarely do. Please don't feed this one.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Mar 30 '07 #7
CoreyWhite wrote:
And I have an iMac that runs UNIX, but can also handle all
of the artistic things you could only do on windows before. There is
more software available for iMac's than there is for linux, and the
operating system is better, much better hardware too.
More software for the imac? I trialed a mac a while back for about 3
months and spent most my time downloading linux software through fink.
Most mac software seems to be shareware crap, why would I pay for a
basic app when I can get a free software program at no cost and it is
also free for me to do what I want with it.

Another thing about the mac is that all the binary downloads are twice
the size it needs to be because they generally have power pc and intel
binaries in the one file.

As for better hardware linux will run pretty much anything including the
imac. I am in fact typing this from a macbook with linux as the only os
I use (I do have a 5 gb mac os x partition I never use but maybe one day
I will test compiling some stuff on it for cross platform testing).

Mac is pretty good but it doesn't feel like a unix machine to me. Sure
you have bash and gcc and vim and can install a lot of unix apps but
that doesn't make it feel unixy enough for me.

FreeBSD is pretty good I used it before on a couple of my desktops but
it never seems to support all the hardware I want on my laptops like
wireless cards etc.

Kind Regards,
Anthony Irwin
Mar 31 '07 #8
On Fri, 30 Mar 2007 18:30:20 +0000 (UTC), ro******@ibd.nrc-cnrc.gc.ca
(Walter Roberson) wrote in comp.lang.c:
In article <11*********************@d57g2000hsg.googlegroups. com>,
CoreyWhite <Co********@gmail.comwrote:
So I'm reading books about perl, which may not be quite as powerful as
C++ but at least has more power than C
**** PLEASE DON'T FEED TROLLS *****

Many of us kill-filtered this troll long ago, and would not see him at
all if people like you and Nick Keighley did not rise to the bait and
reply.

--
Jack Klein
Home: http://JK-Technology.Com
FAQs for
comp.lang.c http://c-faq.com/
comp.lang.c++ http://www.parashift.com/c++-faq-lite/
alt.comp.lang.learn.c-c++
http://www.club.cc.cmu.edu/~ajo/docs/FAQ-acllc.html
Mar 31 '07 #9
On 30 Mar 2007 10:30:49 -0700, I waved a wand and this message
magically appears in front of CoreyWhite:
ven one day will code my own webserver that doesn't
even need CGI as a middle man.
Oh, do please go away, you're wasting everyone's time! Can't you just
troll the Perl newsgroups instead?
--
http://www.munted.org.uk

Fearsome grindings.
Mar 31 '07 #10
"Walter Roberson" <ro******@ibd.nrc-cnrc.gc.caha scritto nel messaggio
news:eu**********@canopus.cc.umanitoba.ca...
C and C++ and perl are all Turing Complete -- any deterministic
calculation can be expressed and computed in any of them (given
enough time and memory.)
Even Brainfuck is Turing complete.
Now, write a Brainfuck compiler in Brainfuck, write the kernel for an OS in
Brainfuck and compile it with the compiler which you wrote.
(You can use the Brainfuck interpreter which was in a recent IOCCC entry to
run the first version of the compiler, compiling the second version of it.)

Or just write a Brainfuck program which compares two files, and prints "1"
to stdout if they are bytewise equal, and "0" otherwise.

Computing isn't all about calculations. Have you ever heard of input/output?
Apr 1 '07 #11
On Mar 30, 10:30 am, "CoreyWhite" <CoreyWh...@gmail.comwrote:
So I'm reading books about perl, which may not be quite as powerful as
C++ but at least has more power than C & is very easy to learn from
the manuals. I'm also buying books on C++, and books about algorithms
for C. It isn't easy to learn it though, and I have been trying to
learn unix, linux, and C++ since day 1. Even when I first turned on a
windows machine I fantasized about running my own unix server. Now I
pay a good rate every month for an account on a linux shell box, with
webspace. And I have an iMac that runs UNIX, but can also handle all
of the artistic things you could only do on windows before. There is
more software available for iMac's than there is for linux, and the
operating system is better, much better hardware too. I can't afford
to buy an iMac supercomputer network, or a leased line from an ISP, so
I'm not going to be the next YouTube, MySpace, or Google, but I can at
least learn how to code perl, cgi, and C++. I know the ins and outs
of the shell, a bit about what's running under the hood, I know how to
use Vi and Emacs, and I know how to get around my system administrator
when I need to run programs that think they need root. There is a lot
more I need to learn, but what's so fun about it is they don't teach
it to you in school. School is just there to inspire you, and you
have to get your hands dirty to learn about it. Just get a linux
machine and learn the tricks of the trade, buy the books on unix from
Orielly (Hopefully FreeBSD instead of Linux). You don't even need an
iMac at this point.

But where on earth can I find a book that demonstrates how to make
tight compact algorithms with vectors, strings, lists, maps, and
containers in general with C++? I need to learn to use CONTAINERS,
and LOW LEVEL CONTROLS, and Understand ITERATORS & POINTERS. Once you
understand all of that the object oriented model of classes and
templates, and structures, and all of that falls into place. But I
need to learn by example, and compare what I'm learning to the old
bloated way of doing it in C. Actually come to think of it C++ isn't
that complicated, but it has just taken me years to understand the
basics. Hopefully I'll even be writing C++ backends for websites with
CGI, and maybe even one day will code my own webserver that doesn't
even need CGI as a middle man.
I have observe this difficulty too. From my physical science back
grond I see all OOP languages (and C++ is the most OOP) as committee
programming languages, for large software houses. I see a single
programmer as one who can not manage the inherent reference bugs in
OOP languages, without out side help. JAVA, and Object Pascal sought
to minimize this problem with single inheritance, but outside
management is needed for any project of more than a few objects. This
applies to all levels of code application, and server and network
coding can have this problem where you can not even see the errors --
they are just out there. All of Microsoft's software projects suffer
this problem. Good luck.

April 1, 2007

da*********@mail.google.com
David Ashmore

Apr 2 '07 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
by: Bo Peng | last post by:
Dear Python group: I am planning on an application that involves several complicated C++ classes. Basically, there will be one or two big data objects and some "action" objects that can act on...
7
by: Max | last post by:
Yeah, I know. It's the price we pay for forsaking variable declarations. But for java programmers like me, Py's scoping is too complicated. Please explain what constitutes a block/namespace, and...
15
by: Agoston Bejo | last post by:
Hi, I'm having trouble with implementing some constraints on the database level. An example: --Table A(AID, BID ref. B.BID, ATXT) --Table B(BID, CID ref. C.CID) --Table C(CID) upon insertion...
3
by: Narine | last post by:
Hi All, I need to write one complicated update statement and I'm looking at maybe finding a simpler way to do it. I have 2 tables: 1.Photo Table PhotoID FileName 1 111.jpg
7
by: windandwaves | last post by:
Hi Gurus I am trying to make this rather complicated maps with an a huge number of mouseovers and the like. I want to set up a function that OnMouseDown swaps the OnMouseOver and OnMouseOut for...
2
by: Just D | last post by:
Hi, I need to write a serialization (to XML string) and restoring (from XML string) of a very complicated object. The object uses a few classes, one class has two ArrayLists, etc. The general...
3
by: Max Power | last post by:
HTML reprocessor: how do you get rid of bloated (obese) MS-Word (normal or filtered) HTML? I just want all the fancy MS tags removed and replaced with basic ones, or if applicable -- stripped...
2
by: fAnSKyer/C# newbie | last post by:
I want use C# or even C++, C to do some complicated math works, like calculaus~~ I wander if C# provide any complicated math package, like MATLAB Thanks a lot Cheers fAnS
17
by: CoreyWhite | last post by:
So I'm reading books about perl, which may not be quite as powerful as C++ but at least has more power than C & is very easy to learn from the manuals. I'm also buying books on C++, and books...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.