
"Great tools are what you get when your language sucks" - fogus
http://enfranchisedmind.com/blog/posts/todays-thought/
======
jimfl
Other reasons your language might have great tools: there are lots of
talented, motivated people using it, or there is a large company with lots of
resources which has managed to find the right vision to put those resources
behind (which, I know, is uncommon, but can happen).

C# is a pretty good language with very good tool support.

Not that there are no examples to supoort the author's overbroad
generalization; Objective-C is an abomination, with awesome tool support. (for
the record, I am growing to like Obj-C, but GOSH)

~~~
mkramlich
I think Java, C# and Objective-C are the languages that most need or benefit
from IDE's.

------
Zak
I think this applies to a very specific subset of "great tools", to wit: the
code-shoveling IDE. Others have already posted examples of useful tools that
would be hard to eliminate through better languages. I'll add my own favorite:
Slime, an Emacs environment for Lisp that talks to your running program to do
things like autocompletion and displaying argument lists.

------
shasta
What types of tools are obviated by a better language?

\- Code traversal? No

\- Refactoring? Mostly, no

\- Debugging? I know some disagree, but no

\- Profiling? No

Some of these are less important in certain languages, but I think you still
want all of them in any language.

~~~
tomjen3
Maybe they can't be obviated, but almost all of them can be made so
unimportant that it doesn't matter.

For example, how often do you really need a debugger for Haskell?

~~~
shasta
Being able to inspect state is useful whenever you have state. Have you used a
good debugger for Haskell? Does one exist? Do you write complicated software
in Haskell? I'll agree that Fibonacci and factorial programs don't need a
debugger.

And speaking of Haskell, do you think tools like QuickCheck and Hoogle are
signs of language deficiencies?

------
phaylon
This leaves out a couple of use-cases. Most of the "great tools" I use help
with project development. And even if not, I'd rather argue it the other way
around: Great languages allow for great tools to be built around them.

~~~
tomjen3
Okay that I cannot agree with, unless you consider Java a great language.

~~~
kscaldef
False conclusion. Here's what you did:

1) great languages have (or can have) great tools (per parent)

2) Java has great tools (you seem to be saying implicitly)

3) Therefore, Java is a great language

See the problem?

~~~
Retric
That's suggests a vary week meaning of his orignial phrase.

"Great languages _allow_ for great tools to be built around them."

Is ambigous your version suggests he ment, "Great languages" _don't prevent_
good tools from being created. But, that's a fairly week reading. It's more
natural to read it as, language design limits the quality of tools you can
build, so only great languages can support truly great tools.

~~~
phaylon
I rather meant to say that I think the ability of language users/developers to
write powerful tools is a very important quality.

------
lawn
I've tried Haskell for a while now and I think it's a great language but it
also has some great tools with it, so I think that this is a gross
generalization.

------
Rob-Goodier
Is that a maxim for cultural evolution, also, or is this just for programmers?

