C++
Odin Consulting uses C++ for many projects due to its overwhelming advantages in expressive power and runtime performance.
In the hands of a skilled programmer, C++ is by far the most powerful, widely used programming language available.
For high performance applications where speed is critical and for sophisticated use of data structures such as that
exemplified by OPP, C++ is simply the only choice. C++ is as fast as C, yet allows for more powerful
abstractions leading to a more rapidly developed, more stable and more maintainable application.
C++ applications can be more difficult to maintain than Java applications; especially by less skilled programmers. If application performance
is not a concern, we recommend that Java be used instead.
Java
Java enables a new generation of web and network applications. It represents a major evolutionary step forward in
computer languages and run time environments. When used properly, it is a powerful tool for enterprise computing.
- Why Choose Java?
- Java is ideal for web and internet applications. It was designed for network programming, and works well when
used to create network applications.
- Java is an excellent choice for server applications. It is best for applications with a
small load, but can be used to manage higher load applications as well if enough hardware is available.
- Java is the best choice for web applets. An applet is a small application that is loaded as part of a web page,
and executes on the customer's machine under the control of their web browser. The Java runtime environment in
the web browser restricts Java applets from accessing critical parts of the user's machine - preventing the
spread of viruses and other malicious programs.
Users can trust an applet not to attack their system, because those
attacks will not be allowed. This trust does not exist for some other applet programming
languages.
- Properly written Java programs can run on every platform. Unfortunately, the real world isn't quite as
uniform, and the "Write Once, Run Anywhere®" goal remains just that, rather than a reality.
However, Java is closer to this goal than any other widely used language.
- Java is powerful, yet easy to learn and understand. Applications can be
developed more rapidly in Java than in other languages. Applications written in Java are easy to maintain.
- Why not Java?
- Because it's not the right tool for the job. If you don't truly need a web or internet application, then
you simply don't need Java. As it matures, Java will become more generally useful.
- Microsoft doesn't support Java. As much as we dislike monopolies, the fact remains that Microsoft carries
immense power, which casts some doubt on the long term viability of Java.
- Java applications can be much slower than native applications. It is our finding that, due to
inefficiencies inherent in the Java class libraries, JIT technology
(Just In Time compilation) doesn't result in huge speedups on real applications; even though they indicate huge
speedups on artificial benchmarks.
Web
The only key to a good web site is content. Everything else that can be said about making an effective web site derives from
the need to deliver good content.
The concept of content goes far beyond mere words and pictures. Content on the web encompasses the entire user
experience, including how well the user understands and can use the content.
Content is the combination of words and pictures with presentation and user interaction elements.
Good presentation helps users of your web page understand your message. Bad presentation can prevent users from understanding
your message or from being able to find the detailed information they need. Bad presentation frustrates users and
drives customers away.
For e-commerce sites, it must be immediately clear to a customer how to order an item, obtain a price quote or
find more detailed information about a product. It must also be easy for a customer to browse your inventory or search
for a particular item or type of item. It sounds like common sense, but we've all has unpleasant experiences using sites
where one or more of these principals is violated.
Similar "common sense" principals apply to other types of web sites. The site itself should be organized in a simple way.
Each page should be self-contained for a typical user; meaning that all information and forms needed are available directly on
that page. The page should be simple and uncluttered. Any more detailed information or forms used only occasionally should
be relegated to other web pages; accessible by using simple and unobtrusive navigational controls.
A good web site presents information in pieces that are easily digested by a typical user. Ways to navigate to more detailed
information must be clearly recognizable. Keep in mind that there will usually be more than one kind of "typical user"
for a web site. The main page should provide clear ways for each user to find the kind of information that they want.
"Universal" truths:
- Properties of a good web site
- Provides concise and useful information.
- Loads quickly. Customers are impatient.
- Makes detailed information readily available to those who want it.
- Facilitates the purchase of your product(s).
- Has a consistent look and feel.
- Is easy to use and navigate.
- Keeps customer information confidential and secure.
- Properties of a bad web site
- Violates one or more of the properties of a good web site.
- Reads like an advertisement or sales pitch, not like an information resource.
- Uses graphics with no text description of their meaning or purpose. This is especially true of
graphics used for navigational purposes.
- Has lots of animation. The human mind is easily distracted by motion.
- Gratuitous use of new techology. This often annoys the users that can access it and unnecessarily locks out users with older or "the wrong" browsers.
- Fails to reach its target audience.
|