Developer Tools




Ohio State University
Open Source Club

History and Background



First programmer

First text editor

Text Editors


Pros:
  • Simple
  • Faster

  
Cons:
  • Too simple
  • Don't integrate

Example: Emacs


  • Very old (remember EDWIN?)
  • Made by GNU Stallman
  • Has graphical UI
  • Lots of extension code written for it

Example: Vim


  • Old 
  • Relatively small and simple
  • Well-suited for editing configs

IDEs


Pros:
  • Complex
  • Slower
  • Corporate

Cons:
  • Integrate well


Pros:
  • Out of the box support for many new features
  • Fast
  • Good plugin system (including vim plugin)

Cons:
  • Professional edition is expensive
  • Memory hungry
  • Fragmented



 

Made by IBM

Pros:
  • Popular in academia and industry
  • Has a nice set of features
  • Fully OSS
Cons:
  • Slow
  • Bad plugin system
  • Bad UI
  • No direction

Aptana


  • Based on Eclipsed
  • Made for web development

Komodo Edit


  • Fairly popular among PHP users
  • Doesn't seem to have as many features
  • Okay UI and plugin system

Productivity. How important is it?


  • We talk about programming languages a lot, but productivity features and UI are often ignored.
  • As a result we have to use ancient software (OSU Sun environment)
  • Or we're locked in a custom environment (Visual Studio, Eclipse EE)

Why?

Compare the two


We are making people more productive through smart software solutions that help them focus more on what they really want to accomplish.




 ... projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. 

Productivity Features


  • Completion
  • Navigation
  • Linter/Auto-compile
  • Integration
  • Testing and debugging

Which ones are the most difficult to implement?

Completion


  • File-based
  • Dictionary-based
  • Parser-based

Navigation


  • Tags
  • Pre-defined
  • Context-based*
  • Parser-based

Notes:

Linter


  • Instant feedback
  • Gives you hints

Misc. Features

Devil is in the details
  • Indentation guides
  • Highlighting of all occurrences of the word under cursor
  • Auto-closing of "", (), {}
  • Auto-placement of semi-colons. 
  • Graphical parentheses matching
  • Commenting/uncommenting
  • Snippets
  • Multiple cursors/mini map
  • File tree viewer

Aesthetics


  • Text-based vs graphical
  • Color themes

What do they integrate?



  1. Text editor
  2. Compiler/interpreter
  3. Debugger
  4. Testing tools
  5. Version control
  6. Deployment tools

Are there alternatives?


  • Interactive debuggers like Pry
  • Standalone testing tools
  • Rails in general is a good example

Questions



Developer tools

By Maxim Kim

Developer tools

  • 1,782