Tyler Gaw is a web developer who writes about JavaScript, CSS, build tooling, and small projects, including macOS apps written in JavaScript.
HN links it mainly for his post on building OS X apps in JavaScript, which commenters cite as an example of Atwood's Law.
I'd love to hear the experiences and opinions of anyone who knows about building iOS and Android apps with NativeScript and Angular 2 [1], or who has used NativeScript [2] itself, please.
NativeScript has a JavaScript<=>Java bridge on Android, and a JavaScript<=>Objective C bridge on iOS, like a cross platform version of Apple's ObjC bridge used in OS/X JavaScript for Automation [3] [4] [5] (but AFAIK Apple's ObjC bridge is apparently not available for developers to use as a framework, nor on iOS, nor of course on Android).
Unlike React Native's JavaScript engine, it runs in the UI thread, using V8 on Android and JavaScriptCore on iOS, and you can call all the platform specific APIs directly, subclass and implement Java classes and Objective C classes and protocols, call methods and functions, and pass objects back and forth, write your own plugins in TypeScript, JavaScript, Java, Objective C, etc.
[1] http://docs.nativescript.org/angular/tutorial/ng-chapter-0
[2] https://www.nativescript.org/
[3] https://developer.apple.com/library/content/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html
[4] http://tylergaw.com/articles/building-osx-apps-with-js
[5] http://developer.telerik.com/featured/javascript-os-x-automation-example/
I think this could be mitigated in some cases with better tooling. Many programming languages just make it needlessly difficult to interact with anything that's not part of their ecosystem.
Check out parcel [0], a web application bundler. It has built-in support for lots of different assets [1], with two notable inclusions being ReasonML and Rust! In this blog post [2] they highlight how easy it is to import Rust code from JavaScript.
Another neat example is Objective-C bridging on macOS [3]. The code usually doesn't end up looking very pretty, and it can be brittle at times, but with JavaScriptObjC you can interact directly with all the native APIs using JavaScript. Here's a blog post [4] showing how to write a native app on macOS using JavaScriptObjC.
[0] https://github.com/parcel-bundler/parcel
[1] https://parceljs.org/assets.html
[2] https://medium.com/@devongovett/parcel-v1-5-0-released-source-maps-webassembly-rust-and-more-3a6385e43b95
[3] https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/HowMacScriptingWorks.html#//apple_ref/doc/uid/TP40016239-CH73-SW4
[4] https://tylergaw.com/articles/building-osx-apps-with-js/
And introduced in OS X 10.10 is the ability to build an OS X app in pure JavaScript:
http://tylergaw.com/articles/building-osx-apps-with-js
(Atwood's Law in action)
You can write full OS X apps in JavaScript:
http://tylergaw.com/articles/building-osx-apps-with-js
JavaScript bridging works on iOS too!
Did "Building MacOS apps with JavaScript" ever get any traction?
http://tylergaw.com/articles/building-osx-apps-with-js