What's the best option for new applications?

Started by
20 comments, last by cr88192 10 years, 8 months ago

So, I'm looking at doing some new work and it's completely green fields, blue sky and whatever other metaphor you want. There's no legacy code to be leveraged and no specific requirements about what frontend to use.

So what would you choose for the frontend?

if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight
Advertisement
Correct Answer #1: Whatever you are most familiar and productive with.
Possible Correct Answer #2: Whatever one you feel like learning.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

WPF or WinForms if its strictly graphics only (games for example) where you need full control over the swapchain

I know from an old post you aren't too fond of WPF though, I have never used Qt but I think out of the rest WPF or XAML frameworks probably will result in quicker development and much easier management when the project gets bigger among other things.

Oh and I say this as something I would pick (answering: So what would you choose for the frontend?) rather than saying you or anyone else must pick this

If I was pounded for time I would use HTML5 and web tech. It's quick and easy. If I had all of the time in the world, I would just use C and OpenGL and make myself a "just OK" UI (and then tell the customer that they can compile this with a display or virtual reality on all 3 BSD's, almost any Linux distro, Windows, Mac, Solaris, and even a Mercedes-Benz C Class (This probably among other cars. I just live near the C Class factory, so I have seen it, and it runs OpenGL ES 2.0 beatifully. They are adding support for ES 3.0 in a few years).

C dominates the world of linear procedural computing, which won't advance. The future lies in MASSIVE parallelism.

I'm a fan of Kivy, if you're looking to get outside your comfort zone.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Correct Answer #1: Whatever you are most familiar and productive with.
Possible Correct Answer #2: Whatever one you feel like learning.

While I appreciate the value of #1, it's not always correct. There are other concerns besides just developer productivity and comfort.

The point is trying to determine #2. I want to use a UI tech that will be useful to the client and maintainable from a development perspective.

if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

I'm a fan of Kivy, if you're looking to get outside your comfort zone.

I'm happy to try anything, provided it actually delivers usability and maintainability. Given that I'm a big python fan, this looks quite interesting.

if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

provided it actually delivers usability and maintainability

Usability and maintainability in UI frameworks? That pretty much sticks you with QT or Cocoa...

<aside> I wish that I were entirely joking </aside>

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

#swiftcoder - I have to say some letters in reaction: GTK+

It is usable and maintainable, and I personally like it more than Qt.

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com

#swiftcoder - I have to say some letters in reaction: GTK+

It is usable and maintainable, and I personally like it more than Qt.

and at the same time is an indicator of the generally sad state of GUI frameworks...

usually, in my case, it has ended up often being:

I don't really care much (about either portability or generality), so for something quick/dirty, generally using Visual Studio + C# + WinForms.

once wrote an app in VS + C++/CLI + WinForms, but C++/CLI is in some ways a bit nasty, kind of like a compromise of C++ and C# with the good points of neither, yet somehow still more generally usable for mixed C + C# apps than P/Invoke, where "at least it is not as bad as JNI"...

most other cases:

typically rolling something custom by doing 2D drawing in OpenGL.

granted, I generally stay well-clear of business apps, and most of my apps aren't really GUI-intensive (I tend to be very lazy when it comes to UI, which often results in UIs driven primarily via a console and keyboard-shortcuts, *1).

otherwise, I would probably mostly go with GTK+...

or maybe throw something together to allow leveraging Glade or similar...

admittedly, I am not really generally that enthusiastic over the whole "window full of buttons and drop-down menus" school of UI design either, but alas, if one does otherwise probably most people end up either thinking that one forgot to code up the UI (being faced with an initially mostly empty window), or have little hope of being able to use it (due to CLI's and keyboard-shortcuts being anathema in the common mindset).

well, and my UI design strategy falling on its face on cellphone or tablet or similar (*2).

and, my stuff often being a PITA to use on a laptop without an external mouse+keyboard.

...

*1: though once I ran across an idea for a UI design element where people hit SHIFT+SPACE and then type a command.

while still a nifty idea, my current strategy of hitting ALT-~ to summon/dispel the console works "good enough" (side note: currently I have 9 consoles, with ALT-1 through ALT-9 for switching between them).

for the most part, this worked well, apart from being a bit problematic with "GNome 3 Shell", which seems to hijack the 'ALT' key for its own uses.

*2: can't do a mouse+keyboard UI without a mouse or keyboard.

granted, I have some doubts regarding the general usability of cellphone or tablet style UIs for much of any sort of serious computing tasks (in general).

like, the "general usability" of the UI is somewhat worse IME than a desktop or even a laptop.

though, granted, portability and battery life are generally a little better than a laptop (can use a phone or tablet while standing up and without needing to hunt-down a power outlet, ...).

in general, if "off somewhere" I generally much prefer a laptop though.

(was trying to think up ways to make a desktop PC more portable, but most were going off into absurd/impractical territory...).

or such...

This topic is closed to new replies.

Advertisement