05 September 2012

Ultimate++ Library Edition

This weekend I'm evaluating several GUI Libraries which have very liberal license such as new BSD or MIT. and found only IUP which is C based. There are some GUI libraries come as part of framework, they use different configuration and often have their own build tool: VCF and U++. Both C++ based and was meant to be work together with the sources instead of available in usual binary distribution such as GTK, considering their license which developer given total freedom to modify the library itself. I tried to package it into distribution friendly way. Let's try U++!

Overall from its examples U++ was intended to compete with Qt or Wx though with current situation Qt is the most advanced. U++ use BLITZ for a fast compilation (SCU), sort of what GHC did which a bit confusing to packaged as they're combined objects. Binary size is reasonably small at minimal setup but as usual mingw build is always significantly larger than VS especially with C++.

U++ has a quirk to make it available as package, while we can choose not using BLITZ and rebuild all *.a (except theIDE related) to monolithic archive there is an exception: files *.icpp which determined and called by "uses" in .upp file that compiled and appended during linking process. This create problem for generic packaging as they are conditional requirement. The (ignorant) easy workaround is to link the whole *.icpp objects (can be done in pkg-config's libs option too). This however create up to 700KB larger binary as some objects aren't actually needed but will works with generic compilation way.

Here is binary as library for both 32bit and 64bit
http://osspack32.googlecode.com/files/upp4193_32_64.7z
http://osspack32.googlecode.com/files/upp4193_mingw32.7z (only for MinGW32 dwarf2)

note: it's MinGW-W64 SJLJ based and if using with vanilla G++ you'll need to append -lpthread during linking and naturally TheIDE still needed for GUI craft. When using postgres/ssl plugin then openssl and postgres client library required. 

Currently I had side project related to postgres and need BSD licensed GUI with built-in support, but after some trials I found myself lost... this weird(unique) C++ approach is too high for me to boot :-(

Windows backward evolution tree

I was born mid '80 that time nature is my playground, mud on hand, dirt all over shirt, everything is fun. I did got my first PC experience, I think that time I use DOS 3.x playing digger, pango and once in a while have a dig at GW-BASIC making  pictures with CAD-like commands. Isn't DOS a simple experience? it was, although I had to type at least I don't (need to) care about the OS itself. That time when real-world application starved for hardware revolution, it wait until established commodity become sufficiently capable. Developer wrote PC software the way apps for embedded devices written nowadays, because there just no room for bloatness.

I'd consider a decade ago as the time when hardware being on par with software need, complex apps such as 3D become more accessible by PC. Now put that "PC" aside (unlike what MS said in their current campaign), what is a PC? Sorry if I had to call a phone a PC that's just rude. But tablets is the future is it? agreed in some way. The form factor revolution is at least remain in linear line except when the two different product blend in. Maybe PC will become the next mainframe, you know not dead but become niche. Say you won't play the next GTA on tablet anytime soon (using 3d glasses) or doing NLE, 3D modeling on it too. Still users probably could do more things on their tablet sooner (thanks to internet and Windows 8).

Following the hardware (CPU) revolution there is a period when it was no longer speed (MHz) race instead it was an energy-efficient race lately, multi-core race previously. I think the desktop market hasn't shrinking that much, it's just that the internet is so fascinating that it demand a simplistic way to be reached by more non-technical people, a hand-held device. For phone goes to tablet is a revolution but from PC into phone? Are you kidding me? I even call netbook as too restricted computer. When both worlds meet together my a** But hold on, it is still indeed a revolution from majority people point of view! jeez I just realized how minority I am. Soon (if MS succeed) people who used to *work* with computer but not a programmer/developer with also become a minority too ;-)

From a PC user to adopt tablet form-factor device I'd say:
- damn that little dinky screen rape my eyes
- the OSD keyboard is so unreal!
at least...

So what if OS for phone/tablet run on PC? I'd say "A crippled UI for an uncrippled sane device"

Remember that Metro is what an UI would be should developer face device limitation such size constrains, physical peripheral inaccessibility and non-technical minded person. OK the latter is where the money come from so there you go. But that's just interface, the core itself is still the real thing right?

Lets see, hey even OSX is still a desktop OS (although they did incorporate several iOS feature into OSX)! so only MS is gambling their long term future this time? Not really, they have Windows 7 in reserve and is in very good shape for prolonged desktop domination if Windows 8 failed but if they really can bridge and then attract the big mass of non-technical audience into the "new PC" world then big kudos for MS. I do believe that Windows (or whatever OS) should have same interface in all devices. I mean, you know the one we see in the movies, when people talk to PC, a non physical screen, a genius or at lest self-learning OS. Therefor unless PC play catch up with our intelligence and intuition, there will always a way/device which users can properly express/interrupt/assert to achieve what intended to be.

Back to Windows 8, it's not just UI, there is WinRT that chained to AppStore policy. How cool was that? how they seems try to disconnect Win32 API and how this affect open source world is to be revealed by the end of 2012. When MS had enough time for evaluating users input. Damn I must eat my own word for saying I will skip Vista and 7 altogether to jump in 8, yet this is what I will get? Time to visit Linux to see if they finally "become" XP.

Now I wonder what's the "actual" future after tablet era then?  back to "PC"? Unlikely
So I ask my sister whom most used device is tablet. What she get most from it (Android). She said, the internet and games, see it's not a revolution at all. Keep in mind that she had never interested in games nor internet (via PC) before buying an Android. So the devices itself is a magnet! it did bridge more people in reachable way just the way I'm interested in DOS games and eventually learn how to "magically" draw pictures via keyboard (not even mouse exists). MS is doing milk money for what they have recognized as and redefine an approachable "PC" definition for the fresh market. For users all of these is just the matter of POV.