elfs: (Default)
[personal profile] elfs
James Gosling, the "father of Java," has called on developers to stop using Emacs because his own company's IDE, Netbeans, "fits together components well" and has kept up with Moore's Law whereas Emacs has not.

As I see it, what he's saying is that one should tackle a steep learning curve and adopt a power-hungry monstrosity written in a non-cross-platform languange like Java, rather than use what used to laughingly referred to as "Eight Megs And Constantly Swapping" but has, over time, become lean, mean, and definitely user-friendly (although it's picky about who it's friends are).

And pimping a Java package is just absurd: Java, despite being less than 15 years old, already has a reputation similar to Cobol: it's a downslope language if ever there was one: you get paid big bucks to write in it because it's a boring language popular with big, faceless corporations with a lot of legacy work, not because it's an interesting and career-worthy language that excites developers. Every Java programmer I know would rather be working in something more spicy and productive like Python, Ruby, or (Gods help us all) Haskell, or getting down closer to the heavy metal and doing high-performance C/C++ stuff. Java is a hellish limbo with neither the "portable assembly" of C nor the developer productivity curve of modern languanges.

And as for IDEs, I find Emacs is simply more productive than anything else. Gosling's wrong about how "the only thing that's been added since 1984 is syntax highlighting"; he's never used the outlining, organizing, mind-mapping, revision-tracking and indexing tools. You can take Emacs out of my cold, dead hands only when you present me with something better.

Heck, my LJ entries are written with Emacs.

Date: 2008-03-04 05:49 pm (UTC)
From: [identity profile] atheorist.livejournal.com
Can you elaborate on the connotation of "Gods help us all, Haskell"?

For example, does it mean that Haskell is unusually spicy? unusually productive? Unusually obscure? A worse choice than Python or Ruby?

Bias: I know a little Haskell and Python, and they seem nice enough; I don't know any Ruby.



Date: 2008-03-04 08:28 pm (UTC)
From: [identity profile] elfs.livejournal.com
Certainly a different choice than Ruby or Python.

This all goes back to Perl, and Larry Wall's attempt to make a language that was as easy to manipulate as a shell script, as powerful as anything available in C, and as expressive as a linguist could make it.

Guido saw Perl and saw that it was... okay. But it was too big and ugly for the average human brain, and thus Guido created Python. Python fits your brain, as Pythonistas like to say. By taking "what you can do" and creating "one really good and obvious way to do it," Python cut down the cognitive overhead of debugging and maintainence, and that's a good thing.

Matz created Ruby because he wanted more expressive power, and he wanted the core of Scheme to be at the heart of it. So ruby has blocks and closures and currying and all the superpowers of Scheme, and it has a Python/Perlish look and feel. Ruby mostly fits your brain

Haskell, in my experience, forcibly makes room in your brain by shoving your cognition around until something clicks. My impression of Haskell has always been a painful one. Maybe someday I'll wrap my head around what Haskell is trying to express.

Date: 2008-03-04 06:49 pm (UTC)
From: [identity profile] fuzzyr.livejournal.com
Me, I prefer Gvim over emacs. I'm not into religious wars. I just use the tool that works best for me.

Date: 2008-03-04 08:01 pm (UTC)
From: [identity profile] sandhawke.livejournal.com
I'm totally with you on this.

One bit you left out, that makes your story even more interesting, is that Gosling was the author of a version of emacs (http://en.wikipedia.org/wiki/Gosling_Emacs) that was dominant for a little while.

Listening to the father of Java?

Date: 2008-03-04 08:45 pm (UTC)
From: [identity profile] danlyke.livejournal.com
I'm not gonna claim cause versus correlation or anything, but I've yet to find a non-trivial Java application that didn't suck in some pretty horrendous ways, so it seems like there's a big correlation between software developers who choose Java and software developers who can't actually develop software.

Date: 2008-03-04 09:23 pm (UTC)
From: [identity profile] tcepsa.livejournal.com
Disclaimer: I develop primarily in Javascript and Java and use Eclipse as my IDE.

I am confused by your comment that Java is not a cross-platform language. My understanding is that a "true" cross-platform language is one which you can write and compile a program in it and it'll run on any operating system. I don't currently know of any languages for which this is 100% true, but I was under the impression that Java was one of the languages for which it was mostly true with the exception of some edge cases. (C/C++, as a counterexample, only will run on the architecture and operating system for which it was compiled.)

Also, I've gotten the distinct impression that, while Java-The-Language might be on the way out, the JVM will be around for quite some time supporting some of the newer languages like Groovy that are coming out.

All that having been said, my major gripe with Emacs is its learning curve, which has seemed rather steep to me the couple of times that I tried to learn it--but I think that's going to be the case with any powerful editor. The main reason I ended up with Eclipse is because that's what the rest of the development team that I was on was using when I learned Java. Once you know an editor, there's no reason to switch to something that's going to take a significant amount of effort for you to learn unless 1) it can do something that your current tools can't and 2) that something will significantly improve your productivity once you've gotten past the learning hump. I.e. if Emacs is working for you and giving you all the functionality you need to be effective (and I know that for a lot of people this is absolutely true), there's no need to change to anything else.

