Live data from Hacker News

Building Nuclide, a unified developer experience

code.facebook.com

61–70 of 77 posts

Re: Building Nuclide, a unified developer experience

#61
post #33
post #10

Earlier quoted context omitted.

I agree; with vim as well, gVim isn't much help to those who still want to use a mouse / don't know the keybindings. Atom is really the most versatile open-source GUI text editor right now IMO.

Well, I think the OP's point is that it would be easier to bring Emacs/VIM up to acceptable GUI editor standards rather than build the whole thing from scratch, as a webapp no less. But they didn't, my guess is because NIH.

If it was NIH, then why did they use the existing Atom editor?

Re: Building Nuclide, a unified developer experience

#62
post #33
post #10

Earlier quoted context omitted.

I agree; with vim as well, gVim isn't much help to those who still want to use a mouse / don't know the keybindings. Atom is really the most versatile open-source GUI text editor right now IMO.

Well, I think the OP's point is that it would be easier to bring Emacs/VIM up to acceptable GUI editor standards rather than build the whole thing from scratch, as a webapp no less. But they didn't, my guess is because NIH.

And while bringing Emacs/Vim up to acceptable GUI editor standards might be possible (MacVim does an alright job of this), I'm guessing that a lot of the head Emacs/Vim people would be against it, and wouldn't want to merge it back into mainline. That would leave FB having to maintain their fork of it, and splitting mindshare, etc. Atom doesn't need that much work, and it's easier to maintain a plugin than an entire fork.

Re: Building Nuclide, a unified developer experience

#63
post #43

Strange/random observation: it is surprising that Chrome-style tabs seem to be the default tab representation given the pushback over the past few years over skeuomorphism in digital design. This editor looks cool though. I haven't really looked at Atom, so I assume that it has good PHP/Python/Ruby support. I will try this out when it is released, I love the autocomplete

I would go further—I'm confused by the proliferation of "tabs" as a UX metaphor. Do people really think they're the best thing they can get, compared to, say, ZUI zoomable groups? They're great for browsers because the affordance fits: you have one active "browsing session", and then a bunch of inactive ones, and the inactive ones don't matter, and when you switch, you're asserting that the active one now doesn't mat…

> Then again, I'm also astounded that "tabs" aren't just a window manager feature (i.e. being able to group arbitrary windows into a single tabbed window, and noting when windows in a tab group spawn a new window and spawning it inside the tab group instead.) That would have cost too much GPU power decades ago, but it's costless with compositing window managers.

I'm trying to achieve this using i3 as window manager and a minimal browser like vimb which has no tabbing built-in. That way you can search for a browser page just like you would any other window.

Re: Building Nuclide, a unified developer experience

#64

Seeing as how this is facebook's hacked up editor I'd love to see some more social features to share with other developers. Get advice, show something cool, share a branch, etc. with teammates or even the world. I'm sure it is nice to have an editor that understands javascript better and it is nice to see that yes they have syntax checking and auto suggestion. Experience tells me the devil is in the details of the ar…

Not nirvana, but not hell either — if you use vagrant — vagrant share + tmux + vim/emacs works well for remote pairing.

Re: Building Nuclide, a unified developer experience

#65
post #43

Earlier quoted context omitted.

I would go further—I'm confused by the proliferation of "tabs" as a UX metaphor. Do people really think they're the best thing they can get, compared to, say, ZUI zoomable groups? They're great for browsers because the affordance fits: you have one active "browsing session", and then a bunch of inactive ones, and the inactive ones don't matter, and when you switch, you're asserting that the active one now doesn't mat…

ZUI zoomable groups ZUIs are far too esoteric for the average WIMP paradigm nearly all computer users are familiar with. I wouldn't count on it anymore than I would on getting an Oberon/Cedar-like programmable text window interface.

