[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