
Office 365 is being completely rewritten in JavaScript - mhoad
https://twitter.com/thelarkinn/status/1006746626617008128?s=21
======
chandmk
As a side note, Microsoft login echo system sucks big time in the context of
office. You have no idea which URL to use to login to office 365. Between
login/logout/timeout/other office apps/personal accounts/business
accounts/forgot password workflows browser redirects to various URLs at least
a dozen times. And you keep seeing new URLs I am wondering how less tech savvy
people are coping with their authentication workflow.

Depending on how you are authenticating you will see URLs with various words
in them.

loginlive office.com outlook.office.com office365 outlook.com account.live
products.office.com login.microsoftonline.com

and this list goes on and on... I am wondering if they made an announcement
that they are fixing their messy authentication workflow instead spending
resources in rewriting office in JavaScript, that would have gotten this much
attention on hacker news.

~~~
privacypoller
When you have multiple accounts it's even worse - especially if you've got a
work account with domain authentication, a private one with 2-factor, a sub-
account email under another...

I'm usually pretty savvy about typing information into a rando web form, but
with windows logins it's a major chore to figure out what exactly I'm looking
at.

I hope they staff up to meet the 18-month rewrite cycle for modern JS apps.
I'll stick with my 2003 version on the desktop for now.

~~~
amorphid
This reality bit me when my Skype account was rolled into Microsoft's
Live/Outlook/something system. Both accounts had the same email address, and
suddenly my Skype account was no longer accessible. I finally figured out how
to delete the non-Skype account, but it was a major pain and I had to wait 60
days for it to finally go away.

------
thelarkinn
Hi there, original tweeter here. Just to clarify: no one said when this work
would land, simply that we are working on it! Sorry to disappoint XD, but I
guess blame the OP.

~~~
dentemple
Does this mean that VBA will finally die?

Please tell me that VBA will finally die.

~~~
leeter
As much as I can imagine MS would love to kill VBA it would be a major loss of
business if they did. Oil and Gas lives in the stuff and would probably even
sue MS if VBA died. That said could it be getting a much needed fixup...
probably. I suspect the same is true of COM plugins.

~~~
LarryDarrell
I rewrote a 3000 line VBA function into C# earlier this year for a Oil/Gas
company. It was surprisingly easy. Sometimes tedious, but easy. It runs
faster, it's easier to maintain and now they can slap whatever front-end they
want on it.

Is it money, fear or gatekeeping that keeps these VBA programs untouchable?

~~~
HeyLaughingBoy
Probably all three.

I used to be in the Medical Devices field. A couple years ago, I was told to
add a feature to a massive VBA app hosted in Excel that we (S/W development)
inherited from another department. It was hands down the worst code I have
ever seen. _Everything_ was a global variable. I flat out told my boss that it
barely worked, didn't come close to meeting the weakest of our development
standards, and since it was used to disposition product (determine whether or
not it was acceptable to be used on Patients) it was an FDA audit nightmare
waiting to happen. I added the features, but made some pretty unpleasant
commit comments since I didn't want to have my fingerprints all over it.

In all fairness, it was originally developed by a scientist with no SW dev
training (I knew him well) for his own use, and just grew over the years as he
was told to add more features to it. I have no idea how a company with that
level of process strictness ever allowed this fiasco to happen.

[rant over]

I estimated the rewrite at 6-12 months. It was really not a very complex
program and since we already had the Validation tests written and documented,
we at least knew what tests its replacement would need to pass. The problem
was all the stuff that we knew it was doing that wasn't in any of the tests.
That would have been the majority of time spent to replace it.

Since I left, I heard ownership of it was transferred to Corporate IT and they
were making it into a web app to run on their intranet. Heaven help those
guys.

~~~
antpls
> Since I left, I heard ownership of it was transferred to Corporate IT and
> they were making it into a web app to run on their intranet. Heaven help
> those guys.

At my last job, I developed automated processes. Some software companies sell
tools to automate clicks and keypresses. The idea is then to reuse that Excel
macro no one understands inside a VM on a server, and adding a friendly
webservice on top of it. Users of the web services don't know an actual screen
is running and and an Excel file is being clicked for them.

------
chengmau
I know the architecture too good, more than I need as I was leaving MS
recently. This tweet is not likely to happen. Talking about desktop apps, this
doesn't make any sense. Office apps have millions of lines in code and many
years of lost knowledge between the classes. Just too many screens, checkboxes
and features. A complete bloatware. Buy MS doesn't take any feature off the
app- if you have 1B users, most likely that any minor feature cut will hurt
some of them, hundred of thousand of them, and they are probably paying, not
free riders. Any new office version only hides features, letting this small
users group to get them back, never deleting lines of code. MS doesn't want to
get billions fined as happend when they moved to docx/pptx/xlsx and didn't
support backwards.

