
Why you should not develop apps for Windows 10 - irrlichthn
http://www.irrlicht3d.org/pivot/entry.php?id=1485
======
creshal
It's crazy just how… _unfinished_ everything involving Windows 10 seems to be.
Half-assed UI concepts implemented clumsily, supported by an unsupported
store, updated haphazardly at a pace that makes enterprise scream bloody
murder… and all Microsoft does is trying to trick more users into accidentally
updating.

What are they _thinking?_ They can do better than this. Much, much better.

~~~
blackhole
Full Disclosure: I worked at M$ from 2014-2015.

MS has some very talented programmers. They're not very common, but they
exist. The problem is that the entire company is completely and totally
focused on developing an absurd number of new features and products, giving
them completely unrealistic deadlines, and then shipping software on those
deadlines no matter how half-assed or buggy it is.

The idea is that everything is serviceable over the internet now, so they can
just "fix it later", except they never do. This perpetuates a duct-tape
culture that refuses to actually fix problems and instead rewards teams that
find ways to work around them. The talented programmers are stuck working on
code that, at best, has to deal with multiple badly designed frameworks from
other teams, or at worst work on code that is simply scrapped. New features
are prioritized over all but the most system-critical bugs, and teams are
never given any time to actually focus on improving their code. The only
improvements that can happen must be snuck in while implementing new features.

As far as M$ is concerned, all code is shit, and the only thing that matters
is if it works well enough to be shown at a demo and shipped. Needless to say,
I don't work there anymore.

~~~
userbinator
It's not just Microsoft, but this "update culture" is pervasive in software
today. New features make for exciting marketing but in the end what most users
probably want more is stability. All the stories of forced updates and
accompanying reboots (with not even a chance to save work?) remind me of the
old criticisms of Windows being so unstable it needs to be rebooted
frequently, and how uptime was a highly-valued result of good system design.

I personally think near-daily updating to fix bugs that should've been
discovered and fixed _before_ actually shipping product is absurd. It's been
argued that this is because systems are more complex now, but maybe we don't
actually need all that complexity...

~~~
FollowSteph3
Most users say they want stability but when it comes to actually paying,
unfortunately most users will only pay for features, especially new shinny
ones that demo well. This is the challenge faced by software companies.

~~~
jimbokun
Not buying your argument.

Mac is a much more viable choice today than in the past, and I think the Mac's
slowly but steadily increasing market share has something to do with the
perceived reliability and stability of the platform.

I'm only basing this off of personal experience. I have Windows at work and
Mac at home.

~~~
popmystack
I'm sorry, if we're talking about features being buggy, OS X is not something
you exactly what to point a finger at as a good example of an OS that has
features implemented in a stable way.

Thankfully, OS X is cheap/free. I use OS X, Windows, and Arch literally every
day of my life, both at work and home.

To be quite honest, I blame consumers for all this non-sense. No one wants to
actually pay for software. I can go into this in a more nuanced fashion, but I
seriously think software across the board is a good bit cheaper than it needs
to be. From OS's to games and everything in between.

~~~
jaegerpicker
I'm always a bit shocked when I see people express this. I work in a office
with roughly 100 macs and 100 windows. The macs are FAR more stable and less
buggy. I've had this experience three different times at various companies.
Yet online I see people saying that OS X is just as buggy but they never point
what part is.

~~~
quanticle
Are the macs running the latest version of OSX? From what I've read and
experienced, OSX declined in quality when Apple stopped charging for OSX and
started using it to drive hardware upgrades. These days OSX works fine if you
have the latest, greatest, most expensive Mac hardware but if you try to
upgrade an existing machine, that's when you get errors.

~~~
popmystack
I have the latest 15 inch MBP.

------
_nedR
The worst thing in my experience about windows 8/windows 10 apps is that you
cannot install apps from 3rd party sources. Sure you can install on a
temporary/testing basis by signing in with a dev license, but you have to keep
doing this every 3 months until microsoft decides to pull the plug.

This is a problem if you are writing an app for a client who doesn't want to
publish on the app store. The only option is the very expensive and opaque
volume-licensing program which is useless if your app won't have many
activations anyway.

Ultimately Windows 8/10 is a closed platform similar to iOS. Are we as
developers willing to pay 30% of our revenues to Microsoft when the day comes
that UWP will replace .net/win32?

