The difficult steps of Samsung in the software world

Important disclaimer: I worked for
Samsung Research America as a full-time contractor from september 2013 to
june 2014, and have been maintaining there no contacts but personal ones
since then. The following lines represent only my personal opinions and do
not contain any detail or information that were not published by the Press
before if you except what people having no employment or contractual link
with Samsung shared with me between september 2014 and today.

A Tizen-based phone, finally..

After a long, long, really long wait, Samsung finally releases one
Tizen-based smartphone to the market. The Z1 is now available in India for
a unsubsidized price of 5,700 rupees, so roughly 78€. The full specs of
the beast are available for instance here.
Here are my thoughts about that release...

First, the name of that smartphone is badly chosen. Very badly even. The successful Sony
Xperia Z1 was released Q3 and Q4 2013 and googling Z1 usually drives to
the Sony smartphone almost everywhere in the world. Of course, because of
the release, references to the Samsung release are now on top of list but
that won't last if the Samsung Z1's market does not rapidly increase. As a matter of fact, some of the first Indian articles about the Z1 are not that impressed.

The smartphone is almost similar to the ZTE Open C that runs Firefox OS if
you except the fact the Z1 is dual-SIM. Even the price is the same. But
the ZTE is available in many countries and received extremely
positive reviews even here in France. Firefox OS is also available on a high-end device in Japan, crossing a segment boundary that Samsung does not seem ready to cross with Tizen.

It can run
Android apps, through OpenMobile ACL (Applications Compatibility
Layer) available in the new Tizen Store (no URL, reachable only from a
Tizen device...). This is important and there are many positive and
negative things to say about it. First, it shows that despite of injecting
literally millions of dollars into software companies, Tizen has not
attracted a big enough Apps catalog to live standalone. I even heard last
month from a software company that ported its app to Tizen that they don't
care about Tizen at all, they just caught Samsung's money and don't plan
to update their Tizen app after that.

OpenMobile ACL is not an emulator. Apps should almost run at native
Android speed. So that is quite positive from an end-user's perspective if
you except one tiny detail: reaching and running Android Apps now rely on
third-party software that is another problematic layer in the bigger
Android fragmentation issue. OpenMobile ACL say
on their web site they provide an AppMall for Android apps. I have
no confirmation about this but my first thought is that it is necessary to
make sure OpenMobile ACL users only download and try to run apps that are
validated, i.e. apps that are known to work under ACL. AppMall is probably
integrated into the Tizen Store. So what about the version of Android ACL
allows? And what about
ACL's updates? No word.

All in all, OpenMobile ACL's presence in the Tizen Store and the fact
it's officially shown as a sales argument is not a good signal for Tizen
itself. Will developers have any incentive to develop natively for Tizen?
I don't think so. Will ACL's limited openness to the Android world be a
problem? Almost certainly. Furthermore, the whole Tizen story was about
building an alternative to Android and the Android app ecosystem; that
strategy seems to have failed at least in Samsung execs' minds, and Tizen is, at least for the time being,
unable to provide Samsung Electronics with such an alternative. I fail to see how that situation could improve in the near-term future without drastic strategic changes.

The Z1 is fueled by Tizen 2.3, released in December 2014, after a
loooooong history you can read summarized
here. And after so much time and many, many hesitations at Samsung
that CNet reported about (launch announced, launch delayed, launch area
restricted, launch suspended, again and again), it's amazing to watch the
pace of Firefox OS, that went from inception in July 2011 to market availability
in nearly 30 countries in December 2014 on phones, TVs, tablets, watches and even a TV stick. Firefox OS also has attracted many
app developers, without subsidizing them, because it's a true open HTML5-based platform.

The browser inside the beast is clearly Blink-based, so that's another
extremely strong tie to Google. A while ago, Samsung announced a
collaboration with Mozilla to work on a new rendering engine, Mozilla
Servo. Seen from github,
that collaboration seems to have drastically fallen.

That said, let me tell you what I think of Tizen at Samsung.

What's wrong with Samsung's software

Samsung is a hardware leader. This is clear, recognized by all and quite
stable. Yeah, well, its smartphone market share may suffer a bit these
days but its chips and parts are still everywhere.

