On Dec 28, 2007 7:16 AM, Gary Baluha <[EMAIL PROTECTED]> wrote:
> On Dec 28, 2007 7:51 AM, Erik Wikstrvm <[EMAIL PROTECTED]> wrote:
>
> > On 2007-12-28 07:33, Brian Hansen wrote:
> >
> > [snip]
> >
> > > Is he right?
> >
> > Yes and no. First of all you should realise that Linus and most other
> > other kernel hackers are biased. When it comes down to it C++ is not a
> > better or worse language to write a system in than C, it is just a
> > question about how you use it.
> >
> > But as Linus wrote, there are a number of people out there who learned
> > to program in Java and then learned C++ and now think that they can do
> > some low-level programming. Truth is they can not since they have
> > learned to think about programming in a very high-level way. Someone
> > once said something like "nothing is impossible with enough layers of
> > indirection", but none ever claimed that many layers of indirection was
> > efficient. If you are down in the kernel writing code that will be run
> > while holding a lock every micro-second counts since you are stalling
> > the progress of other threads/processes, so you want efficiency.
>
>
>  I think that's one of the main problems with programmers today.  All the
> schools I know that teach programming, start by teaching Java to the
> students.  It's definitely easier to learn Java with little-to-no prior
> programming experience, than it is to learn C (I struggled for quite some
> time to fully understand and realize how C uses pointers, in all its various
> ways).  I think the problem comes when these same programmers see that Java
> and C have a similar style of syntax, and think that simply learning the
> superficial differences means they now understand the language.  Two
> programming languages can look similar on the surface, but be very different
> beneath the skin.

There is a community college in the San Francisco Bay Area area that
encourages learning C before learning any other language.
I've taken intro to C and intermediate C. I didn't do too well with
pointers either. It's tough working full time and attending class
twice a week and studying and living.

Heh.


>
> I'm also not sold on the concept of object oriented programming in general.
> Along the lines of "nothing is impossible with enough layers of
> indirection", I think too much abstraction also removes the programmer from
> what he/she is actually doing.  OOP is a nice concept on paper, until you
> realize that most large programming projects are not written by a single
> person, and most people will not be coding the entire tree of abstraction
> they are using.  This leads to errors that may be very difficult (if not
> impossible) to fully track down.
>
>
>
> > But if you are writing a complicated GUI for an application that will
> > run on a 3GHz machine with 2GB RAM a few layers of indirection can be
> > very nice, and none will notice the few milliseconds you lose.
> >
> > It is about choosing the right tool for the job, but also about choosing
> > how to use the tool, just because a hammer is the right tool does not
> > mean that hammering away is the right way to do things.
>
>
> Yes, that's true, but sometimes using that old trusty tool (C) can be just
> as effective as the shiny new tool (Java, C++, etc).

Reply via email to