Given all the grief expressed in the post and the comments, it seems like if someone architected a really nice, developer-friendly native mobile API for any platform you would get droves of devs flocking to it.... Despite the two major players, the market seems wide open as long as they focused on the development experience like what Matz did for Ruby... Programmers are customers too! :)
I've heard a lot of praise for the Windows phone developer experience, but what really matters is the audience. Dev's flock to the audience. Even just a small pay difference will dev's to deal with the most terrible of developer experiences(ex. Sharepoint)
React Native is getting there. It's still early software with a lot of problems but it has a lot of promise. My anecdotal experience as someone learning mobile development was that React Native was a lot easier to pick up and learn than native Android development. Despite a large number of issues the developer experience has been really slick and I've been able to iterate much faster.
Give it a couple of years and I think it'll be exactly what you're asking for.
Features:
=========
* compiles to Java and Javascript
* null safety (optionality)
* Lean syntax
* Exceptions are unchecked.
* Extension functions let you add methods to classes without modifying their source code.
* Operator overloading
* No macros
* Markdown instead of HTML for your API docs
* Better Java generics.
* Delegation (forwarding methods)
* String interpolation
I initially used Kotlin for a project at work, and I would agree that it is underwhelming. Pivotal had announced official support for Kotlin with Spring Boot, which is what motivated me to give it a try. However, there was no support for the @Transactional annotation in Kotlin at the time, so I ended up writing a decent amount of Java anyways. Then there was a compatibility issue with one of our internal libraries, and I had to rewrite all of the controllers in Java. By the time the project was finished, the majority of the code was in Java, and I hadn't really gotten any benefit out of the Kotlin, so I decided to just use Lombok and replace all of the Kotlin code with Java. My builds got about 3 times faster after that because Kotlin seems to have performance issues with Gradle.
As of 1.0 Kotlin has solid Java compatibility, @Transactional definitely shouldn't be an issue. What features are compelling for you in 1.1? They are nice, but generally just a nice sugar. I don't really miss any of those. I suggest you to try it now, if you have a chance.
The @Transactional problem was fixed, I shouldn't have left that out. I had first tried to do this pretty much immediately after the 1.0 release. Async/await is cool, but it's really the idea of adding channels and coroutines that I'm a fan of. We've also generally stopped using that library that didn't work with Kotlin controllers for any new projects, so Kotlin is definitely something I look forward to using again.
It seems like a very pragmatic language, aimed at anything above "systems programming" and not suitable for high-performance (scientific) programming. Not many theoretical advancements in programming language design, if any. Too much of a hodge-podge of features. I would say this language may become interesting only if it gets enough traction from a community.
ICQ and all it's features and add-ons made IM'ing so much fun. I remember the feature where you could type and your keypresses (incl. backspace) were immediately transmitted to the other side. You could also talk to random strangers and not be scared of frontal male nudity. Of course my IRL friends (I live in the NL) only discovered IM with MSN Messenger.
Funny how ICQ was, what, 20 years early to the IM revolution?
Slack nowadays is a mixture of IRC and ICQ. It was wonderful to be able to talk for free (well, paying dialup minutes) with the 3 friends you might had online, plus that guy on the other side of the world who you met through an ICQ number on a website :_)
I finally took the time to read how unicode code points are represented in UTF-8. Wish I did this before. It explains how you can represent 2^21 ~ 2.1 million code points in 4 bytes, what happened to the other (4*8-21=11) bits, and probably why the "char" type in Rust is 4 bytes instead of 1. Enjoy.
I was thinking to put React.js in my adopt circle, but I spent a couple of days setting up the Node.js gulp-vinyl-browserify-babelify nonsense, and it really is a witch's brew of configuration hocus pocus. Its compelling to know that React is backed by Facebook, but React is simply verbose and comes with too much stuff packed into one package.
Whats the alternative? Thanks to hacker news i bookmarked vuejs.org and finally got a chance to come back to it. I made a couple of pages with vue.js, and I think there is a lot less stuff to do. There's no JSX. Your HTML peppered with vue.js directives is your templating language. There's no server side rendering, but that may be a good thing in the end. Fewer dependencies, less learning curve, less ecosystem to swallow in a single gulp. I hired a fresh grad from the Philippines, and he was able to pick it up and run with it immediately. I've only been using vuejs over Christmas, but I'm looking forward to seeing what else it can do. I'll post a small PHP-backed CRUD app if people are interested.
React can do strongly-typed views. I use Typescript, and I can build the DOM either in JSX or by nesting React.DOM.div() and friends, and the Typescript compiler will yell at me if I use an event handler/variable/etc. that does not exist in the code. Why would I go back to an opaque templating language after that?
It all depends. React as of right now is the only viable option that has decent server side rendering for 80%+ of web apps it's a must for SEO, FB integration etc. Until Angular 2.0 ships and Ember get's fastboot completed there is no other major viable option.
Doesn't that just glue them all together? We're using it at work, and we brought in an in-house React person, but I have no idea what the config does/signifies, and every time they change something, I absolutely don't understand why or how it works. (Our tests currently don't work. I mean, they can run - unless there's an error, in which case it exits early with a 0 status, without running any of the subsequent tests.)
This is partially on me - I should read the shit out of the docs - but so far it seems like it just paints over the complexity a little.
Late update: read through some of the webpack source code. As near as I can tell, it completely ignores most of the options passed to it via the CLI. (For example, --colors seems to have zero effect on anything.)
Yeah, I hate Windows and IE as much as the next techie, but Bill Gates is a great man -- period. I'm a fan. In his early days, he was just thinking business is just a game, so he was kind of ruthless in his business practices. But now that he has already made it, it's great to see his true colors and how deeply benevolent he is. I'm going to start following his blog posts on renewable energy.