Talking about the online versions of office, it is a mess. For Word and PPT
they tried to replicate the desktop to the web, rewriting the code, so their
current online versions are already using (mostly) new code dedicated for the
web. Saying that, they also have a huge number of legacy components and
features that they need to support for backward compatibility.So for word and
ppt this is a mix in code, not a total re-write. They also have a substantial
subset of the features that appear only in their older desktop brothers. Even
the PMs don't dare to dream on features parity between the versions.

Excel is a different world and a big-big elephant that won't likely be
rewritten any years soon. Think of a code that is maintained over 30 years.
Literally, developers are still maintaining code written in the 90s. Trying to
bring Excel to the online world made MS create an architecture of html
frontend which communicates with a dll session behind the scenes. As weird as
it sounds, this dll lives as long as the browser has the spreadsheet opened.
Think of it as MS raising VM for every excel file that is opened over the
internet. While this is not very cost effective (saying the least) and not
very performance friendly (hey ma! I made an understatement) this allowed them
to move forward with Excel online very quickly by having a UI communicating
with the bloatware dll that runs on the background in Azure. Summarizing
Excel, it probably won't also be rewritten in js.

So this PM might be talking about the new apps - Teams or flow or something
similar. Not the office cash cows. Personally I really hope he is talking
about Skype which became a total garbage in the past versions.

 __ __Anyone from Google here? I 'm looking for a job :-) ping me (chengmau)
in the blind app

~~~
AnIdiotOnTheNet
The way I see it, even saying that this is the goal is bad news. It's
basically an official admission that Microsoft intends to abandon the Desktop
OS entirely. Windows 10's bullshit isn't just some bump in the road that would
eventually be recognized as the bad idea that it is, it's a deliberate move to
push people off of Windows Desktop and on to Windows tablets, smartphones, and
a desktop web kiosk. Windows as a personal computing Desktop OS would be
completely dead, and given the state of the alternatives that means that
personal computing desktops are also dead. Everything will be a web kiosk or a
console.

It's pretty much exactly the scenario of my nightmares.

~~~
wtetzner
> Windows as a personal computing Desktop OS would be completely dead, and
> given the state of the alternatives that means that personal computing
> desktops are also dead.

Maybe, or maybe it would open up an opportunity for more competition. Who
knows? Maybe the year of the Linux desktop is still coming :)

~~~
AnIdiotOnTheNet
Sure, if a comet takes out pretty much the entirety of the current Linux
Desktop community at OverengineeringCon 2020 or something and some reasonable
people take it over.

------
morrbo
Why not C#? Seems a bit of a missed opportunity to feed some of the APIs
undoubtedly created for this into the new .net core stuff. I guess i'll just
keep dreaming of the day when i can reliably convert a docx into a pdf without
using office interop.

~~~
artmageddon
Reading this thread, with all the Javascript talk, makes me feel like I should
be scared of continuing to be a C# developer..

~~~
contextfree
Office client never used .net or C# to begin with

~~~
cm2187
Actually at one point they went very close to replace VBA with .net. It was
called VSTA and meant to be a mini visual studio in office apps. I believe one
of the office apps shipped with it in Office 2007, then they killed it.

~~~
jkaptur
VSTO, right?

~~~
cm2187
Nope. VSTO actually shipped and is used to create office addins. VSTA was an
embedded IDE.

------
shrumm
Surprised they didn’t opt for Typescript. Then again, it’s a tweet - looking
forward to a longer blog post with technical details when they’re willing to
talk about it more.

~~~
sebazzz
Javascript can still mean that Typescript is used.

~~~
Sammi
I'm willing to bet money that MS is actually using Typescript for almost all
their Javascript.

~~~
hellofunk
I accept that bet! Let's discuss offline.

------
rbinv
Office for Windows (WIN32) will be an Electron app? I have no words.

edit, since there seems to be some confusion: I am explicitly talking about
the WIN32 variant, which he confirmed to be based on Electron.

~~~
vesak

        "No they are not electron apps. They are compiled to native code.
        
        It's now finally one toolchain(#webpack)
        It's one codebase and it compiles to:
        
        Web
        Android
        IOS
        MacOS
        UWP
        WIN32 (only one that uses electron)
        7:52 AM · Jun 13, 2018"
    

