J
Jacob
I am doing a research project on development environments
using the Unix philosophy of development (see for instance
http://www.faqs.org/docs/artu/ch01s06.html) with the hypothesis
that an environment of small, simple, exchangable tools
might outperform the use of heavyweight IDEs.
I am setting up a test environment and am planning to do
performance measurments (in terms of # keystrokes, time, robustness)
on typical development scenarios like check-outs, bug-report-fix-test-
deploy-cycles, create development area for new user etc, management
reporting etc.
An initial task includes defining the term "development environment"
and exactly what it covers (operating system, version control system,
programming language, editor, compiler, debugger, test environment,
build system, bug tracking, document handling, project control and
so on).
The environment must be scalable to 10+ developers and at least a
million lines of code. The current state of my setup is as follows
(including short rationale for each choice):
OS: Linux - fast, secure, availability of development tools, free.
VCS: Subversion - State of the art, simple, robust, free.
Language: Java&JDK - Versatile, multi-platform, well-documented,
easy to use, free.
Compiler: Jikes - Fast.
Deployment: JavaWebStart - Simple, fast, user-friendly.
Tools scripting: Python - Simple, well suited, state of the art, free.
Code documentation: Doxygen - Feature-rich, high quality documents, good
error reporting.
Editor: Whatever the developer prefers - Efficient, developer
satisfaction.
Unit testing: JUnit - State or the art.
Bug tracking: Flyspray - Simple, good quality, free.
Building: Make - Simple, versatile, free.
Coverage: Cobertura - Simple, fast, report quality, free.
Document collaboration: twiki - Simple, free.
I'd like feedback on the selection, and experience with these and
alternative tools.
I do miss tools for code metrics, debugging, profiling, and
project management (hours, calendar, resources, time estimates
etc) among others. Also, no particluar project process (like RUP)
w/tools, has been chosen. Suggestions and experience appreciated.
Thanks.
PS: Excuse me for being slightly off topic.
using the Unix philosophy of development (see for instance
http://www.faqs.org/docs/artu/ch01s06.html) with the hypothesis
that an environment of small, simple, exchangable tools
might outperform the use of heavyweight IDEs.
I am setting up a test environment and am planning to do
performance measurments (in terms of # keystrokes, time, robustness)
on typical development scenarios like check-outs, bug-report-fix-test-
deploy-cycles, create development area for new user etc, management
reporting etc.
An initial task includes defining the term "development environment"
and exactly what it covers (operating system, version control system,
programming language, editor, compiler, debugger, test environment,
build system, bug tracking, document handling, project control and
so on).
The environment must be scalable to 10+ developers and at least a
million lines of code. The current state of my setup is as follows
(including short rationale for each choice):
OS: Linux - fast, secure, availability of development tools, free.
VCS: Subversion - State of the art, simple, robust, free.
Language: Java&JDK - Versatile, multi-platform, well-documented,
easy to use, free.
Compiler: Jikes - Fast.
Deployment: JavaWebStart - Simple, fast, user-friendly.
Tools scripting: Python - Simple, well suited, state of the art, free.
Code documentation: Doxygen - Feature-rich, high quality documents, good
error reporting.
Editor: Whatever the developer prefers - Efficient, developer
satisfaction.
Unit testing: JUnit - State or the art.
Bug tracking: Flyspray - Simple, good quality, free.
Building: Make - Simple, versatile, free.
Coverage: Cobertura - Simple, fast, report quality, free.
Document collaboration: twiki - Simple, free.
I'd like feedback on the selection, and experience with these and
alternative tools.
I do miss tools for code metrics, debugging, profiling, and
project management (hours, calendar, resources, time estimates
etc) among others. Also, no particluar project process (like RUP)
w/tools, has been chosen. Suggestions and experience appreciated.
Thanks.
PS: Excuse me for being slightly off topic.