
Windows 8: HTML5 and AJAX/JavaScript == Modern UIs - libria
http://samgentile.com/Web/asp-net/windows-8-html5-and-ajax-javascript-modern-uis-html5-ajax-javascript-jquery/
======
programminggeek
It makes perfect sense that HTML5/JS would overtake traditional UI frameworks
on the client side. Doing Win32, Java Swing, etc. was a horrible experience
compared to the relative niceness of HTML/JS.

Adobe Flex/AIR was probably the best client UI dev experience I've had. MXML
and Actionscript 3 is VERY similar to HTML/JS. Given the benefits of so many
platforms moving towards HTML/JS as a kind of common language for UI
development, these are exciting times.

~~~
richcollins
The niceness is in the Javascript, not HTML. HTML is made for text layout, not
stateful UIs.

~~~
bonch
Javascript is an implied part of DOM scripting. HTML5 is an umbrella term
covering all of these technologies and is much more than text layout.

~~~
richcollins
Right the DOM is the problem. Javascript exists without the DOM. Just imagine
Cocoa written using Javascript instead of Objective-C

------
richcollins
We don't need "modern" UI frameworks we need well designed UI frameworks. HTML
isn't designed for stateful UIs. I'm hoping that Cocoa will eventually move
away from Objective-C and towards a more dynamic (expressive) language
(Javascript would be great).

~~~
Zev
By "dynamic" do you mean "interpreted"? Because Objective-C is a pretty
dynamic and flexible language, otherwise.

~~~
richcollins
Objective-C does have performSelector, but its awkward to use. It lacks the
ability to easily add slots to objects and you often have to work with C
types.

Perhaps "expressive" would be a better distinction. Javascript is a much more
expressive language, meaning that I have to do a lot less work to accomplish
the same end.

~~~
bonch
> Objective-C does have performSelector, but its awkward to use. It lacks the
> ability to easily add slots to objects and you often have to work with C
> types.

-performSelector: takes a selector string, and its variants allow you to pass objects as arguments. I'm not sure why you think it involves C types or why you cite it as the feature that makes Objective-C dynamic (there's considerably more to it than that).

~~~
richcollins
I was talking about Objective-C not performSelector, although performSelector
does illustrate some problems with C types. You can't return a value with
perform selector precisely because of C types (unless you wanted
performSelectorReturningInt ... etc)

------
nxn
What is it with people trying jQuery and immediately jumping the gun into "I
can solve all of the world's problems with this!" land? Sure, it's great for
DOM interaction, but that's simply not enough for any decent UI framework. The
jQueryUI project has what, like 10 widgets despite being around for years?
Wooooweeee, you can sure base an OS UI off of that! And I don't care how many
jQuery plugins I can find on Google; trying to fit them in together in some
cohesive manner is a joke compared to an actual full featured UI framework
that uses a MVC or MVVM structure.

------
watty
Seems to be down, anyone have a backup?

HTML/JS/CSS has been the worst UI experience I've had, I'm interested to read
how this has changed. It's gotten increasingly better since jQuery was
released but still feels like pulling teeth working with cross browser hacks.

~~~
azakai
With modern JS frameworks you don't need to mess with cross-browser stuff at
all. That's basically a solved problem.

Given that, HTML/JS/CSS is quite good. And the obvious benefit is your code
will run everywhere.

~~~
watty
Well I've used modern frameworks and it's still far from running exactly the
same across all browsers and OS's - especially if you'd like to use
CSS3/HTML5. It's still a major pain in the ass to do something as simple as
center a div vertically on a page. I don't consider that modern.

~~~
yid
One man's ass-pain is another's eccentric but ultimately reasonable idiom.

------
wslh
Sorry, but Windows Forms or WPF are far ahead of HTML5. Just look at the
amount and quality of third party libraries over .NET. And the speed of
development is really fast, just a drag & drop in the IDE and some events to
fill.

~~~
equark
There is nothing inherent about HTML5 can't do this, it's just a lack of
tooling and libraries. The Windows 8 demo shows that the performance is
already there. Look at GWT for a possible development model. It's very
possible that MS will deliver something that looks very much like GWT UI
Builder or Blend but targeting HTML5 and scriptable by Javascript if
necessary. I'd be very surprised if MS didn't have a drop-and-drop designer
solution given that this is their bread and butter.

------
equark
Javascript + HTML5 is a a pretty ideal view layer, but MS almost certainly
will need to provide a higher level story like GWT to satisfy their developers
and support large teams. Google has shifted entirely to GWT over hand-coded
javascript for their applications. It seems unlikely that MS would have worse
tooling than Google, particularly given that MS can leverage their development
tools (.NET + future compiler as a service).

Is there any information on what development model MS is thinking about?

~~~
azakai
> Google has shifted entirely to GWT over hand-coded javascript for their
> applications.

Interesting. Source?

> It seems unlikely that MS would have worse tooling than Google, particularly
> given that MS can leverage their development tools (.NET + future compiler
> as a service).

It would not be hard to build a .NET to JS compiler as a parallel to GWT. In
fact there are already a few such projects, one of them even a Microsoft one
(Volta).

I would not be surprised to see Microsoft put some effort behind such a
project. However there have been no indications so far.

~~~
equark
No source. Just look at every new product they release. All of them that
started post GWT are based on GWT as far as I can tell. The new AdWords
interface being the latest and Wave coming before that. Even small apps, like
their new discovery API browser are GWT based. It makes sense too. They need
to support long-run development of large applications. That just becomes much
easier given something like GWT and all the associated tooling that comes with
it.

