No, I much prefer today's world of Google, Apple, Samsung and FOSS in all its myriad forms battling it out. There's more developer frameworks than ever available to us. More languages. More everything.
No. I don't want to go back.
No, I much prefer today's world of Google, Apple, Samsung and FOSS in all its myriad forms battling it out. There's more developer frameworks than ever available to us. More languages. More everything.
No. I don't want to go back.
The world of Google and Apple (Samsung and FOSS aren't even a player) is a world of closed computing platforms where people can't control their own devices and can't and don't code for them. More languages? I don't think so. How many languages can you use to write apps for your iPhone or Android device? Objective C and Java respectively and that's about it. With Google not only do you not control your apps/device even your data isn't under your control any more.
Yes, Microsoft's business practices weren't so great, but I don't agree the new world is much better. As a developer it actually feels worse. The only exception is Linux and server side development which is in a sense a niche (plus that existed before Google and Apple rose to their dominance and could have co-existed with Microsoft perfectly happily).
I strongly disagree. FOSS is a huge force for both backend development and front end web development. One can also argue that Android is mostly open. EDIT: The large majority of servers in the world are running on FOSS. I can also predict a large number of upcoming devices like the internet of things to be running on it. Whether or not they run Android is another story.
The only reason FOSS may not be a "player" is because it's not a single monolithic organization, but instead it's a very loose coalition of thousands of individuals, organizations, and companies.
> How many languages can you use to write apps for your iPhone or Android device? Objective C and Java respectively and that's about it.
This may be the case for clients, but a lot of mobile apps also depend on server side apps.
In North America and Europe it's theoretically open but OEM's dependence on Google's services (which for many people are part and parcel of the Android experience) and the control Google exert through that means that there are real limitations on how open it is in reality. This week showed just how much freedom Samsung, the largest smartphone maker in the world, has to do what it wants with Android - almost none.
You can argue that that's not really Android, it's the services, but until there are solid FOSS alternatives to those services you can't use Android to put together a compelling smartphone without Google.
That may change over time but for now for a majority of people it's a relatively closed platform.
In China and much of Asia where Google services are either unavailable or less compelling it is far closer to open. OEMs use the OS, bundle what they want and ship it without Google knowing or controlling anything and that's maybe a third of Android shipments worldwide so not insignificant.
I actually have an older Galaxy S and I installed CyanogenMod on it without Google's services, so no Google Play, no GMail, etc... The phone is actually usable. I have more apps on it than I have on another Win Phone 8, a Lumia that I received as a gift.
As a browser, I'm using Firefox, which I happen to believe it's the best mobile browser right now. For email I'm using K-9 Mail, a pretty good open-source email client that can also do PGP encryption btw. My contacts and my calendar are synced fairly OK, since I'm connected to my Google account through the Exchange protocol.
For maps I'm using OsmAnd - extremely awful interface, but the maps are from OSM and are awesome and because it helped me get to where I wanted, I have tolerated the UI. For music and movies I'm using Apollo and VLC.
For Facebook and Twitter and other high-profile apps, I could have gone with Amazon's Appstore, however I preferred to use the web interfaces, packaged as apps in Firefox's marketplace. Not as snappy as the native interfaces, but they work and you also get better sandboxing.
The amount of work to go from zero to open-source Android is huge. You could fork Android and release something usable today. Amazon did it ;-)
1) This is really an option for a relatively small part of Android's install base most of whom don't know F-Droid exists, let alone how to install it or why they might want to.
2) Any company wanting to produce a phone on this basis is (a) depending on a lot of other products and organisations and (b) putting out a product with - for instance - a substandard maps product next to the competition.
So yes it's open, but not in the way that I think many would like it to be (that is where a genuinely open phone that the average punter can and does use exists).
That said, yes Android isn't technically Android without Google services but it doesn't mean that stripped down it's still not useful. Just ask Amazon or one of the many companies in Asia that have forked it.
> until there are solid FOSS alternatives to those services you can't use Android to put together a compelling smartphone without Google.
You've made my argument in the same post.
> In China and much of Asia where Google services are either unavailable or less compelling it is far closer to open. OEMs use the OS, bundle what they want and ship it without Google knowing or controlling anything and that's maybe a third of Android shipments worldwide so not insignificant.
The interesting thing for me is how Google react to the areas where they're losing control of Android. For them Android is (or was) a means to an end - it stopped Apple getting control of the mobile space which would have made Google beholden to Apple for traffic to their services.
I personally don't believe Google have particularly strong feelings about Android as an open source property, they care about it for what it does for them in areas they do care about. It'll be interesting to see how that plays out over the next few years and what that means for Android.
That last point is one of the reasons for why I switched away from iOS to Android. I have yet to encounter an Android phone that doesn't do Wifi tethering because the mobile career says so. And my prior mobile career also had the nerve to ask me for an extra 4 EUR per month for wifi tethering. It's my device damn it and I feel that Windows Phone is a shitty iOS replacement, without the sexy.
> How many languages can you use to write apps for your iPhone or Android device? Objective C and Java respectively and that's about it.
For targeting iOS you can actually use Ruby [1], C# [2], Java [3]. Many iOS games are using Lua for scripting. Speaking of which, Unity 3D is a platform for building games and you can use Javascript, C#, Boo or UnityScript (a sort of ActionScript). The problem with iOS is that Apple had artificial restrictions that disallowed virtual machines, so bytecode and virtual machines were out. I think they lifted those restrictions, though iOS is what I call a defective by design platform.
On Android there are no limits. People build stuff with Java, because it's the least painful path and works fairly well. Games are still being built with C++. I have used Scala and it works well. Many people are also building apps with JRuby and Clojure ... though Dalvik is not as capable as a real JVM, so dynamic stuff has performance issues.
Even if you target the browser, you can compile C++ to asm.js and for replacing Javascript there are full-featured replacements available that use Javascript as bytecode - like Dart or ClojureScript.
> server side development which is in a sense a niche
Err, what? 99.9% of all software being built today is either server-side or has indispensable business logic that's handled server-side.
> [Linux, server-side] could have co-existed with Microsoft perfectly happily
You're probably too young to remember all the shit Microsoft did to prevent Linux and the web as a platform from happening. That's OK, you'll live and learn.
[1] http://www.rubymotion.com/
Anyone owning a computing device in the days of Microsoft's reign was able to use any programming language in existence (pretty much) to do development for their device. The APIs were accessible and libraries and technologies played with each other. Mostly because they were around some common lower denominator (e.g. a C or lower level API). You could install anyone's software without needing an intermediary. It was clear that you owned your device, you owned your software and you owned your data. They didn't force other software vendors to pay them a fee. It wasn't Microsoft that broke all that. Microsoft is only playing catch up there.
I don't know Windows Phone 8 at all but if all you're saying is right then that sucks and I won't defend Microsoft there.
SaaS is just another facet of this multi-pronged attack on the user.
You could use any programming language you wanted - as long as you ported the headers and import libs to it. The Windows SDK and other Microsoft SDKs supported only C (Microsoft's, not Borland's or Watcom's, nor GCC) and Visual Basic. Wanted to use Delhi and Borland didn't create import units yet? Too bad, you had that to do for yourself.
Which is similar situation today. Both iOS and Android have well defined ABIs. Do you want to use something, that is not oficially supported by respective vendors? You can create the bindings for yourself. Nobody is preventing you. For some languages it was done, for some it was not. Android by its nature supports anything that compiles into Java bytecode, so even the bindings problem is a less of an importance. (Yes, there could be problem with Clojure, because of different assumptions on the part of Clojure and the constrains on Android devices. Due to that, it will run, but very slowly).
You can install any apk on Android device, without any intermediary. On the other hand, Microsoft got Apple envy and does prevent you from installing any application on WP handset.
In today's mobile world, Apple and others could learn from the drawbacks of the desktop world and implement a "better" system, at least in some respects. It has certainly helped their revenue.
http://www.embarcadero.com/products/rad-studio/ios-developme...
http://scala-ide.org/docs/tutorials/androiddevelopment/index...
I'm guessing no.
The entire experience is a sorry joke. I'm a big fan of Delphi as far as a tool to produce good/fast/native apps goes. They really dropped the ball with the ios/android tools. They ripped off GPL code, causing multiple patches to "fix" mis-appropriated open source code, it's fairly obvious there is no money, and the only customers they have are the existing ones who have a bunch of greybeards with a lot of Delphi experience and nothing else who are desperate to pump out _something_ for the mobile market, but are unprepared to learn _anything_ new.
Sorry, I'm just bitter that they took a decent product (Delphi 7), and took a shit on it, and then continued to grind it into oblivion.
Android allows you to freely deploy your applications to their devices, while iOS requires a little more work. In neither case do you have to go through their respective stores (I'm thinking enterprise/personal apps here). For commercial sales it's increasingly a moot point: consumers are purchasing apps through app stores regardless of platform.
As a developer, I've never felt more free, less beholden to a corporate entity and their hidden agenda, and have an awesome stable of tools and technologies from which I can use to build solutions. It's almost gotten to the point where I have too much choice!
And that's awesome!
Compared to truly open devices, and moderately open systems (even Windows or OSX), that is an absolute joke.
So I guess your answer is, Objective-C, Lua, or Microsoft technologies (implemented by Xamarin)? I guess Microsoft may have a role to play in this. ;)
iOS - ObjC, Ruby, Common Lisp, Haxe, Java, HTML5, C#, C++, probably others...
Android - Ruby, Python, Clojure, Java, Common Lisp, Haxe, C#, HTML5, Scala, C++, C, anything that runs on the JVM or translates to Java, anything that compiles to native code. Basically everything. Some are easier than others.
On my phone there are commercial apps that run on Clojure and Haxe, two fairly obscure languages.
This is hilarious, since Linux and BSDs are just killing it in the server space - take a look at stats on Amazon EC2, or DigitalOcean, or even just server market share stats. Take a look at what pretty much every web service uses as their backend (Linux).
Linux is pretty much the only game in town in the HPC (supercomputing) market.
> As a developer it actually feels worse.
I'm currently working with someone who only knows how to program with a ton of hand-holding from VS. I don't doubt it feels worse for you.
Linux makes development feel 1000x better if you are willing to learn a few basic things, which you'll retain forever.
This is why the world is better today - because Apple, Google, MS, IBM - not one of them 'controls' anything. They all push a little in various directions, but openness is winning. Linux is more relevant than ever, Mozilla is more relevant than ever, and the open web is bigger than ever.
EDIT: Something happened to my footnote. The HW specs used to be open in the PC WinTel era. We could freely exchange software. We could run multiple OSes. Lots more choice in languages etc.
> The world of Google and Apple (Samsung and FOSS aren't even a player) is a world of closed computing platforms
As a user of Omnirom and a donator to Replicant I don't understand how you come to this conclusion.
Agreed, the alternatives to google apps are not too good today, but that could relatively easily be changed. But if compared to windows phone. Really? How?
> where people can't control their own devices
If installing a different operating system with the tools from the official SDK is not controlling my own devices, what is?
Again, the proprietary drivers is a bad situation, but compared to windows phone, what exactly do they more openly?
> and can't and don't code for them.
All the tools required to build apks are open source. The eclipse android plugin was open source and android studio is open source. Enabling installing your own apps directly is natively built in and can literally be enabled in seconds. If you "can't and don't code for" android even if you want, then there is really nobody but yourself to blame.
> More languages? I don't think so. How many languages can you use to write apps for your iPhone or Android device?
As others have said, you may want to use android's gui toolkit, but other than that native applications can rather easily be wrapped. As it is linux, you may even run command line programs in any language you can compile for arm or compile an interpreter for directly.
> Objective C and Java respectively and that's about it.
Have you actually heard about xamarin'c c# for mobile devices? python + kivy? ...?
> With Google not only do you not control your apps/device
Well, I can compile the operating system myself and remove any apps I don't like in the process. I could also remove them from the device because I have root rights. There is literally nothing but the proprietary drivers and firmware I don't control, but again, how exactly does that get better with windows phone?
> even your data isn't under your control any more.
I use the google apps for convenience but you can use your android device without them perfectly fine. Install f-droid. Install only open source apps. Try doing this with windows phone?
> Yes, Microsoft's business practices weren't so great, but I don't agree the new world is much better.
With android being open source you can see the benefits directly: Other systems like Blackberry OS (or whatever it is called) or Sailfish OS can (rather) easily implement android's runtime and run almost all android apps natively. Compare this with what wine has to do?
> As a developer it actually feels worse.
It feels worse not to have proprietary microsoft specific tools that lock you into the microsoft ecosystem forever?
When most people get a job, they're going to be using Microsoft because that's what they will be given. I've never been somewhere where I'm told which search engine to use. Most places still don't offer an alternative to IE in the work place. That's why developers are still coding to IE7.
It really is frustrating that people don't understand this. I wouldn't mind a better Microsoft, except for the fact that people have short memories and don't really understand how powerful Microsoft currently is. Google is the the same ballpark? Seriously!?!
The Office formats, for all their quirks, are open and documented. There's no one forcing you to use MS Office. You probably can't switch which OS you're using at work, but Windows is fairly permissive of portable apps that evade most of the security restrictions. We're locked into using IE8 at work for compatibility reasons, but I'm able to use Chrome on my work computer just fine.
If you don't think Google is heading down the old Microsoft route, I point you to the bundling of Google+ with all of their other apps. Yes, it delivers value. But that's what Microsoft said when it started bundling IE with Windows.
A better way to put that would be businesses can't opt out of consumers using Google. Obviously you can not be listed simply by using robots.txt or not having a website.
This makes 0 sense. You can absolutely opt out, but wouldn't every business want to be at the top. I imagine if someone comes up with a better page ranking algorithm they definitely have a shot at beating google.
>bundling
I think its referred to single sign on in the enterprise world. Its much better than having to remember different logons and profiles for every google service (which youtube did)
Not a chance... about the same as Linux has at beating Windows on the desktop, in my opinion. It's too entrenched, too far ahead, barrier to entry to even get to a level playing field is too high...
I'd love to see it, to be honest. I hope beyond hope it will happen. But I think it's more likely to see something remove the need to search entirely than have a new search engine take out Google's dominance.
The technology sphere is a lot bigger than the desktop now. This year there will be almost twice as many Android devices shipped than Windows + iOS/OSX devices combined. The future of technology is going to decrease the importance of the desktop even further, and Google has 90s-Microsoft level market share of every other type of consumer networked device. This is what scares people about Google.
http://redmondmag.com/articles/2014/01/07/android-growth-ecl...
The "decreased importance" you cite is only relative; I for one don't see the desktop becoming unimportant any time soon.
For one thing, my aging parents need 24 inch or bigger screens to adequately see what they're doing. As a programmer and watcher of digital video I need a minimum of 24 inches of 1080p screen.
Then there's the enterprise, where biggish screens are needed for basic IT.
And I agree there will always be a need for large screen devices, but this doesn't necessarily mean desktops. Smart TVs or set-top boxes like Apple TV or streaming devices like Chromecast or consoles like the Xbox are where the growth is happening in the large format market. The Playstation 3 is the most popular Netflix streaming device.
I'm one of the dinosaurs that uses my laptop for everything these new consumer devices provide, but it doesn't mean I ignore that most people are moving away from this use case.
I think it's very interesting to see an internal MS manager with a background in Bing and Azure to become CEO, interesting times are sure ahead.
I personally strongly prefer modern "desktop" computing (that is, working with a computer with large displays while at a desk; I don't care what form factor the actual box takes) to computing on small devices.
Separately, I tend to like Microsoft's products more than Apple's and Google's even though I'm not a .NET developer. I'm weird, I suppose.
But all that said, Apple and Google are right that desktop is not hot—even a fan of desktop computing like myself must admit it's fallen out of favor. I've had my share of rants about why that is and what could be done to address it if firms are interested. But putting that tangent aside, I find those who bemoan Microsoft's dominance on desktop are using the wrong angle. If you like desktop computing like I do, but you don't like Microsoft, don't attack Microsoft. Instead, ask your favored firm (Apple, Google, whatever) why they don't offer you something you'd like in the desktop space.
I for one never agreed with past depictions of Microsoft as a monopolist on the desktop even through my experiments with oddball alternatives like OS/2. Their tricky business being what it is, they were not a monopoly. There were other options, but I eventually realized that I didn't like the alternatives.
Finally, I'm not sure I precisely agree with the implied shift from "desktop" and "the Internet." I figure I understand what you mean, but I can't help but envision the popular Homer Simpson quote: "Wait, they have the Internet on computers now?" Being a desktop aficionado, my desktop computing environment is all about network-enabled consumption and creation.
I see the chief battlefronts as:
* Small-screen versus large-screen (where I favor large screen and want small screen devices to be subservient views on applications running on my application server).
* Federated or self-control with sharing via documented protocols versus the plain cloud (where I favor federated or self-control because I feel the plain cloud we have today has brought us tremendous lock-in and multi-device/multi-cloud chaos).
All of these involve "the Internet," being the common communication medium.
IMHO, it's not an issue of "desktop" vs. small device, but integrated applications and presence that works smoothly across platforms vs. monolithic and siloed apps that keep you on one device.
Nobody does this well yet, but the holy grail of computing is to be able to move from desktop to tablet to laptop to phone and have your apps, data, and presence seamlessly follow you around.
Mobile has lept ahead in perceived value because it provides an illusion of that integration. Since you have the device with you always, you get a taste of what having everything everywhere would be like. However, that is fleeting and the providers have jumped at the chance to make it a walled garden that feels open (since the device is always with you), but doesn't share or play with others.
Eventually, people will become aware that mobile only is closed and bad, and integrated open multiplatform will rise, whether that is based on multi cloud or personal cloud or whatever technology best supports that seamless transition between devices.
It's at least partially on Microsoft to come up with good reasons for normal people to use their platform over all other options, and they've fallen very flat on that note in the past 15 or so years - particularly in the consumer space. It'd be interesting to see a revitalized Microsoft really attacking this space, but the promotion of Nadella makes me think that this isn't really what the MS board has in mind.
I can't come to the same conclusion. Just look at how much innovation has happened to areas that Microsoft dominated as opposed to those dominated by Google. Google basically sets fire to whatever it gets into. Look at how much they've enriched the developer space in those areas. Everything Microsoft is still stuck in the early 2000s.
When I think 'programming space' I think open-source - C, C++, Java, Mono, Javascript, Python, Ruby, R, Lisps, Rust, Dart, Go, Haskell, OCaml, etc...
Google doesn't immediately come to mind because they just use and give back to the OSS space, not caring too much to lock developers in.
Actually, neither do I. Its funny, because when they do hit on something like Node.js (built with v8), Google ignores it. Its sort of puzzling actually.
I'm not trying to suggest that Google isn't contributing positively to the dev community, but I strongly dispute the idea that they have enriched it in any way proportionally to the way they've profited from it.
The archive is still being prepared, but I am genuinely curious to see if it is better than the various office documents, spreadsheets, and backup formats I have had to use in years past. I am, for the moment, optimistic.
On arrogance - this comes with size. The larger a company gets, the more internal stakeholders they have. What was once a simple, "Of course we'll change that" turns into "Who else is impacted to this change?" to "Let's only change what we need to, and not get distracted by everything else."
My inclination is the more competitors, the better. But we don't necessarily need more standards. Creating another service provider for cloud based computing is great. Creating another browser that everyone needs to optimize their websites for separately - not so great.
Bing is actually doing surprisingly well, considering the team competes with probably the most successful department and the foundation of GOOG. IMHO it's likely one of very few successful strategic moves of MSFT in competitive markets. Without Bing, GOOG would pretty much print money and pour money on whatever futuristic projects they feel like. Oh, well, they're already doing these stunts, it would only get worse without Bing. Azure and Office-in-the-cloud alone cannot compete with freebies backed by big pockets.
Creating another browser that everyone needs to optimize their websites for separately - not so great.
I agree on the pains caused by browser fragmentation, but I do think it's still a good thing to have IE especially the new versions around. The recent move of GOOG pushing for Dart is a dangerous sign that GOOG is starting to flex its muscle and do whatever they want. Mozilla alone stands no chance in such a challenge, in a same sense they couldn't in a battle against MSFT about 2 decades ago.
You say it like Google's futuristic projects are bad things; if anything, we need more of them!
The term you're thinking of is conglomerate, because Google has at least one competitor in every one of it's markets, which isn't a monopoly.
Only when getting fined for antitrust or monopolistic behavior, which doesn't mean it is a monopoly - only that a regulating body is trying to prevent it from eventually becoming one.
Definitively, mono-poly means one entity in the market.
That also describes Bing.
> The recent move of GOOG pushing for Dart is a dangerous sign that GOOG is starting to flex its muscle and do whatever they want.
How exactly is Dart dangerous? It's open source, unlike C#.
One nit to pick here: C# is open sourced, though the .NET framework is not. Anyway, let's focus our discussion on Dart.
Somehow I had an impression that GOOG might have a plan B that would push Dart to replace JS on the web and Java on the mobile and a walled-garden that unifies current ChromeAppStore and PlayStore. JS would be totally marginalized and obsoleted. I'm not a fan of JS, but throwing away the enormous efforts done for the past decade is too much a churn and waste for me to swallow. I could hopefully be totally wrong though.
Hardly lost.
We are all better off with a Bing than without. I can comprehend literally zero harm caused by Bing. It's not like you can make a "but IE hurts developers" argument here.
Moreover, if 1/3 of desktop US traffic is of nominal value in your opinion, I think possibly you're jaded.
http://www.statista.com/statistics/216573/worldwide-market-s...
You're tarring more than 100,000 people with that brush, many of whom were not at Microsoft back then.
He's not saying anything about any of the natural persons involved acting outside their roles in Microsoft.
Corporate "goodwill" exists in negative forms as well, and Microsoft has acquired quite a bit over the years.
Why are they so behind in C++11 support in their tools then? I think they are falling behind in their tools advantages already. With emergence of OpenGL debugger from Valve that will only escalate (at least on the gaming scene).
It wouldn't be unfair to call me a Microsoft "hater", but I've always had respect for their development tools, and especially their compilers. I'm doing a little Windows development these days, but it's on an ancient version of Visual Studio (2003) that can't be upgraded at this time, so I'm not familiar with the latest and greatest. I'm surprised to hear they are behind the curve here, although I'm not surprised to hear that anyone is having trouble implementing the amazingly complex stuff that was introduced in C++11.
Disclosure: Microsoft employee, but not in Visual Studio group.
Having used multiple languages and technologies, I'm not even slightly impressed by VS.
I've use VisualStudio every day for the past years. And honestly there are a lot ideas they could borrow from other tools like Eclipse.
Some examples that I personally feel are ways that C# in VS is lackluster compared to Java in Eclipse.
No proper automatic build. While the stuff in Eclipse is a bit too aggressive sometimes it's really one of those really cool features to have.
Errors, warnings, other tools like StyleCop don't show errors inline with the code. I mean, really? I have to scroll through the error list and click?
It also doesn't really seem to understand the code it's processing. I'd expect that when I'm working on Silverlight with C# that the premiere tool from Microsoft should be able to handle things like refactoring properties in C# where it would update automatically in XAML.
And this is not even mentioning the complete trainwreck that is MSDN. Perhaps you can understand it once you really get into it, but I find it extremely confusing the way it mixes different frameworks with similar but subtly different functionality. (Eg a lot of things in Windows Phone are similar, but not identical, to features in .Net and trying to find the "chain of classes" that are relevant to your code is not nearly easy enough.)
Some of these things are probably things you can fix with extensions like Reshaper. But in the end you'll pay hundreds of dollars to compete with something that is free in Eclipse.
MVC4 would be blocked by:
> MVC4 - Partial, no async features supported. > ASP.NET 4.5 Async Pipeline - Needs an parallel processing pipeline with async support, not done.
Still doesn't change the fact that these techs are one of the best ever made.
I feel like in some ways they were victims of their own success (Microsoft was). Building the core of an OS around a browser? At the time, a fairly novel idea, but really forward-looking. And I believe that's part of what brought about the massive anti-trust lawsuit.
The last thing we need is more UX failures like Windows 8 cluttering the market.