A recent post over at meta-douglasp hints at something that Microsoft appears to have in the works: Emacs.Net. For many UNIX and Linux folks, emacs is probably old hat. For the rest of us, here is a quick overview.
Emacs is an text editor that is very popular on UNIX and is often used to write software, configure systems and edit just about anything. Emacs is mainly used by technical people, and is easy to configure, extend and tweak if you are technically inclined. I haven’t used emacs much in the past decade, but it is a handy, light-weight editor that also scores high on the geek cred scale. As far as UNIX file editors go, emacs dates back to 1976 and has been developed in a fashion that retained it usefulness as it has been extended. To contrast with some other tools, emacs has endured the test of time and appears to keep on going. For more on Emacs, please check out the wiki.
Which brings us back to Microsoft and their premier development editor: Visual Studio (VS). I’ve been using Microsoft’s VS for the past decade and overall, each version has gotten bigger, slower, more unwieldy, buggier and less usable. That is a shame because Microsoft has been cramming tons of work into adding features galore. I think on paper, VS ships a great spec: There are all kinds of really neat looking features, functions and capabilities. But, over time, this editor has gotten worse as far as actual usability and productivity of the user.
My long running joke is: Visual Studio was designed by and for executives. Now, I don’t think executives use Visual Studio, or if they do it’s very few and very rarely. What I do mean is: MS executives drive production direction and approve the product. Then, at other companies, executive dictate their software will be developed with Visual Studio (VS). In truth, that’s pretty much how it happens. The people with the least amount of hands on technical knowledge (executives) often make technical calls such as this (sad but true). What’s really sad is the MS executives don’t really know what they are shipping (Visual Studio), and the other-company executives don’t really know what they buying.
A related item: Microsoft .NET. Years ago, when the internet was really starting to take off and executives were rubbing their wallets thinking “how can I cash-in on this internet craze?” Meanwhile, Microsoft executives were really starting to sweat how they were going to complete with Netscape and remain competitive in this new internet based world. The MS Windows team was worried about future prospects (i.e. who needs windows is everything is done in a browser), as was the MS Office team (i.e. complete with web apps), the MS Developer division (i.e. native applications), and pretty much anyone else who drank the cool aid, or was a quick follower of FUD (In all fairness, there really was a lot going on in the industry and at Microsoft at this time, but I’m trying to keep it high-level).
All this brings us to .NET, which Microsoft hoped would provide competition to Java (also an interpreted and web-tacular language.) .NET could also (theoretically) help out the office team if they wanted to market web-based office applications. And .NET could (theoretically) help the developer division remain competitive by developing a Cool.New.Thing! A bunch of languages (J#, VB.NET, etc) that all use the same run time (CLR) which could be made to run on different platforms (Cool! CRL is its own abstraction mechanism and runtime). Basically, a bunch of different executives (and teams) were jazzed about what .NET could do.
In the spirit of Dogfooding, the Microsoft Developer division developed a massive all-in-one developer tool to end all developer tools written in .NET. Initially, many people (or at least the executives) thought this was a grand idea. Now that this has been completed, I do have to say this tool is a 100 ton whale that cannot get out of its own way. (That’s just my opinion… and the opinion of many other C++ developers). Also, .NET really has become something of a boondoggle for Microsoft. Overall, it’s very functional and provides all kinds of cool capabilities. But…
.NET also brings some problems: it’s auto handling of garbage collection (like java) is really pretty good, but not nearly as good as custom developed allocation and deallocation written in C++. Also, .NET imposes a performance hit b/c the CLR is a complete runtime which… runs on top of the Windows runtime. But, the biggest problem with .NET is: its actually not being used as much as good old fashioned C++. And that’s a travesty. Specifically, MS spent many millions of dollar designing, developing and marketing a product (.NET) that people by and large don’t want. And MS has been spending years trying to push C++ developer, teams and products away from C++ (as builds on the bad decisions that created .NET, and continues to mitigate Microsoft FUD). Don’t get me wrong, there are a bunch of people that write applications for .NET, but when you look at industry statistics: there are more people, teams and companies writing applications is good old fashioned C++, than in .NET. Since it took a while (years and years) for Microsoft to realize this, they are now quickly trying to re-invest in their native C++ toolset. So now, Microsoft executives are saying something akin to: Hey, we were just kidding! C++ is a great language! You can use .NET or C++. Really, we love both!
This all brings us back to Microsoft’s rumored Emacs.Net. Since .NET really has a bunch of issues, and Visual Studio is written in .NET, and many C++ developers have gotten fed up with .NET… it’s time for a new tool: Emacs.NET. You may say: huh? It does seem a bit odd, but if I had to guess, I’d think this tool will be written natively (possibly, but probably not) and will have some interop with .NET but overall, this tool will be a clean slate design.. with the expressed purpose of: continuing to leverage Microsoft’s technologies (gotta include .NET so the executives sign off on it), while reconnecting with the core developer base (i.e. emacs endures, so lets make an emacs), and results in a new light-weight tool that can also be levered against Windows Server core, Powershell and by general technical folk.
But hey, these are just my best guesses because I really don’t know. And neither will Microsoft, nor the executives until all is said and done. Like I say: developing software is one massive feedback loop and you don’t really know where you are going, or how it will pan-out until the product ships.
December 31, 2007 at 10:21 pm |
Well this sure is bizarre. The only real problem with VS is the fact that it gets really slow. And I don’t think it’s written using .NET – look at the extensibility API – it’s all COM. If it was .NET, we wouldn’t have all this casting foinf on. Anyway… the main problem with VS is the fact that things get really slow, especially if you get power-hungry add-ins such as ReSharper into the mix.
Still, Emacs… how totally weird.
January 4, 2008 at 2:39 am |
This reads like a spoof article by someone who’s deliberately trying to sound clueless for comic effect.
January 8, 2008 at 8:15 pm |
[...] – The Guessing Game A view on what posting Doug @ Microsoft could be building. What I want are variants of Volta for HPC, [...]
January 8, 2008 at 9:00 pm |
There really is no logic to what you are saying. If MS were turning away from C++ then why are they releasing new OS functionality in managed APIs only? MILCORE/WPF still doesn’t have a public C++ API.
This sounds more like wishful thinking than anything else.
January 11, 2008 at 9:34 pm |
free wwe video
I Googled for something completely different, but found your page…and have to say thanks. nice read.