View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Summer 2003 Final Exam Review: Language Choices

Language Choices:



For each of the applications below, you are to pick the language of your choice for implementing the application (e.g., Smalltalk in general, Squeak in specific, Java, C, C++, Ada, Visual Basic, Fortran, Lisp, Assembler, etc.) and provide your rationale! We don't have a right answer in mind for each of these, but we are looking for true, reasonable statements in your rationale. (E.g., ``I'm going to pick C++ because it is the least likely to crash" would be a bad answer.)

A. You're building a claims-entry system for a large insurance firm. You have to run on whatever platform the insurance agent may purchase. New claims forms are defined by the company fairly frequently-usually several a month. You want people to be able to fill out the forms via the internet. The system must be able to grow to handle millions of users and it must be secure.

I would choose Java for implementing this application because you have be to able to run it on any platform the insurance agent may purchase and Java is portable. Java is also a good choice because it is used in web-enabled e-commerce which benefits our plan for people to fill out the forms via the internet. Java's handling exceptions are faster. You don't have to worry about memory and Java has a better support for threads, which is good because we want our system to grow and be able to handle many users. It must be secure, and Java is very secure. ~Sabina Karkin

B. You're building a new video game based on the movie "Finding Nemo" to run only on Windows boxes with hardware acceleration. You're going to be distributing the code on CD. You'll have a small, hand-picked group of developers who are expert in your language of choice. There is intense pressure to have the game out by summer's end, so you only have a month or two to implement the complete game.

I would probably choose C++ for this application because it is very fast, which is useful because we only have a month or two to finish it. It is also used for hardware acceleration. It is good for certain operating systems which is good for this application because we want it to run only on Windows boxes. It is free, which is good because we'll be distributing the code on CD. ~Sabina Karkin

There is no way you could write a game like this from scratch in two months. You'd probably want to buy an existing game engine like Id's Quake3Arena engine, and then hire a lot of artists etc. to provied the game content. You'd be using whatever language/scripting tools the game engine you bought provided. timmy

I agree that 2 months would be tight. You would build on existing stuff which may mean a game engine. You could use a game engine if it provides all that you need and supplement with your own code for custom things Barbara Ericson


C. You are writing the software to control a nuclear power plant. THE SYSTEM MUST NOT CRASH! The software doesn't have to be developed very quickly and it does have to be well tested.

I would choose Ada for this application because it is a government-secured language for safety, and safety and precision are vital in this application. This language is also used for flight control system and train systems, which means it is very reliable. ~Sabina Karkin

D. You're writing the operating system for a new computer.

C and Assembly are good choices for this application. I would probably choose C because it is a little easier to implement and understand. It is procedural, fast, and can do a lot. ~Sabina Karkin

this question is missing something—requirements maybe? like, why not just use a free operating system and adapt it to our needs. timmy

What language are most operating systems written in? Barbara Ericson

That's a different question. Most are written in C with inline assembly for the parts that can't be done in C. As long as you are able to call out to assembly, it doesn't really matter what language you choose (given that you don't really seem to have any requirements). timmy

E. You are writing a fairly simple application for a small company that mostly needs some simple processing and a nice GUI. They have a self-taught programmer who will be maintaining it.

I would probably choose Visual Basic for this application. It is simple and it has nice, simple GUI's. Since it is maintained by self-taught programmer, he/she is probably not familiar with many languages and programming, and Visual Basic is the easiest for non-programmers. ~Sabina Karkin

F. You are developing a system for children to teach them about science by having an environment that they can write small programs in without having to do lots of typing. The kids should be able to make simulations of things like objects falling due to gravity.

I would choose Squeak for this application because it is very kid-friendly. It has lots of interesting stuff in it for creating different things, such as objects falling, rotating, and creating fun images. It is not strongly-typed, which is good for kids because they don't want to type a lot. The enviornment is very colorful and friendly and will keep kids interested. ~Sabina Karkin

nice answers on the pro side Sabina! Anybody want to say why not other languages? What about .Net for a? Barbara Ericson

Most kids aren't going to write small programs no matter how much typing they have to do. If you want to teach them science, then don't make them write any code at all. timmy

This is an argument for Squeak since they can use the etoys environment to do programming without writing code. Barbara Ericson

Yeah, I'll agree, but it would take a smart (and patient!) kid to get anything near that kick-the-box example (and I can't say it's any more rewarding than telling a turtle to draw a circle...). timmy

About .NET for A, .NET isn't portable now. What if the insurance company opts for NetBSD? timmy

Yes, I agree that .NET isn't portable yet. Barbara Ericson

Link to this Page