Apple has been experimenting with zoomable UI a bit recently: the Apple Watch home screen is essentially a ZUI. On the iPhone, Photos and Calendar zoom as you progress through the levels of hierarchy (though you can't zoom interactively). Safari on the Mac and iPad also lets you zoom out to see your tabs in a ZUI-ish way.

Re: Building Nuclide, a unified developer experience

#66

Seeing as how this is facebook's hacked up editor I'd love to see some more social features to share with other developers. Get advice, show something cool, share a branch, etc. with teammates or even the world. I'm sure it is nice to have an editor that understands javascript better and it is nice to see that yes they have syntax checking and auto suggestion. Experience tells me the devil is in the details of the ar…

I haven't used it, but https://floobits.com might scratch some of that itch?

Re: Building Nuclide, a unified developer experience

#67

The features they include are nice, but it would be really helpful to have dependency support for languages Scala and Java like IntelliJ does.

The neat part of being built on Atom, is that that is totally possible. There are already packages for handling the base language support for Java and Scala, linters for both of them, and through atom-ctags you can gain proper autocomplete.

Re: Building Nuclide, a unified developer experience

#68
post #51

Heh, they had "pico" in their list of editors. If one is really hellbent on using that for Hack/Obj-C in 2015, I'm not sure whether any argument is convincing enough ;) Generally I wasn't really that impressed by the demo. Sure, the integration is nice, but I don't see how that's different from most other IDEs. But what struck me as a bit odd was the presenter stating a preference for vim, and then starting to edit O…

That's me in the video (hi!).

Re: pico. You'd be surprised what editors new employees and interns use when presented with a shell prompt :-D. At FB everyone is free to use their editor of choice...we don't force Nuclide on them.

Re: what's different. Xcode does Objective-C well. IntelliJ does Java well. PHPStorm does PHP well. Tons of editors do JS well. As soon as you start mixing technologies, the IDEs quickly degrade in overall usefulness and you basically have an IDE for one tech and a dumb text editor for the other. Nuclide is opinionated and provides a nice integrated end-to-end experience if you buy into the tech it supports. If you don't use any of that tech (Hack, react, buck, react native, flow, phabricator, mercurial, etc) or only use 1 language/platform at a time (like a pure objective-c iOS app) then Nuclide basically is Atom.

Nuclide's value is super apparent with React Native. You need to be able to edit JS and Objective-C and eventually Java, and it would be nice to have all the autocomplete/click-to-symbol/code search goodies for all three. Let alone debugging all of them and jumping between the stacks. No IDE provides all the features you need for a project like React Native out of the box. So we built one (leveraging Atom of course). It is magic working on a React Native app and using the same debugging UI to step through the JS, and then the Objective-C, and then using the SAME interface to debug your Hack code on the server.

Finally, over time you'll start to see a bunch of really, really smart integration with tools and libraries like Relay and GraphQL. We already have some internally--I can "click to definition" in a GraphQL query and see where it is defined in JS, and then click through and see where it is implemented in Hack on the server. Simple symbol search can't do that and spanning multiple languages and stacks is unsupported by most IDEs. Nuclide is opinionated so we can do deep integration like that...we leave the general editor-stuff to Atom proper.

Re: clumsy demo. I actually converted from vim when we started Nuclide...I even used vim for most of my JS/Android/Hack/iOS programming. For the demo I didn't install the vi bindings because I wanted fewer things that could go wrong. Because I wasn't a huge IDE user previously you see me using the mouse a ton instead of (generally) standard IDE keyboard shortcuts.

Re: Building Nuclide, a unified developer experience

#70
post #51

Heh, they had "pico" in their list of editors. If one is really hellbent on using that for Hack/Obj-C in 2015, I'm not sure whether any argument is convincing enough ;) Generally I wasn't really that impressed by the demo. Sure, the integration is nice, but I don't see how that's different from most other IDEs. But what struck me as a bit odd was the presenter stating a preference for vim, and then starting to edit O…

I guess that was intended as a vi-emacs joke/pun ...

Indeed. I guess I shouldn't quit my day job!
Post reply on HN