Introducing Visual Studio’s Emulator for Android
blogs.msdn.com
blogs.msdn.com
Check out BizSpark.com or get in touch with me if you happen to be a YC company (felix.rieseberg@microsoft.com).
I'm not buying that Trojan horse.
Maybe it'd be an apt comparison if the Trojan's put a big sign on the front saying:
"Acceptance of this horse constitutes acceptance of a (up till now) secret invasion"
For starters, it encourages a bad habit: using the Microsoft stack and deploying on Windows.
Unless you are significantly more productive by using this toolset, I'd advise against it. Having said that, most startups fail, so, chances are using Windows will not be a problem 3-5 years down the road.
this is not "a bad habit"
- Windows: proprietary, hard(ish?) to scale. BizSpark.
- Linux: Finicky, spend time & money getting it working right. Scales well.
- Apple: Expensive. Nice.
I'm not a startup guy, but I can easily picture a world in which Apple is chosen by the massively-funded, Linux is chosen by the scaling-is-our-business-model, and Windows is chosen by the get-off-the-ground-first lean (curiously enough) thanks to BizSpark.
FWIW my terminal is Windows, and my datacenter is *nix.
I actually like a lot of things when it comes to windows, and dislike a lot with Linux. That said, I'm still targeting Linux for next-generation app development... When you need to have 3-5 servers for your data and application layers, the price of MS's stack is a bigger difference here.
It really depends on your situation though.. if you have a need for small LOB apps, or even a SaaS that can work in Azure deployments, using BizSpark and sticking to MS isn't a bad option.
Apple may be used by the developers, but depending on your business need, you really aren't deploying to apple servers.
Not if you know what you are doing. I find it easier, cheaper and faster to deploy Linux applications than it is to boot a Windows server, apply updates, secure it and install your application (and keep it updated). I know it can all be done - and automated to a large extent - with Microsoft admin tools, but it still takes longer than spinning up a new Debian, Ubuntu or CentOS server and doing the same steps. The ecosystem is just not there. And since you don't need to worry about licensing costs, you can deploy as many machines as you need and make them role-specific, lighter and individually simpler.
> - Apple: Expensive. Nice.
Expensive is relative. My previous MacBook was still solid after five years. No Lenovo/Dell/HP has that kind of build quality at a lower price and the ones that have that build are uglier and more expensive than their Apple counterparts. I agree if you need a fingerprint or smartcard reader, you can't go with Apple, but those are specific needs. Spreading the cost of a Mac over its useful life makes it look more attractive than a PC. Plus, it has a very developer-friendly OS if you are not developing for Windows.
Also, Apple makes desktop machines. My comment was mostly about BizSpark's server side.
Or, you know, just using the Azure portion of the program and deploying in any language with any database implementation to linux VMs with docker.
If you don't need to swallow a potential poison pill that could seriously impact your maneuverability at a critical juncture (yes, that includes 3-5 years in), WHY would you?
That is exactly what you need to be thinking about. As much money as Microsoft makes on consumers backs and then they lay these traps for would be small business developers. There's a reason why rich people try to avoid paying for their lunch.
I don't know if it still comes out as worth it, but that's what you have to figure out. A kneejerk "I'll be paying for this in 3 years so I shouldn't take advantage of it being free now" isn't exactly the most rational response either.
The "stack" doesn't cost anything extra as long as you don't do something silly like host on your own windows server machines, or use sql server.
Even for the exception, Windows Server, you'll get four production licenses as a farewell gift. Given that StackOverflow runs on 25 Windows Servers, this can't be a bad deal.
Yes, in the age of open source it is great to build business using software for free[1].
However, when I compare with other commercial players that you need to call for prices, Microsoft is quite good.
[1] Assuming engineers' salary spent on support doesn't count.
Is that not true?
Free is not so rigorous a word it can only be applied to things which are free in perpetuity.
I have to use scare quotes because at that point it's a negotiation between you and Microsoft, and they have no obligation to grant you all those licenses, but they just might I suppose.
It looks like Microsoft might have a better Android emulation workflow than Google. What strange times!
Sure but keep in mind that Google has to produce an emulator that emulates ARM, MIPS and x86 and all of that has to work on Windows, Linux and Mac. Significantly different and tougher challenge!
And, again, Android does not run Java and characterizing it as such is ignorance of the environment involved.
The actual CPU (ARM, x86) is a small part of the overall emulation equation and almost inconsequential to uncovering these bugs you talk about. There will be bugs that will exist solely on the hardware. You can't replicate it unless you are fully replicating that hardware, with those system level drivers.
IMHO, In the context of the app development what Apple did is the better way in this case.
At least now they are open-sourcing the CLR, the core library, ASP.NET, are making .NET cross-platform and made progress on the tooling, like with NuGet (still not close to what Maven does, but it's something). So I'm ready to forgive and forget, but lets not go overboard - only 2 years ago .NET and Windows felt like going back to 1998 ;-)
Why would turning Windows into a Unix have helped anyone? Pike and Plan9 tried to save Unix better then ten years ago, and nobody gave a shit.
Also, why do you even want something like Maven? That's like bitching that Windows doesn't have autotools--or was that next on your list of complaints?
Tell me about how the MSDN is less helpful than man pages. Tell me about how the Windows API is worse documented and more poorly designed than POSIX (lol). Tell me about how executables compiled on one Windows machine don't transport to other Windows machines easily.
I'll stand by my statement, thank you very much.
PowerShell is a shell, not a CLI, one starts PowerShell inside cmd.exe.
> Why would turning Windows into a Unix have helped anyone?
It helped OS X ;-)
> Also, why do you even want something like Maven?
Because you have to rely on Visual Studio for automating your build, testing and deployment process, it it's not doing a good job and again, is like going back to the nineties.
> Tell me about how the MSDN is less helpful than man pages.
Well, MSDN isn't competing with man pages, but with readily available source-code at the click of a button and with libraries documented like this one is - http://akka.io/
> Tell me about how executables compiled on one Windows machine don't transport to other Windows machines easily.
Never had a problem with OS X. And on Linux, people automate the shit out of the build process so it isn't much of a problem, hence the need for tools ;-)
"It helped OS X ;-)"
Have you seen what they were coming from? Apple is a fucking joke when it comes to systems and software engineering--it's their industrial design and UX that everyone loves.
"rely on Visual Studio for automating your build"
msbuild.exe and PowerShell.
"It's not doing a good job" compared to what, exactly? It's super easy to set up compiler options in C/C++ on MSVC, pretty easy to add other things. You'd prefer makefiles?
"available source-code at the click of a button"
because when we're hacking we want to stop and read somebody else's code instead of, you know, just using a cleanly documented API.
"And on Linux, people automate the shit out of the build process so it isn't much of a problem"
bahahahahahha
hahahahaa
haha
(no)
~
It seems like you're trolling or you've never worked on a project outside of your bubble.
I'm talking about the Command Prompt, that window with which you get access to a shell. I really don't know what you're talking about.
> Apple is a fucking joke when it comes to systems and software engineering
That's not an argument I can reply to.
> msbuild.exe and PowerShell
MsBuild.exe is Ant. PowerShell is, well, a shell language. This combination is not a substitute for Maven, hence my argument that it felt like going back to the nineties.
> You'd prefer makefiles?
No, I'd prefer something like Maven.
> Because when we're hacking we want to stop and read somebody else's code
Yes, precisely.
> It seems like you're trolling or you've never worked on a project outside of your bubble.
Note that I never resorted to ad-hominems. That's very unprofessional and very unlike the HN attitude. Chill.
And if you do feel the need for personal attacks, I'm also public about my identity, it's not much, but here you have my resume and my GitHub profile, no need to guess - https://www.bionicspirit.com/pages/about.html
You mean "a console window". Command Prompt is the name of the baked-in shortcut which starts cmd.exe in a console window.
MSBuild is not Visual Studio
(The entire process in question ran outside Visual Studio - it was a hellish mix of PowerShell, batch files, MSBuild, C++ tools and C# tools. Somebody had even implemented a getopt-type affair, using the batch commands, so the batch files all responded to /? and everything. May I never see its like again.)
I also use it to compile outside of VS, because 1) it's often quicker on large solutions and 2) it mirrors the CI build (sometimes VS is too smart and papers over issues).
That being said, the new stuff coming with ASP.NET 5.0 (vNext), where the build is a simplified JSON file is interesting
msbuild build.msbuild and I get full-rebuilds of 32-bit and 64-bit executables, tests run, and upon success, everything packaged up in an installer and ready for deployment.
OS X benefited from the labor savings of forking somebody else's existing project, dramatically reducing cost & time compared to a) continuing to support OS9 b) starting from scratch.
The technical nature of its status as a Unix derivative is, to my knowledge, basically nothing to do with its current market success.
The Navy's practice of stripping old ships and building a new ship with the old hull comes to mind.
I guess it's personal opinion...but I can't imagine how or why you would think this. Unless you enjoy long GC pauses in the middle of writing code?
That said, if this is a problem, you can tune the VM's memory options. There's even a "MaxGCPauseMillis" option: http://stackoverflow.com/questions/4676604/how-to-improve-in...
Or even better, submit a CPU snapshot to JetBrains so they can fix the problem: https://intellij-support.jetbrains.com/entries/29983118-Repo...
I still love the IDE, but this is my one big gripe. Maybe they'll fix it with the next big platform update.
For iOS Apple provides a simulator where your app is compiled against substantially similar APIs provided by the Mac host. That provides quick startup, debugging etc as iOS apps are islands. For Android a majority of the system has to be provided because your code could be inter-operating with numerous other components, hence the emulator approach they took.
However, if you run x86 images and enable Intel's hardware extensions and CPU acceleration it's perfectly usable. Still not as nice as the iOS emulator but it's good enough to get the job done.
I however didn't see any mention for Maven / Gradle support, and my latest VS is 2012. Anyone here with some insight into dependency management outside of NuGet?
Sometimes I have nightmares of updating Newtonsoft.Json (https://www.nuget.org/packages/Newtonsoft.Json/) and chasing down all of the version conflicts for the next several days.
If you need to develop something relatively simple on multiple platforms, Xamarin is a good way to do it once on iOS & Android.
Later the WP8 emulator was actually fully based on Hyper-v and this is too...meaning it is "just" a vm running x86 android, which explains why it's so fast.
I've been to a few Windows Phone developer camps and this is always an issue for attendees.
With Visual Studio 2015 Preview you can target Android and edit-compile-debug regardless
of your choice of programming models:
JavaScript (or TypeScript) with Cordova, C++, or C# with Xamarin.For more ambitious apps, IMO the overhead will never be worth it.
"You need to recompile your code for x86. If you have parts of your code that can only be compiled for ARM, or you depend on 3rd-party libraries for which you do not have an x86 version, your code will not run on our emulator at this point."
I really wonder who is developing Android at Google, when I look at the emulator, open bugs in the SDK or NDK support.
I guess spending resources moving from Eclipse to Android Studio and still not there, after one year is more important.
Microsoft is so hot right now!
Why the hatchet comment? What basis do you have for saying this?