Hacker News new | ask | show | jobs
by throwaway_ghj 3853 days ago
Are those options the state of the art?

I wouldn't use either.

Edit: added the following...

I've dabbled with both, and they suffer from the same kind of problem that all frameworks on top of dynamic languages suffer from. You essentially have to do all the checks that the compiler /should/ do for you, by using unit tests. That gets old fast. Also, on large code bases, I now prefer having real refactoring support.

I'd rather pick something on top of a compiler that is not brain dead.

If I had to do python again, I'd use pyramid or flask, and if I had to do ruby, I'd look at Sinatra.

I stand by my original statement, on the basis that both of the offered frameworks are built upon shaky ground to start with.

2 comments

Care to elaborate?
I've dabbled with both, and they suffer from the same kind of problem that all frameworks on top of dynamic languages suffer from. You essentially have to do all the checks that the compiler /should/ do for you, by using unit tests. Also, on large code bases, I now prefer having real refactoring support.

I'd rather pick something on top of a compiler that is not brain dead.

If I had to do python again, I'd use pyramid or flask, and if I had to do ruby, I'd look at Sinatra.

I stand by my original statement, on the basis that both of the offered frameworks are built upon shaky ground to start with.

This is, of course, why nobody has ever bothered developing a unit-testing framework for a statically-typed language, and why it would have been impossible for the idea of automated refactorings to have originated in a dynamically-typed language.
I didn't claim either of those things.

I'm just speaking from the practical experience I have.

It's just that in static languages, you write unit tests more around business functionality. In dynamic ones you end up writing unit tests essentially for typing and stuff like that. And, you know, you have tooling so you can actually perform the refactorings at scale across the code base. Like real tools, that the rest of your team know how to use, and your business can hire another person from the same hemisphere to work with after you've moved on.

The tooling around static languages is generally stronger. I've written very similar types of code in both Java and Python, and hands down, I've found it easier to develop and maintain in big code in Java.

I still script quick stuff up in python for personal use.

YMMV.

In dynamic ones you end up writing unit tests essentially for typing

That would be news to me.

Nice troll.