Ask HN: Anyone else planning to head back to Microsoft?
With Microsoft's improvements in how they do business and greatly improved understanding of open source I'm really starting to think more seriously about heading back into their technology realm for some years and see how it works out.
113 comments
[ 3.0 ms ] story [ 156 ms ] thread(to name a few) 1: Recently helped a friend install a new hard drive in a Lenovo Edge 15 only to find out the laptop has problems with Crucial SSDs (it brought back to many driver / hardware compatibility issues from my past jobs)
2: Features like Dashboard, Expose, Notifications have become real workflow time savers in OS X and I've never seen as good implementations in Windows.
3: I've never seen a PC laptop with a touchpad as good as on a Mac
4: the BSD / *nix base of OS X is to valuable to be without
5: Web development tools are just hands down better on OS X - Transmit, Sublime Text, color pickers, etc... theres just no equivalents on Windows.
6: Handoff in OS X with my iPhone is such a great convenience.
and to many more... I think Apple has lost they're way a bit and really need to focus on making OS X better; in recent years, iOS has received to much focus (IMO), but things are fine for now (so long as it doesn't get much worse)
And I can always throw Windows into a VM or bootcamp - it's much more difficult to put OS X into a VM on a PC.
Also, I think that point was less about Sublime and more about the other development tools that are Mac only.
I'm sure most of the tools have alternatives on Windows, I don't think it'll be anywhere near as good, however. Examples include software by the OmniGroup and Panic, which make some of the best desktop software I've ever used.
"there was a lot of software that was vastly better than the equivalents on Windows."
The reverse is true as well.
"Examples include software by the OmniGroup and Panic"
Coda is so overrated IMO.
Even the feature screenshots on their website look like a lot of oldschool Mac software. There's nothing "best desktop software" about it. I'm genuinely curious what specifically you think it's good about it.
Is it how their window buttons are vertical "just because", spitting in the face of good UX?
Is it how they recommend you connect via FTP to a remote server as soon as you open the app to publish your files directly from your computer? Do you have any idea what a horrible practice that is?!
Oh and let's just put the browser in our app, I'm sure that is a genius move, nothing wrong with that! /s
Oh yeah, and Panic's SSL certificate expired, not very professional if you ask me.
Right... well...
TLDR my point is I don't believe you when you say Mac has better software on average and your examples don't convince me. I work on a Mac too. But hey, we all have preferences.
But the UI aside, the problem I was having is that it would just entirely hang the app if you had a large number of changed files or large diffs. This was about three months ago, so it's possible the performance problems have been fixed.
Haven't found a good alternative on Windows for a Git GUI tool that comes with Git-Flow.
(Disclosure: I'd prefer to run a ThinkPad or something, but meh, boss-provided machine.)
#5: There's SublimeText for Windows, Komodo, Notepad++, and most other tools. Transmit is nice, but there's ExpanDrive for both mac and windows which is equivalent, not to mention open source tools like WinSCP (http://winscp.net/eng/docs/interfaces). MobaXTerm (http://mobaxterm.mobatek.net/) is hands down better than iTerm or any other mac terminal that I've seen.
[0]: http://hyperdock.bahoom.com/
I've customized mine with touchegg (made for GNU/Linux systems) and it does everything I've seen Mac users do and more. Need no Apple for that one, and there are probably Windows tools as well though I wouldn't know which.
> 6: Handoff in OS X with my iPhone is such a great convenience.
I don't know what "handoff" is, but regarding interoperability, a rooted Android phone running GNU tools (e.g. Linux Deploy app) is a dream when you have a GNU-based laptop/desktop operating system as well. I can browse my phone like a network drive and getting a shell is as easy as connecting to any old linux server.
This doesn't make your other points less valid, by the way. There is surely a good argument to be made for OS X.
You can also make calls or send texts from a mac if your iphone is nearby.
I think this refers for your phone and computer to integrate. For example:
- When your phone is near your computer, your phone ringing will pop up a notification on your computer, which allows you to answer it via OSX (e.g. using headphones plugged into your computer).
- When your phone is near your computer, Messages.app can text message via your iPhone.
From here[1]:
> When your Mac computers and iOS devices are within Bluetooth range of each other (about 33 feet or 10 meters), they can automatically “hand off” what you’re doing from one device to another. For example, you can start writing an email in Mail on your iPhone, then instantly pick up where you left off in Mail on your Mac.
> Handoff works with several apps that come with OS X Yosemite and iOS 8: Calendar, Contacts, Mail, Maps, Messages, Notes, Phone (iOS only), Reminders, and Safari. It also works with Keynote v6.5, Numbers v3.5, and Pages v5.5 for Mac, and Keynote, Numbers, and Pages v2.5 for iOS. Third-party apps may also work with Handoff.
[1] https://support.apple.com/kb/PH18754?locale=en_US
2. Windows doesn't need Expose because Alt+Tab actually works. There are equivalents available for Dashboard and Notifications (like Growl).
3. I've never seen a Mac with as much freedom and flexibility as a PC, but I have seen touchpads that work well. Who wants to use a touchpad at all though unless you're forced to? I'll take a 5 button vertical mouse over a touchpad any day.
4. Maybe. I like running a Unix that's closer to production though and nobody runs OS X on servers. A VM is better IMO.
5. Visual Studio with Web Essentials is hands down the best web development tool there is. Javascript, CSS and HTML autocomplete throughout the entire project. Go to definition that actually works...throughout your entire project. There is no equivalent on any OS.
6. ~~Android Chrome and a PC can do the same.~~ (OK, it can't really but I don't need it and there are too many things that I do need on Windows that are so much more important, like a window manager that doesn't work against me.)
Good games, though.
The best advice is to wait a few years and see if Microsoft is really following through on its promises instead of just buying its hype.
edit: Thanks for the downvotes on a Ask HN.
Microsoft is now a multi-device, multi-technology company that is focused on getting their software and services on as many platforms as possible. The cloud and their services are their future, if they cannot make the transition to interoperability, they will collapse. Prior to this, Microsoft was structured in such a way that everything depended on their OS, so Microsoft declared war on OS/2, Linux and MacOS.
Windows sold Office, and Office and NT sold the enterprise market.
Now, any platform sells office, mobile and desktop. Windows sells Microsoft's cloud services like OneDrive and Office 365, but so does OS X now. NT drove enterprise revenues, but now it's Windows Azure running Linux or Windows, either way Microsoft makes money in hosting it. For consumers, Windows licenses were a cash cow for Microsoft, but Apple has set the price of Operating Systems to $0 with their upgrade policy, now Microsoft is following with free Windows 10 licenses for a year. My guess is that they will bundle Windows licensing as a service that gives you access to Office , XBOX Live and other Microsoft properties, so it will is less of a Windows license and more of a Microsoft Experience license. Either way, if you use Microsoft's services on any platform, Microsoft will still earn their revenue.
To sum that up, Microsoft's interests are no longer in opposition to the rest of the computing market, it is in alignment with it due to their multi-platform strategy. They are in a position to more easily do things to earn your trust, as those things will also add to their revenues.
What happens if they gain a dominant or monopoly position in something again, are we just supposed to trust that they won't behave badly once their market pressure is gone? A new CEO and a company the size of MS won't magically change their company culture overnight (especially with a CEO who was previously a longstanding MS employee who participated in past wrongdoings). Rebuilding trust takes more time than this.
Microsoft picked Satya because they were backed into a corner, but everything I've seen from this man tells me he's the real deal and believes that a multi-platform strategy is the right then and the best way to earn revenue. However, as with any company, expect them to have a bias towards things that will make them the most money. At the present time and the foreseeable future, for me, it appears that the interests of Microsoft are in alignment with the interests of users of all platforms.
If they gain the dominant or monopoly position in something again...what would that be, and in what decade do you suggest it will happen? If holographic computing somehow takes off, that appears to be the only place where they are positioned to lead a market in the near future.
If it's a question of Apple or Microsoft, Microsoft appears to be the good guy these days, as Apple is still building their walled garden. Microsoft is being a major contributor to Open Source code though. Everything on the new Microsoft stack is getting open sourced as quickly as possible. They make the best commercial software tool in the world for making software (Visual Studio), and it is particularly adept at deploying .NET software, so they are opening that up to the world to get .NET in as many places as people want it. They are also opening up Visual Studio to a variety of languages, and making it a development tool for cross platform development for iOS and Android. They want to sell Visual Studio.
Trust takes time though. Keep your eye on them and compare Microsoft to their peers, you may be surprised by what you see.
Two things hold me back. One is the lack of a POSIX console - I know that there are some possibilities to bring equivalent functionality to Windows, but I don't yet know enough about them to know if they're sufficient. The other much more significant issue is that testing on iOS devices is essential for my job, and something tells me Apple aren't about to release the iOS Simulator for Windows.
It's disappointing because when I switched from Windows to OS X (back in 2006 if I recall) it was a giant breath of fresh air - the OS felt so much simpler and cleaner than XP. But these days it's the reverse - every release of OS X feels messier and less reliable.
I work exclusively with Microsoft at work (MS Gold Partner consulting firm BI focused and also app dev). Thus, anything I build for a client or internal use won't be Unix-based, but I have to do a good amount of ad-hoc text munging and data transformation (a good number of CSVs and log files in various formats as data sources) where I can use any tools I need. I appreciate the strength of Unix tools for this.
The same is happening on iOS really. It's becoming more and more boring - in a good way. It's reached a point where it's pretty much complete and now they're just tweaking bits, adding a few new features as things become possible, etc.
Windows 8, on the other hand, was really exciting - but not in a good way.
Switching to an all-open-source ecosystem did not come without costs but now that I'm there I'd have to make all those costs again and run the risk of another repetition.
Open source software is about as stress free as it gets and less stress is a good thing in my book, a factor they never mention in those 'total cost of ownership' graphs.
Stuff usually just works, usually works good enough and if it does not you can change it, it's like building things from clay rather than from blocks that won't fit together unless they were intended to fit together from day 1 (and they usually aren't).
You couldn't pay me to switch back to either Microsoft, Apple or any other closed source software provider and I try very hard to stay away from SAAS components for much the same reasons.
Nonetheless, you can be a SOB of a profit and world domination seeking corporation and embrace open source at the same time. Think Oracle or Google (and many others).
Also I fear this new wave a little bit more.
Powershell is (imho) a verbose mess and is the current best attempt at making a working scripting language for Windows. I use Powershell all the time but its..inelegant. Give me bash scripting any time.
MS is always flirting with new technologies and sexy R&D, but at their heart they're never going to change.
It was a bit more work to set ansicon + Console2/ConsoleZ (although cmder might be an easier option), but now I can use standard bash scripts and do most of what I need easy.
In addition, this process was a one time deal. It's not like you have to set it up each time you want to ssh somewhere.
Why do I really use windows (vs some linux, I have no interest in Mac)?
Play most games (not on Mac or Linux)
Anything else that cygwin can't get me, I have Vagrant and VirtualBox.
Windows isn't that bad.
Although my opinion of OSX has soured with each new unstable version, it's hard to give up the Unix underpinning + mainstream app combo (Office and Creative Suite). PowerShell with Unix aliases aren't the same.
Also the installing of CLI programs seems to be really hacky through powershell.
Anyway, I think it's a tradeoff in either direction - Programming on Linux, the way it's most commonly done now, means cobbling together a tool-set to do that work. Windows programming tools are typically more streamlined. However, on Windows you have to cobble together your kit for other things such as advanced command line tools that you may depend on.
As poor as Powershell's verbosity is for an interactive shell, it's pretty reasonable when writing scripts.
Bash + Perl/Python is certainly a more standard/sane combination on Unix, but not really a fair comparison at that point. :)
As far as mobile platform goes, Windows 10 mobile runs the same apps that the Windows desktop does. There's now a dynamic view engine and you simply create a tablet view or a mobile view of your app and it runs the same executable.
Businesses are going to run to this because it will bring their internal app development costs way down because they don't have to have multiple version of apps they don't care to run as web sites. Companies who develop apps for the Windows desktop will have an incremental effort to also deploy to mobile.
Additionally, Microsoft is releasing tools to cross compile Android and iOS apps for Windows, so expect the availability of apps for Windows Mobile to increase significantly as the barrier to publishing to that platform is torn down. Yes, you can take Objective C iOS app and compile it on Visual Studio and deploy it to Windows Mobile now. The same holds true for Android.
I work for an MS Gold Partner consulting firm, and many of our clients are transitioning to the MS data/collaboration stack (SQL Server and all associated services; SharePoint and associated services) for both OLTP and BI. We see customers transitioning from other traditional enterprise solutions (Oracle, DB2, and others) as well as open source solutions (Vended and homegrown MySQL and PostgreSQL).
I am just curious where you see the market dying - it seems to me that Microsoft is competing effectively, gaining some new customers and losing others.
As for developing side, I already switched to C# and am very happy. It's clean, fast and reliable. LINQ is a beast.
In my imagination, they'd drop their whole legacy OS except for an emulation layer, and port their Windows Store stuff to a new platform.
The new platform, as I imagine it, would be based on Linux and focus primarily on web apps and games. One part web-based cross-device UI runtime, one part serious gaming support.
The idea of Microsoft embracing Linux on the desktop is, I think, a popular April's Fools joke, but from my naïve perspective, it seems like a pretty reasonable idea.
I thought OS X was really cool in 2006, and since then I've become gradually more and more annoyed with it. I'm more and more confused by why I need to use this complicated operating system... I feel like its whole paradigm is dated and tedious.
Like when I run out of hard drive space. OS X will tell me with some ugly alert box that "you're out of space." No clue why. I have to download some external software that can figure this out by scanning my drives. Junk keeps accumulating in weird folders that I didn't know existed. I feel like I'm dealing with a huge bureaucracy.
And when I open Finder, for some reason I am presented with a (rather slow) list of, like, all files, in an intimidating and overwhelming way. Of course I know how file systems work, but in the shoes of an everyday computer user, the whole thing is unfriendly and weird.
Then there's the issue of all the overlapping windows that I'm always fidgeting with, resizing, moving, maximizing and unmaximizing. For some reason maximizing and unmaximizing feels like an extremely heavy task for the computer. I don't know why it takes more than a millisecond. It all adds up to make my user experience annoying and like I have to do unnecessary work.
Not to even mention iTunes and the App Store... Jeez! It's enough to make me question the whole narrative of technological progress. I think Microsoft could pretty easily make something convincingly better than all this.
Dropping Windows entirely is certainly plausible, but they'd probably do it in favor of the Midori OS their research lab has been working on based on the managed runtime aspects they've been learning from Singularity.
Of course I know how file systems work, but in the shoes of an everyday computer user, the whole thing is unfriendly and weird.
If you consider this to even be a problem, then switching to Linux will not help with this. At all. It will only exacerbate it.
Yeah, it is fantasy. I don't know enough to say whether it's far-fetched. I don't think it's obviously nonsensical.
Linux of course has tons of advantages. A huge community, lots of hardware support, open source, etc. Microsoft has been talking about how they "love Linux." Why wouldn't it be a reasonable base for a new platform? Like how Apple went with XNU/Mach/BSD?
I'm not really talking about "switching to Linux". I'm talking about building a new operating system that uses Linux as the underlying kernel. Since it's my fantasy, I declare that this new operating system has a very clean and well-organized file manager...
But Microsoft is trying to get out from the shackles of their Win32 history -- the "modern" store apps are only allowed to use a subset of the API.
With the open sourcing of .NET we're probably going to see .NET applications running on Linux servers too. So Windows clients get less and less valuable. Remember that there is also a reduced version of Visual Studio for OS X and Linux now. Chances are that MS is sacrificing Windows (for developers) to increase the market share of Azure (Linux servers there).
The general public will keep buying whatever they find at the mall.
(Edit: typos)
True, but in the Dockerised world we're all moving towards your development machine doesn't matter too much anyway - you can just stick everything in a VM.
The main thing that still bugs me about Windows though is the hideous text rendering (I know it's switchable with hacks, but hopefully 4K will resolve the default for me).
I'm 100% linux, however if I ever want to do any sort of centralised user database, AD is the key product I'd use.
Unlike most other things, it just works. It's also really simple to integrate with OSX and linux (assuming you bind directly with SSSD, and don't do any silly translation.)