It says that the the JavaScript is compiled to native code. That's not something you get from React Native today is it? Have they implemented a new native code compiler for JavaScript? I wonder what compiler technology it uses.
This is right, its more nativeish apis and webview for UI and friends. Worthy Snipe and misinformation on my part in thread.
Office 365 is being completely rewritten in JavaScript
251–260 of 459 posts
Re: Office 365 is being completely rewritten in JavaScript
#252Earlier quoted context omitted.
>it's just not a terribly good or fast one From everything I've seen, its performance sits just below Java (4x slower, perhaps) on some standard algorithms or tasks, and significantly faster than languages like Ruby, Python, etc.. I never see hate for those languages like for JS, so I'll disregard that. >not terribly good This one never has made sense. What is it missing that makes you hate it so? I think it has rath…
> What is it missing that makes you hate it so? 1. Type Safety. TypeScript helps, but until strong typing is mandatory in the language, I can't fathom using JS in any sizable project. This is also true of Python, et al. 2. A sane dependency management framework. Maven solved this problem a decade ago. Gradle is trying to fix Maven's XML mistake. But the fact is, if I need a dependency in Java, I know how to get it. A…
There are quite a large number of counter-examples to show type safety isn't especially important to the success of large projects.
I think the guarantees it provides are far too limited and weak to support large software systems. It relies on static code analysis, which doesn't mean much unless your app is a single build and runs as a single instance. That's more of a '90's style Microsoft Word type of app than what a typical large software project is today. Meanwhile the guarantees it does provide are only helpful to the extent developers can map their domain problems to the capabilities of the type system. Sometimes there is a nice natural fit, but usually the typesystem is both too weak (doesn't provide a convenient and natural way to impose the constraits of your problem domain) and too strong (imposes constraints your don't need or want, encumbering your development process).
Not to mention that when it comes to Javascript, you can opt-in to about as much static code analysis, including type-safety, as you want.
Re: Office 365 is being completely rewritten in JavaScript
#253Re: Office 365 is being completely rewritten in JavaScript
#254Atwood's Law - "Any application that can be written in JavaScript, will eventually be written in JavaScript."
Can we skip to the bit where we start re-writing software that we re-wrote in JS in other, more appropriate languages? :P
Re: Office 365 is being completely rewritten in JavaScript
#255Earlier quoted context omitted.
> because it is not a pile of trash For instance, see the `Set` implementation here " rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... and note that it doesn't even has `union` and `intersection` in the standard library. You have to copy/paste some code and place somewhere to have a minimum usable `Set` implementation. Pretty much a "pile of trash" in my opinion.
This thread is getting weird. Now we're arguing an entire language is trash because the Set type doesn't have native methods you want? Really?
Re: Office 365 is being completely rewritten in JavaScript
#256Earlier quoted context omitted.
every dynamically-typed language has "weird" behaviour around type coercion, that's simply the nature of the beast. sure wish i knew what you are talking about w/r/t "silently failing". JS has working exceptions just like 99% of widely used languages. I'm very glad that you've been omniscient enough to determine what "proper" parallel support is, though. How's that working out for you? Meanwhile, those of us using Ja…
> every dynamically-typed language has "weird" behaviour around type coercion Do they now? $ irb irb(main):001:0> "0" + 1 TypeError: no implicit conversion of Fixnum into String from (irb):1:in `+' from (irb):1 from /usr/bin/irb:11:in ` ' irb(main):002:0> ^D $ python >>> "0" + 1 Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects >>> ^D $ node > "0" + 1 '01' >…
Oh, and JavaScript is single-threaded. It's impossible to share resources in a single process.
Re: Office 365 is being completely rewritten in JavaScript
#257Earlier quoted context omitted.
> every dynamically-typed language has "weird" behaviour around type coercion Do they now? $ irb irb(main):001:0> "0" + 1 TypeError: no implicit conversion of Fixnum into String from (irb):1:in `+' from (irb):1 from /usr/bin/irb:11:in ` ' irb(main):002:0> ^D $ python >>> "0" + 1 Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects >>> ^D $ node > "0" + 1 '01' >…
I know you know this, but for the GP or anyone else: "Dynamically typed" doesn't mean "strongly typed". Python and Ruby are strongly typed, JS is weakly typed.
Re: Office 365 is being completely rewritten in JavaScript
#258Earlier quoted context omitted.
every dynamically-typed language has "weird" behaviour around type coercion, that's simply the nature of the beast. sure wish i knew what you are talking about w/r/t "silently failing". JS has working exceptions just like 99% of widely used languages. I'm very glad that you've been omniscient enough to determine what "proper" parallel support is, though. How's that working out for you? Meanwhile, those of us using Ja…
> every dynamically-typed language has "weird" behaviour around type coercion, that's simply the nature of the beast. No, that's not true at all. Dynamic languages don't necessarily have type coercion at all, much less weird behavior around it (and, conversely, statically typed languages they have coercion may have weird behavior around it; there's just no link between dynamic typing and weird coercion behavior.)
Re: Office 365 is being completely rewritten in JavaScript
#259Earlier quoted context omitted.
What makes it the better choice in this situation? C# can't run in browsers whereas Office 365 can.
Well, blazor exists now, so that's not totally true.
I think that the C# focus of .NET is a major mistake holding the platform back, especially when we have languages like F#, Scala, Swift, ReasonML and Rust these days.
Re: Office 365 is being completely rewritten in JavaScript
#260My hunch is probably there will be 2 versions maintained separately like visual studio and vs code. The version built in javascript will probably be free for personal usage, can have lesser features and probably fight for marketshare against google drive, libreoffice etc. I wouldn't be surprised if they even keep the source open. PR and market wise, this would be a great move.
However, they've announced that they're EOLing the Office version, with bug fixes through 2020 and security updates through 2025, and are continuing forward with the UWP version.
Perhaps we will see a future where they EOL the other Office applications in favor of new versions that are more similar to the iOS/Android versions. The iPad versions of Excel and Word are already pretty good.