

Building Nuclide, a unified developer experience - tbassetto
https://code.facebook.com/posts/397706937084869/

======
gamesbrainiac
Why are so many companies hacking on atom recently? First it was MS, and now
FB? Anything special about Atom that you don't get in something like Vim or
Emacs? They're both open source, and very hackable.

~~~
superuser2
Yes, a native-feeling GUI. Emacs GUI for OSX is ugly and unpolished. Atom's
real competition is Sublime, but unlike Sublime it's open source.

~~~
magicmu
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.

~~~
xienze
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.

~~~
coldtea
> _is that it would be easier to bring Emacs /VIM up to acceptable GUI editor
> standards_

Perhaps but nobody has done it yet.

~~~
oblio
And it's not for lack of trying. The last major attempt was Sun Studio on the
90's/early 00's.

Emacs and Vim are like Lisp at this point: unicorns. Perfect, mythical
creatures everybody loves to talk about. Meanwhile oxen like Eclipse, Visual
Studio, Sublime, etc. keep chugging 90% of the world's code :)

------
mhd
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 Objective-C like all you've got is your cursor keys plus
tab.

So, yes, another IDE, yay. And if you work at FB, sure, mindshare alone is
probably worth it. But why would one give up normal mode/macros/elisp/abbrevs
etc. for that?

Now don't get me wrong, I totally understand different preferences, and if
your current editor is e.g. TextMate/Sublime or an IDE like
PhpStorm/Eclipse/Xcode, I can see it. But if you start with the premise that
vim is the One True Editor, why would _this_ be the switch reason, whereas
IDEs before didn't get you there?

No problem with another flower in the garden of editing, I just thought the
sales pitch was a bit weird.

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

~~~
LegNeato
Indeed. I guess I shouldn't quit my day job!

------
chuckcode
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 architecture for how
much their integration will survive tool churn vs composition model of
different tools.

What I'd really like to see in my next editor that seems hard to find is:

\- Ability to easily share code and screen with other developers. I know the
lone gun is typical in software development but it would be great to work with
other people seamlessly as well.

\- Working with files/shell on a remote server. All to often these days I find
myself with large data set that is hard to move so I end up using console
tools to debug the problem on the box.

~~~
callahad
I haven't used it, but [https://floobits.com](https://floobits.com) might
scratch some of that itch?

------
wpeterson
Did someone say Gavin Belson and Nucleus?

~~~
LeonM
Was the first thing that came to my mind when I saw the title :)

~~~
ddrum001
Yep, that's the first thing that came to mind for me too - not sure why they
chose to keep it.

------
_stephan
Remote development sounds very interesting. If the IDE supports this directly,
the user experience could be much better than the one you get when running an
IDE over a remote desktop connection.

------
hfourm
"Last but not least, this initial release includes our universal search tool
package. In a large, multi-language codebase like ours, finding files and
symbols quickly and efficiently is important for our engineers. Here's a
glimpse: SEARCHES INDEX.PHP"

sorry thought that was funny

------
joelthelion
You say "unified developer experience", I read "everybody will be forced to
use the same tools". Not cool.

------
emehrkay
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

~~~
derefr
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 matter.

But for _productivity_ applications, tabs are just kind of silly.

In the OSX Finder, for example, if I have two windows open, I'm likely
rearranging files between two-or-more folders—I need to see the state of both
the source and the destination. You can drag-and-drop a file onto a tab, but
you lose the visual cue as to where it's gone—it might have just ended up out
of scroll-range in the current folder, or in some other random folder. To do
the task quickly, I need to see both places: something done much better† by
the window metaphor.

† (Though not perfectly: having to rearrange the windows to get the drag-
sources and drop-targets all visible is a big hassle. Mac OS almost had
something going for a while with MDI applications having their own virtual
desktops, but they never far enough with it; if you could tell a given MDI
application to auto-arrange/snap its document windows, people might actually
start to want MDI interfaces again, rather than uberwindow "I know what's good
for you" interfaces like FTP programs or Xcode.)

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.

~~~
shioyama
> 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.

~~~
Nullabillity
Kwin has this built-in, for the record.

------
edko
Very promising. I wish there was more roadmap information. I cannot wait for
the React and React Native parts to be released!

~~~
jozan
I'm a bit disappointed because of neither React or React Native were part of
this release.

~~~
edko
I think it is more communication and management of expectations than anything
else. They opened the pre-release FB group, and not much was posted for weeks.
This first release gives no clue as to when the React part will be available
(other than "soon"). I cannot complain, or be disappointed, because they are
sharing a great product for free. A roadmap with some estimated dates would
really help keep the anxiety down :-)

------
girvo
I'm an alpha tester for Nuclide, and it's quite nice. There are a tonne of
bugs that are getting ironed out, but it's brilliant to have an editor that is
built for the stack I use: Hack, React and Flow. I use Atom as my daily editor
along with Komodo, and I'm looking forward to Nuclide replacing both!

------
davidwparker
Previous discussion (273 points, 93 comments):
[https://news.ycombinator.com/item?id=9273976](https://news.ycombinator.com/item?id=9273976)

------
applecore
ES7 expertise? I thought ES6 was just finalized a few days ago.

~~~
juanlyones
ES7 was developed concurrently with ES6. ES6 is also officially known as
ES2015 now with ES7 being referred to as ES2016. Apparently the goal is to
ship functionality to the language on an annual basis.

~~~
frik
Where do one keep up to date with the ES news? W3C mailing lists?

~~~
ascorbic
JavaScript Weekly is pretty good for that.
[http://javascriptweekly.com/](http://javascriptweekly.com/)

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

~~~
girvo
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.

------
cdnsteve
Seems that Hack now has a first class IDE available, that the authors
themselves can help contribute to, awesome.

