25
Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University [email protected]

Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University [email protected]

Embed Size (px)

Citation preview

Page 1: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Copyright © 2012 MICS‘12 and Curt Hill

Development Systems:

A Review

Curt HillProfessor of Math and

Computer ScienceValley City State University

[email protected]

Page 2: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Introduction• A development system is an

important choice in introductory programming course

• Not as important as: – Programming language– Textbook– Order of topics

• Most today are interactive, hence the use of the term IDE

• This is the actual program with which the student interacts

Copyright © 2012 MICS‘12 and Curt Hill

Page 3: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

What Issues?• Language

– Most IDEs only work with one

• Ease of use– Integration of editor, language

processor and debugger

• Cost– Free or fee– Who buys it?

• Student or professional version– Often, but not always, related to cost

Copyright © 2012 MICS‘12 and Curt Hill

Page 4: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Ease of Use Considerations• What would we like to see?

• Intuitive editor• Syntax sensitive display

– Highlight reserved words– Indent thoughtfully

• Debugger that relates to source– Gives the illusion that the source is

running rather than the generated machine language

• Simple interface

Copyright © 2012 MICS‘12 and Curt Hill

Page 5: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Student vs. Professional• Student environments are

generally simpler– Supposed to lessen the learning curve

• Professional environments are generally more complicated and powerful– Have use later

• The question usually reduces to ease of use, cost, with some personal preference

Copyright © 2012 MICS‘12 and Curt Hill

Page 6: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Candidates• The paper considers some historic

environments• Here I wish to look further at IDEs I

have used and am using• Embarcadero’s Rad Studio• Microsoft’s Visual Studio• DrJava• Eclipse

– For Java– For Android

Copyright © 2012 MICS‘12 and Curt Hill

Page 7: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

History of Rad Studio• Originally developed by Borland• Spun off to CodeGear• CodeGear acquired by

Embarcadero• Similar environment for C++ or

Delphi (Object Pascal)• Product costs about $100 at a

college bookstore– Often a serious issue

Copyright © 2012 MICS‘12 and Curt Hill

Page 8: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Features• Most of the standard desirables:

– Editor is intuitive– Colors and highlights syntax– Debugger handles source properly

• Drag and drop GUI construction– Extensive collection of GUI objects

• Minimal damage to language– Transfer to other compilers not

generally difficult except the GUI objects

• Generates code that is predictableCopyright © 2012 MICS‘12 and Curt Hill

Page 9: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Code Generation• Not that aspect of a compiler that

produces machine language– Instead the source code produced by

user action

• Console programs start with an include and a nearly empty main function

• Dragging a component produces an entry in the header file

• Every event handler has a method header generated

Copyright © 2012 MICS‘12 and Curt Hill

Page 10: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Hovering During Debug

Copyright © 2012 MICS‘12 and Curt Hill

Page 11: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Visual Studio• Includes several languages:

• C++• C#• Visual Basic

• There is a free version for college students

• Most of the standard desirables:– Editor is intuitive– Colors and highlights syntax– Debugger handles source properly

• Code generationCopyright © 2012 MICS‘12 and Curt Hill

Page 12: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Issues• Contains drag and drop GUI

construction– Only for .net, that is managed code

• For C++ managed code warps the C++ language severely– ^ for managed pointers– gcnew instead of new– Many new keywords: ref, each,

interface, naked, sealed among others

• All the code for a window is in .h file

Copyright © 2012 MICS‘12 and Curt Hill

Page 13: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Hovering during Debug

Copyright © 2012 MICS‘12 and Curt Hill

Page 14: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

DrJava • The story about media

computation• Free and reasonably reliable• Most of the standard desirables,

but not as slick as the professional • No values as hints• No code generation

• Contains a nice code evaluation pane

Copyright © 2012 MICS‘12 and Curt Hill

Page 15: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Hit a Break Point

Copyright © 2012 MICS‘12 and Curt Hill

Page 16: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Eclipse• A professional and free IDE for Java• Most of the standard desirables

– Editor is intuitive– Colors and highlights syntax– Debugger handles source properly– Shows error lines before a compile

• No drag and drop GUI construction• Generates class headers

Copyright © 2012 MICS‘12 and Curt Hill

Page 17: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Issues• Eclipse is a great IDE, that is why it

is so prevalent• It is customizable • Its perspectives is one of its best

and worst features– Tad confusing when it goes into

debugging mode

Copyright © 2012 MICS‘12 and Curt Hill

Page 18: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Hovering in Debug

Copyright © 2012 MICS‘12 and Curt Hill

Page 19: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Android Plugin for Eclipse• The flexibility of Eclipse is shown

by the fact that it can accept plugins that extend the capabilities

• The Google Android plugin adds several capabilities useful for Android:– SDK and AVD Manager– Customized XML editors– Drag and drop layout manager– Customized code generation

Copyright © 2012 MICS‘12 and Curt Hill

Page 20: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Issues• Eclipse with the Android plugin

lacks the reliability of ordinary Java• The display of XML can be flaky• The connection between Eclipse

and the Virtual Device is often flaky– Starting emulator is slow and

restarting it is very frustrating

• Slow to load when SDK changes

Copyright © 2012 MICS‘12 and Curt Hill

Page 21: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Dragging a Widget

Copyright © 2012 MICS‘12 and Curt Hill

Page 22: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Debugging

Copyright © 2012 MICS‘12 and Curt Hill

Page 23: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

Don’t Do It!• Alas, I am using four of the

previous five all this semester– Very awkward– Unavoidable

• Most of the IDEs have a function key alternative to a menu item– I can never remember them

Copyright © 2012 MICS‘12 and Curt Hill

Page 24: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

The Final Answer• Certain debates have no final

answer– Bread vs depth– Object first vs imperative first

• The real question is:In which approach will I be most effective?In which approach will my students learn most effectively

• Answer varies per instructorCopyright © 2012 MICS‘12 and Curt Hill

Page 25: Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University Curt.Hill@vcsu.edu

QUESTIONS?Contact:

[email protected]

Copyright © 2012 MICS‘12 and Curt Hill