Well said David.

 

One thing I'd like to add to the conversation though is that I see people
all the time that consider their mobile interfaces as a "low functionality
add-on" to the "real" application. While I've dealt with mobile apps that
way in the past, I'm increasingly changing my view.

 

We're moving into a world where the majority of Internet users will have the
primary Internet experience via a mobile device. It's not some add-on access
to their "real" usage like it has been for us in the past. I think we ignore
that at our peril. We need to be thinking about how to make that experience
be as rich as possible.

 

Regards,

 

Greg

 

Dr Greg Low

 

1300SQLSQL (1300 775 775) office | +61 419201410 mobile│ +61 3 8676 4913 fax


SQL Down Under | Web:  <http://www.sqldownunder.com/> www.sqldownunder.com

 

From: [email protected] [mailto:[email protected]]
On Behalf Of David Connors
Sent: Saturday, 5 January 2013 9:35 AM
To: ozDotNet
Subject: Re: More on cross-platform development

 

On Sat, Jan 5, 2013 at 5:02 AM, Katherine Moss <[email protected]>
wrote:

I suppose it's a question of who is right in terms of the future.  I have
read so many articles that insult .net to the core, and it kills me.  I'll
never forget the guy who called the .NET Framework and it's set of
development tools a McDonalds assembly line! 

I like this topic and I remember the post:
http://blog.expensify.com/2011/03/25/ceo-friday-why-we-dont-hire-net-program
mers/ Best part is where he calls .NET a language. Epic fail. I am surprised
how much it still irritates me given how long ago it originally came out. 

 

The guy's post is emblematic of software development junk/pop culture. These
guys are always quick to the draw when it comes to saying MS is this or that
but rarely have I seen a reasoned bit of introspection in how they conduct
their own work. His hatred for .NET is based on what? RDP, that MS platforms
use a \ instead of a / for path delineation (ironically, this is abstracted
in .NET - not that he'd know). 

 

How about as a comparison: it is 2013 and PHP (which expensify is written
in) still isn't thread safe - or at least no one can agree on whether it is
which is even worse. Maybe he should try a few posts about I/O completion,
thread pooling, getting the best utilisation out of CPU and IO in his server
farm, etc instead of the merits of the slash over the backslash. 

 

I have worked on a lot of projects on a lot of platforms over the years.
I've also done a lot of application assurance/security reviews on a lot of
other people's work in my time and I can say without a shadow of a doubt,
work that I review from people writing in PHP is, on the whole, horrific.
Go have a look at the guts of phpBB some day - he's dead right about Lord of
the Flies.

 

Work I have reviewed from people working in .NET and Java is, on the whole,
a much higher calibre. It is very rarely that I have seen the same abject
lack of planning and forethought in .NET/Java projects that I have seen in
PHP projects from customers.

 

Sure there is more overhead in getting a .NET project up and running
compared to putting <?php print "Hello, World!"?> in a text file - but so
what? Maybe he doesn't know you can whack <%@ Page Language="C#"  %> at the
top of an aspx to make .NET 'just as productive as PHP'. Saves all that
nasty thinking about overall systems architecture and long term
maintainability.

Anyway, what I mean, is with all of this stuff leading to mobile
development, does that mean that Microsoft is actually right and that the
desktop computer, the on-premise server, the .NET Framework, and all the
rest, are dying rather hard?  I mean, seasoned developers like you guys, and
learners like me, how much of our time is being wasted in this century? 

Don't panic - nothing is dying hard. The future is heterogeneous. 

 

We had a Windows hegemony for a long time because MS was the only company in
the world that:

*       had a clue about the benefits of building ecosystems
*       wrote the only stable and well supported mass scale OS (OS9 was
junk, Linux is just too hard for end users and no one is going to rebuild
kernals to make bluetooth work OS/2 tried to solve problems that didn't
exist)
*       had the money to do all of the above
*       had the money to focus massive resources on really mundane stuff
like having awesome drivers and rallying OEMs together to support stuff like
plug and play etc

The stuff that made Windows so successful was really pretty basic. It was/is
a dependable workhorse with great driver support and you could get it
running on almost anything. That was always the hard part for competitors
that came over the years. OS/2 might have been great on a number of
technical merits, but it was the same old story, crappy hardware support,
system resource requirements too high, backwards compatibility story was
junk (the Windows subsystem on OS/2 was beyond slow - and if you want to run
Windows apps why not just run Windows?) 

 

I reckon the key difference today is that there are a lot of players with -
for all intents and purposes - bottomless pockets. Linux is starting to get
there (check out Ubuntu) and when you couple it with cheapo asian fabs then
you can slap together stuff like a new phone or tablet easily (well, easily
if you're a corporate with bottomless pockets :). Making some fandagled 3D
accelerated mobile device with amazing display and so on doesn't require
much first-principals work these days. The chips are cheap and plenty or
reference designs available for a relatively cheap price. Hell, you can buy
tablets at retail for <$300 and they are good. 

 

The economics have shifted such that a company like Google can take a hit on
the acquisition of Android and subsequent development for the better part of
a decade just because it has a long range interest in ensuring that Internet
access doesn't become locked up in closed app-based ecosystems so it can
flog ads. The fact that Samsung can take over most of the mobile market
using the technical crumbs that fall off the table from Google's other
interests is really amazing and in my mind points to the fact that we will
never go back to an ecosystem with 90+% platform commonality.  

 

Back to your question though, re time wastage, I think you're mistaking
increased and scenario-specific usage patterns with some sort of shut down
in existing usage patterns. How we interact with information today is not a
zero-sum game and every new app or device does not necessarily subtract from
somewhere else in the market.  I have more devices today then I did 5 years
ago and that means more opportunity for someone like you to sell me
something. 

 

That aside, I love my phone and tablet but if I am going to write a mail
like this it is going to be on a desktop computer and the smaller devices
are always going to be more scenario-specific. Maybe that will change in
time, but I doubt it. 

 

At the end of the day .NET is a great environment for writing a variety of
apps. On the server side, there is a mind-boggling amount of lot of heavy
lifting Microsoft does around threading and concurrency that plumbs all the
way down to how device drivers schedule work and behave when dealing with
network and disk I/O. Old mate the CEO above wouldn't know this because his
world view is informed by the pervasive pop/junk culture of taking
dependencies on something because it is the 'it' technology of today. 

 

Far from wasting your time, you can use this as a competitive advantage to
build better performing apps that are more maintainable.  With third-party
options like Xamarin, off the top of my head, I can't think of a better bet
to make if you needed to choose a development environment for the
heterogeneous world we live in today. 

 

-- 

David Connors

[email protected] <mailto:[email protected]>  | M +61 417 189 363

Download my v-card: https://www.codify.com/cards/davidconnors

Follow me on Twitter: https://www.twitter.com/davidconnors

Connect with me on LinkedIn: http://au.linkedin.com/in/davidjohnconnors

Reply via email to