The Problem with Programming Minnesota

Bjarne Stroustrup, the inventor of the C++ programming language, defends his legacy and examines what's wrong with most software code.

Local Companies

Ascendview LLC
(217) 722-7900
394 S Lake Ave
Duluth , MN
Securence Anti Spam Software
1.866.200.9013
12450 Wayzata Blvd.
Minnetonka, MN
Sierra Bravo Corporation
952-948-1211
9201 E Bloomington Fwy
Bloomington, MN
CPU Options
800-777-6567
9401 Winnetka Ave N
Brooklyn Park, MN
iCentera
866-556-1288
1609 W County Rd 42, #203
Burnsville, MN
McData Corporation
(952) 746-1340
12100 Singletree Ln
Eden Prairie, MN
Cooney's Computer Consultants
(218) 674-9200
302 Atlantic Ave
Kennedy, MN
Cassatt Corporation
(651) 554-0171
1110 Centre Pointe Curv
Saint Paul, MN
Boundary Medical
(612) 455-2120
700 10th Ave S
Minneapolis, MN
Inetium
(952) 646-0800
18986 Lake Dr E
Chanhassen, MN


The Problem with Programming

provided by: 


In the 1980s and 90s, Bjarne Stroustrup designed and implemented the C++ programming language, which popularized object-oriented programming and influenced numerous other programming languages, including Java.

C++ remains the archetypal "high level" computer language (that is, one that preserves the features of natural, human language), and it is still used by millions of programmers. Many of the systems and applications of the PC and Internet eras were written in C++. For all that, the language remains controversial, largely because it is notoriously difficult to learn and use, and also because Stroustrup's design allows developers to make serious programming mistakes in the interest of preserving their freedom.

Stroustrup, for many years a researcher at AT&T Bell Labs, is now a professor of computer science in the Department of Engineering, at Texas A&M University, near Houston.

Technology Review: Why is most software so bad?

Bjarne Stroustrup: Some software is actually pretty good by any standards. Think of the Mars Rovers, Google, and the Human Genome Project. That's quality software! Fifteen years ago, most people, and especially most experts, would have said each of those examples was impossible. Our technological civilization depends on software, so if software had been as bad as its worst reputation, most of us would have been dead by now.

On the other hand, looking at "average" pieces of code can make me cry. The structure is appalling, and the programmers clearly didn't think deeply about correctness, algorithms, data structures, or maintainability. Most people don't actually read code; they just see Internet Explorer "freeze."

I think the real problem is that "we" (that is, we software developers) are in a permanent state of emergency, grasping at straws to get our work done. We perform many minor miracles through trial and error, excessive use of brute force, and lots and lots of testing, but--so often--it's not enough.

Software developers have become adept at the difficult art of building reasonably reliable systems out of unreliable parts. The snag is that often we do not know exactly how we did it: a system just "sort of evolved" into something minimally acceptable. Personally, I prefer to know when a system will work, and why it will.

TR: How can we fix the mess we are in?

BS: In theory, the answer is simple: educate our software developers better, use more-appropriate design methods, and design for flexibility and for the long haul. Reward correct, solid, and safe systems. Punish sloppiness.

In reality, that's impossible. People reward developers who deliver software that is cheap, buggy, and first. That's because people want fancy new gadgets now. They don't want inconvenience, don't want to learn new ways of interacting with their computers, don't want delays in delivery, and don't want to pay extra for quality (unless it's obvious up front--and often not even then). And without real changes in user behavior, software suppliers are unlikely to change.

We can't just stop the world for a decade while we reprogram everything from our coffee machines to our financial systems. On the other hand, just muddling along is expensive, dangerous, and depressing. Significant improvements are needed, and they can only come gradually. They must come on a broad front; no single change is sufficient.

One problem is that "academic smokestacks" get in the way: too many people push some area as a panacea. Better design methods can help, better specification techniques can help, better programming languages can help, better testing technologies can help, better operating systems can help, better middle-ware infrastructures can help, better understanding of application domains can help, better understanding of data structures and algorithms can help--and so on. For example, type theory, model-based development, and formal methods can undoubtedly provide significant help in some areas, but pushed as the solution to the exclusion of other approaches, each guarantees failure in large-scale projects. People push what they know and what they have seen work; how could they do otherwise? But few have the technical maturity to balance the demands and the resources.

By Jason Pontin

Read article at techreview.com

Featured Local Company

Sierra Bravo Corporation

952-948-1211
9201 E Bloomington Fwy
Bloomington, MN
www.sierra-bravo.com

Regional Articles
- The Problem with Programming Albert Lea MN
- The Problem with Programming Andover MN
- The Problem with Programming Anoka MN
- The Problem with Programming Bemidji MN
- The Problem with Programming Brainerd MN
- The Problem with Programming Burnsville MN
- The Problem with Programming Champlin MN
- The Problem with Programming Chanhassen MN
- The Problem with Programming Chaska MN
- The Problem with Programming Circle Pines MN
- The Problem with Programming Cloquet MN
- The Problem with Programming Cottage Grove MN
- The Problem with Programming Detroit Lakes MN
- The Problem with Programming Duluth MN
- The Problem with Programming Eden Prairie MN
- The Problem with Programming Elk River MN
- The Problem with Programming Excelsior MN
- The Problem with Programming Faribault MN
- The Problem with Programming Fergus Falls MN
- The Problem with Programming Forest Lake MN
- The Problem with Programming Hastings MN
- The Problem with Programming Hibbing MN
- The Problem with Programming Hopkins MN
- The Problem with Programming Inver Grove Heights MN
- The Problem with Programming Lakeville MN
- The Problem with Programming Mankato MN
- The Problem with Programming Minneapolis MN
- The Problem with Programming Minnetonka MN
- The Problem with Programming Moorhead MN
- The Problem with Programming Mound MN
- The Problem with Programming New Ulm MN
- The Problem with Programming Osseo MN
- The Problem with Programming Owatonna MN
- The Problem with Programming Prior Lake MN
- The Problem with Programming Red Wing MN
- The Problem with Programming Rochester MN
- The Problem with Programming Rosemount MN
- The Problem with Programming Saint Cloud MN
- The Problem with Programming Saint Paul MN
- The Problem with Programming Savage MN
- The Problem with Programming Shakopee MN
- The Problem with Programming South Saint Paul MN
- The Problem with Programming Stillwater MN
- The Problem with Programming Wayzata MN
- The Problem with Programming Willmar MN
- The Problem with Programming Winona MN
Related Local Events
ITEC Minneapolis
Dates: 9/10/2008 - 9/11/2008
Location: Minneapolis Convention Center
Minneapolis MN
View Details

IS Audit and Control - ISACA Training Week
Dates: 6/23/2008 - 6/27/2008
Location: Hyatt Regency Minneapolis
Minneapolis MN
View Details
Rate Article
     
Articles Insider

Rss   Delicious   Digg   Add To My Yahoo   Add To My Google   Bookmark   Search Plugin

Topics:
Advertising Engineering Home Services Software
Business Services Entertainment Industrial Goods & Services Technology
Career Family Insurance Telecommunications
Cars Financial Services Internet Transportation & Logistics
Computer Hardware Food & Beverage Legal Travel
Construction Health Real Estate Wedding
Education Home Electronics Retail & Consumer Services