[https://mobile.twitter.com/TheLarkInn/status/100676113439583...](https://mobile.twitter.com/TheLarkInn/status/1006761134395834368)

~~~
awinder
comment seems to be saying -- in modern windows (UWP) it'll be using native
code, but microsoft is taking the easy path on win32. i guess some people are
surprised that despite years of telling people that win32 is going away
microsoft is finally making good. but I am not, I'm more excited than anything
at another good sign that Microsoft is finally done with legacy windows.

~~~
wvenable
> Microsoft is finally done with legacy windows.

It's kind of sad; all the good stuff I use is basically legacy Windows. None
of what Microsoft has done since Windows 7 has appealed to me.

~~~
AnIdiotOnTheNet
Yeah, it's all been less functional and slower. That's the future of computing
now.

------
pandasun
I wonder how often NoScript maintainers just feel like throwing in the towel.

~~~
TeMPOraL
I often wish we could just fork off the modern web and redo things the right
way.

~~~
evv
If you figure out how to build a cross-platform application distribution
mechanism that is better than the modern web, please do let us know!

~~~
TeMPOraL
I sure will.

The challenge here is social. The Web has fist-mover advantage. Also, I fear
that doing it the right way would be equivalent to forcing standardization on
a single operating system (or a family of systems).

~~~
Waterluvian
"Doing it the right way" is a fictitious concept in software development.

You will have built a beautiful language/Web for today's needs, 10 years too
late. And as the needs mutate you'll try to mutate with it, and that's how we
get JavaScript.

------
ksec
One Day Microsoft made VSCode and everyone loves them.

The Second day Microsoft decide to buy GitHub and everyone were flocking off
to Gitlab, everyone hates them.

Now they are moving to the biblical end of computing era by making every
Javascript.

May be they will even Open Source the Windows Kernel some day.

~~~
random42_
_Now they are moving to the biblical end of computing era by making every
Javascript._ Does that means the apocalypse is upon us?

~~~
TeMPOraL
It's already here.

[https://www.npmjs.com/package/armageddon](https://www.npmjs.com/package/armageddon)

------
amiga-workbench
Are they trying to give hardware sales a nudge by writing everything as
inefficiently as possible?

------
danso
The tweet that the OP is quoting/responding to is interesting:

[https://mobile.twitter.com/jdgarciauc3m/status/1005768121230...](https://mobile.twitter.com/jdgarciauc3m/status/1005768121230163969)

> _Tip of the day._

> _Scripting languages as first programming language for CS bachelors are
> WRONG. You are not able to write an OS, a DBMS, or even an Office suite with
> an scripting language._

I honestly thought this was a satire tweet. I guess I just don't associate
even a CS bachelor's degree with writing that kind of software. I mean, it
_can_ , but there are more theoretical tracks that don't involve writing a
OS/DBMS.

~~~
arghwhat
I very much agree that this is a broken line of argumentation.

However, I find the opinion to be correct: Scripting languages might not be a
good first programming language for a CS bachelor, where priority is deep
learning of programming. I'd also argue that JavaScript would be a bad
candidate, as it is a very "unclean" language, being a poor way to teach
language/compiler theory.

As a first _practical_ programming language for a non-CS bachelor, scripting
languages are fine. Without CS courses to support you, other approaches might
be too difficult, while scripting languages often let you get (terrible)
programs up and running (ish) while ignoring basically all CS aspects during
the learning phase (only while you're not making anything big, though—the
"high level" illusion breaks down fast as things grow).

(Also, yes, you can write a DBMS or an Office suite in a scripting language. I
can't possibly comprehend _why_ you'd want to do something like that, but it's
very much possible. Bringing OS's into things is cheating, as most compiled
languages can't be used there either, and those that work often only work with
a subset of the full language.)

~~~
geofft
You can't deeply learn programming in a language like assembly or even C. You
don't have enough expressiveness to tackle large-scale problems (like office
suites or DBs!) within the scope of what one person can work on in one
semester; you'd be spending your time thinking about how to implement a hash
table instead of how to _use_ one.

One of the nice things about so-called scripting languages is the breadth of
library support. If you want to put together a GUI that displays some word-
wrapped text, you can do that within the first hour of using the language, if
you have some homework instructions you're following. At that point you can
think about the interesting parts of writing a word processor, and not just
how to put a window on screen (which tends to be more about docs and APIs and
not about actual computer science). Also, importantly, at that point you've
_successfully done something_ , which is pretty important for the learning
process.

------
DougN7
Ugggh :( I miss my old Outlook 2013. Outlook 2016 is so slow it can’t keep up
wirh my typing. I thought it already was javascript. Guess it will be even
slower still. Super! (not)

~~~
wilsonnb2
If I'm typing a sentence that I am very familiar with, I can get up to 95 WPM
and Outlook 2016 has no problems keeping up.

Perhaps it's your computer and not Outlook.

~~~
AnIdiotOnTheNet
A Commodore 64 can keep up with even the best human typists. How is it even
remotely acceptable that any application running on a GHz+ multicore CPU
can't?

------
candiodari
Let's all have a minute silence for all those software developers at
Microsoft. Much evil has been inflicted on them in the past, ... and now this.

------
majidazimi
Time to apply for a 20M dollar loan to buy a semi supercomputer in order to
run skype, slack and office all together. Any remarks on cray supercomputers?

~~~
setquk
Err yeah, get your three phase power fitted now :)

------
zihotki
I wonder, is it actually JS or they are using TypeScript? VSCode is written in
TypeScript but it was mentioned there that it's JS, did somebody mixed things
up?

~~~
fhrow4484
Yeah, we can verify the validity of the statement since most of these project
are open source. It's all Typescript, not JavaScript. according to the OP:

>> Those are one in the same thing (compiled) :-). But us TypeScript in
majority at Microsoft in almost all the projects I've seen or been apart of.

Using the same logic, could we say that all windows is written in assembly ?
When looking at JavaScript output of a Typescript program, it does really look
like JavaScript is treated as assembly.

One almost never edits the JavaScript code when using Typescript, especially
if the mapped ts files are available when debugging in F12.

------
cm2187
Excel is already a dog in term of realculating large spreadsheets. I think we
will need Intel's 28 cores at 5GHz monster!

~~~
ekianjo
If you use Excel for large spreadsheets you are probably not using the right
tool.

~~~
bitL
Pandas is slow. Hadoop is slow. Spark is slow. R is slow. What else is there?

~~~
ekianjo
R is miles faster than Excel on large data tables.

------
emodendroket
Oh, just what Office needed: a rewrite that will almost certainly not even
approach feature parity

~~~
wilsonnb2
Actually, I think the opposite is true. Instead of seeing new desktop versions
without feature parity, we will finally see the iOS/Android/MacOS/Web versions
of the Office Suite get feature parity with the Win32 versions because they
will all be built from the same codebase.

I know that it's common for rewrites to not approach feature parity, but I
think Microsoft is aware of how much people rely on Excel and Word and will
make feature parity a high priority because of that.

~~~
emodendroket
I find it hard to believe they will ever duplicate all the edge cases. I mean
in some cases it's literally impossible because IIRC VBA can actually hook
into Win32 functions (I mean I guess you might argue that feature is a bad
idea)

~~~
oceanswave
If VBA can hook into WIN32 functions, why do you think a VBA
parser/interpreter written in JavaScript using a native module that exposes
the same WIN32 functions couldn’t do the same

~~~
emodendroket
I suppose that's true; I just imagined it was going to be sandboxed to be
browser-compatible.

------
chrisseaton
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.

~~~
tluyben2
I was wondering that after reading more of the tweets; React native doesn’t
compile the JS to native, so not sure what they are using to do all of that?
Bit worried about the far superior languages C# and F# if they are not even
dogfooding anymore.

~~~
sebazzz
It is not a question of dogfooding, it is a question of re-use. Office also
needs to run in the web browser (Sharepoint, OneDrive)

~~~
solarkraft
But C# can run on WebAssembly!

~~~
jhall1468
Which is fine if you don't need your app to run in IE. They probably do.

------
dvfjsdhgfv
I'll wait until it's done, released, and I have the opportunity to actually
use it. Skype is already much worse than the original, so I really hope they
don't go this way. I'm definitely not going to buy a 32GB notebook just to be
able to use the most recent version of MS Office. (32 GB is nice BTW but a
huge battery drain.)

------
cmjqol
Most of the comments seems to say "it's a bad idea" , keep in mind Microsoft
is now using React very intensively for most of their projects as well as
angular (VSCode , Windows Server etc... )

Meaning it's not the language the real issue , it's what you do with it.

Also Junior at school are less and less trained with Java and C# but straight
up with JS or PHP , so it will be much easier to integrate juniors on this re-
written version of office rather the pile of legacy C++ / COM / C# bridges
mess they have right now.

~~~
walshemj
Mail is one of the key parts of the internet no offence you don't want someone
straight out some boot camp of dubious provenance having any input into what
language or the spec of a MUA or MTA.

Any new developers on this need to have experience working with email
standards and a good knowledge of C++ / C not some fracking scripting
language!

And as some one who used to do international interconnect I think I have some
valid input here - this has shades of the amusing project spitfire fiasco in
the late 80's.

~~~
pducks32
This is literally the same argument of the tweet's first poster (to which the
linked tweet is a reply). This is just simply not true. I know many people who
make mail apps for some big big companies. They have CS degrees and would
admit they suck at C++ (I wouldn't even mention C) but they are great at
Python

~~~
walshemj
I was talking about outlook and exchange not writing some trivial script to
send a registration email here.

------
nickpp
Other tweets in thread are interesting too:

    
    
      No they are not electron apps. They are compiled to native code. 
    
      It's now finally one toolchain(#webpack)
      It's one codebase and it compiles to:
    
      Web
      Android
      IOS
      MacOS
      UWP
      WIN32 (only one that uses electron)

~~~
cm2187
another tweet on that thread:

> _how is that even possible? there are tons of legacy features in there, COM
> /OLE APIs, SDKs, plugin architecture, macro system, VBA interpreter, VBA
> IDE, graphing components etc. Almost 30 years of development. No way MS is
> going to rewrite all of that. (Maybe the "mobile" version)_

I think this is a strong indication that all these technologies are going
away.

~~~
Amezarak
This would be suicide for Office. I struggle to believe that Microsoft is
replacing the full Windows desktop version of Office with a version rewritten
in JS. It makes no sense. Many, many, many businesses absolutely _rely_ on the
features you're mentioning, and many others that would be a tremendous
undertaking to re-implement. There has to be something that's not being
communicated right here. Maybe they mean the "lite" versions of the programs.

~~~
chrisseaton
I also think it’s extremely unlikely MS is announcing an new native code
compiler for JavaScript, something I’m not sure anyone knows how to do with
reasonable performance, with a Tweet this casual.

~~~
jhall1468
Web Views with native API's. So not truly native compilation.

~~~
cmjqol
Has been said many many many times , it's not electron for Windows 10 , it's
React Native .NET which bridges the built in Javascript VM with WPF. So it's
not a web view for UWP, it's 100% native code.

~~~
chrisseaton
> it's 100% native code

He's said it's not compiling the JavaScript to native code - it's running it
in a normal JavaScript JIT. It's not 100% native code.

------
_bxg1
Re: the original tweet

JavaScript is a real language now. It's powerful and performant and uses
modern paradigms, in addition to its sheer relevance.

That said, I am glad I was taught using C++ in college. Not because I plan to
ever write an OS or DBMS, but because it taught me valuable lessons about
pointers, how memory is managed, how arrays and lists differ, and other
computing fundamentals that still inform you when writing in higher-level
languages, even if you don't have to deal with those concepts directly.

~~~
ATsch
This is true, but people like the orginal tweeter often pretend that this
learning order is somehow the only "real" way to do things. I don't see why it
isn't equally as valid to learn high-level concepts first and then learn the
gory details later. I'm confused why there seems to be such a large number of
low-level people so stubbornly insisting their order is the right one.

~~~
eropple
From both my own experience and the experience of teaching people, those "gory
details" are the nouns and verbs that compose higher-level abstractions. I
haven't written C++ in anger in a decade, but it informs what I'm looking at
when I'm reasoning through how V8 or the JVM is going to handle my code.

I've been required to teach people in the top-down manner that has left
_knowing_ gaps and rendered them without the tools necessary to solve their
problems. That's not to say somebody who eagerly learns on one's own may be
fine. Of course they might, so long as they have a way to determine what they
need to learn. But most people _don 't_ eagerly learn on their own, and so a
prescriptive "start at the bottom and build up" provides the necessary
knowledge and grounding despite themselves.

------
mping
From the tweet author:

>It is. But @typescriptlang is just a static type linter that compiles to JS.

Hell, any language is just an assembly runtime plus a grammar. TS is a
language that happens to be compiled to Js, I bet in the future it will be
wasm.

------
davidhyde
As if they didn't learn their lesson with skype for business.

~~~
avryhof
There's a Skype for Business written in JavaScript? I know there is Skype, but
it doesn't talk to our Skype for Business (Lync) server.... I have to use
Pidgin for that. (Linux)

~~~
megaman22
Definitely not. Unless it's the godawful Mac client that doesn't work for most
things, which is possible, since it's using UCWA under the covers.

The Skype for Business Windows client was barely reskinned from the Lync 2013
client. I think they are still only a couple dozen patch revisions apart on
the version number.

~~~
avryhof
That's what I thought. It's tough to use Linux in a Windows shop. I have most
of it figured out, though.

It would just be nice to be able to join Skype/Lync meetings with Screen
sharing.

------
yitchelle
Is this the "real" reason why they bought Github? They want to migrate their
entire office products to use the ElectronJS. VisualCode and others were like
the guinea pigs before going fully in with their office products.
/end_speculation.

~~~
trevorsg
Not Electron.
[https://twitter.com/TheLarkInn/status/1006761134395834368](https://twitter.com/TheLarkInn/status/1006761134395834368)

~~~
neolefty
The tweet:

 _No they are not electron apps. They are compiled to native code._

 _It 's now finally one toolchain(#webpack)_

 _It 's one codebase and it compiles to:_

 _Web_

 _Android_

 _IOS_

 _MacOS_

 _UWP_

 _WIN32 (only one that uses electron)_

------
southpolesteve
More specifically React [https://developer.microsoft.com/en-
us/fabric](https://developer.microsoft.com/en-us/fabric)

------
adreamingsoul
Seriously? This is a bad idea, and I say that as a engineer who writes a lot
of JavaScript.

~~~
youdontknowtho
They are using TypeScript for large scale projects.

~~~
andrewmcwatters
Which is an even worse idea. In widespread practice, I regularly work with
developers who can't even master JavaScript. To blithely toss another
CoffeeScript in the mix is foolish if you ask me.

~~~
crooked-v
You may want to actually learn what Typescript is before blithely making such
comments.

~~~
andrewmcwatters
Yeah, I know what Typescript is. It's another transpiled language. I don't
care what the syntax looks like, the point is you've added a secondary level
of knowledge required to operate in a codebase written in it, and most don't
fluently know the first. Please tell me more about what I don't know.

~~~
rawrmaan
Well, if you remove your assumptions about how incapable people are,
TypeScript is the way to make large JS code bases maintainable. It doesn’t
even change any of the JS syntax, it just adds to it. It’s the opposite of
CoffeeScript in many ways.

------
akerro
>It's one codebase and it compiles to: Web Android IOS MacOS UWP WIN32 (only
one that uses electron)

Ah yes, you can see here the strong love of Linux in Microsoft.

------
bitL
Oh well, the kool-aid is strong. Next round of what Intel giveth, Microsoft
taketh away...

Can somebody please design even worse language so that we can progress by
reimplementing everything in it, keeping us occupied for the next 20 years?

~~~
capelio
How much more real world evidence does HN need to see before the "JS isn't a
real language" meme is abandoned?

Pretty sure we're up to billions of real world value created by software
written in Javascript. If you're still dismissive at this point, it's time to
catch up. You've missed the boat.

~~~
arghwhat
It's a "real" language, it's just not a terribly good or fast one. It's works
decently when its use is limited to what it was made for: manipulating web
pages. For anything else, the "designed on the back of a used piece of toilet
paper" starts to shine through.

And no, a JIT can't save you from this, it can only make things acceptable.

That it can create "real world value" is an extremely low bar, which is passed
by any turing complete language. COBOL creates "real world value".

~~~
nawgszy
>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 rather robust asynchronous handling, 'everything is an object'
has lots of nice implications when paired with functionality like Object.keys
/ .assign, ... So what are the issues you see that make it 'bad'?

~~~
arghwhat
> (4x slower, perhaps)

"4x" is a lot slower, and a lot of things are _much_ worse than this. You have
to have deep knowledge of the VM (such as knowing how "hidden classes" work in
V8) to be able to get JS close to Java.

> so I'll disregard that.

You shouldn't. Claiming a JIT'ed language is fast due to being faster than
Python, an entirely interpreted language, is like saying a moped is a fast
vehicle because it's faster than biking. Apples and oranges.

Being faster than PyPy, the JIT'ed Python implementation, is a more
interesting thing, but this is still very far off "fast" languages.

> What is it missing that makes you hate it so?

Most language features, really. "Everything is an object and objects are
hashmaps, EVEN ARRAYS" (terrible for performance, type safety), "array of
int16" strings with totally broken unicode codepoint handling (ES2016 brought
new ways to deal with codepoints, but the standard way is still broken), the
"Number" type which is totally retarted, the terrible "prototype" system, the
malice that is "this" and how any bare function expression had its own this
context (arrow functions are a good workaround now), and god I could go on.

"Everything is an object" is only useful if you either actually need a hashmap
(then use one!), or you have sloppy types.

JS, as a langauge, is not well designed. I'm not saying it had to be Haskell
or Rust, but JS is far below average.

It _works_ , and does it job decently due to the _very_ hard work of JS engine
implementors trying to make this crazy thing fast, but that's not the same as
being _good_.

~~~
xamuel
>Most language features, really.

Name a few.

>terrible "prototype" system

>malice that is "this"

It sounds like you are talking about ES5, not ES6+

~~~
bitL
Can you guarantee all ES6- code to disappear immediately? Or are you forced to
dive deep into warts when you have to work on some older JS project?

~~~
shawnz
Why does that impact whether or not it's a reasonable choice to use the
language today? Old libraries I could understand, but old independent
projects? How do they affect the current state of the language?

~~~
bitL
Isn't it obvious? You apply for a job, company that isn't a startup has code
that is likely written with old JavaScript whose replacement is not
economical, so even if you do everything new in ES7, you still have to wade
through old ugly code, likely everyday.

------
FridgeSeal
This is a joke right?

------
coinerone
That could lead to a possible "good" Linux version of Office 365? That would
be Awesome imho. AAAnd hopefully they kill VBA and replace it with JavaScript
:D. Like Building Forms with JS in Adobes Lifecycle Designer but in a good
way.

~~~
alfredallan1
That’s a good thought. As bad as JS is, I’d still prefer it to VBA.

~~~
dentemple
Having had to write both, professionally...

You've just never seen the monstrosity that is enterprise-level VBA.

Javascript is a godsend over VBA.

~~~
alfredallan1
^^ word. Been in the same boat..

------
setquk
This is good news for those of us who have to deal with VSTO, MSI packaging
and all that cack. At last it might not feel like being buggered by a traffic
cone repeatedly.

~~~
cm2187
The ideal of an IT dept is to force all of their users to use only a locked
down ipad. Of course they won't be able to achieve any work on them, and
productivity will go down the drain, but that's not the problem of the IT
department.

------
bhanu423
My 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.

~~~
wilsonnb2
This was kind of true with OneNote up until recently. There are currently two
desktop versions. One that comes with Office and looks/feels like the rest of
the Office suite, and one that is made with UWP and available for free from
the Windows Store. That one looks/feels a lot like the Android/iOS OneNote
app.

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.

~~~
TensorMetric
[https://www.thurrott.com/cloud/office-365/161295/microsoft-r...](https://www.thurrott.com/cloud/office-365/161295/microsoft-
redesigning-office-user-interface)

~~~
wilsonnb2
Well that's disappointing. The simple ribbon in the new OneNote feels like
such a step back from the ribbon UI in OneNote 2016.

It does say users will be able to enable the full ribbon UI still, so I
suppose I will have to do that. Hopefully they don't deprecate that feature.

~~~
ygra
In the past the reasoning to replace the menu system with ribbons completely
and not allowing to switch back is the understandable desire to not having to
maintain and test two different UIs all the time. Two different ribbons may
still work, as the ribbon already has information about "importance" or
"prominence" of each item, but I fear eventually there'll be only one
remaining in the future.

------
tenryuu
Wouldn't mind comparing battery life of this against current office 365 on my
Gen1 Surface Pro

Half the battery goes to edge alone on a good day

------
spicymaki
FWIW, I personally like the direction Microsoft is going in. I look forward to
seeing where this transformation leads.

~~~
cm2187
The positive side of breaking compatibility with all legacy technologies (COM,
VBA, XLL, etc) that currently force large companies to stick to MS Office is
that it has the potential to reintroduce competition in the office-like
software space. And in my opinion Office is the main reason why large
enterprises stick to Windows. Most internal apps are moving to the web. If
office backward compatibility goes away, then it's not clear that Windows is
an obvious choice anymore.

And it is kind of consistent with Microsoft's new strategy to de-emphasize
Windows.

~~~
pjmlp
Not sure if employees will enjoy the return to the days of time-sharing and
remote X-Windows sessions though.

Which is the end result of Webification of our tools.

------
anfractuosity
For skype I'm curious how much will be written in JS, I'm assuming crypto
won't be?

I could well be wrong but I thought with an interpreted language it would be
very hard to protect against timing attacks?

Wouldn't a lot of the network communication also be utilising compiled
libraries?

------
stunt
Reminds me Gary Bernhardt's "The Birth and Death of JavaScript" talk.

------
pimmen
Why is this trend going on with using js in domains where it previously was
not a component?

Is it to ease shipping new features? To make it easier for contributors once
they make the application open source? Good PR?

~~~
dagw
_Why is this trend going on with using js in domains where it previously was
not a component?_

Office products need to be on the web these days. Having a common code base
between desktops, mobile and web makes that much easier and in that world
JavaScript is the lowest common denominator.

------
JustSomeNobody
I want to see a breakdown of resource usage (RAM, CPU, etc.) before I cry too
loudly. Office 2016 is a beast, so here's hoping (but not holding my breath)
that they'll improve on it.

------
keriati1
Is it now TypeScript or JavaScript? It's a huge difference...

------
daemin
That explain why the Office windows are laggy as hell when being moved. It's
like they're not processing window messages quickly enough or something.

------
FridgeSeal
So of all the good, far more suitable languages they could use, we're getting
it written the flaming pile of trash that is JavaScript? Why though?

~~~
PunchTornado
because it is not a pile of trash. the programmer can be a pile of trash
though.

~~~
slig
> because it is not a pile of trash

For instance, see the `Set` implementation here
<[https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Set>) 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.

~~~
jhall1468
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?

~~~
slig
It's just a tiny example of how silly this whole thing is. What's the point of
having a committee to draft and design an language that can't even be bothered
to have a working Set implementation? It simply doesn't make sense.

~~~
jhall1468
It's a pointless example that's trivial to fix. There are actual problems with
Javascript. The examples you and many other detractors mention expose the
actual problem: You have no idea _how_ to use the language because you don't
use it. Instead you whine about some trivial things (At a method to the Set
type... it would take minutes), or things you don't understand (prototypal
inheritance).

