3,131 karma · joined February 20, 2010
I own Fern Creek Software, we make software for other people usually on the Microsoft stack.
http://ferncreeksoftware.com
Twitter: @keithwarren
Email: keithwarren7 at hotmail or gmail
In the past if you were writing a client side or 'desktop' app for Windows you used C++ and MFC or a .NET language with Windows Forms or WPF (or lots of other options) to build that experience. Going forward Microsoft would prefer you build using this new model they are calling Windows Store apps. Along with that comes a set of rules and explicit declarations about what your app will do (much like we have on Android or iOS). This should in theory limit the number of crapware that exists, though that remains to be seen.
Jitter is a term we often use for a program that does the JIT work, JIT is an acronym for Just In Time which in context means Just In Time Compiler; it runs just before the code is needed. You have a program with 10K lines of code but the command you just sent the program only invokes 500 lines - a jitter or Just in time compiler will only convert the code that is actually needs to perform the operation you requested (thus performing faster).
Lets start with how it currently works...
When you create an application or website in C#,F#,VB.NET or any other .NET language you are not really 'compiling' it per se to native code, you are compiling it to an intermediate language called IL - very much like Java byte code. When your application or website is run for the first time the .NET runtime converts this code to native code on the local computer and then caches this binary and officially compiled native version of your code. The result is, the first time you run your app or a section of the code there is a small performance hit while the .NET runtime converts your code to native. Let me be perfectly clear, this is a one time thing - a first time thing. Once you have gotten past that every subsequent run is going to be as fast as other native code. (Why is it not as fast as something written in c or c++ you may ask - because there are other things the .net runtime is providing for you like garbage collection, but that is a whole other talk)
So how is this different?
This preview allows you to skip this JIT process and image caching process altogether. This is first targeted for Windows store apps, when you would first run it on your machine it was slow on first launch because all this extra work was being done. Microsoft decided they could take the server side resources they had and run this JIT and imaging process ahead of time and when someone downloads and installs your app - this work was already done and first launch would be faster - as much as 60% faster. There are also lots of changes under the hood to make this all work better - Andrew Pardoe is on this comment thread further down and mentioned things like a refactored runtime, static-optimized libraries, static marshalling all combining for performance wins.
Does this mean I can build apps for Unix with C#
No, Mono is still the best way to do that
Can I build simple console apps with this and deploy to machines without the .NET runtime?
No, right now this is only available for Windows Store apps. Besides, unless you have some Windows 98 machines sitting around nearly every PC has the .NET runtime.
Will this make my app run faster?
Starting up, yes. Normal operation, probably not. .NET runtime and jitter have been around a long time and they are impressively efficient and fast. This includes some tweaks to parts of the runtime but don't expect to see your text file processing app go from 10 seconds to 2 or something like that.
Will this help me pick up chicks?
Depends.
Less Flair version - Happy to see a well know and respected computer scientist trying to solve a problem faced by lots of developers and doing it in a simple and easy to understand way.
More evidence, Xamarin announced their Evolve conference dates, times and prices and when it goes on sale - if Microsoft were buying them they would hold off on letting several thousand people spend thousands of dollars for a dev conference that would later be tantamount to a bait and switch.
Windows Phone 8.1
Windows 8.1 (big update)
New Nokia models
Surface 3
I would also not be surprised to see an announcement of an acquisition in the dev space, Xamarin comes to mind but I dont think that will happen (yet).
On top of all that, he is a coder at heart and still deeply in touch with the community. You can email him directly and usually get a response within hours which is astonishing given his role and responsibilities.
This is a win for coders everywhere, regardless of your position on Microsoft and how you feel about them in general - ScottGu is one of the great guys pushing technology forward and has a serious increase in firepower every time he moves up the ladder at Microsoft. This position is tantamount to 'head of all things developer' at Microsoft.
Never the less, I am in the same boat as your friends in many cases. In my consulting practice I do lots of SQL Server tuning work and have found very few cases where I can tell a client that going to Azure would be a net benefit for the database. Even with the new dedicated SQL instances, on-premise will almost always get you more perf per dollar. (though the Azure stuff does come with less maintenance headaches in theory)
My issue comes from the fact that securities trading is based on the idea that we buy and sell parts of these securities under the idea we see value in the company. This fits best with a long term hold position but is not really that divergent with a day trader who buys AAPL today because he thinks news later today about some new product will cause the price to go up thus increasing the value of the company. He will sell later in the day because he thinks that it may drop later.
My issue with HFT is that these trades (well most of them) are not based on the value of the security but rather on the act of buying and selling itself. It is meta in a sense.
That in my mind creates a fundamental flaw in the marketplace around the true purpose of a securities exchange.
I use Java some so I can't speak directly to this but I would bet Java pros are scratching their heads over the Java code being used here as well.
What is more interesting to me though; why even make the comparison? Are there legions of programmers out there who cannot pick between these two platforms because they cannot decide who has better a better threading approach?
I literally laughed out loud at that.
I talked to him at Evolve one evening with a handful of other devs while he does not explicitly say it (he is actually pretty humble) you get the impression that Microsoft would make him a distinguished engineer in a heartbeat if he would only say yes. Huge salary, millions in stock options and a write your own ticket kind of involvement like we saw when Russinovich took a job in Redmond.
Miguel is pragmatic, he sees one of the largest pools of developers (at one time the largest by far) and the opportunity to provide them with an exit strategy of sorts. They are bound to Windows now and Microsoft has to this point seen no value in giving those developers the tooling to take their apps out of the Windows ecosystem - so Miguel did just that.
Couple that with the fact that he saw C# and .NET for what it was, Java done right, and he got on board with the idea - but dont mistake for a minute where his heart is. He is a dyed in the wool lover of Linux. He respects Microsoft as a company and realizes that he can feast off their mistakes and doing big things.
That said, Visual Studio is not a cash cow for Microsoft and making it totally free might be a key move in starting to win back dev mindshare.
It really is a phenomenal piece of engineering.
Biggest drawback, hard to find examples of things in C# so you have to be able to read documentation and code samples in ObjC or Java and mentally map them to C#.
I am sorry, but that generalization merits some sources. Can you give me some examples of Microsoft buying a cross platform tool and shutting it down. Mind you I think you are inferring they purchase to eliminate competition. Not a situation where they buy something like Groove, run with it for a bit, see that it is not getting traction and then kill the product.
Given all that I think this rumor is premature.
Then again, I did predict this... https://twitter.com/keithwarren/status/430874079776632832
WhatsApp had incredible value just through the user base alone, especially considering its diversity in the global market (relative to FB who is strong in what we consider the 'west' but not the far east).
If there are no other bidders it still sells for many billions and probably north of 10.