Language Choices - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

Language Choices

Description:

Spring 2004. 4. History of Programming Languages ... Spring 2004. 10. History Summary. Computer languages have moved away from the hardware ... – PowerPoint PPT presentation

Number of Views:115
Avg rating:3.0/5.0
Slides: 19
Provided by: RobertW6
Category:

less

Transcript and Presenter's Notes

Title: Language Choices


1
Language Choices
  • CS2340
  • Spring 2004

2
Object-Oriented Development
  • Requirements What does customer want?
  • OOA
  • Design How are we going to meet requirements?
  • OOD
  • Implementation Building the thing
  • OOP

3
The Challenge
Picking the right language for the right job!
Smalltalk
?
C
Eiffel
C
Forth
Tcl/Tk
Basic
COBOL
Ruby
SQL/4GL
Ada
C
Fortran
Java
IDL
Assembler
Python
4
History of Programming Languages
  • Program one instruction at a time in binary or
    hex
  • Examples
  • 101110101010011
  • AB3E6
  • Software cost 24 x the hardware
  • Program using assemblers
  • jumps, load, store, etc

5
History
  • Program using a domain specific high-level
    language
  • FORTRAN for Science
  • Developed by IBM 1957
  • Algol for Science and Publishing
  • Developed by international committee 1958
  • COBOL for Business
  • Developed by committee 1959
  • LISP for Artificial Intelligence
  • Developed by John McCarthy 1959

6
History
  • Program using general purpose high-level
    language
  • PL/1 (Designed to include everything!)
  • Developed by IBM in 1965
  • Pascal (Designed to be simple)
  • Developed by Niklaus Wirth in early 1970s
  • Domain specific used as general purpose
  • C (Designed for system implementation)
  • Developed at Bell Labs in the 1970s

7
History
  • Program using objects
  • Smalltalk
  • Designed by Alan Kay
  • Developed by Xerox and released 1980
  • C
  • Developed by Bjarne Sroustrup at Bell Labs and
    released 1985
  • Java
  • Developed by Sun
  • Released 1995
  • .NET (C, Visual Basic, etc)

8
Current Popular Languages
  • Visual Basic
  • Java
  • C
  • C
  • C
  • Fortran
  • Lisp
  • COBOL
  • Javascript
  • Python
  • Perl

9
Scripting
  • Python
  • Good for text processing and web
  • Javascript
  • Developed by Netscape
  • Perl
  • Language of choice for web site scripting
  • Visual Script
  • Developed by Microsoft
  • Ruby
  • OO scripting language

10
History Summary
  • Computer languages have moved away from the
    hardware
  • Computer languages have gotten more complex to
    handle more complex problems
  • Computer languages have gotten more inefficient
    but easier to use
  • Software vs Hardware costs increasing

11
Pros and Cons of Languages
12
How to Pick a Language?
  • What do you want to do?
  • Some languages are special purpose
  • How fast does the program need to be?
  • How fast does development need to be?
  • How easy is it to do what you want to do in the
    language?
  • How hard will it be to maintain and extend?
  • How safe does the program need to be?
  • What does it cost?

13
Definitions
  • Expressibility Ability to express an idea
  • Expressiveness Ease of expressing that idea
  • For example
  • String processing in Fortran
  • Numeric Analysis in COBOL

14
Some Applications
  • Digital Signal Processing
  • Assembler
  • C
  • Hard Real-Time Embedded System
  • C/C
  • Web-Enabled E-Commerce
  • Java
  • Prototype Development
  • Visual Basic
  • Smalltalk

15
More Applications
  • Operating System
  • Assembly
  • C
  • Flight Control System
  • Ada
  • Nuclear Reactor Control System
  • Ada
  • MIS System
  • SQL/ 4GL
  • Text Processing
  • Perl

16
The wrong answer
  • Everyone is using XXXXX.
  • Where XXXXX is the current favorite.
  • However recognize that
  • If everyone else is really using XXXXX there may
    be better
  • Libraries
  • Applications
  • Development Environments

17
How can I make a pseudo-scientific choice??
  • One Technique Decision Matrix
  • List languages and criteria
  • Assign weights
  • Rank each language
  • Sum weights
  • Select highest score

18
Talking Head Prediction
  • Type-safe vs. Dynamically-Typed
  • Ease of revision/Testing vs. Strict parameter
    enforcement
  • Cost of Deployment/Modification
  • Ruby, Python, Smalltalk will grow C, Ada and
    Java will fade.
  • Robert Martin
Write a Comment
User Comments (0)
About PowerShow.com