[antlr-interest] C++ beginner questions

Ian Kaplan iank at bearcave.com
Mon Oct 3 10:08:51 PDT 2005


> Umm, basic question... do any of examples you quotes here help you
> pay bills ? If yes, I think you can easily calculate ratio of cost
> of one CPU hour to cost of one HUMAN hour.

  Yes, there are actual released products.

  If the customer's perception of a compiler is that it is slow, they
  may not buy it.  So the speed of a "run once" application is
  important because it also ties into perception.

  Your argument seems also revolve around "I can find a bunch of Java
  programmers, but C++ programmers are harder to find".  I'm
  specifically talking about compilers or other complex language
  processors.  For example, although parsing a query language is
  relatively straight forward, optimizing it can be non-trivial.
  The sort of people that can do this are not easy to find either.  So
  I'm not going to be calling up my local "body-shop".

  I have found that because of the huge Java class libraries
  available, some Java programmers I've worked with do not understand
  algorithms and data structures as well as they should.  For example,
  I've seen some gross misuse of the Java HashMap.  So the idea of
  hiring someone who knows Java from some trade school when I want
  complex software built is not terribly attractive.

  I've been purposely staying away from the offshoring issue that the
  previous post invited reference to, since I don't think that this is
  the place for such a discussion.  For my views on this topic, see
  http://www.bearcave.com/misl/misl_other/economics.html.  We can
  correspond via email.

  If you're developing a software product there will be, you hope, a
  few developers and many users.  So the extra effort that goes into
  development to produce a better product is something that is
  amortized over your user base.  Generally it pays to go the "extra
  mile".

  The real issue here is using the right tool for the job.  Java,
  Python, C++, they all have places where they are particularly
  powerful.  Because of the interpretive overhead of Java (and as
  others have pointed out, the JVM startup cost) you need to think
  carefully when choosing to use Java in some performance intensive
  applications.  On the other hand, if you're writing software that
  "talks" to a database, Java is a great choice because of the
  excellent JDBC class library and here the database will be the
  bottleneck.

  Ian




More information about the antlr-interest mailing list