About That Office 365 and JavaScript Thing

Posted on June 14, 2018 by Paul Thurrott in Dev, Microsoft, Office 365 with 29 Comments

About That Office 365 and JavaScript Thing

A Microsoft employee claimed publicly that “all of Office 365” was being “completely rewritten” in JavaScript. And then all hell broke loose.

First things first. It’s not true. So if you were freaking out that Microsoft was somehow abandoning C# and C++ for its most mission-critical offerings, freak out no more. It’s not happening.

So what is happening?

A Microsoft program manager named Sean Larkin perhaps got a little overly-exuberant on Monday, when he tweeted the following. (I’ve edited out some nonsense.)

All of Office 365 is (almost finished) being completely rewritten in this little scripting language called #JavaScript.

And Skype
And Microsoft Teams
And [Visual Studio] Code
And all of [Microsoft Edge] Debug Protocol (instead of C++)

nbd

“nbd,” for you fellow old folks, means “no big deal.” Well, sorry, Sean. This is a big deal. And you got most of that tweet completely and utterly wrong.

Without even looking at his follow-ups and clarifications, I can tell you off the top of my head that “all of Office 365” is not being “rewritten” at all, let alone in JavaScript. Most of the new apps that have been added to this service over the past several years are indeed web-based. And most likely use some combination of web technologies, which could include JavaScript. (But also TypeScript, Microsoft’s superior JavaScript-like language.)

Skype is not being rewritten in JavaScript.

Microsoft Teams is not being rewritten in JavaScript. (It’s already web-based, however, and is being evolved into a Progressive Web App.)

Visual Studio Code not being rewritten in JavaScript. It has always been Electron-based.

The Edge thing could be correct, who cares. But Edge itself is a native app and is, of course, not being rewritten in JavaScript.

Sigh.

Anyway, he tried to clarify things in follow-up tweets when his original missive exploded intro controversy. Which shouldn’t have been a surprise. And yet, somehow, it was.

“It’s always the tweet’s you’d least expect to blow up,” he noted, obliviously.

Anyway, he finally corrected himself on Reddit, blaming Twitter’s character limitations for his many factual errors.

“We are not abandoning C++, C#, or any of the other awesome languages, APIs, and toolings that we use across Microsoft,” he clarifies. “Nothing [in Office 365] is converting to ‘all/completely’ JavaScript/TypeScript.”

Stupid Twitter and its character limits. Sigh.

But seriously, facts matter. And getting something this big this wrong is inexcusable.

Join the discussion!

BECOME A THURROTT MEMBER:

Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate

Register
Comments (30)

