1,925 karma · joined August 23, 2009
Email "dan" at the above domain
The 12 or so hours I spent in those lectures were among the most valuable hours I invested in anything, ever.
EDIT: I admit, there was a time when Flash was the only option, but as early as 2003 I recall "Ajax" being used in preference to Flash for web user interfaces that needed an element of richness. So, I think there has been dissatisfaction with Flash for longer than you imply.
In a way, I think it might be the combined weight of the iPhone and iPad that's broken the stalemate in HTML5's favour. Apple sold so many of them, that website makers had to take notice.
When Microsoft announced that Windows 8 metro mode (which may well be the only mode available for low power Win8 tablets) would not support Silverlight, I think the game was well and truly up.
When you use C# and VB, you are using the full .NET
framework. But they have chosen to expose a smaller
subset of the API to developers to push the new vision
for Windows 8.
For me, this is a really interesting point that this article doesn't fully get. When you use WinRT you might be using the C# compiler, CLR runtime and .NET string & collection classes, but there are huge sections of the .NET BCL that now look like a lame duck. WinRT is the new way to do XML, JSON, HTTP, networking, security, globalisation, threading, printing... (more here: http://msdn.microsoft.com/en-us/library/windows/apps/br21137...)You can still use the full .NET class library when doing ASP.NET, but who wants to use different JSON classes for App development vs. Web development? Won't the WinRT version gradually become the preferred way of doing JSON in both environments, with the .NET BCL existing to fill in the server side only gaps?
For me, the real question is, why are business still willing to make investments in the latest Microsoft blessed framework?
Actually, I think since Longhorn there are signs that businesses are a bit more sceptical about these bold technology announcements from Microsoft. They used be able to pretty much control the weather but these days they have a hard time getting people to use things like Silverlight, WPF or XNA.
Their dominance is still strong in the enterprise though. SharePoint does not deserve the market share it has. But business are hooked on using the Microsoft tool for whatever it is they want to do. Need an intranet? Well Gartner says we need an enterprise CMS... so we'll hire our preferred Microsoft Gold Partner and give them a budget of 200k to build us a clustered SQL Server environment on which we can run some load balanced SharePoint app servers, all for a two step content approval workflow and a few thousand hits per day. Everyone in that process is too busy making a living to question the "we'll just buy whatever Microsoft has for X" assumption.
1. There are lots of politics at small companies too. There are lots of politics in any social context. But it probably isn't institutionalised in a small company. For example, in a big company you might hear the head of one department instructing people to lie about something in order to manipulate the people in another department. In a startup that would just be one person lying to another peerson. And if you're not in the room at the time you would know it was going on.
2. It doesn't matter how great your people are, if you have more than about 8 of them you need some structure and process. Companies don't adopt structure in order to cope with dummy's, but that's a useful side effect.
3. I doubt companies take on dummies because they've exhausted the pool of quality people. The pool of quality people is much too big for one company to exhaust, and it gets replenished every year. But great people are rarely on the market. Also, people don't deliberately hire dummies, they're just willing to accept slightly less talent than they themselves have. So, the more layers you have between the founders and the latest hire, the lower the hiring quality can get.
EDIT: Ah, think I've found them.
If you're working in a big company then central IT probably have a standard PC supply agreement and standard image and will oppose allowing anything non-standard on the network until someone signs off on 2 or 3 extra support engineers to "support" this non standard stuff.
If your company isn't making much money, any capital expenditure like this is hard to justify.
So, you really want to work for a small software company that's making lots of money.
1. WebForms controls mess with the markup that is output, this used to be a real nightmare in v1 with tables being inserted everywhere. It's better now but you still don't _know_ what IDs you're going to get and there are still issues like the GridView doesn't output thead rows in the table unless you set certain properties explicitly. All this makes using ASP.NET with third party CSS and JavaScript tools hard because They often rely on markup being defined a particular way
2. ViewState is on by default and posted back to the server every time the page posts back. Most people have slower updoad speeds ti download speeds, so this causes real issues. The whole design of WebForms assumes that every control will be setup once on initial page load and then rebuilt from ViewState each time after that, whereas usually each postback only requires some of the page state to be posted back and a few controls to be rebuilt. Some sort of ViewState group would be useful to tell the page "if the user clicks that button, then these fields are needed at the server end and these other controls will be rebuilt. This would be virtually impossible to retro-fit into WebForms though.
3. UpdatePanels are a performance nightmare and still post back the entire page, usually they are only needed to update 2 or 3 of the controls on the page and a page method would be far more efficient, but UpdatePanels are just so darn convenient (especially given point 1) that they get over used.
Some abstractions are really nice and I totally don't care what happens beneath them, but WebForms is not one of them. Markup matters, IDs matter, upload bandwith matters. WebForms abstracted the stuff I care about and made bad some bad assumptions too.
Of course, most development projects are not like that. The pure coding part of it is interspersed with countless decisions about how the app should work, with each decision requiring input from lots of people, plus a bit of experimentation and rework. The process of getting to a decision is hard to estimate and the amount of development that each decision will create is impossible to know until the decision has been made.
Estimating a software project is like estimating the length of time it takes to get a law passed. It's not a computer science or even an engineering matter, its a political/ psychological one.
But people used to work 6 days a week with no paid vacation time. What about all the slaves who worked 16 hour days. All those children in factories or down mines, are all those hours being factored in?
I guess what is different is that we've automated lots of mechanical/clerical tasks like finding a file, duplicating and delivering a memo or compiling a report. Executives used to need a large staff to do that for them but there are fewer jobs like that now. In a way, we've all become executives. And to operate at that level can be draining, especially if you're not doing something you love because it takes much more emotional investment.
When all candidates alike have to write Greek or Latin
verse, it is relatively easy to decide which verse is the
best. Men thus selected on their classical performance were
then sent forth to govern India. Those with lower marks
were retained to govern England.
The current "system" for getting hired might be arbitary and unrelated to programming ability, but it does at least present a consistent and knowable environment in which candidates have to operate. So you have to question the judgement of someone who makes basic errors like this.I suspect the low interest rates are pushing a lot of private capital into higher risk but 'cool' areas.
Having just written that, I realised that games have been doing this for years. Imagine having a DVCS inform you that you've levelled up and can now do cloning.