Integrated Development Environments - The coder’s little helpers

aniseedsplashΛογισμικό & κατασκευή λογ/κού

15 Αυγ 2012 (πριν από 5 χρόνια και 11 μήνες)

404 εμφανίσεις



The coder’s little helpers

Disclaimer: content is biased…

What’s the problem?

The original programming technique:

Code with some text editor (Notepad/Emacs)

Use command
line tools to compile, run and debug

The problems:

Coding is very slow and annoying

Errors appears only while compiling or running

Manipulating the code (renaming, moving) is
practically impossible

Maintenance is hell

What is IDE?

Integrated Development Environment

In other words, a tool which not only

programming, but also actually


An IDE should allow, for start:

Edit and complete code, highlight syntax and errors

Run and debug

Show help and documentation

Access external tools and libraries easily

Support maintenance

What to look for in an IDE (1)

Basic features:

One tools supports all (edit, compile, run, debug,
deploy, maintain)

Code highlight, completion and hints

Detect errors

the compiler, while editing

line help

Full debugging support (breakpoints, steps) for

sorts of programs (apps, web
based, DB

Files management

What to look for in an IDE (2)

Project management

Handle project directories and files

Smart build, pack and deploy

Version and configuration control

Common goodies

GUI visual editing and coding

DB access

Some support for commonly used files, like XML,
web pages, properties, and so on

What to look for in an IDE (3)

Code insight

Mark problems, like exceptions and inconsistencies

complete methods, parameters, types …

Suggest solutions

Refactoring and maintenance

Rename, move and safe
delete methods and classes

Extract methods, classes and interfaces

Introduce variables, parameters, members…

Java IDEs

Confusing selection

NetBeans / Sun ONE Studio

NetBeans was one of the first IDE’s for Java

Built originally for extensions and plug
ins, to
serve as a base platform for tools

An open
source project nowadays

Sun adopted and extend it to create “Forte”

Now called “ONE Studio”

A very industry and enterprise oriented tool

Lot’s of wizard, web aids and time
market cutters

NetBeans screenshot

NetBeans pros


Seasoned, standard, commonly used

Installed on labs


For free (NetBeans and Studio personal edition)

Lot’s of tools

Good GUI editor

DB and XML connectivity

Industry oriented, excellent web and JSP integration

Lot’s of wizards and auto
gens for everything

Whole directories “mounting”

no projects needed

NetBeans cons


Heavy, cluttered, annoying and confusing GUI

Totally industry
oriented, little focus on coding
(especially Sun’s Studio)

No refactoring at all

Too many wizards instead of more convenient tools

Plainly put: totally oversized for the common coder

Borland’s JBuilder

Another veteran tool (version 8!), from good

focused, with web, XML and DB
supports (Borland’s JDataStore)

But still coder

A products family

varies greatly by price

Has free personal edition

JBuilder’s pros and cons


Cool tools, including a UML visualizer

Good GUI editor with a DB toolkit

Fairly good code insight

Supports some refactoring (not in personal edition)


Personal edition is crappy


Totally project

IBM’s Eclipse

The new kid on the block

Innovative open
source tool and platform

Targeted on promoting open
source project

IBM’s counter
Microsoft strategy

oriented, no extras included

Supposed to be very open for extensions

גד לש םש הז רומא

Eclipse screenshot

Eclipse pros and cons


Code oriented

Good code insight, supports refactoring, tasks pane…

Totally free, open sourced

Nice, slick, supporting user interface

Standalone executable

all you need is disk space


Each and every problem a young tool can have

Documentation is for the weak…

IntelliJ’s IDEA

An award
winning tool from the Czech republic

Totally code oriented, rather lightweight

Main focus: code insight

Most extensive refactoring support

time advises and corrections

Absolute code insight

knows your code better then
you do…

Personal favorite

IDEA screenshot

IDEA pros and cons


The most assistive tool there is for fast coding

Will actually increase your coding speed and quality

Excellent GUI, and also totally keyboard

Full code formatting and refactoring tools


Almost nothing else then coding and basic features

Totally project

Not for free

academic license

But worth it!

C# and .NET

Microsoft’s copycat

The C# story

Originally, Microsoft wanted to adopt Java
instead of the uncomfortable C++

But, wanted to adjust it to be MS

Sun sued them for copyrights violation and won

Instead, Microsoft developed their own Java
language (C#) and platform (.NET)

The most amazing shooting
foot ever in
the software industry…

C# / .NET spec

Very much like Java in syntax

Garbage collected

Uses intermediate byte code

Has “assemblies”

like files

Powerful reflection and cleaner properties

Foreach hack for collections

Everything is connected

transparent XML and
DB access, and similar features

C# / .NET pros and cons


Supposed to be similar
better to Java

Transparent access to lot’s of technologies by .NET

It’s Microsoft…


Young, immature, buggy technology

Visual Studio
has no coding or refactoring support

It’s Microsoft…


“an octopus made by nailing extra legs
onto a dog”


Most common OOP language in the industry

Even nowadays

Some would disagree on the OOP thing…

Main IDE’s

On windows: Microsoft Visual Studio

On Linux: KDE (K’s Development Environment)

Both have little support in anything other then basic
coding and GUI editing

C++ pros and cons


Industry language

Powerful, fast, native

Enough rope to hang yourself…

Good windows support without getting into C#


Unsafe, buggy, dangerous language

You have to manage memory (and everything else)
by yourself

Tools are lame and unsupportive

Off the beaten track

Some other interesting languages


The original OOP language

Industry version back at the 80’s!

Everything is an object

Including the classes, numbers, strings, symbols…

Supports parameterized blocks (closures) and
rich foreach methods

Clean, almost
human syntax

table at: ‘IL’ put: ‘Israel’

SmallTalk pros and cons


An intriguing, special language

SmallTalk has almost no deployment problems

Many tools are free and support browsing and
refactoring extensively


Unfamiliar, different language and working style

Requires much learning for a non
industry tool


An object
oriented scripting language

Really object
oriented, not like Perl or VB

Object are hashes

total reflection…

Also supports closures and regular expressions

Many available packages and extensions

Considered “the second coming” by
enthusiastics and other fanatics

Python pro and cons


A scripting lang., with all its strengths


A scripting lang., with all its weaknesses

The shoemaker has no shoes

Software writers keep preaching to the world to
use specialized software

You wouldn't manage a shop with a text editor…

But few software engineers actually harness the
power of the computer to their
own needs

… But you do manage your code with a text editor!

The code is your shop

use the most powerful
and convenient tools (for you) you can get.

A reminder

“The vices that makes a good programmer
are: laziness, impatience and vanity”

Larry Wall

Be lazy!