Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Moving from static language to dynamic

Tags:

dynamic

static

There are a lot of discussions all over the internet and on SO, i.e. here and here, about static vs dynamic languages.

I'm not going to ask again about one vs another. Instead, my question is for those who moved (or at least tried to move) from static typed language to dynamic.

I'm not talking about moderate usage of JS on your web page or other scripting language embedded into statically typed software or small personal scripts. I mean moving to dynamic language as your primary general purpose language for developing production quality software in team.

Was that easy? What was the biggest advantage and the biggest challenge? Was it fun? :)

UPD: Did you find IDE support good enough? Did you find that you need less IDE support?

like image 762
Pavel Feldman Avatar asked Feb 24 '09 20:02

Pavel Feldman


1 Answers

Was that easy?

Moderately. Some Java-isms are hard habits to break. My first six months, I wrote Python with ;'s. Icky. Once I was over it, though, I haven't looked back.

What was the biggest advantage?

Moving from the "write -> compile -> build -> run -> break -> debug -> write" cycle to a "write -> run -> break -> write" cycle. It takes time to get used to immediate gratification from the Python command-line interpreter. I was soooo used to endless design and planning before attempting to write (much less compile) any code.

At first I considered the python command line to be a kind of "education-only" interface. Then reading docstrings, doctests, and user guides where the application is being typed at the >>> prompt, I started to realize that the truly great Python software boils complexity and nuance down to stuff you can type interactively.

[I wish I could design stuff that worked that cleanly.]

What was the biggest challenge?

Multiple inheritance. I use it very rarely.

Was it fun?

So far.

It's also amazingly productive. More time with user requirements and real data. Less time planning an inheritance hierarchy with proper interfaces to capture meaning and compile correctly and be extensible enough to last at least to the next revision.

like image 126
S.Lott Avatar answered Sep 21 '22 22:09

S.Lott