~~~
slig
It's not about adding a method or two, I showed one symptom of a much larger
problem. Of course one can add a method, but then why bother with the default
crippled implementation in the first place? I'd rather have nothing and go
find a third party library than having a half-assed one that's almost useless.

> You have no idea how to use the language because you don't use it.

I do use it daily for more than 15 years.

------
neals
The Javascript is compiled to native code, apparently. Maybe there's a
Typescript to Cpp transpiler that I haven't heard about?

~~~
dagw
[https://github.com/NectarJS/nectarjs](https://github.com/NectarJS/nectarjs)

Still not sure if it's just a 'cool hack' or an attempt at a serious product
though.

------
rado
The sky is falling

------
tluyben2
Seems like a very strange move... But it’s a tweet. Might not mean anything
really.

~~~
cm2187
My first thought was an April fool joke that got lost in a queue or as a
result of a bad network connection...

------
discordance
Atwood's Law - "Any application that can be written in JavaScript, will
eventually be written in JavaScript."

~~~
FridgeSeal
Can we skip to the bit where we start re-writing software that we re-wrote in
JS in other, more appropriate languages? :P

~~~
JustSomeNobody
Not yet. Let's wait a little longer, that way those of us who would do the
writing will be more valuable.

------
sonnyblarney
I hope to god they mean to say 'TypeScript'.

Otherwise, they'll never finish :)

------
chaz6
I am slightly surprised by the choice to use ECMAScript instead of
WebAssembly.

~~~
harrygeez
You can't access DOM ATM. That's not to mention how large of an initial
download it would require to put it on webasm. If they're gonna build only a
thin client, JS is the best bet

------
starpilot
Title is missing the word "in." Come on.

------
arisAlexis
anybody knows details like if they use typescript or vanilla or some framework

------
anfilt
No! Bad MS! Stop it!

------
captainbland
I for one welcome our new Libre Office overlords.

~~~
moolcool
Does LibreOffice still look like a Windows 3.11 application?

~~~
captainbland
Maybe if you had this theme installed:

[https://www.gnome-look.org/p/1079270/](https://www.gnome-look.org/p/1079270/)

Hey you know, with a different font and a slightly different colour scheme
that wouldn't be far off the Metro look.

------
Fulck
download link anyone?

------
0xcafecafe
I wonder how much of global warming is caused by inefficient code written in
higher level languages requiring more powerful hardware to run. It might be
infinitesimal but still non-zero.

~~~
thelarkinn
Technically JavaScript is only ~7% slower then C++ to execute. But snipe away
at that stats with real data.

~~~
TeMPOraL
Technically, maybe. In practice, each language has its culture, its ecosystem.
Its set of tools to pick from. Is it reasonable to expect the JavaScript
Office will really just bind directly to all the native APIs it was using
before, thus incurring only 7% penalty (+/\- FFI)? Or is it more likely that
it'll have web rendering shoved in everywhere, and then layers upon layers of
off-the-shelf JS libraries, thus incuring more like 700% penalty in resource
use?

------
gaius
Brendan Eich is our generation’s Thomas Midgley.

------
babsHeinz
Bye bye Office 365. [https://www.joelonsoftware.com/2000/04/06/things-you-
should-...](https://www.joelonsoftware.com/2000/04/06/things-you-should-never-
do-part-i/)

