Last Updated: February 25, 2016
· drochetti

Give static typing a new and fair chance - Part 1

Three years ago I gave up a 8 year career as a respected Java Architect in my city, Brasília, Brazil, to be an entrepreneur. Quickly I realized that Java, C# and other static typed languages are not even considered for projects in the Startup world. The immediate question was why? Every developer in the Startup ecosystem was ready to answer: productivity!
Going further on the discussion I've learned the main arguments:

  • "Too verbose and bureaucratic, I wanna write a one line hello world";
  • "Heavy tools, I like simple text editors" (this deserves a post by itself);
  • "I wanna get things done, not worry about tons of patterns and fancy constructions";

Note that I'm not saying that this is true or not, I'm just saying that was my perception after a lot of rich and interesting conversations with developers outside the enterprise world.

Fair points in my humble opinion, but the only thing that it proves is that there's no silver bullet. Our good and old "use the right tool for the job" reinforced, despite neither sides seem to realize that, they both still want to prove the "productivity" argument.

After 15 years coding I'm pretty sure that productivity is not only a matter of choosing a language, it's much more complex than that. It's a match of team culture, skills availability, problems to solve, and so on.
I think the mainstream languages, both dynamic and static are all old, lacking important things that make developers life easier. But dynamic languages seems to suffer less of that problem, because developers can solve by making a whole new age of frameworks and utility libraries. On the other hand, static typed languages have their limits defined by the language features.

Past, present and future

The fact is the human race has a need for innovation and are afraid of changes at the same time. Quite a paradox, eh? That's why we see a lot of new languages being developed and a lot of developers complaining "What? Another language? F*ck!". I think we need new languages now, the languages we going to use in 10 years from now, maybe, but we need to create and discuss them now! For the static typed ecosystem the need is even higher.
To build a production-ready web application today you need to use a broad range of technologies, such as Java/Ruby/Python/PHP, XML, Javascript/JSON, YAML, HTML, CSS (LESS/SASS...), configuration files (.properties, .conf). Looks scary but the truth is that it's never been so easy! Easy and bizarre in my opinion. We need a fresh and more concise approach.

I've been researching about this topic for a while now, and a year ago I stumbled upon the Red Hat's solution for a new static typed language: Ceylon. The project was idealized by a well-known developer in the Java ecosystem, Gavin King, the creator of Hibernate. Backed by a great team and some early community enthusiasts, as myself.


I have production applications in Java, Ruby and Python and being in both communities (Enterprise and Startup) I'm a truly believer of "there's no silver bullet". I believe that sometimes Rails/Django is a better choice, but sometimes it's not, simple as that. No matter how hard people love to discuss who have the coolest tool belt, right choices at the right contexts will always prevail in the long term.

Static languages need a fresh start to have at least a fair chance in the whole "production discussion". Ceylon is my bet for the static typed languages future (not as a Java killer).

Stay tuned for the next posts where I'll show the language features and the possible applications in a near future.

1 Response
Add your response

I'm looking forward to the next post.

over 1 year ago ·