Understanding Software: A Primer for Managers
Writing Software
Learning Objectives
After studying this section you should be able to do the following:
- Understand, at a managerial level, what programming languages are and how software is developed.
- Recognize that an operating system and microprocessor constrain the platform upon which most compiled application software will run.
- Understand what Java is and why it is significant.
- Know what scripting languages are.
So
you've got a great idea that you want to express in software - how do
you go about creating a program? Programmers write software in a
programming language. While each language has its strengths and
weaknesses, most commercial software is written in C++ (pronounced "see
plus plus") or C# (pronounced "see sharp"). Visual Basic (from
Microsoft) and Java (from Sun) are also among the more popular of the
dozens of programming languages available. Web developers may favor
specialty languages like Ruby and Python, while languages like SQL are
used in databases.
Most professional programmers use an
integrated development environment (IDE) to write their code. The IDE
includes a text editor, a debugger for sleuthing out errors, and other
useful programming tools. The most popular IDE for Windows is Visual
Studio, while Apple offers the Xcode IDE. Most IDEs can support several
different programming languages. The IDE will also compile a
programmer's code, turning the higher-level lines of instructions that
are readable by humans into lower-level instructions expressed as the
patterns of ones and zeros that are readable by a computer's
microprocessor.
Figure 9.8
Microsoft's Visual Studio IDE supports desktop, server, mobile, and cloud computing software development.
Look
at the side of a box of commercial software and you're likely to see
system requirements that specify the operating system and processor that
the software is designed for (e.g., "this software works on computers
with Windows 7 and Intel-compatible processors"). Wouldn't it be great
if software could be written once and run everywhere? That's the idea
behind Java - a programming language developed by Sun Microsystems.
Java
programmers don't write code with specific operating system commands
(say for Windows, Mac OS X, or Linux), instead they use special Java
commands to control their user interface or interact with the display
and other hardware. Java programs can run on any computer that has a
Java Virtual Machine (JVM), a software layer that interprets Java code
so that it can be understood by the operating system and processor of a
given computer. Java's platform independence - the ability for
developers to "write once, run everywhere" - is its biggest selling
point. Many Web sites execute Java applets to run the animation you
might see in advertisements or game. Java has also been deployed on over
six billion mobile phones worldwide, and is popular among enterprise
programmers who want to be sure their programs can scale from smaller
hardware up to high-end supercomputers. As long as the machine receiving
the Java code has a JVM, then the Java application should run. However,
Java has not been popular for desktop applications. Since Java isn't
optimized to take advantage of interface elements specific to the Mac or
Windows, most Java desktop applications look clunky and unnatural. Java
code that runs through the JVM interpreter is also slower than code
compiled for the native OS and processor that make up a platform. Some
offerings have attempted to overcome the speed issues associated with
interpreting Java code. Just-in-time compilation stores code in native
processor-executable form after each segment is initially interpreted,
further helping to speed execution. Other environments allow for Java to
be compiled ahead of time so that it can be directly executed by a
microprocessor. However, this process eliminates code portability -
Java's key selling point. And developers preparing their code for the
JVM actually precompile code into something called Java bytecode, a
format that's less human friendly but more quickly interpreted by JVM
software.
Scripting languages are the final category of
programming tool that we'll cover. Scripting languages typically execute
within an application. Microsoft offers a scripting language called VB
Script (a derivative of Visual Basic) to automate functions in Office.
And most browsers and Web servers support JavaScript, a language that
helps make the Web more interactive (despite its name, JavaScript is
unrelated to Java). Scripting languages are interpreted within their
applications, rather than compiled to run directly by a microprocessor.
This distinction makes them slower than the kinds of development efforts
found in most commercial software. But most scripting languages are
usually easy to use, and are often used both by professional programmers
and power users.
Key Takeaways
- Programs are often written in a tool called an IDE, an application that includes an editor (a sort of programmer's word processor), debugger, and compiler, among other tools.
- Compiling takes code from the high-level language that humans can understand and converts them into the sets of ones and zeros in patterns representing instructions that microprocessors understand.
- Popular programming languages include C++, C#, Visual Basic, and Java.
- Most software is written for a platform - a combination of an operating system and microprocessor.
- Java is designed to be platform independent. Computers running Java have a separate layer called a Java Virtual Machine that translates (interprets) Java code so that it can be executed on an operating system/processor combination. In theory, Java is "write once, run everywhere," as opposed to conventional applications that are written for an operating system and compiled for an OS/processor combination.
- Java is popular on mobile phones, enterprise computing, and to make Web sites more interactive. Java has never been a successful replacement for desktop applications, largely because user interface differences among the various operating systems are too great to be easily standardized.
- Scripting languages are interpreted languages, such as VB Script or Java Script. Many scripting languages execute within an application (like the Office programs, a Web browser, or to support the functions of a Web server). They are usually easier to program, but are less powerful and execute more slowly than compiled languages.
Questions and Exercises
- List popular programming languages.
- What's an IDE? Why do programmers use IDEs? Name IDEs popular for Windows and Mac users.
- What is the difference between a compiled programming language and an interpreted programming language?
- Name one advantage and one disadvantage of scripting languages.
- In addition to computers, on what other technology has Java been
deployed? Why do you suppose Java is particularly attractive for these
kinds of applications?
- What's a JVM? Why do you need it?
- What if a programmer wrote perfect Java code, but there was a bug on the
JVM installed on a given computer? What might happen?
- Why would developers choose to write applications in Java?
- Why might they skip Java and choose another programming language?
Why isn't Java popular for desktop applications?
- Go to http://www.java.com. Click on "Do I have Java?" Is Java running on your computer? Which version?