30 responses to “About That Office 365 and JavaScript Thing”

  1. dcdevito

    "Visual Studio Code not being rewritten in JavaScript. It has always been Electron-based."

    Isn't Electron JS-based?


    And he said " API's and Services are still going to be powered by C++, C#" - so yeah not entirely rewritten but if that's all that's left then I'd say it's still a pretty big deal.


    I think there's more to this that we don't know yet, despite his back peddling

  2. Robin

    I think they should rewrite it in machine code.

  3. aThingOrTwo

    The tweet has some inaccuracies but it is still more accurate than this article.


    I take issue with these statements in particular:


    Skype is not being rewritten in JavaScript.

    TypeScript, Microsoft’s superior JavaScript-like language

    It’s already web-based, however, and is being evolved into a Progressive Web App


    Progressive Web Applications (PWAs), Electron applications or any indeed any application using a React/React Native framework - these are all inseparable from JavaScript. They cannot work with it.


    Scoring the tweet:


    Office - 0

    Many Office UI compontents are being migrated React Native for Windows - but nothing like the whole suite.

    https://github.com/Microsoft/react-native-windows


    Skype - 1

    Skype clients use ReactXP.

    https://microsoft.github.io/reactxp/

    https://www.youtube.com/watch?v=jFHuOhNAsw4


    Teams - 2

    Electron based. Most likely Typescript.


    VS Code - 3

    Electron based. Definitely Typescript as open source.

    https://github.com/Microsoft/vscode/tree/master/src


    Edge Debug Protocol - 4


    So I would mark it as a 4/5.


    Some wider context on JavaScript/TypeScript:

    From TypeScript and the Road to 2.0:


    “Our goal with TypeScript is [...] to make it the best language we can for JavaScript at scale.”

     “Aligning with ES6 allows TypeScript to become a superset of the next JavaScript”


    It is an extension not an alternative, they are indivisible and the first step to learning TypeScript is learning JavaScript. Moreover almost all modern JavaScript run in the browser is compiled or transpiled in some way. Typescript is considered part of the JavaScript ecosystem in the same way JavaScript XML (JSX) is part of the JavaScript ecosystem. In practice writing ES6/ES.Next in combination with Flow for type safety is not all that different to writing in TypeScript.


    Some wider context on Sean Thomas Larkin:

    Sean Thomas Larkin is on the webpack core team, webpack is the defacto standard for bundling web applications. He has a solid engineering background and does not need to be demoted to a call center as some are suggesting.


    • nbplopes

      In reply to aThingOrTwo:


      Absolutely.


      Only a non developer would assume that even a C# application does not make use of components built in C or C++. For instance, a lot of

      IO calls are developed either in C or C++. Developers of course call a C# function that is “linked” to a binary. The same for any paint command in a canvas. It’s pre built in the franework. So saying that anything it’s entirely built in C# it’s not correct, but one needs to be pretty anal about specifics to challenge such assertion. Most developer don’t go so low level in C# because already someone did the job form them. The same happens with Javascript/Typescript.


      One thing is for sure. These clients, some of them stand alone, don’t seam to be built using UWP tech, if not for wrapping purposes, much like UWP can wrap an x32 application.


      With the undestanding above of course MS is not abandoning C# or C++, but there is no doubt that is not using it for the UI at least of these new Office applications. Wether it’s using JavaScript/nodejs in parts of the backend we don’t really have a way to know do we?

  4. glenn8878

    How would he know? He's just a manager.

  5. nbplopes

    Some things that seamed off to me in this article.


    Electron: Build cross platform desktop apps with JavaScript, HTML, and CSS


    Electron is an open source library developed by GitHub for building cross-platform desktop applications with HTML, CSS, and JavaScript. Electron accomplishes this by combining Chromium and Node.js into a single runtime and apps can be packaged for Mac, Windows, and Linux.


    Paul, Electron its not a language.


    Visual Studio Code, the new Skype and MS Teams are indeed apps built in Javascript using Electron libraries and its packaging system. Both Visual Studio code and Skype are listed as Electron Apps, hence developed in Javascript/Typescript. MS Teams is not listed, but check down bellow.


    Typescript its a language made by MS and built on top of Javascript. In fact its superset of Javascript. Its an extension to Javascript adding new constructs, that in turn its translated to standard javascript at compile time. One can say that Javascript its a subset of Typescript. One cannot write Typescript without writing Javascript, yet one can write the later without writing the former.


    Stackbliz (https://stackblitz.com) its an online IDE built using the open sourced visual Visual Studio Code! They decoupled the Visual Studio Code from electron API's and made it run as a Single Page Web Application. Interesting read here: https://medium.com/@ericsimons/stackblitz-online-vs-code-ide-for-angular-react-7d09348497f4


    So how come he got the all tweet wrong? If you know the stuff, he is being pretty accurate in the examples given. Yes a stretch from this examples to come out that with the idea that Office 365 is being completely rewritten in Javascript - thinking about its core apps such as Word, Powerpoint and Excel, but who knows what coming as this technology matures and matures ....


    For instance, from a technical stand point there is no reason why Outlook Desktop cannot be built using Javascript/Typescript right now! The problem might be COM for embedding objects used currently by Outlook Desktop to interior with other applications, such as MS Word and Powerpoint! But there is already equivelent tech in the Web world called Web Components (elements). So things are progressing at an incredible pace!!!!!


    In essence, PWAs might one day totally replace Electron!!!!!!!!!! In instances, Electron its like PWA advanced :)


    You know that you can run javascript outside a web browser don't you? For instance, I have plenty of scripts in javascript that run from the command line using nodejs. You can even do Azure functions in javascript for instance, and much more ... welcome.


    You are excused :) And yes, MS seams to be abandoning UWP in a lot of its efforts! Its weird they are not pushing the alternatives they are using in Build. But the developers in the field following this stuff closely see what is happening.


    Cheers.


    Some interesting info on MS Teams: https://blog.thoughtstuff.co.uk/2017/04/under-the-hood-of-the-microsoft-teams-desktop-application/


  6. Eric Rasmussen

    JavaScript is a great language to teach early CS students. The idea of being able to write something and get immediate feedback is really helpful when you're learning. Plus, there's no setup; if you have a browser then you have the runtime and the debugger. I taught my kids how to program simple little things in JavaScript to show them how programming works.


    With WebAssembly finally becoming real, I am looking forward to using things like C# and F# directly in the browser, running compiled and optimized code. I know that Microsoft is using web technologies for Office Online, but I'd be surprised if they didn't at least have _someone_ investigating something like Blazor for the desktop products. It is Microsoft, though...


    These days, Microsoft seems to do the opposite of what I would expect and they tend to jump off of their own tools and platforms regularly. Instead of fixing the issues with WPF and pushing to make it cross platform, they abandoned it. Instead of fixing UWP and pushing to make it actually "universal", they are apparently abandoning it for PWA.


    Oh, and I'm sure a lot of you have seen the recent pop up for updates on Windows 10. Windows is no longer an operating system, it's a service. "What are you running?" "Windows Service v10." Sigh.

  7. lvthunder

    If you read his clarifications he meant just the UI was being done in Javascript. Much like how they want you to write Office Add-Ons. If you do that then your add-on would work everywhere (Windows, Mac, Web, and Mobile). I think eventually they are going to remove VBA from Office and have everyone use Javascript. That's why they showed writing custom Excel formulas in Javascript instead of VBA.

  8. Trickyd

    Its like Dilbert's pointy eared boss days all over again , a little knowledge is a dangerous thing where managers are concerned!

  9. Boris Zakharin

    Wait, so what *are* they doing?

  10. yaddamaster

    I don't wish ill for people but seriously - Sean Larkin needs to be relieved of his job duties and demoted to the call center.


    Could you imagine being an engineer at Microsoft having to report to this guy?

  11. pderosa

    Microsoft sometimes says important stuff in random tweets and buried forum posts. That's part of why I took this nonsense seriously when I first saw it.


    I still don't know what to think of it. I wonder if polaris and cshell will ever turn into consumer products.

  12. curtisspendlove

    I’m a bit confused then. I get that the “rewritten” part is inaccurate, but most of those apps are written in tech that in inherently JavaScript driven, running in “client” or “server” versions of a JS runtime.


    I know Code is Electron based.


    I thought the newer Skype was Electron based.


    I’ve not used teams, but I trust Paul... so that one is currently web based and is being rewritten as a web app. So that one is, indeed being rewritten in JavaScript.


    I agree about Edge...who cares. I like Edge, but writing a browser in JavaScript is just silly talk.


    I could see Office 365 written in JavaScript. The online office offering is quite good. Current JavaScript tech is quite powerful, I’d be impressed, but not surprised if MS could pull it off.

  13. maethorechannen

    Skype is not being rewritten in JavaScript.


    They're just (allegedly) dumping the UWP and switching to the PWA for all platforms. I think that counts as a rewrite.


    But seriously, facts matter. And getting something this big this wrong is inexcusable.


    I'm not so sure in this case. It was a reply to someone saying that scripting languages are a poor choice as a first language for CS students. Two people being idiots on twitter should not be this big a deal, especially when it comes to things that really don't matter.

  14. TheJoeFin

    TypeScript is Microsoft's tool for making JavaScript strongly typed. It transpiles to JavaScript. React is also a library/language which transpiles to JavaScript.


    Electron is a platform which enables devs to bring their webapps to self-contained applications. It works with Node.js on the backend and Chromium on the frontend. VS Code is written in TypeScript and runs on Electron.


    We live in a strange new world where JavaScript is more of a compile target and less of a language.

  15. dontbe evil

    you cannot blame character limit, you literally wrote something totally misleading

    • nbplopes

      In reply to dontbe_evil:


      Well he actually wrote something that it’s not misleading in anyway. He went on to Redit for specifics because you know, the legion mindset was not on par.


      Nothing he wrote on Redit contradits his more general piece of info. Somehow some people feel more appeased with his more specific explanation when they should not if they did not understand it in the first round.


      Basically, yes JavaScript and it’s superset Typescript was the language of choice for the new apps and its creeping up in other stuff all around when it comes to cross platform applications. Simply put, neither C# or C++ where fit for the purpose, understandably. Xamarin platform and UWP in general would not do it either since it does not support the development of web clients.


      Its about using the best tech all around for the job at a point in time. Not necessarily the best language in abstract.

Leave a Reply