So here's my topic of debate: Static-Typed languages versus Dynamic-Typed languages. I'm going to place Groovy, Python and Ruby at the forefront of the discussion for Dynamic-Typed Languages. I'm placing Scala, C++ and OCaml at the forefront of the dicussion for Static-Typed languages. I'm refraining from adding Java because although it is statically typed, there's far to much class-casting for my tastes to call it a "well-done" static languages (although annotations have really helped that problem!). I'm ignore C for the same reason. I'm ignoring C# because I don't know it, and I fear it may suffer from similar problems to Java to count as a real static language.
Here's some points of contension:
- Statically-typed languages will always be better than dynamically typed languages because you can ensure more compile-time safety.
- Content Assistance is one of the "power triad" features of an IDE (those being Debugging, Searching and Content Assistance). As such, static languages will always be better to develop in, as they have much better support for accurate content assistance
- Dynamic languages are much better for getting things done quickly, using less code.
- Static languages are made by more intelligent people because their compilers have to be more complex than dynamic languages
- Dynamic languages are always slower than Static languages
Anyway, feel free to argue one or many points. I'd like to see what all your opinions are! I tried to make these statements strongly on one side or the other, but I can also make them insulting if it helps discussion :)
If you'd like to include sample code, please use the following HTML: <div class="sourceCode"><pre class="prettyprint">SOURCE CODE HERE <pre><div>