Date post: | 21-Jan-2016 |
Category: |
Documents |
Upload: | brian-hampton |
View: | 212 times |
Download: | 0 times |
Copyright © 2012 MICS‘12 and Curt Hill
Development Systems:
A Review
Curt HillProfessor of Math and
Computer ScienceValley City State University
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
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
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
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
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
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
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
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
Hovering During Debug
Copyright © 2012 MICS‘12 and Curt Hill
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
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
Hovering during Debug
Copyright © 2012 MICS‘12 and Curt Hill
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
Hit a Break Point
Copyright © 2012 MICS‘12 and Curt Hill
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
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
Hovering in Debug
Copyright © 2012 MICS‘12 and Curt Hill
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
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
Dragging a Widget
Copyright © 2012 MICS‘12 and Curt Hill
Debugging
Copyright © 2012 MICS‘12 and Curt Hill
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
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