~~~
userbinator
I find this trend of platforms becoming walled gardens very unpleasant. The
whole idea that some entity has control over what you can run on your own
hardware just doesn't feel right --- and more so, the fact that most people
seem to be completely fine with it.

Windows, and DOS before it, used to be _very_ open. Anyone could just download
a compiler and create a binary, then use it themselves or share with everyone
else. In fact you could even use the built-in debugger (DEBUG) to write tiny
assembly-language utilities, and computer magazines --- not even developer
ones, but regular ones like PC Mag --- would publish source code listings.
Advanced users were also programmers, but there was no real distinction.

Now it seems even getting started writing some sort of program for your own
system requires going through a huge amount of bureaucracy and could involve
payment. The customary way of installing software has been termed
"sideloading" and recommended against. There is a rising wall between "users"
and "developers", making it harder for the former to become the latter.

I suppose Linux is more open, but there is still the very noticeable
centralisation of app-store-like repositories, the discouragement of
installing software via other means, and the bureaucratic process of getting
software into those repositories.

Ostensibly, the whole reason for this is security, but it's easy to see other
motivations. The idea that almost all users are completely stupid idiots who
can't decide for themselves, and effectively locking them up so they can't do
anything, is horrible for the continued advancement of computer literacy.

Certainly before and outside of these closed platforms there is malware and
other threats, but there is also something closed platforms don't have, and
which I think is also very important --- freedom.

