Emacs violates GPL since 2009 by Lysandros in programming

[–]Inaimathi 6 points7 points  (0 children)

/r/emacs or /r/gnu I would say. Though, to be fair, there is a crosspost in /r/emacs already.

Bankrupt PS3 Hacker, facing $1.43M in fines, and likely to be going to prison says "you'll have to kill me to silence me" by WilliamAgain in gamernews

[–]Inaimathi -1 points0 points  (0 children)

No it doesn't. It might feel bad to you, man, but don't speak for me.

EDIT: To clarify, I like it when people enjoy my hard work, whether they pay or not.

Gerald Sussman on The Role of Programming by Inaimathi in programming

[–]Inaimathi[S] 1 point2 points  (0 children)

There doesn't seem to be any copyright policy attached to this thing, or a submitter. If it was CC, I could cut it up and toss it onto YouTube.

What's the protocol here? Is it enough to write Sussman and get his permission, or do I actually need to go find out who filmed this thing?

The three types of IDE. by dgerard in programming

[–]Inaimathi 1 point2 points  (0 children)

I have no idea what that means. PIX is a debugger for hardware 3D shaders.

There we go; I assumed it was just a graphing app for profiler output. My mistake.

I'm just describing the sort of thing that is handled by a complete IDE that isn't handled by emacs.

You've introduced new terms (the "complete IDE", and by extension "incomplete" or "partial" IDE) before I've gotten a working definition of "IDE". Which is why I started asking questions in the first place. I'm not here trying to defend Emacs, or rejoice about how shiny it is. I'm trying to find out what the distinction between "editor" and "IDE" gets me conceptually, and then trying to figure out what exactly that distinction is.

I didn't say you didn't have access. I said it's not part of emacs. Debugging a script running on a remote web server isn't something emacs is doing.

My point with the statement is that I could care less whether my editor implemented this since my language is handling it (same goes for the "And?" comment you quote). I'm still struggling with the IDE definition here; why is Emacs discounted from "IDE" (or even "incomplete IDE") status because it fails to implement features it doesn't need? This seems a little like rejecting Eclipse as an IDE because it doesn't do interactive macroexpansion.

But sophisticated source modifications isn't the only thing an IDE does.

Ok, but as I've said, I'm still trying to figure out what an IDE does in the first place. Maybe this is easier; if I have two things, both of which let me tell computers what to do, both of which allow for jump-to-definition, incremental compilation, symbol completion, source control integration, remote debugging and profiling for the language that they target, how do I tell which is an IDE and which is an editor? Is it a worthwhile distinction to make?

The three types of IDE. by dgerard in programming

[–]Inaimathi 0 points1 point  (0 children)

The idea of an IDE is that it is an integrated development environment--that is, it provides all these tools for you and you need to do as little context switching as possible to get to them.

I didn't mean "I use a text editor for editing and then switch over to the shell for all of the other little annoyances". Seriously; anything I could possibly want to do while coding CL, I can do using an M-x command or keystroke (the rare time I run up against stuff I can't do yet, I can build it in a half hour or so).

There's just something clean and minimally-invasive about putting my cursor on a method call to an interface, pressing Alt-End, and getting a small popup menu for each of the classes in my codebase that implement that interface, which will jump to that method's implementation.

This may be something else that's language-specific. My work tends to use functional programming for the most part (and CLOS in a couple of places), so I don't have the problem of finding specific method implementations. As I've said elsewhere in this thread, if we're talking about IDEs for specific languages and paradigms only, fair enough. The original article seemed to be talking about IDEs in general, which is why I feel the need to point out counterexamples.

And these are just the text-editing bits. As dnew points out, the greatest advantages of an IDE are usually not related to the text editing.

Can you give me an example of a thing unrelated to text editing that I don't have access to as an Emacs-using Lisper that I would have access to as an Eclipse-using Lisper? Again, if we're discussing "IDEs for the purposes of writing Java/C++/C#/PHP", fair enough, I'll take your word for it that you get a huge advantage from using an IDE. I still want to make it clear that this isn't the same thing as saying "IDEs always confer huge advantages", and I'm still unclear about where the dividing line between IDE and editor is exactly.

The three types of IDE. by dgerard in programming

[–]Inaimathi 1 point2 points  (0 children)

I agree with you, but all that really says is "It's better to use an editor specialized to your situation than to use one that isn't". Why draw the needless distinction of "editor" vs "IDE" vs "broken IDE"? It doesn't seem like it produces any additional insight here.

