Microsoft's New Systems Language
As a programming language nerd I had mixed feelings when Jon Galloway tweeted about Microsoft’s new programming language.
A glimpse into a new general purpose programming language under development at Microsoft http://t.co/J23BKfaBVOhttp://t.co/yxzOyYZ5Oz— Jon Galloway (@jongalloway)December 28, 2013
“Why are your feelings mixed?” I kept asking myself. I love new programming languages. I took an internship at Microsoft just so I could be closer to the people who made C#. I read language specs for fun. I write compilers for fun. I sell a programming language, interpreter, and IDE. I used to read every post on Lambda the Ultimate. I check Jonathan Edward’s site daily to be inspired - with the hope that he will share more wisdom with the rest of us.
So why am I not thrilled? Finally, after as much soul searching as 4 hours of sleep allowed me, I identified a few reasons for this pit in my stomach:
- A systems language? In a world of apps that compete almost solely on usability, who cares about a systems language? We’re not writing OS’s. We’re not writing databases. We’re writing apps for humans on the go - new languages should make that easier. The language’s design should be based on improving consumer apps not making life easier for Intel.
- Next generation languages have to work without an explicit compile step. JavaScript has shown us how productive you can be if you get the compiler out of the way (just hit Cmd + R). Smalltalk showed us how to push that to the extreme by merging development with execution. This language doesn’t have any of that, and the closer a language/runtime is to the hardware, the harder this is to pull off.
- Microsoft has PL ADD. Every year Microsoft’s evangelists are tasked with promoting a new programming language. The Windows team, ever haters of good things, decided that JavaScript was the way to write Windows apps, so we were all inundated with JS. Then they gave us TypeScript because they realized it’s hard to write big apps in JS. Then, and I really don’t understand this, they promoted new C++! This had all the old baggage and bad decisions of C++ mixed with new crazy syntax that only boost and Microsoft developers understood. We had to sit through more than a year of being told to use this mess (oh I hope no one listened). And now they are timidly announcing this language. I couldn’t help but to regard this as some kid showing me his newest Minecraft house. That’s cute darling, now leave me alone.
- Microsoft is losing the consumer market. Just as Microsoft once rallied behind Security, I want to see the whole company rally behind User Experience. But they’re not. They just spent 4 years working on a systems programming language. Makes you want to smash your head against your desk until you can see their logic (please let me know if this works).
- Joe Duffy is freaking brilliant. I had the opportunity to work just a couple doors down from Mr. Duffy when I would moonlight at MS. I heard rumors he was working on something secret for the last few years and have been excitedly waiting for an announcement. To find that MS had him holed up working on a systems language was… depressing.
It was this last point that I decided to tweet about:
Sad to see MS waste engineering talent. VB, C#, F#, JavaScript, C++, TypeScript. PL is not the problem! http://t.co/fh14EU1cKl— Frank A. Krueger (@praeclarum)December 28, 2013
You see, I made the classic mistake of fitting many ideas into a single tweet. (Lesson learned: if you want to make a point, one idea per tweet.)
I meant to just say I hate watching talent wasted. As an entrepreneur and technologist I know just how valuable smart programmers are. It is with a tremendous amount of jealousy that I look upon Microsoft with their vast richness of Human Resources. “What I could do with just 2 Microsoft developers…” I muse to myself. “I could create empires.” Point a smart person at a real problem and magic happens.
But of course, I had to push the tweet to include my other ideas: Microsoft needs to stop mixing PL messages, we have lots of good languages, the platform is strong, Microsoft isn’t doing what I think is best for them (take your medicine dammit!).
The tweet made sense to me, but in retrospect, just diluted all my arguments. You can guess the reaction!
@praeclarum Microsoft has been in the language business back since the days, so it’s hardly surprising that they are researching a little.— Christian Pedersen (@ruysh)December 28, 2013
Yeah, I agree: research is good and healthy. Microsoft has a massive and impressive research division. Every so often, the product guys even pay attention to it!
Christian gave the strongest argument against my view: Microsoft is, and always has been, a programming language company. I shouldn’t get upset at them for this. Progress is progress, I suppose, even if I feel it’s in the wrong direction!
We had a good time on Twitter yesterday discussing this. Everyone had good thoughts and we kept it civil. It’s hard to have a reasoned discussion on Twitter so I wanted to thank you all for your perspectives!