But it's nowhere in software (yeah, yeah, I know Samsung is a huge contributor to Linux) because the company and its processes seem
mostly unadapted to software. The software stack of my connected Samsung
TV sucks, the software bundled with my Samsung laptop all suck so deeply I
deleted them, Kies for mobile devices (think iTunes) that is major
visibility thing for Samsung is a endless subject of laugh and
unfortunately cries for everyone I know, my Samsung S5 was so plagued by
ugly UI, system bugs, painfully annoying and totally useless additions to
Android that I finally moved back to Apple.. And Tizen is... well... stop
the first person around the corner and ask "have you ever heard of
Android? iOS? Windows? Tizen?". There are remarkable bits inside Tizen;
Linux, EFL and more. It's the whole packaged thing that feels wrong.

To maintain a hardware leadership on devices, Samsung absolutely needs to
become a software leader. That won't be easy. First it needs to
adapt to the software engineering culture and that implies opening a full
Pandora's box because software engineering culture remains mostly a fact
of the western world. To master software, Samsung then needs to move one
of its centers of gravity outside of Korea, a true taboo as of today. This
not hyper-specific to Samsung; most Korean companies suffer from the same
issue and are unable to become global. It also means Samsung must induce a
self-revolution to attract software engineers because the projects are
exciting and will change the world, and not only because of the
salaries, reported as being pretty high on Glassdoor. Samsung is known to
be a rather vertical company, and that certainly fits well with hardware
processes. It does not fit at all with software ones. All of that will require
the implementation of drastic changes in the company. Again, Samsung is
far from alone in that situation. Openness of mind is not a message, it's
a core feature.

In that perspective, Android is at the same time an enabler and a
blocker. Enabler because it clearly helped Samsung reach the #1 position
on the mobile phone market but blocker because Android and its Play Store
are in the hands of a partner that is also a competitor. Big names own an operating system and a browser stack. You can name four, in alphabetical
order, and that's all: Apple, Google, Microsoft, Mozilla. Period. The
others can reach a #1 position in sales but they will always remain
strategically behind these ones because they don't own the full thing.

But Tizen seems to be managed by Samsung, at the highest level and not
the technical one, by people who haven't understood at all how to insert
it into the market. Or maybe they have and they were blocked by the
corporate structure, which is clearly worse.

you can't flash your personal phone, even a Samsung one, with Tizen.
Holy cow, read that again: Tizen is heading towards version THREE ZERO
and you still can't try it on any personal phone, even a Samsung one.

so-called "reference phones" are so old/weak they cannot trigger
developers' or manufacturers' interest. They're also rare and difficult
to obtain.

who cares about a Tizen emulator on a desktop computer when there are
no phones in the wild...

So Samsung urgently needs to change that. It needs an extra team with one
single goal: provide as soon as possible Samsung phone owners all around
the world with flashable builds of Tizen for the longest possible device
list (and of course easy way back to Android). That's where politics could
enter the game, with the tenants of the Google partnership probably
refusing collaboration on that ground. This is pure speculation of mine
but I would not be surprised if it was later confirmed. The conclusion is
simple: if Tizen is thought to be an answer to the
decorrelation-from-Google question, then the decision to support and
release has to come from the highest level in the company and be very strictly
enforced. And if not, Tizen has to be ditched. In my opinion, Samsung must
have its own OS stack to be a top player instead of being only a major player.
It has to shift a large part of its growth from hardware to software and
user experience.

Tizen itself needs, at the technical level, some major love. Its Web API
is so different from the stable or proposed W3C API it's utterly shocking.
Even the Alarm API, authored on both sides by a former Intel employee who
spent a rather short while at Samsung and eventually left to Apple
(ahem...), shows incompatiblespecs. The
whole SDK needs a complete review, and revamp. Open Web Standards must be
the only ground layer there.

At the UI level, Tizen is almost a clone of an old version of Android,
and there is no fun using it. Tizen UI has nothing special, nothing
exciting or different. Seen from a meter away, one is unable to say if a
given phone is running Android or Tizen. So Samsung needs UI designers
totally free to push the limits far beyond what Samsung is usually able to
do in terms of UI. You may or may not like the tiles of Windows Phone, but
they're a distinctive sign of Microsoft and the slowly but steadily
increasing market share of Microsoft seems to indicate many people
actually like them. Tizen has nothing like that for the time being.