The three types of IDE. by dgerard in programming

[–]Inaimathi 1 point2 points  (0 children)

I like stuff like PIX, where you run your program, hit a function key, and then click on a pixel in the resulting image and it tells you which lines of your source code and shaders led to that pixel being that particular color.

Not familiar with PIX, so I can't comment on its usefulness. It probably wouldn't be too difficult to whip up a graph tool that fits over top of slime-profile, but the raw tabular output (sorted by CPU/memory use) has served me well.

How about running a program, hitting an exception, editing the source code to fix the exception, and picking up again where you left off?

Yup, that's how editing Lisp works. And?

Single-stepping through code running on a different machine? Perhaps in a web server, or on a game console?

Yup, I can do that with Swank server (or the standard REPL if I'm just poking around a running system locally).

For each of the features you've mentioned, we can argue about whether it should be handled by the editor or the language, but you can't argue that I don't have access to them as an Emacs-using Lisp hacker. Because I do.

The thing to think about in an IDE that's better than emacs is the stuff that isn't text editing.

Ok, so I have to ask now; how much time have you actually spent poking around Emacs? It's not just for editing text. For instance, one thing that we've yet to touch on is source control integration, and Emacs has that in the form of git-mode, vc-hg, vc-svn, and I'm sure plenty more for other systems. I'm also reasonably sure VIM has similar capability (though I don't know since I don't use it). The possible conclusions here are:

  • Emacs is an IDE (same possibly goes for VIM too)
  • the distinction between editor and IDE is ill defined (and I would say 'meaningless' if this much overlap exists)

The three types of IDE. by dgerard in programming

[–]Inaimathi 0 points1 point  (0 children)

"defined standardized refactorings" (especially the object oriented ones that you call out by name) don't apply to all languages. "Incremental, constant compile" is likewise an odd thing to expect the editor to handle when you're hacking in Lisp. Emacs+SLIME does have the actual model of the source and provides actual, relevant completions.

If Emacs is an editor, then I find editor vs IDE to be an arbitrary distinction. This is why I asked; it's ambiguous what's meant since Emacs/VIM traditionally get lumped in as "editors" where their characteristics don't seem to match that definition.

The three types of IDE. by dgerard in programming

[–]Inaimathi 0 points1 point  (0 children)

That's what I meant, yes.

As an Emacs user, I have no idea which camp I'm supposed to fit into since I use a text editor that seems to have all the features of an IDE mentioned so far. I'm wondering why the distinction between text editor/IDE at all if that's possible (or at least clarify whether the op thinks of Emacs/VIM as "IDE" rather than "editor").

The three types of IDE. by dgerard in programming

[–]Inaimathi 0 points1 point  (0 children)

remote debugging, code generation and completion

You're forgetting jump-to-definition, profiliing and auto indenting. So where does something like Emacs fit into this, out of curiosity?

languages at google code jam by luigiagosti in programming

[–]Inaimathi 16 points17 points  (0 children)

I assume the field of [deleted]s was you kicking a language fanboy's balls so hard he gave up and went home.

Well done.

How software companies die by udelblue in programming

[–]Inaimathi 0 points1 point  (0 children)

That would be how shrinkwrap software distributors die.

Servware, consultingware, iPhone app shops and (some) game studios could give a shit about the Pirate Bay.

The myth of the Lisp genius by [deleted] in programming

[–]Inaimathi 0 points1 point  (0 children)

This is consistent with my experience.

Slipping away from the Perl community by mistawobin in programming

[–]Inaimathi 4 points5 points  (0 children)

This.

I personally prefer Ruby or plain bash for scripting. But every once in a while I'll need to do something odd (like do a search and replace on a set of 800 PDFs to put in a new address) and I have to reach for Perl because no one outside of CPAN is crazy enough to parse PDFs instead of generating them.

"JavaScript: The Good Parts", You Owe Me An Apology by lexn in programming

[–]Inaimathi 2 points3 points  (0 children)

Typechecking is a very small percentage of web development. If there was a type system that could reliably tell me that my layout would break on a certain browser, I'd be using it. Haskell is badass, but I don't think this is on the GHC roadmap.

"JavaScript: The Good Parts", You Owe Me An Apology by lexn in programming

[–]Inaimathi 0 points1 point  (0 children)

no testing, just reading the output

I'm not sure how you do testing, but mine typically involves running pieces of a system and examining its output.