(Mind mapping? That might actually get me to put in the effort to learn it ^_^)

Date: 2008-03-05 05:25 am (UTC)
From: [identity profile] elfs.livejournal.com
Heh. My impression has always been that C/C++ will compiler and run on more OS's than Java will, as long as the C/C++ uses libraries that are available on the architecture. But then I'm an open source bigot, and the idea that all you get is the binaries offends me the way a toaster or blender without screws offends me. (Why, yes, I have replaced components of my Ipod (http://elfs.livejournal.com/631428.html), my Palm (http://elfs.livejournal.com/696298.html), and committed major surgery (http://elfs.livejournal.com/464543.html) on my laptop.

The JVM is okay, but it's not great, and there's better support nowadays for cross-platform implementations in Perl, Python or Ruby than there is for most of Java. Java appeals to a "least common denominator" mentality. The windowing libraries are sub-par compared to QT or WX.

I haven't written in Java since I left Compuserve nine years ago. In that time, it has made lots of headway into corporations, but it doesn't have geek mindshare. And without that, it's not going to survive long.

Date: 2008-03-05 04:08 pm (UTC)
From: [identity profile] tcepsa.livejournal.com
Heh. My impression has always been that C/C++ will compiler and run on more OS's than Java will, as long as the C/C++ uses libraries that are available on the architecture.

That's probably true, but the key words there are "compile" and "available libraries for the architecture". Not everyone has the time or inclination to pull down the source, figure out the dependencies, find the libraries to resolve them, download them, compile them, tweak them as necessary for their system, and then compile the actual code that they want to run. And if it's not open source then unless the manufacturer has compiled it for your architecture, you're out of luck. I realize that that is a worst-case scenario that I provided and it's not usually that bad... but my experiences with it haven't, on the whole, been much better either. It's very possible that I simply wasn't doing something right, or I had the misfortune to be interested primarily in poorly constructed packages, but that's how it's been for me.

With Java, on the other hand, you pretty much just need the JVM. Pull down the application, run it, and away you go. Even with many of the open source projects you generally also get a compiled binary that you can just run once you've pulled it down. While many open source C projects also have precompiled binaries available, it seems that the range of architectures for which they are generally provided tends to be lower than that available to Java.

~laugh~ And I think I'm getting to the point where I really haven't done enough research to hold up my end of the discussion without blatantly saying "I have no idea whether this is actually true beyond what I've seen, but it's what I feel in my gut based on what I have experienced so far"

The general impression that I am getting is that it would probably behoove me to at least familiarize myself a little bit more with one or two of these up-and-coming languages (like Python).

But then I'm an open source bigot, and the idea that all you get is the binaries offends me the way a toaster or blender without screws offends me.

I perceive this as a different matter since it applies to projects in every language. There are lots of open-source Java projects out there, and there are lots of products written in C where all you get are the binaries.

~wry grin~ And to go off on a tangent for a moment, with Groovy you can take any Java binary and selectively override its existing methods. Of course, if it wasn't open-source to begin with then you're probably violating the license by doing so, but it does, essentially, provide a way to get inside a blender even if it doesn't have screws. (Disclaimer: I haven't personally worked with this too much and so I am not familiar enough with the caveats to say exactly how far into the blender it would let you get, but it's farther than you could probably go into a compiled C binary... and with that incredibly mixed metaphor, I'd better stop ~grin~)

Yay for servicing "non-user serviceable" parts! ~salutes you with tiny screwdriver~ ^_^

Date: 2008-03-05 01:58 am (UTC)
From: [identity profile] woggie.livejournal.com
All I had to see to know to ignore his advice was that he was somehow connected to the birthing of Cobol. :)

As for vi (or as I like to think of it, 6), I tried to learn it exactly twice. I learned my lesson and avoided it from then on. Emacs was only a little better, being primarily WYSIWYG, but the version I came in contact with demanded you memorize long and complicated text commands to do anything more substantial than basic text editing. I was happy when I discovered I could access pico from outside pine, and happier still when I discovered someone had made the pico run-alike nano and bundled it in Ubuntu.

Lately I am discovering the joys of gedit.

Microsoft Word and OpenOffice's Word Processor are more my speed, being graphical menus. The truth is, I'd much prefer Emacs if I could just avoid having to memorize all the command codes straight out of the gate.

You wouldn't happen to know of a version of Emacs like that, would you?

Date: 2008-03-05 05:15 am (UTC)
From: [identity profile] elfs.livejournal.com
No, but modern windowed versions of Emacs have menus and emulation modes, and if you're familiar with PCEdit, Brief, Crisp, Wordstar, or vi you can tell Emacs to act like one of them for the most part.

Profile

elfs: (Default)
Elf Sternberg

May 2025

S M T W T F S
    123
45678910
111213141516 17
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 10th, 2025 06:30 am
Powered by Dreamwidth Studios