News for hackers. Stuff that matters.
Re:Unix as IDE by skrebbel on Wednesday February 15, 2012 @09:08AM (#3594248)
If UNIX gets language-aware tools that allow me to search-replace methods of a particular name (and not other identifiers with the same name), and if Vim gets autocomplete* that understands which packages/libraries/headers/assemblies I'm importing, then I'll seriously consider moving to UNIX as an IDE.

Until then, I fully agree with you.

* To be ahead of the haters: autocomplete isn't a trick for avoiding having to type some extra characters. It's a way for exploring an API you're only vaguely familiar with. I guess you need to be at least somewhat familiar with statically typed languages in a decent IDE to really appreciate what this can do to your productivity. I seldom need to refer to the API docs of libraries I use.

Re:Unix as IDE by tikhonj on Wednesday February 15, 2012 @01:06PM (#3595312)
The thing is that UNIX already has those tools--they just naturally depend on language. So, for example, Emacs has js2-mode and js2-refactor which are about as good as you can expect for JavaScript. There are also similarly capable modes for Lisp.

There are also editor-independent tools like Ensime for Scala which is basically a server that provides IDE-like tools that can be used from Emacs or Vim. Scion provides something similar for Haskell.

There are also things like CEDET for C/C++ which add very IDE-like capability to Emacs. In fact, CEDET is basically just a framework for parsing languages and using that information for things like auto-complete.

Of course, there are some languages conspicuously missing--Java and C# for example. I tried using JDEE for Java a while back and it was really bad; I've never used C# but I don't think it's well-supported either. Ironically, these are two of the languages that need an IDE the most in my experience. (And the language that needs it least--Haskell--has some support.)

So if you're doing serious Java/C# development, then you have a valid point. If you're using another language, chances are that Emacs or maybe several editors can actually support it intelligently. (Also, maybe there are options for C#/Java that I am not aware of. If so, I would appreciate being enlightened.)

Re:Unix as IDE by skrebbel on Wednesday February 15, 2012 @02:19PM (#3595614)
Emacs != UNIX. The OP talks about awk, sed, etc.

Emacs, IMHO, is much closer to Visual Studio than to bash+vim.

Re:Unix as IDE by tikhonj on Wednesday February 15, 2012 @04:10PM (#3596064)
I figure Emacs ⊂ Unix :)

Besides, some of the tools I listed (e.g. Scion and Ensime) are not part of Emacs but rather stand-alone IDE daemons.

Re:Unix as IDE by gizzlon on Wednesday February 15, 2012 @10:03AM (#3594439)
Get what your saying about autocomplete, but the "avoid having to type extra characters" kind of autocomplete is very useful as well. I use it to complete things like long variable names and English text. Its main strength is that you can use it to autocomplete everything, not just the stuff your IDE is aware of.
Re:Unix as IDE by bermanoid on Wednesday February 15, 2012 @11:15AM (#3594781)
If you set things up correctly, you can even get most IDEs to automatically fill in method signatures by making guesses based on what's currently in scope. This can save a lot of typing when it works, and even when it doesn't, it doesn't usually waste any keystrokes.
Re:Unix as IDE by gizzlon on Thursday February 16, 2012 @03:17AM (#3597852)
Absolutely, but can it complete column names in your database table? Or Redis commands? Or long hard-to-spell English words and sentences? :)

Vim will autocomplete based on whatever you have in the buffers. So when writing sql I sometimes open up a new buffer and paste the output of desc table.

Re:Unix as IDE by johncoltrane on Wednesday February 15, 2012 @04:30PM (#3596167)
Is someone begging you to drop your IDE for the UNIX toolchain?

IDEs have their use, Vim and Emacs have their uses, too. I'm perfectly satisfied by Vim (with omnicomplete and tags) for my JavaScript/HTML/CSS coding but I have to turn to Eclipse for AS3.

The "right" tool for the job.

Re:Unix as IDE by vog on Wednesday February 15, 2012 @09:11AM (#3594257)
Autocomplete is not tied to statically types languages. For instance, in the Python command line prompt you have autocomplete directly on the live objects.
Re:Unix as IDE by skrebbel on Wednesday February 15, 2012 @09:19AM (#3594287)
Smart! But will it work without actually running the code? Will you be sure that the method which is available on the object now is available on each object passed to the method you're writing?
Re:Unix as IDE by WayneDB on Wednesday February 15, 2012 @09:31AM (#3594323)
Visual Studio autocompletes Javascript by executing the Javascript and using stub objects for anything that they don't actually want to run (e.g. window, XmlHttpRequest, etc).
Re:Unix as IDE by ori_b on Wednesday February 15, 2012 @01:11PM (#3595337)
That sounds incredibly baroque, complicated, and fragile.
Re:Unix as IDE by windsurfer on Wednesday February 15, 2012 @01:35PM (#3595442)
Sure it is, but so what? Would statically analyzing the code really get you any further?
Re:Unix as IDE by ori_b on Wednesday February 15, 2012 @04:55PM (#3596288)
Type inference would get you quite a way. Using a language that allows effective tooling would get you even farther.
Re:Unix as IDE by WayneDB on Thursday February 16, 2012 @11:40AM (#3599429)
Replacing Javascript with a better language has not been possible thus far. There have been many attempts, but getting every browser maker to agree on something is like herding cats.

So, when life gives you lemons, you make lemonade. We're stuck with Javascript. Personally, I think running the code while you're developing it is a brilliant way of dealing with the problem of how to do proper autocomplete on a dynamic language.

Re:Unix as IDE by aaronblohowiak on Wednesday February 15, 2012 @02:29PM (#3595657)
.. in other words, javascript
Re:Unix as IDE by pdhborges on Wednesday February 15, 2012 @09:21AM (#3594289)
That kind of auto completion is very easy to do. The problem is when you have references whose creation site you can't trace statically.
Re:Unix as IDE by bermanoid on Wednesday February 15, 2012 @10:57AM (#3594693)
To be fair, it's also probably a 90/10 situation. And whether or not it's easy to do, it's somewhat rare to see in the tools that most people use for non-static languages.

Even in Java and C#, arguably the best languages re: deep IDE integration, there are edge cases where the IDE can't know everything (reflection, for instance), but it still does the trick most of the time.

Re:Unix as IDE by Figs on Wednesday February 15, 2012 @01:35PM (#3595440)
You can get some of that functionality out of ctags. I mostly use it for the navigational aspect, but I've seen it used for autocomplete too.
Re:Unix as IDE by captobvious on Wednesday February 15, 2012 @02:59PM (#3595776)
IDE's: When things feel only vaguely familiar, and you know just enough to be dangerous.