The app layer is again a tough choice: native or web-based? C++/Java or HTML5? Still or sparkling? It's 2015 and developers should still love to
code in, ahem, Java? Seriously? The largest pool of developers in the
world is on the Web, every single web page author can be turned into a Web-based
app author at very little cost, and the Tizen Z1 will try to gain success
using a compatibility layer with Java-based apps? Wow. The future of apps
is clearly HTML5-based even if some native apps will remain.

And then comes the browser issue... As I said above, a major corporation
that does not own a browser stack is a major player, not a top one. And
using Blink inside Tizen preserves a tie to Google that is completely
counter-strategic and certainly harms the whole original Tizen plan.
Samsung, like all other major smartphone manufacturers, needs a 64-bits
multi-threaded rendering engine with parallel layout, to extract the
highest performance - and the lowest battery drain - from multicore CPUs.
It also needs its own rendering engine because the rendering engine is a
core element of most Apps so innovating in that engine is a key factor of
market success. Innovation should not be in the hands of a third-party,
even a long-time partner and a fortiori not a competitor.

What Samsung needs to do to fix its software effort

My advices to Samsung about Tizen would be the following ones, even if I
could say the same to any of their major Android-based competitors:

yes, you need your own OS. It would be a very serious strategic
mistake to ditch or even limit Tizen.

no, OpenMobile ACL is not a killer
feature, don't forget the downsides and the fact others OSes like
Firefox OS can have it too.

no, its current UI and UX are clearly not enough and you need a deep
investment there.

no, the way you try to increase Tizen's visibility and external contributions to the Tizen ecosystem does not feel right. Look at how Ubuntu Mobile or Firefox OS
built a community and do the same.

no, sorry, Tizen is far behind competitors in terms of modernity and openness. You must implement drastic changes there, and that goes down to the technical layer.

yes, to do that, you must implement globalization. You must implement it anyway for a zillion good reasons. That will require cultural changes and a less vertical organization.

yes, to do that, you also must release Tizen to existing devices, and
you must even release nightly builds. Make "early adopters" become your
best evangelists.

no, you're not good enough, not open enough and not disruptive enough
in the software world. To do something different, you must do it
differently and with different people and habits. Accept it and apply
it. The more you wait, the harder it will be.

no, you just cannot wed yourselves eternally with Blink. You need your
own rendering engine to fully unleash the hardware power of your devices
and stimulate the rest of your software innovation. This remark is also valid for the browser on Android, although I'm not sure the new terms of the Android embedding agreement still allow the bundling of an extra browser...

in that light, the Samsung Tizen Z1 could, perhaps, address the
low-end segment of the market in some geographic areas but it's hardly
the announcement of a new and successful OS ecosystem.

My son Gabriel got as a present the Sims4 game for Windows. He tried to install it on his Win7 Ultimate 64bits box but no luck at all, Origin crashing in msvcr100.dll with a c0000417 error. Despite of looking everywhere for an hour, we could not find a fix. Since I'm sure some of my readers have already hit - and solved - this issue, can you please help? Thanks a lot !

The always remarkable Wladimir Palant has found a fix for the most annoying OS X "feature" ever, the change of behaviour of the window maximize button. In Yosemite, it now defaults to fullscreen and you have to press the Alt key to get the "classic" behaviour of window maximization. This is so painful all the people I know are currently asking how to reverse that. Given the very negative feedback, I'm pretty sure Apple will at some point in the future introduce a defaults allowing to reverse that from the command line, but for the time being we're all cursing in front of our Mac when we toggle an app fullscreen instead of maximizing it. Apple, read it well: One Does Not Change a 25 Years Old Behaviour; remember the Windows Start button. Oh, and the fullscreen standalone button on the right hand side of the titlebar was better than the current Yosemite blurby hack.

Soooo... Wladimir found that free piece of software called BetterTouchTool (BTT). Follow the steps below:

Download BTT and install it.

During installation, your mac may ask you to allow Preferences to control accessibility, that's normal

In the main BTT window, click on the Other button in the main toolbar

Create a new trigger and select the "Leftclick Green Window Button"

Click on the Predefined Action dropdown button and type "zoom" in the search field

select "Zoom window below cursor"

Create a new trigger again and select again "Leftclick Green Window Button" (see step 4 for the image)

