Choosing a Language

April, 2009.

Java

+ lots of programmers know it

+ good for very large scale projects

+ lots of tools and code

+ hard to write bad code in it

- security is complicated by lots of frameworks

- crypto is clunky, best to replace the lot if possible

- lacks any way to communicate at the Unix process to process level (so everyone uses TCP/IP so we end up with firewall and code mess).

- not good at webapps

- PG considers it unsuitable for security (after having to audit projects and dealing with SUN).

Perl

+ fairly easy to write in

+ long history, robust, efficient

- exotic, not so many programmers

- requires discipline to write good code

- hard to stop people writing bad code

- known as a write-only language

PHP

+ easy to start a webapp in it

- hard to get people writing good code in it

- object model is crap

- frequent rewrites required due to poor structuring/OO

- frequent releases because of vulnerabilities

C

+ stable, robust

+ efficient

+ best integration with OS platform

- too slow to write large applications (around 5 times as slow as the others)

- hard to avoid using bad memory management practices

Ruby

- not out of the kindergarten yet

- framework is too young?

Python

+ fast to write in

+ good OO model

+ good modern web frameworks

+ easy to apply secure programming practices

- formatting is annoying to some

The knowledge element

Lang 		C 	Java 	Python 	Ruby 	Perl 	PHP 	total
who:
iang 		yes 	yes 			yes 	yes 	4
mario 		yes 	yes 			yes 	yes 	4
Amery	 	yes 		yes 				
philipp D 	yes 	yes 	no 	no 	yes 	yes 	4
philipp	G 							
ted 							
TOTAL 		3 	2 	1 	0 	2 	2