Hacker News new | comments | show | ask | jobs | submit login

You'll notice that it's always bloatiest languages that have the most powerful IDEs. Look at Java/Eclipse. Now back to Ruby/TextMate. Most of the Haskell/Lisp developers I know just use Vi or Notepad.

The problem is, C is a language where = vs == is actually something you have to think about. It's natural that IDEs arise to address this.

XCode is fixing what is really a problem at the language level. So it's the wrong place to fix the problem. At the same time, trying to fix the problem at the programmer level (by forcing programmers to check = vs ==) is equally the wrong place to fix it.

It's a language issue, and that's the place it really should be addressed. But it will never be addressed there, because it would break backwards compatibility since decades.

"Most of the Haskell/Lisp developers I know just use Vi or Notepad."

Uhh, what? In Lisp's case, most people use emacs and coding Lisp in Notepad is mostly IMPOSSIBLE because trying to balance parentheses and navigate and indent s-expressions manually (and correctly) is idiotic.

In Python you can't have "if x = 3:" ... that's a syntax error. And Python also uses "==" for equality comparison.

There, problem solved.

I would solve the problem in Obj-C by introducing a directive on the file-level for the newer syntax, like how they did it in F# with the "#light" directive. And when a file is compiled with that directive, the compiler could trigger compile-time errors for those obviously dangerous constructs.

I'd like to provide a counter-example here: Ruby allows this construct, enabling me to write

x = Post.first ? do_foo(x) : do_bar # does the assignment, then evaluates the result

A nice shorthand in my opinion, so the python way isn't a cure-all :)

I think you mean this

(x = Post.first) ? do_foo(x) : do_bar

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact