Re: What compiler would you recommend?



On Fri, 2 Mar 2007 12:53:11 -0600, Vinicius Menezes wrote
(in article <1172861591.609988.280340@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>):

On Mar 2, 11:53 am, "Chris Uppal" <chris.up...@xxxxxxxxxxxxxxxxxxx
THIS.org> wrote:
KIENI wrote:
[... snipped: my criticism of C++ ...]
How long have you worked with C++, what was the first language you
learned and what is your preferred programming language? (just for
information)

Fair question(s). Let's see...

I started out with a mixture of C, functional programming (SASL, in
fact), and Prolog. An odd mix, but that's the way my university course
worked. I think it was a good mix -- in hindsight ;-)

My first real job was as a C programmer. I worked in C for about a
decade, then mostly switched to C++. Loved C (still do, as a matter of
fact), but was happy to switch when the job required it.

Worked entirely in C++ for at least 5 years. Became good enough at it
to be treated as the local expert for the last few years (was even
hired on that basis for one job). I think I can honestly claim that my
attitude to C++ is based on knowledge rather than prejudice[*]. BTW,
during this period I liked C++, although I could see that it's
complexities were causing problems both for me personally, and for the
teams I was in. (I continue to believe that the choice of C++ was a
significant factor in the failure of one company I worked for -- though
that, even if true, is an exceptional case).

Started programming Java in about '96 or '97 (JDK 1.0.2). At that time
Java was still a nice small, simple, programming language. I /really/
liked Java. I remember describing it to a friend as like rediscovering
C again. A language which was clean and simple and didn't get between
you and the program. Worked in a mixture of C++ and Java as the job
demanded from then on. This is when I started to think of C++ as a
hindrance rather than a help to good programming. BTW, have you
noticed that I haven't mentioned OO ? There's a reason...

A few years ago, I discovered Smalltalk. I have never had a chance to
use it commercially (quite probably never will have the chance), but
almost immediately it became my language-of-choice for all real
programming (as opposed to one-off scripts and the like). These days
it is the only language I use for my own projects unless I need some C
for glue logic or low-level speed. Having used Smalltalk for a while I
have realised two things:

One is that although I /thought/ I had good, solid, OO skills which I
used in my C++ and Java programming (and although the people I worked
with agreed), I had nothing of the kind. I didn't really "get objects"
(as we say). I was thinking about the code, not the objects. I was
thinking about the language-specific mechanisms for defining classes,
more than I was the objects themselves. My thinking was class-centric
and code-centric, not object-centric -- and my code and designs
suffered for it.

The other is that not only C++, but Java too, are /way/ overcomplicated
(and Java is getting steadily worse with each passing year. There's a
lot of complexity but little actual power or expressiveness (to be
fair, for C++ it would better to say that there's little /usable/ power
-- there is some real power there if you can manage to apply it).

Oh well, that the story of one programmer's journey (to date). I admit
this rambling post has been a little self-indulgent, but you did ask...

-- chris

[*] Though, of course, there may be prejudice /too/ -- I have no way to
tell.

I apreciated reading about your jorney.

I just think you took too long to realize the true spirit of OO
programs. I think you should try C++ again, maybe it'lll feel a litle
different now. I use C and Perl ( sometimes litle bash script ) for
everyday use, and I'm currently stunding C++ for college. Can you tell
us which management books you read _before_ and learning C++ and
_during_ other OO languages?

Is it just me, or is telling someone with a a couple decades or more of
programming experience that they didn't do something right or learn
something fast enough, when they themselves are just now in college (a
phase when you think you know everything, only to later discover that
you knew nothing in the grand scheme of things), well, it comes across
as more than a little bit arrogant, with a big dose of naive thrown in.
--
Randy Howard (2reply remove FOOBAR)
"The power of accurate observation is called cynicism by those
who have not got it." - George Bernard Shaw





.



Relevant Pages

  • Re: Static vs Dynamic
    ... (Java has too much noise in its source code, ... lot to ask and is typical in a typed language supporting polymorphism. ... > developers can easily learn the Java programming language; ... > obivous bugs slip through and b) in many cases, ...
    (comp.lang.lisp)
  • Re: why is "self" used in OO-Python?
    ... and worse this has spread from Java into other ... by whatever happens to be the first OO language they learn". ... If the first programming language (or the ... I have no objection to teaching Java in a CS curriculum. ...
    (comp.lang.python)
  • Re: Public disclosure of discovered vulnerabilities
    ... I spoke of Java; ... > necessary when programming in Java. ... > it is every single programmer who wants to use the language securely. ... this is what we call the "mental model" problem in aerospace. ...
    (sci.crypt)
  • Re: 71% Say Finding New Energy Sources More Important than Conservation
    ... Most of the drive to define was for a test programming language, because each tester had it's own language and the engineer would have to re-write the program every time the testor changed. ... The only reason it was used was because people saw that it would have a longer life time than ADA. ... My group at Stanford switched to Java as their language of choice after giving up on C++ as too flawed to use. ...
    (soc.retirement)
  • Question on variable binding and assignment
    ... My Java for dummies book didn't tell me this stuff. ... Then for a dynamically typed language such as Perl, ... concept of "unbound variables" in a programming language in the first ...
    (comp.lang.lisp)