I disagree with this sentiment.  The quality of programmers these days
is abysmal.  I think that is due to part of being taught wrong in the
first place and then being unable to unlearn bad habits.

By teaching kids in a forgiving language they will never get a feel for
what they are supposed to be thinking about.  I know the marketing says:
"focus on the real problem instead of pesky details like memory
management".  I think this is fundamentally wrong.  The programmers I
have hired in the recent past are all EE or CE people.  I have not had a
good candidate in a long time coming from a recent CS program.  The
CE/EE people started on the other side of programming and have very good
skills.  The CS folks are all talk and make way too complex constructs
because they can and their languages let them.  I once had the
"pleasure" of working on a project that was written in C but compiled
with C++.  I can't even begin to describe how bad and stupid that idea
was.  I spent the better of 3 years working around compiler bugs,
interoperability issues, etc etc.  But you know what, the design was
super complex and made the architects look smart... until we started
fixing bugs and reversing bad decisions and kludges.  It is safe to say
that it didn't go down well on their year-end-review.

All that said, C++ is a complete and total disaster.  I am to this day
shocked at the success of the C++ marketing campaign.  It is identical
to any presidential race, full of promises but none ever kept.  The
difference is that no one dares to defy the decision that C++ was the
wrong language for the problem.  Everybody has a mortgage to pay and
don't want to look like a fool for being part of a bad decision.  The
link Miod pasted is a great resource to get an idea how bad C++ really
is.  The only comment I'll make on java is that it has the capacity to
make a grown man cry.  I still have to see the so called benefit of both
these languages.  It all sounds awesome on paper but when used in the
real world the promises crumble faster than a politicians.


On Fri, Dec 28, 2007 at 11:58:15AM -0500, Gary Baluha wrote:
> On Dec 28, 2007 11:21 AM, Pieter Verberne <[EMAIL PROTECTED]> wrote:
> 
> > On Fri, Dec 28, 2007 at 10:16:08AM -0500, Gary Baluha wrote:
> > > 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.
> > I'm learning Java at school. I told my teachers that I think it is a
> > great pity that I've to learn Java while all my favorite software is
> > written in C and and have the code of it! I really would be more
> > motivated when we would learn C. But well, I do understand they want us
> > to learn a object oriented programming language. And that is -far- more
> > practical to use a single PL for all students.
> 
> 
> There's certainly no problem with using a single programming language to
> teach to first or even second year students, and I have no problem with the
> chosen language being Java, either.  The problem comes up when some students
> think that similar-looking programming languages can be programmed using
> nearly identical programming practices.  But in the end, it doesn't really
> matter which programming language is taught, as there will always be
> students who get the wrong idea, and that was the main thing I was trying to
> convey.
> 
> 
> > > 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).
> > Oh, I was thinking that C just might be easier since I don't have all
> > that class/method/method-call shit. But C has it's own difficulties
> > ofcourse.
> 
> 
> Well, I originally learned in C, so learning Java was fairly easy since you
> didn't have to do all the memory/pointer management that you have to do in
> C, or even C++.  I was also learning C++ around the same time, so by the
> time I got to Java, I already had the basic concepts of OOP.  I guess it's
> all up to the individual which language is "easiest" to learn as one's first
> programming language.  Still, my opinion is that any advanced programming
> language that has automatic garbage collection and memory allocation is
> easier to learn.
> 
> 
> > > 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.
> > Sounds like stupid programmers.
> 
> 
> Indeed.  I don't know about everyone else's experience, but I find it rare
> to come across actual good programmers.  I've met and come across a lot of
> programmers who manage to get through their tasks, but don't fully
> appreciate what it is that their code is actually doing.
> 
> 
> > > 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.
> > The (a) 'purpose' of OOP is that I don't need to study the Class-code of
> > someone else. This makes it possible to focus on your own thing only.
> > (I don't care about being exactly right here, I think you understand
> > what I mean)
> >
> I see where you're coming from, and I fully agree that the concept of OOP is
> great.  However, I think blindly using someone else's class code without at
> least having a basic understanding of what the underlying code is doing
> misses the point.  And this is true whether we're talking about an
> OO-language, or a procedural language.  The only difference is, OO-languages
> provide the weak programmer more opportunities to abuse the concept than
> procedural languages.
> 
> I don't claim to be a "world-class" programmer myself, but I do realize
> there is a difference between code that does the job, and code that does the
> job well.  And in my opinion, OO-languages simply provide more opportunity
> to get the job done poorly by blindly trusting someone elses code, since the
> idea is that you shouldn't need to know.  And this is often taught poorly in
> school, giving the false impression that you shouldn't _want_ to have a
> basic understanding of what the other person's code does.

Reply via email to