Hacker News new | ask | show | jobs
by moron4hire 4261 days ago
I've been doing Windows development for over a decade now. WPF was too different from WebForms (or less often, WinForms) to get most of the other developers on every team I've worked on to agree to switch to it. I wish we had switched way back when, because it is a much better design than (Web|Win)Forms.

That said, now that I'm on my own, I'm not switching to it. The legacy windows-only apps I support I'm sticking to WinForms, because I don't want to spend effort on learning yet another Microsoft ecosystem API. I'm actively getting out of MS-only work now.

Unfortunately, there are no UI toolkits that I would call "good". They all have some weird idiosyncrasy to them. It's like they all start out with a great idea, and then beef it in the face halfway through completing the full set of controls that would be useful to most people. It necessitates 3rd party control libraries of vastly variable quality, and makes it extremely difficult to tell clients "yes, we can do that, and it will be done by XYZ date".

So, lacking a better alternative, I'm going all-in on HTML5. It's the closest to "ideal" of what I want for a UI toolkit. I've about decided that I really, really don't want my UI to be anywhere near my application layer. A node-webkit-style deal might be bothersome to some people, but for my ideals, it's exactly how I want to arrange my applications.

I'd just like it very much if Node weren't my only readily available option. I like Node for small things, and I use it in a few projects, but there are some other projects where I'd really prefer to be writing the backend in C#, or C, or anything with a wide variety of libraries that aren't mostly just a weekend project for a CS grad somewhere like half of everything on NPM often appears to be.

3 comments

Is that for server-client or fat client applications? For the latter, Java today offers the WebView class (part of JavaFX) that's simply an integrated Webkit browser. You can build your UI for HTML5 and easily hookup with the main Java program. I wrote a brief overview last year, along with other options for fat client HTML5 frontends: http://news.kynosarges.org/2013/12/29/webview-the-other-java...
Well, one nice thing about using JavaScript and HTML 5 for the front end is it does, as you say, give you a lot of decoupling, which means you don't actually have to use Node for the back end; you're free to use C++ or Python or whatever you find best.
Why is Node your only readily available option? There's nothing stopping you from writing the backend in C# (or anything else) and the client code in HTML and JavaScript.
I know, it's just that wiring up the two is significantly easier for me right now than for the other languages. Well, it's mostly just a matter of not having had the time to build out a workflow in C# yet.