Post a Comment
When in doubt, rewrite.
They've finally made the right choice of toolkits, but I can't help but feel they're being way too scattered about this. Just a couple weeks ago they were recomending everyone use Python and GTK to develop their "apps" and now they're pulling that rug out again.
If you know you're going to standardize on Qt, then don't make major announcements based on a completely different environment just weeks before. For a small company, Canonical sure behaves like a massive one where the left arm doesn't know what the right is doing.
Ubuntu have written a lot of things, but, AFAIK, none of it has been picked up by any other distro. They should stick to what they do best, which is to repackage other people's work, and not try to fork the Linux desktop.
[edit:] Of course, if Ubuntu actually for once make a superior product in shorter time than the competition, then that's a welcome contribution. For some reason, I just don't have any faith in them at all -- but the X.org developers behind Wayland hasn't really shown any reason why I should trust them more.
Edited 2013-03-04 18:55 UTC
There's something seriously wrong if you can't evolve and modify your direction in light of new industry trends and realities.
Remaining steadfast in the face of a sea of change is what made Microsoft miss the boat on mobile.
Microsoft's client side evolution (from a managed POV, native has always been a mess until Win8) has always been about XAML and a GPU accelerated framework.
WPF -> WPF
-> WPF 3, 3.5, 4, and 4.5
-> Silverlight
-> Silverlight 2,3,4,5
-> Silverlight for Embedded
-> SL 2.0 for Symbian
-> Moonlight
-> Silverlight for WP
-> Silverlight for XBox
So we had two divergent technology branches based on the same core technology for the last half a decade. WPF was the result of a botched Vista dev cycle and showed it. Silverlight was slimmed down, almost beautiful in how simple it was, but ultimately a science project (albeit one that got too successful for WinDiv to stomach)
However, despite the differences in API surface, a lot of the architectural design decisions remained persistent:
XAML
Dependency Properties
Storyboard time based and keyframe animation
GPU acceleration
Databinding
Sharing code between SL and WPF was easy, share code from WPF to SL was hard (since WPF is a superset, put simply)
From there we got the convergence of native and all the managed stacks into the Windows Runtime.
This unified not only WPF and Silverlight by bringing SL into the client, but it unified .NET and COM in a much more natural way.
Prior to WinRT, Microsoft released great COM based APIs for Windows (Win7 Taskbar APIs for example) but .NET wrappers came months, sometimes years later.
With WinRT the projections are automatically generated and the ABI is uniform so calling into native code from .NET is much more natural and faster (for coarse grained ops)
I think over the past 7 or so years Microsoft's vision has remained consistent, but the means to get there has changed slightly. Silverlight went from an RIA plugin , to an OOB solution, to being reborn as the XAML platform in WinRT (gross simplification).
Thankfully, WinRT has restored sanity to native code. I can write super fast native code, interop with my C# app, and not have to see a single IUnknown or AddRef (save for DirectX). Its great.
Going forward I expect almost every new API out of MS to use WinRT.
Doesn't look like WinRT/Metro is really taking off on the desktop quite the way they hoped it would. So you reckon they'll toss that to the side and 'bet the company' on something else for Windows 9? If not, when are we getting fully-functional winRT versions of MS Office and Visual Studio? THAT is when I'll know that they're really serious.
Doesn't look like WinRT/Metro is really taking off on the desktop quite the way they hoped it would. So you reckon they'll toss that to the side and 'bet the company' on something else for Windows 9?
Well, I disagree with the notion that Windows 8 (which I assume you meant) isn't taking off. Its likely selling modestly at best, and at worst being held back by a couple of OEM conditions:
- Shortage of touch screen components and high costs
- Lack of a complete product range. The Windows lineup had holes in it. This was badly fumbled.
- Global economic conditions
- Elongated upgrade cycles for PCs.
The good news is that assuming OEMs can get their act together and put together some sub $1000 touch screen devices, then they'll have winners on their hands.
Windows 8 shines best with a touch screen and a lot of the models sold were decidedly non-touchscreen.
If not, when are we getting fully-functional winRT versions of MS Office and Visual Studio? THAT is when I'll know that they're really serious.
WinRT isn't there yet in a few places, but I agree with you they should port both apps. Especially Visual Studio.
Last time they did this, they ported large parts of VS to WPF. It greatly moved the ball forward towards them addressing architectural deficiencies in the platform while they were dogfooding WPF on such a massive scale.
But I think its important to separate WinRT, the technology, from what you perceive the reception of Windows 8 to be. Its like saying the DWM was going to be removed in Windows 7 because of people claiming Vista wasn't selling. That's not really how things work.
Prime example being WPF, it was never terribly successful, but the innovations in WPF eventually led to WinRT. These are game changing events.
WinRT has far reaching implications. Beyond Windows 8, beyond Metro, and changes the game for Windows.
It now has a first class, native, ABI safe, object oriented API. That's incredibly powerful.
They can describe APIs as Async operations with continuations and using stuff like generics and exceptions. Compare that to the mess that was classic COM.
It now has a first class, native, ABI safe, object oriented API. That's incredibly powerful.
They can describe APIs as Async operations with continuations and using stuff like generics and exceptions. Compare that to the mess that was classic COM.
Agree with you there, and I think it is a welcome improvement. But if they can't manage to build a desktop environment around it that doesn't suck ass, it's going to flop, just like WPF and Silverlight, albeit for different reasons.
Personally, I hope they continue to improve it and make Metro in Windows 9 something that is actually usable. Whoever it was that decided that right mouse button menus were no longer relevant, and that horizontal scrolling was a good idea on the desktop should be summarily executed. And I don't mean that figuratively either
In fact, we should put them into a lion's den, alongside the asshole at MS who invented the F-lock key, and then charge for admission. Edited 2013-03-05 05:59 UTC
Agree with you there, and I think it is a welcome improvement. But if they can't manage to build a desktop environment around it that doesn't suck ass, it's going to flop, just like WPF and Silverlight, albeit for different reasons.
I don't think they're going to build a Desktop environment as we know it. Period. I just can't see them going back at this point.
I do think that Metro Style apps will become a lot more powerful. The XAML stack will become more feature filled and support more scenarios.
They'll presumably show a lot of love to Mouse+Keyboard users. They don't really need to do much to dramatically improve the experience.
What they need more than anything is a standardized generic gesture driver for laptop touchpads. Every new Laptop with Windows 8 I saw did swiping gestures on the touchpad differently.
It ranged from completely terrible to mildly amateur. Its a nightmare. This needs addressing.
Personally, I hope they continue to improve it and make Metro in Windows 9 something that is actually usable.
Well just look at the growth from WP7.0 to WP7.5 to WP8. Its night and day. With some time behind it, Microsoft will mature the platform to be very powerful.
Whoever it was that decided that right mouse button menus were no longer relevant, and that horizontal scrolling was a good idea on the desktop should be summarily executed.
Right Mouse buttons have never been particularly discoverable, in my own analytics, people that use my apps and don't use tablets have a hard time discovering the App Bar (opened by a right click).
I've always seen the context menu used as a dumping ground for options which is annoying. There's a better way in Metro.
But Metro allows you to write Context Menus pretty easily using Popups (which is how they were made under the hood in WPF/SL. In fact, you can easily port the WP7 ContextMenu from the SL Toolkit if you want, there's a better one in Callisto a WinRT Toolkit).
I just don't think context menu's fit into Metro. A combination of app bars, content as chrome, and flyout menus can address all of the context menu scenarios.
The focus on horizontal scrolling is an artifact of their stupid obsession with 16:9 aspect ratios. I hate it. It makes portrait views on tablets useless. My Surface feels like a skateboard in portrait mode.
This is a typical response from developers. They look at various statistics and decide 'well, since 90% of people aren't using this, we might as well take it out', thereby alienating the other 10%.
Personally, I think there's a way to please both camps with the same product, but nobody seems to even be making an attempt these days. Even Google is dumbing down Android, claiming that things such as SD cards are too complicated, and so they just rip it out.
This is what I like to refer to as the war on power users. I guess I shouldn't be surprised though, since it seems that any minority group in this world are the ones that get shit on and ignored.
Better to change direction now before everyone's on the Python/GTK train. "
If I remember, Gnome settled on javascript, not python. I wonder if this is the reason for the change now. Maybe Canonical has lost faith in the Gnome community. They would not be the first to wonder where the heck Gnome is going. Personally I don't see how you can base all your desktop apps on javascript, unless they are all web apps, but I am not really a dev.
It's a very good and natural thing: evolution.
I just hate it when people start screaming: no, nobody else does that, it's non-conformant, evil, etc etc.
I'd like for the so-called distributions to evolve into independent fully fledged os'es, not just another "distros".
I.e. just like Android. Nobody calls it a linux distro. And that's a good thing.
Ubuntu apps, Ubuntu desktop environment, Ubuntu desktop server, Ubuntu operating system. Nice.
And Qt. Couldn't be a much better example of a match made in heavens.
Ubuntu apps, Ubuntu desktop environment, Ubuntu desktop server, Ubuntu operating system. Nice.
That is only if you like an Ubuntu everywhere world and if only Ubuntu gets the brunt of the developers working in the ecosystem.
If it becomes Ubuntu OS and apps, Fedora OS and apps, OpenSUSE OS and apps, Mageia OS and apps, Arch OS and apps, etc. We'd be worse of than today where GNU/Linux still scratches the single digits n the desktop.
It is exiting in a geek kind of way, but this doesn't do anything for the much needed unification in the lower levels of Linux' plumbing.
Ubuntu wants to become a desktop Android, a platform friendly for commercial, closed source software.
Present free desktop efforts failed at that, among others because the OS/Distro split that has marginalized Linux as a platform.
The situation you've described has defacto existed for commercial developer for years due to pointless distro incompatibilities on system level and lack of backward compatibility. Canonical is simply catering to the reality and sitting in the driver seat.
The remaining distros will remain as they are in the semi coherent free desktop world, while ubuntu might get to become a true platform. The free apps will eventually get ported to it.
I'll admit that my "ideal" of having a huge joint venture of commercial and volunteer interests producing a truly usable and free(dom) software ecosphere were naive. It's just that the same old, same old attitude of "Winner takes it all (or dies trying)!" is the worst possible outcome.
The word "mir" usually means peace, world, village or community (or a combination of those). It's sort of like the idea of "global unity" in English. In short, the term "mir" perfectly fits with Canonical's naming scheme. Ubuntu, Unity and Mir all carry a strong meaning of many people coming together for the greater good.
Qt is improving rapidly, leaving gtk behind. The big argument for gtk has been its natural integration with gnome, but gnome has become fragments to all hell as of late (which saddens me as a gnome 2 lover, but c'est la vie). Unity has been the biggest reason NOT to use Ubuntu for many former fans, and reworking it on new technology (because the issue wasn't the front end, it was the buginess to be frank) is a good way to fix it. This is a smart move by Canonical.
Now mir on the other hand... This is going to be a real engineering task. I understand the why (see ubuntu phone), but we'll see just how well the actual implementation is. Best case scenario this becomes what we hoped Wayland would be and all of linux is made better by it. Worst case scenario, this makes development for Ubuntu super specialized so that it becomes more like Android in being a full on fork than a linux distro.
They discussed this in the MirSpec page.
I don't know if/how valid it is but below are the excerpt.
"Why Not Wayland / Weston?
An obvious clarification first: Wayland is a protocol definition that defines how a client application should talk to a compositor component. It touches areas like surface creation/destruction, graphics buffer allocation/management, input event handling and a rough prototype for the integration of shell components. However, our evaluation of the protocol definition revealed that the Wayland protocol suffers from multiple problems, including:
1.The input event handling partly
recreates the X semantics and is thus likely to expose similar problems to the ones we described in the introductory section.
2. The shell integration parts of the protocol are considered privileged from our perspective and we'd rather avoid having any sort of shell behavior defined in the protocol.
However, we still think that Wayland's attempt at standardizing the communication between clients and the display server component is very sensible and useful, but it didn't fit our requirements and we decided to go for the following architecture w.r.t. to protocol-integration:
1. A protocol-agnostic inner core that is extremely well-defined, well-tested and portable.
2. An outer-shell together with a frontend-firewall that allow us to port our display server to arbitrary graphics stacks and bind it to multiple protocols.
In summary, we have not chosen Wayland/Weston as our basis for delivering a next-generation user experience as it does not fulfill our requirements completely. More to this, with our protocol- and platform-agnostic approach, we can make sure that we reach our goal of a consistent and beautiful user experience across platforms and device form factors. However, Wayland support could be added either by providing a Wayland-specific frontend implementation for our display server or by providing a client-side implementation of libwayland that ultimately talks to Mir."
Edited 2013-03-04 20:35 UTC
Wayland / X.org developers take on this:
http://www.phoronix.com/scan.php?page=news_item&px=MTMxNzY
Edited 2013-03-05 01:52 UTC
At first I thought this was just another case of NIH from Ubuntu, but after giving it some thought and reading their reasoning, I think it's a good idea, especially from the security of input events perspective.
https://wiki.ubuntu.com/MirSpec#Motivation_-_Why_Mir.3F
There are problems with X that just aren't easily addressable because of unforeseen architecture decisions (hot-plug GPU swapping, input events security, etc), hence the perpetual "just around the corner" Wayland. That said, building a display server that can use the Android drivers is a great idea that short-circuits the problem of getting Intel, AMD, Nvidia, and others on-board.
They're also implementing a rootless X server for backwards compatibility, and it can support Wayland clients if someone feels strongly enough to write the code to support it.
Since Wayland is perpetually 12 months away, and Android's SurfaceFlinger already has vendor support (better than X.org has even), so we're not really getting any typical fragmentation problems here.
I'm also a big fan of QML, especially since the Gnome devs went bonker-nuts with Gnome 3 decisions, so pretty excited about that too.
I'm not so sure we aren't getting any fragmentation problems here.
What about drivers development? Will their server share the same drivers with Wayland or not? If not, it's going to be a horrible fragmentation bordering on intentional diversion. Nvidia excused their lack of Wayland support with waiting for wider adoption. With this move by Canonical they just won't release it at all.
Of course if drivers could be shared - this can be avoided.
Edited 2013-03-04 20:19 UTC
More importantly, more drivers exist for SurfaceFlinger than exist for Wayland because of Android. If anything, Android is the standard, not Wayland.
Both are unproven, and its a big risk for Ubuntu, but lets not pretend like Wayland has critical mass or clout at this stage in the game.
I'm personally not interested in SurfaceFlinger in this context, since it has hard dependency on bionic.
Wayland and Mir have no adoption yet, but if they will rely on incompatible drivers, it will create totally unnecessary and very sick competition for drivers including on the desktop, since Canonical stated they plan to switch to Mir everywhere (desktop and mobile).
The sickness of this is well demonstrated by Android already.
Games developers will just shrug and say that Linux is way to messy to support, or they'll say they only support Mir (and not Wayland) and so on. Either way it sounds pretty unpleasant.
Edited 2013-03-04 20:31 UTC
I think that's silly. It is likely less work to adopt SF (or Mir) to use a full libc imp. than to flesh out Wayland.
Wayland and Mir have no adoption yet, but if they will rely on incompatible drivers, it will create totally unnecessary and very sick competition for drivers including on the desktop, since Canonical stated they plan to switch to Mir everywhere (desktop and mobile).
Mir standardizes around the way Android drivers interact with SF, if Mir becomes commonplace(and not Wayland), then vanilla Linux would reap these benefits and it would increase the accessibility of these drivers to all screens using Linux.
The sickness of this is well demonstrated by Android already.
Games developers will just shrug and say that Linux is way to messy to support, or they'll say they only support Mir (and not Wayland) and so on. Either way it sounds pretty unpleasant.
There's two ways to deal with this: Get rid of Android (Good luck) or standardize around Android. Mir chose the latter.
Games developers will just shrug and say that Linux is way to messy to support, or they'll say they only support Mir (and not Wayland) and so on. Either way it sounds pretty unpleasant.
Game developers should be an abstraction above SF/Mir at all times. I cannot think of a single instance where a game developer will need to interact with the compositing core of the OS. There's a serious issue if this is the case.
That's the point - will their abstraction work on Wayland? Or they'll say "game for Mir only"?
This can work out better if:
1. Drivers will be shared (i.e. same drivers will enable Wayland and Mir) - so no stupid competition for drivers there.
2. Wayland will have a Mir plugin, and vice versa allowing programs designed for either one to run on another seamlessly and with insignificant overhead.
If that would be the case - things can turn out good. If these issues will be ignored - things will turn into a horrible mess.
Edited 2013-03-04 20:49 UTC
Lets not overstate this problem. The majority of the code in the driver will be the same regardless if it runs on mir, wayland or X. The only thing different will be the part that integrates with the video system.
If this is a major obstacle for the driver developers, well, wtf are they doing writing drivers?
Its a risky move for Canonical, but it also underscores something interesting, they're a pragmatic and confident company.
Its smart to reuse as much code as possible, but if it runs contrary to your core vision or requirements, and you can make a compelling argument in favor of invoking NIH syndrome, then I don't see why not.
Sometimes the wheels needs to be reinvented if they're square.
It also incidentally helps Qt that they're pooling resources in that direction. Finally, there's a winner emerging from the pointless and counterproductive toolkit wars, and it will only benefit every app developer as a whole.
If Canonical can beat the Wayland guys to the punch and engineer something that can be slapped onto a mobile OS like X currently is, then they could have a winner on their hands.
Wayland already had an uphill battle convincing people to ditch compatibility and adopt it. Mir takes away a good chunk of the market that would want Wayland and forces toolkit authors to try for yet another backend. Can't help but conclude the winner is likely X, which remains more functional compared to two competing fledgeling efforts than one. Will be interesting to see where Wayland goes now.
Wasn't X.org the thing even die hard Linux fans hated with the fire of nine suns? Someone is developing a replacement for it, in case the Wayland thing doesn't go anywhere. Why is this bad?
Some could say that the reason Ubuntu didn't manage to make a dent in the mainstream all these years is because they are passively packaging what upstream sends, without worrying to much about how the final product will behave (how stable it will be, whether it will preserve back compat etc). Here are some examples: The PulseAudio fiasco, the constant X.org breakages caused from bundling new versions of X.org without proper testing because "that's what upstream sent" etcetcera. Essentially, Canonical is trying to do an open source Quartz which will replace the broken and older-than-most-people-here X.org. Why is that bad?
Edited 2013-03-05 12:31 UTC
Since "the community" hasn't managed to replace X.org even when it was high time, and since "the community" gave us Gnome 3, does anybody feel bad about that?
Sometimes, too many cooks do spoil the food, and sometimes being able to choose between 4 competing audio systems and a dozen of GUIs isn't for the best.
Get over it folks. There wilk be a schism between consumer/mainstream linux and hobbyist linux. And maybe it will be for the best.
No. It has a broken DRI/DRM system that Nvidia had to replace in their closed drivers so that they can get support for things like pbuffer and off-screen rendering that are neccessary for the recent versions of OpenGL so that they can provide the only GPU driver that really works. Yes, people, what looks like an ordinary driver actually replaces the bottom third of X.org.
And what happened to the open source ATI drivers? Despite ATI opening their specs, the community still hasn't managed to make a working driver with full support for the recent versiond of OpenGL, because this requires rewriting a significant part of X.org. Aka X.org is like the days of DOS, requiring driver writters to essentially rewritte parts of the OS, like Nvidia did for their closed drivers.
X.org doesn't need to just be a bit better than Xfree86. It needs to be scrapped.
Edited 2013-03-06 14:12 UTC





) had a lot of exposure to Russian language(it's one of the courses he had to take during his training for his flight to ISS) we can safely say that it's a Russian word.