10 ms·
Building Nuclide, a unified developer experience
- applecore 11y agoES7 expertise? I thought ES6 was just finalized a few days ago.
- bolinfest 11y agoWhy gate your progress on standards committees?
- supster 11y agoNot sure, but I think it's unique to JS b/c it's built into web browsers. Therefore, all major browsers vendors need to ok major changes to the language so that there isn't a severe fragmentation in version support. I think this is achieved via the standards committee.
- juanlyones 11y agoES7 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.
- gamesbrainiac 11y agoWhy 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.
- wnevets 11y agoits basically an open source sublime and a lot of people like sublimes UI and plugins.
- deleted 11y ago[deleted]
- vbezhenar 11y agoI remember Eclipse being forked a lot by various enterprise companies. I guess that's because it had very good extensible architecture. Many developers admitted it. May be Atom is in similar position? Today's fashion shifted from Java to JavaScript and tools are following.
- mateuszf 11y agoVim and especially Emacs are also very good at providing extension points.
- Nelkins 11y agoIt's much easier to provide a cross-platform rich UI experience with Electron/Atom. It's probably also easier to leverage existing developer skill sets (HTML, JS, CSS, etc.)
- spicyj 11y agoNot quite an equal comparison: Visual Studio Code uses only the very core of Atom which allows you to package a browser-based app in a native shell (sort of like Cordova/PhoneGap). Nuclide actually uses the entire Atom editor.
- x5n1 11y ago
- davidwparker 11y agoPrevious discussion (273 points, 93 comments): https://news.ycombinator.com/item?id=9273976 https://news.ycombinator.com/item?id=9273976
- cdnsteve 11y agoSeems that Hack now has a first class IDE available, that the authors themselves can help contribute to, awesome.
- edko 11y agoVery promising. I wish there was more roadmap information. I cannot wait for the React and React Native parts to be released!
- jozan 11y agoI'm a bit disappointed because of neither React or React Native were part of this release.
- edko 11y agoI 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 :-)
- _stephan 11y agoRemote 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.
- wpeterson 11y agoDid someone say Gavin Belson and Nucleus?
- LeonM 11y agoWas the first thing that came to my mind when I saw the title :)
- ddrum001 11y agoYep, that's the first thing that came to mind for me too - not sure why they chose to keep it.
- cosmolev 11y agofailure = success
- toomim 11y agoYes! I made a graphic of it: https://dl.dropboxusercontent.com/u/1000932/nuclide-eus.png https://dl.dropboxusercontent.com/u/1000932/nuclide-eus.png
- emehrkay 11y agoStrange/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 11y agoI 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.
- emehrkay 11y agoI love OS X's exposé (app and all window). I have mine setup to be hot corners. I often drag a file to a corner and then drop it onto one of the exposé'd apps. I feel like I went back in time when I use OSes that doesn't support this functionality.
- ddrum001 11y agoThe features they include are nice, but it would be really helpful to have dependency support for languages Scala and Java like IntelliJ does.
- girvo 11y agoThe 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.
- hfourm 11y ago"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
- chuckcode 11y agoSeeing 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.
- mhd 11y agoHeh, 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 11y agoI guess that was intended as a vi-emacs joke/pun ...
- LegNeato 11y agoIndeed. I guess I shouldn't quit my day job!
- LegNeato 11y agoThat'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.
- girvo 11y agoI'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!
- deleted 11y ago[deleted]
- deleted 11y ago[deleted]
- joelthelion 11y agoYou say "unified developer experience", I read "everybody will be forced to use the same tools". Not cool.