Relevant story: [http://www.gnu.org/philosophy/right-to-
read.en.html](http://www.gnu.org/philosophy/right-to-read.en.html)

~~~
_nedR
Indeed. I didn't realise how "open" microsoft's platform was until iOS/Android
came along. Now the old open platform model looks to be fast disappearing
without any protest from developers. 30% revenue share for something that was
free until now is a big deal.

Regarding Linux, the centralisation is at least justified (convinience,
security). Furthermore Linux provides full freedom to ignore/bypass it. Not
true with iOS/Android/ Windows 10 UWP.

~~~
bryondowd
Just a bit confused, but are you saying Android isn't open? All you have to do
to install third party apps on Android is un-check one box in the settings,
under security (allow installation of apps from unknown sources) and find your
apps through whatever means you prefer to the app store. There are third party
app stores, or you can just download and install from a web link. Definitely
not comparable to iOS.

~~~
CaptSpify
Not all androids allow that though. Some manufacturer customizations turn that
off.

------
opayen
From the article: "Unless you know the exact name of my app, you won't find
it."

His "Website constructor" app is in 3rd position when I search for "Website".
Not that bad for such a generic keyword.

Also, I guess one thing with these apps is that the price range (between $12
and $20) is a quite high compared to the majority of the other apps on the
store and (unfortunately?) a lot of people are not ready to buy apps >$2.

I guess that the store search algorithm depends on the conversion rate (people
buying the app VS people trying it) and that conversion rate is probably
pretty low, so maybe lowering the app price could lead to more sales and
higher ranking.

~~~
joewood1972
Agreed. I see the same result. The search results are as I would expect. I
understand there is an issue with languages and regions, maybe the OP's region
is not US English. It would be interesting to see what other users' searches
show from different regions.

------
TheRealDunkirk
It's just like every other new Microsoft product. They produce enough materiel
to get something started -- lots of demos and howtos and samples -- all by
Microsoft employees or surrogates -- and then they leave it for something
else, and hope the world figures out the rest. They try to suck you in up
front, and hope that you get committed enough to not leave when you discover
the mess that's waiting for you behind the curtain.

I've come back to full-time Windows development after over a decade of PHP and
Rails, and you could lift my experience with trying Entity Framework and lay
it on top of these complaints, and not notice a difference.

I've always said this about Microsoft products: they make it really easy to
get to 70% of what you want, and then make it nearly impossible to finish.
There's a massive bend in the effort/results curve. With open source, it's
more difficult in the early stages, but it's a steady progression to 90%, and
then you have the tools to work out how to get exactly what you want, if you
want to make the effort.

------
wanda
I use Chrome OS as my daily driver/recreational computer, and I work from the
command line on FreeBSD and Linux machines during the day, so maybe I'm just
out of touch with Windows, however:

My partner has a laptop with an Core i3 processor and above-average RAM, and
is on the whole a beast compared to my Dell Chromebook 11. My partner upgraded
to Windows 10 and I have since used it occasionally to check something here or
whatever.

From a couple of admittedly brief sessions using it, I have noticed that
Windows 10 seems extremely "laggy", for want of a better word, as though there
is a 100ms delay between clicking something and that click registering. It's
nimble enough at starting up, it's just interacting with the thing that seems
to be slow.

Anybody else experience this, or am I just used to instant feedback from UI?

~~~
kpozin
As a counter-anecdote (on a somewhat more powerful laptop, Core i7 with 8 GB
of RAM and an SSD): I just upgraded from Windows 7 to 10 three days ago, and
have been amazed at how much snappier everything seems. In particular, app
switching and window resizing now seem smooth and instantaneous.

~~~
static_noise
You are experiencing the effect of a fresh Windows installation.

~~~
kpozin
It was an in-place upgrade on a 3.5-year-old installation of Windows 7.

------
lottin
For a long time Microsoft was a monopoly and it shows.

Recently I contacted Microsoft technical support over a product that has some
serious issues. Basically they tell me that they have no intention of paying
for the repair even though the product is under warranty, in blatant violation
of European law.

~~~
scholia
Did you buy the product from Microsoft?

~~~
lottin
I bought it from a retailer.

~~~
mryan
That's probably the issue.

Under the EU Consumer Protection Act, which I believe is what you are
referring to, it is the responsibility of the retailer to deal with faulty
products, and not the manufacturer.

In this case MS is the manufacturer and not the retailer so they are not
obliged to help you.

I suggest you take the product back to the retailer, as they are responsible
for any claims under the consumer protection laws.

~~~
scholia
_> In this case MS is the manufacturer_

Or, more likely, Microsoft provided the OEM with one of the many components
used in the product.

Microsoft, of course, has no control over what the OEM does with it, and
doesn't know unless it goes out and buys the product.

Where things get interesting is when Microsoft ships an update directly to the
user. This is something the OEM has no control over.....

~~~
mryan
Yes, that's an interesting point. The digital economy leads to some grey
areas.

------
vmateixeira
It's not only Windows 10 app store support that's like that. Every Microsoft
product support shares the same constraints and lack of solutions/answers.

After moving abroad I was unable to access my Microsoft account(locked), for
more than a month, just because I couldn't provide them with the last IP
address I had used to access my account, along with last 5 received email
subjects, 5 contacts in my contact list among many other unreasonable
questions the common user doesn't even know how to answer. All this because I
didn't own my recovery email address any longer.

~~~
msravi
Wait... they can read your email to verify who you say you are? Really? When
did that happen?

~~~
userbinator
Why are you surprised? Microsoft owns the servers. Email is by default _not_ a
secure form of communication. Assume everything you send that isn't encrypted
_by you_ to be in plaintext and readable by all the systems it passes through
and is stored in.

~~~
Piskvorrr
That's the issue, right there. MS owns _the servers_ \- and extrapolates that
it also owns whatever is on them, because "obviously you should have known
better than use our servers." Even though this is probably legal, the "w3
0wnz0rz y00" _mindset_ is the toxic ingredient here.

------
ChuckMcM
While I sympathize with the author's rant, bad service is bad service, I don't
know if not developing for Win10 is the conclusion, it sounded like the App
store sucks but so does the OSX App store and it doesn't mean you don't
develop of OSX, it just means you don't use the App store.

Sounds like side loading is a better choice on both OSes.

~~~
shams93
Yeah Bitwig seems to be doing well as a powerful side load. Steams store is
also an alternate channel to sell to windows users.

~~~
shams93
Of course steam also targets mac and linux users.

------
at-fates-hands
As a user who has not only Windows 8.1 but also Windows Phone (now Windows
Mobile) 10, this blog is spot on and indicates a much larger problem on the
horizon.

I can't tell you how many times I saw an article about an app and tried to
find it in the store, only to come up empty handed. This has happened so many
times on my Windows Mobile 10 phone, I lost count. Just this week I was
looking for a better Twitter client app. I would type in "twitter" "tweet"
"twitter client" "twitter app" and all I would get would be the main Twitter
app and nothing else. Then I had to start doing Google searches for "best
twitter client for windows mobile 10" which then gave me articles from 2013
and 2014 and for WP 8.1 - not exactly an up to date list of current Twitter
clients.

Compare that to the Google Play store. You simply enter "Twitter" and get a
dozen other apps, none of which have Twitter in their name. Plume, Echofone,
Fenix, Talon, Persiscope are just a few of the examples.

It was such a massive headache, I actually decided yesterday I'ms scrapping
Windows Mobile 10 and going back to Android. I've been a huge supporter since
WP 7, and held out hope things would improve, and they haven't. Their app
store is a massive failure, you can't find anything in the store you want,
developers have no reason to build for the platform, and I'm not going to
start with the myriad of UI problems I see already in the latest build (build
10586.63) that still have not been solved. Just basic shit like battery life
is still a major problem. Not to mention they took away some very basic
features from 8.1 that everybody loved like the ability to show Bing weather
on the lock screen.

I've finally reached my breaking point with their platform.

------
Sir_Substance
This is a problem Microsoft has had since their Phone 7 store. I tried out
their app submission process with a small and uninteresting but perfectly
functional dice rolling app back when the windows store was brand new with
nothing on it, and saw the same thing. It doesn't really matter what tags you
add, the search is crap and my app didn't show up on any of the tags I added.
Only by searching it's name letter-perfect could I find it. I wonder sometimes
if theres a hidden seam of quality apps on the windows store that no one knows
about because the search is so bad...

------
eklavya
I have an hp split laptop. It's really anemic and I regret to have thought
that processors had come as far as not having to think about them (you do). It
has an Intel Pentium N3510. Anyways, it came with windows 8 and it was a slow
and buggy product from day one. Linux on it runs worse then windows somehow.
But since windows 10 it's at least bearable now. Windows 10 is faster at least
on this machine.

------
SCHiM
I like windows 10, it's better than windows 7 IMO. Things have a smoother
feel, the console works better and I feel more secure due to all sorts of new
security improvements. I haven't noticed huge issues, the only thing that
really bothers me if the fact that explorer has a tendency to freeze for a
second when accessing a large spinning disk for the first time since boot up.

~~~
moonshinefe
Which new security improvements in particular do you feel make you more
secure?

~~~
SCHiM
@op & @EasyTiger_

Well an example are the improvements to the various authentication
implementations, the fact that I can now finally configure my personal
workstation to be impervious to certain types of pass-the-hash attacks. A nice
matrix that illustrates the improvements can be found here:

[https://pbs.twimg.com/media/BfZw8iiCQAApq0T.png](https://pbs.twimg.com/media/BfZw8iiCQAApq0T.png)

Where 'green' is secure, as you can see a 'domain protected user' in windows
10 protects against almost every type of attack. These I have personal
experience with from the attackers perspective, and windows 2012 domains are
quite impervious to attacks that used to own the entire domain in as little as
2 hours. Not to mention that in addition to the matrix shown here, traditional
psexec has finally been restricted to a special group of users, so that local
administrators can no longer remotely take possession of a system unless
explicitly configured to be able to.

Most of those improvements are really only applicable to enterprise, and some
of them came about by switching to a more secure default (instead of new
technolly).

New in windows 10 is also control flow guard (CFG), which most applications
that I run at home and work already support. With the new addition of CFG use
after free exploits should be harder to achieve on windows 10 than windows 7,
although I don't have any personal experience with developing exploits for
windows 10 yet.

In addition to the general improvements to credential protection and CFG,
windows 10 is further isolating critical system components from each other in
the kernel. I haven't experimented/looked at it in any detail yet, but I get
the impression it's conceptually similar to qubes OS. In windows 7 the kernel
patch protector (KPP) ran in ring 0, just like al l the other kernel code, if
you got code execution you could simply patch KPP too, and then your rootkit
had free roam over the kernel. Now Microsoft claims that in windows 10 KPP has
been isolated so that normal 'ring 0' (if that still means anything in the
traditional sense) can no longer patch it.

------
arca_vorago
Now if only I could push libreoffice/gdocs or ms would release office for
linux, I could deploy linux. Also, way too many scada systems require windows
machines for the various proprietary ide's.... and it drives me nuts! Where's
the foss scada?

Windows is dangerous and 10 just made it more so. It's not easy, but break
free of the proprietary os chains now before they lock your brain in with
iBrain and update it without your permission.

------
jhildings
apps? Whats wrong with saying applications as for the last 20 years in windows
environments ?

~~~
jbb555
It's a good system. If it's called an "application" or a "program" it's
probably worth having. If it's called an "app" it's probably not.

~~~
copperx
"The TeX app" doesn't sound _that_ bad.

------
7952
It never made much sense to focus the desktop app store on commercial
products. Windows has a plethora of high quality open source software that
most users never find and would have trouble downloading safely. Why wait for
the commercial market to catch up when you can make good software available
right now that benefits users? App stores work because of easy availability
and without that they are mostly useless.

------
ksk
Yeah, hopefully more people listen and opt out. A future where Windows has a
reduced market-share is ideal for the consumer. It doesn't even have to be
that OSX or Linux take over. Maybe the void could be filled by some other
vendor with a completely new design.

~~~
soared
There is serious room for a 4th competitor. Windows is commonly used but gets
a lot of hate, OSX is great but expensive, and linux is way too difficult for
99% of people to use.

Give me something else, please. I now hate windows, can't afford osx, and
don't want to deal with linux.

------
anonbanker
This is your daily reminder that linux exists, is free, and doesn't make your
life miserable.

[http://calculate-linux.org](http://calculate-linux.org)

------
darkhorn
And the apps work very slow.

------
hohenheim
Couldn't they forward you to someone that can help you with the problem? The
support seem to shut you down and close all the doors which is infuriating at
best.

------
joesmo
It sounds like he's talking to a bot when emailing Microsoft. I'm not
surprised they'd use one to respond to emails.

------
mc_hammer
from the windows 10 hello world:

To make your window resizable (!) and responsive, use the following XAML

    
    
        <VisualStateManager.VisualStateGroups>
    	    <VisualStateGroup>
    	        <VisualState x:Name="wideState">
    	            <VisualState.StateTriggers>
    	                <AdaptiveTrigger MinWindowWidth="641" />
    	            </VisualState.StateTriggers>
    	        </VisualState>
    	        <VisualState x:Name="narrowState">
    	            <VisualState.StateTriggers>
    	                <AdaptiveTrigger MinWindowWidth="0" />
    	            </VisualState.StateTriggers>
    	            <VisualState.Setters>
    	                <Setter Target="inputPanel.Orientation" Value="Vertical"/>
    	                <Setter Target="inputButton.Margin" Value="0,4,0,0"/>
    	            </VisualState.Setters>
    	        </VisualState>
    	    </VisualStateGroup>
    	</VisualStateManager.VisualStateGroups>
    

i lolled.

theres also this gem:

    
    
        bmp Windows::WinForms::XAML::Imaging::Bitmap = ^new Windows::WinForms::XAML::Imaging::Bitmap(filestream)
    

Which can be avoided by putting `namespace Windows::WinForms::XAML::Imaging`
in every CPP file.

~~~
vesinisa
Well, once you understand visual states, that XAML example starts to make much
more sense. I don't think the issue with W10 development are the tools because
they are generally quite damn good.

~~~
userbinator
Once you understand what the equivalent would be in a pure Win32 application,
XAML starts to make much less sense... making a window resizeable involves
setting one bit in the window styles and responsive just means a loop over the
contents to move them to the right places when WM_SIZE message is received.

Declarative UIs in XML are more verbose and less flexible than just putting
the appropriate expressions in a simple resize-recalc table, which is what the
Win32 equivalent would be.

~~~
exDM69
Without addressing the XAML mess, Window resizing in WINAPI is a complete mess
too. You toggle whether a window is resizable by setting the window style
(wtf!) with WS_THICKFRAME. When resizing windows, you need to handle three
different messages (WM_ENTERSIZEMOVE, WM_EXITSIZEMOVE, WM_SIZE). To set
minimum/maximum size, you respond to a WM_GETMINMAXINFO message.

All I wanted was SetWindowMinMaxSize(hwnd, min_size, max_size) and an event to
tell me the window has resized. That's it.

This complexity allows apps to misbehave in various ways, either
unintentionally, on purpose or maliciously. Windows programming is so darn
complicated that it doesn't make any sense.