Check the "Opt" button

Click on the Predefined Action dropdown button and type "full" in the search field

select "Enter fullscreen"

You can now close the window ; make sure BTT is running at all times.

Thanks Wladimir and thanks BTT! Not perfect but better than regular Yosemite's behaviour!

Through twitter, I stumbled upon this documentlogorrhea. I found it so silly that I need to post something here. I am expecting trolls to wake up so comments will be closed on this post, exceptionally.

Let me revisit the 13 bullet points present in that article:

Using "guys" to mean "people"

I find this ridiculous. One just does not change a living spoken language like that. Complaining about that makes people think about it while most of them were not thinking that way, and were certainly using "guys" in a totally non-sexist way.

Using "girls" for "women"

This is again ridiculous and so US-centric. Here in France, women of all ages call themselves "les filles" and I never heard anyone complain.

"Mom" as an example of non-tech user

All W3C co-workers can testify I often quote my dad as an example of non-tech user. For two reasons: first, my mom passed away ten years ago; second, my dad is an excellent non-tech beta-tester. Anyway, I would happily use "mom" if my mom was still here AND a non-tech user. This is none of your business anyway if I want to mention my mom or my dad.

Using avatars that are male by default

Seriously? This sounds like the rant of a frustrated 10 years old kid (and I don't even know if the person who wrote the article is a woman or a man, old or young, westerner or not, I just do not care)...

Describing software or algorithms as “sexy”, “hot”, etc.

Some of my friends can testify I used to describe the beauty and the "sexyness" of some complex proofs in maths. They did the same, men or women. This is not going to change, and I find this request absolutely ridiculous and having nothing to do with sexism.

Assuming women they meet are in non-technical roles.

Here, the author has a point. Agreed.

Fetishizing “hot geek girls”

It seems to me the author of that list is fighting a war impossible to win: there will always be morons on this planet, and they will always outnumber the others. Live with it.

Denigrating things by comparing them to women or femininity

In 23 years in the software industry, I never ever heard someone do that. This is about fighting Don Quixote's windmills.

Stereotyping women’s needs… or ignoring them.

I just cannot find the right words to describe my feelings reading this, sorry.

Using dark UI patterns.

This is so wider than sexism I have no idea why it's here.

Repeating generalizations about gender essentialism.

Ah, a new concept, "gender essentialism". Lobbyists go so fast inventing new terms for their rhetoric fights these days I cannot cope. Ooops, is that generalization? So sorry...

Assuming every woman in tech feels the same way and/or wants to discuss her experiences “as a woman in tech”.

Again, 23 years in tech and I've never seen that happen.

Staying quiet when other men do these things.

I promise I will never stay quiet when bullshitisms appear on my radar, wherever they come from, including from people fighting sexism with arguments that seem to me totally wrong.

Long ago, there was Cnet's Paul Festa. When Festa went (finally) away, I thought we could take tech journalism practices back to normal. Seems I was wrong. Here's a summary of things that happened to me in the last months:

The unpolite

(someone to me) Hello Daniel, I am forwarding below an interview request from a journalist who says he misses your email to ping you

No ACK, no thanks, no reply, no notification the article will be published, no notification the article was published. In short, the journalist never said me a single word directly. That person is now blacklisted. Can still leave that black list if there are some sort of apologies.

The impatient

(journalist to me at 7pm PST) hello M. Glazman, I'm writing an article about blah, I know you're based in Europe but could I call you on the phone in the next half hour?

...

7pm PST is 4am here. I was of course in front of my computer at 4am waiting for a journalist's email and ready to take a call from the US at 4:30am. Of course.

The painful

(journalist to me) so what's your activity/title at W3C?

(me to journalist) I am co-chairing the CSS Working Group

Article is published, of course w/o notification. I am listed there as "W3C Chairman". Obviously.

The bastard

(me to journalist) hello, you interviewed me a few weeks ago and now that the article is published (you did not notify me, did you?), I discover at least one paragraph with quotes from me completely opposite to what I precisely said. What I precisely said is « blah », and you can see it's totally different from the contents of the article so could you please fix this in your article?

(journalist to me) this is not my recollection of the interview

(me to journalist) well, you recorded the interview so you can check ; please check.

(journalist to me) sorry but I don't have time for that

(me to journalist) again, the words put in my mouth by your article are absolutely not the ones I said, will you fix them yes or no?

...

No answer, article unfixed. Journalist permanently blacklisted.

The ghost

(very polite journalist to me) hello Daniel, first let me introduce myself blah blah if you have some time to answer some questions, I'd be happy to blah blah and best regards looking forward to blah blah

My technical world changed a bit recently with a few events that directly
impacted me or the activities of my company, Disruptive Innovations:

Mozilla shows increasing signals that the future of XUL as a platform
for embedders like my company is not bright. XULRunner has many users
around the world but it's not part of the roadmap any more,
unfortunately. I won't discuss here their corporate strategy. My
applications BlueGriffon and BlueGriffon EPUB Edition being based on
XULRunner and my business being largely based on them, it would be a bit
foolish to avoid looking for an alternative...

I have not found a single solution allowing me the flexibility of
XUL+JavaScript in native desktop and/or mobile cross-platform apps;
there are hybrid solutions for mobile, almost nothing for desktop in a
cross-platform fashion.

the two only potential solutions, Qt on one hand and AdobeAir on the
other, do not satisfy me for the following reasons:

Adobe Air is nothing near native,

Qt is a big and powerful beast, hard to learn and master.

Apple's Swift looks nice and powerful but cross-platform is not a word available in the Apple ecosystem.

I have discovered Haxe. Haxe is an open source toolkit based on a modern, high level, strictly typed programming language, a cross-compiler, a complete cross-platform standard library and ways to access each platform's native capabilities. If you know ECMAScript and/or Java, you'll find Haxe fun and easy to master. I started playing
with it and fell in love with its beauty, simplicity, and the large
numbers of packages available.

In such cases, I take a few sheets of paper and start writing ideas. I
have put a lot of ink on a dozen of originally blank pages and tested a
few designs. I want, I need a very simple, flat learning curve way of writing standalone cross-platform native apps. And if the existing ecosystem can't give me such a tool, well, I do what I always do in such cases: I write my own... So I started writing my own environment for
native desktop and mobile applications.

My requirements were the following ones:

all UI specified in html5, of course, with the help of role attributes... Maybe I'll add a XUL-like
language too just for migration purposes.

UI styled by CSS, eh what did you expect?

resulting native UI

code in Haxe of course compiled to native!!! Assets not trivially
readable like with JS...

trivial embedding of Haxe-based gaming frameworks

trivial embedding of a browser instance (Blink, Servo, etc...). When I
say trivial, I really mean it. If you've played with CEF, you probably
understand that this is not what I mean.

no ugly hacks to deal with OSX menus or Windows icons.

dynamic UI changes based on DOM manipulation just like in XUL

very simple localization

a "Hello world" button in a native window should be a one-minute
thing. No big environment to install, no complex setup, no new IDE to
learn. You know html5? Just put a <button> inside a
new document's <body> in your favorite code editor,
open a terminal and type "quaxebuild". Done, you have a native app in
hands, ready for distribution.

The result will be Quaxe. Native desktop
and mobile applications with native UI from html5 and Haxe.

I am glad to share with you the first demo screenshot below. The app was
launched through a open bin/mac/MyFirstTest.app command line
on OSX. Just to be very clear, there is NO BROWSER WINDOW in the
screenshot below. The app is only a native resizable main frame containing
a native button. It's specified in html5, you can access and modify its
DOM but it's not your regular browser, there is no Blink, Gecko, Servo or any Web rendering engine inside. There is no common runtime either, à la Adobe Air. It's very, very lightweight despite of having to implement a xml parser, DOM4, a CSS parser, the whole CSS cascade and an OM for the widgetry.

As you can see above, it's already taking shape. If you're an investor and you're interested,
please do not hesitate to contact me at your convenience. Writing native apps is going to be way cooler and simpler than it is now, that's a promise.

Eleven
years ago, I was driving as fast as I could to leave two administrative
files, one in Saint-Quentin en Yvelines, one in Versailles. At 2pm, the
registration of Disruptive Innovations as a LLC was done and the
company could start operating in the open. Eleven years ago, holy cow
What a ride, so many fun years, so many clients and projects, so
much code. Current state of mind? Still disruptive and still innovating.
Code and chutzpah !!!