Shamanmuni
But OWL is not based on OOP, it's based on Description Logic, which is a much more powerful abstraction than OOP and it let's you easily represent things which are very hard with something like Java. OWL includes the concept of complex class, in which you define the logical constraints of the class and then it is inferred automatically by a reasoner. This means that you can build really complex multidimensional hierarchies pretty easily.
For example, you can solve the circle/ellipse this way: the class circle is a complex class which is the intersection of the class ellipse and the class of two dimensional geometric shapes in which both major and minor axis have the same length. Any object that satisfies those constraints is a circle!
About the greek problem: you have to declare that the human class and the complex class which results from the intersection of the class two-legged animal and featherless animal are equivalent. It means that every human is two-legged featherless animal and viceversa.
You can even declare equivalences between ontologies, which lets you build conceptual bridges.
OWL has problems related with the maturity and performance of its implementations, and it remains to be seen if it's possible to treat the web as a gigantic Prolog program, but its conceptual model is powerful and sound.
But I think mezze includes more elaborated food; the typical picada includes cheese, cold cuts, olives, peanuts, bread, snack food and that's it. The things served are more similar to the italian antipasto, but the way of serving them (many small dishes distributed over the table) resembles the mezze.
If you order a Fernet in Argentina, it is assumed that it includes Coke. Nobody that I know of drinks it alone, and it sounds weird to us to do that.
In the movie "The Dark Knight Rises" there's a scene in which Alfred goes to Florence and drinks Fernet Branca alone. The comment from many Argentinians was "What? No Coke? That's gross!".
You don't need to depend on anything from Microsoft for development, I've toyed with TypeScript using Node.js and Eclipse on Linux without issues. And as stated before TypeScript compiles directly to Javascript and they are trying to align their syntax with ES6.
Seems quite kosher. I think at this point if Microsoft tried something shady a community fork is very doable, or if it doesn't happen you can always compile to plain JS and continue working there.
It's really different from the situation you describe because developers and users won't tolerate a MS JS that only works with MS browsers, they have to remain compatible with the others or risk irrelevance.
The cases in which the community forks a project licensed with a copyleft license (like LibreOffice) has to do with insatisfaction with the direction in which the company that owns the original trademarks is leading said project. There's no risk of closing the source code.
Maybe I'm mistaken, but I have the feeling that many -of course, not all and I'm not saying that you do- think that their precious code is so amazing and it will give so much competitive advantage that they need to leave open the option for a closed source version that will make them rich, and that's why they defend "freer" licenses very passionately. Newsflash, it almost surely -like 99,99%- won't happen.
But I suspect from your tone that I could give a thousand examples and you wouldn't change your mind. C'est la vie.
Are you joking? I'll just give you one example: IE 6 and its complete disregard for open standards, end-user security and its lack of change put the web in stasis for years. At first, it didn't make much difference that we had Firefox because developers still made their pages only compatible with Microsoft's non-compliant browser, which was understandable as most people used it. Since IE lost ground the web has become a much more open and welcoming space for experimentation and advancement of its technologies. And that's undeniable.
Perhaps I want to be in charge of what can and can't be known about my personal life. I know, a radical thought... Maybe I want other people to know some things and not others. Why so many people seem OK with notion of corporations doing whatever they want with the data they collect without accountability?
They even blame the victims: "You bought a device with the things that 99% of devices in that category bring and can be used to collect information about you. So it's your fault, you could have bought that very difficult to get (or obsolete) device that doesn't have them, or none at all. Of course, neither corporations nor security agencies can be blamed for their sociopathic behaviour. It surely has something to do with business or security that's entirely reasonable even though they kept it in secret."
I hadn't even noticed Chromium doesn't have support by default for those codecs as I have used HTML5 audio and video without an issue. Really, for a non-expert Chromium is just Chrome with a blue icon.
Except for the color of the icon and the lack of support by default for AAC, H.264 and MP3 (I have support for those 3 in Chromium in Arch), do you find anything relevant that will make some non-expert notice they are using Chromium and not Chrome?
Important things like good and efficient dependency management and library reuse are far easier to achieve when all the relevant sources are available to packagers.
IceWeasel and Chromium visually are Firefox and Chrome with different icons and you'll find them if you search their "real" names in the package manager. Not so hard, right? You can find about why they exist if you are interested, it's not required.
From what I can see, Simple Scan's "magic" is using a default DPI for Text (150 dpi) with grayscale, and another for Photos (300 dpi) and color. What if I want a light photo for the web, or a photo in grayscale? I think these aren't unreasonable examples at all. I suppose I'll have to use the counterintuitive Text for both examples, but now my photo looks awful on print and it's overkill (and monochrome) for the web! And if I have to go to Preferences for such common examples then it would be better to offer them right there in the main screen. Presets are good, guessing is good if you make the options easily available to tweak them. Simplistic presets and hidden options are not good IMHO.
You see, there's simple and there's simplistic. I already agreed that some options in KDE are overkill and should be hidden by default, but some of them are really useful. For example, why can't I preview a large photo while navigating visually the rest in Showell? It's something I usually do with my photos. With Digikam I just press a button and have that, I haven't found it possible in Shotwell, it's either one large photo at a time or many little photos.
On the other hand, in GTK you have GIMP and Inkscape, which aren't exactly an UX expert's dream. In Qt you can find similar counterparts in Krita (specially Krita Sketch) and Karbon, which I think are much cleaner.
I hope they help with your preconceptions.
Transmission is as much a Gnome as a KDE application. It has both Qt and GTK clients that look the same.
Brasero looks as complex as K3B.
I understand that Skanlite can look intimidating (especially on the Image Intensity properties), but Simple Scan seems simplistic. Scan source, scan mode and scan resolution are important properties when scanning and it's very useful to have direct access to them.
The default view in Digikam is not so different than that from Shotwell, a folder list to the left and the corresponding pictures to the right. The metadata widget is not opened by default.
As jstanek pointed out, even if some things could be made simpler and more polished, it's not so much that KDE doesn't have a clue about design and GNOME knows its stuff, but that they have different objectives. GNOME tries to be as simple as possible while KDE wants to give you power in the friendliest way possible. It's apples and oranges.
I feel uncomfortable with GNOME because I think it treats its users as perpetual newbies. I understand that a person's first use of an application should be made as simple as possible, but then they should be able to require more from their software if they want to. There are some things about KDE applications that maybe you won't find a use for at first, but then you need them and it's great to have them at your disposal.
I don't want GNOME to be like KDE, it's good at what it does even if I don't like it. The reverse holds true, too.
As far as I understand, it's a message to everyone who uses Qt. Even those who don't use KDE have an interest in keeping it healthy as many valuable Qt contributors come from there. And the graph supports that wonderfully.
I don't know with which publishing houses you've been in contact with, and I think most of what you say comes from a bad experience with dubious publishers. But, in a serious one you work with an editor, whose job is to read your manuscript and tell you what's good and what can be improved, and how it can be improved. A good editor with some knowledge of the field your book is about is an enormous help.
And more important, to many new and more established writers, the editors in publishing houses provide serious value in the form of advice and guidance. It's easy to think that because you read books you surely know how to write a good one. But that's similar to thinking that because you use applications you surely know how to code a good one.
And lastly, good publishing houses serve as brands for consumers. People won't see a self-published technology book with the same eyes as if it was published by O'Reilly (for example). From past experiences they probably feel guaranteed of a certain level of quality from the O'Reilly book that a small lone author almost never can provide
I'm not claiming that the publishing system is a panacea or that all editors are amazing. But you described it as mostly useless, bordering on a ripoff, and I think it's far from the truth.
QML is basically a Javascript-based declarative language for building user interfaces in which you can use full Javascript to augment them. It has its own IDE (Qt Creator) with a visual designer and it's pretty easy to learn, and Javascript is not a hard language at all for newbies. You can even use C++ to extend your applications. KDE 5 is not ready yet, but Qt5 is mature and improving with every release.
I would recommend that combination to a young aspiring programmer without a doubt.
Maturity: it certainly feels rushed that in less than four years systemd went from nothing to the default init system in most Linux distributions (if I'm not mistaken). For something so basic and important you'd think a good amount of testing and bugfixing should happen before that. We are taking our time with btrfs and Wayland, so why the rush with systemd? We certainly could endure some more years with the previous init systems. And this comes from an Arch Linux user, I like my software as fresh as I can I get away with, but it still seems odd.
Compatibility: this troubles me the most, you see hard dependencies appearing like what we currently get with Linux, systemd and GNOME. When people talk about this they are usually referring to the BSD family. That's a legitimate concern, but think about this: if in the future appears a brilliant programmer who designed a free kernel which runs circles around Linux, what will we do if everything is so tightly coupled? We have to consider the possibility that we won't be running the Linux kernel forever and be prepared to switch if something better appears.
Think about this: I, as a user, am paying my ISP money in order to connect and receive content through the Internet, irregardless of the source of that content. I trust my ISP to send that content, and I don't care where it comes from. They should send it as fast as they can (according to my plan) because that's what I pay them for. I think there's no argument there, any user would want to get any content as fast as his plan allows.
Now, my ISP wants to be paid by content providers to give them preferential treatment, breaking completely the trust I put on them when I chose their service. Isn't this exactly "money or favor given or promised in order to influence the judgment or conduct of a person in a position of trust"?
The only way I can imagine this isn't bribery is if they start sending the preferential content faster than your plan allows, while maintaining the rest at the same speed as before. But we know it won't work like that.
My advice is, if you're learning it for work, then go with C++. Even if it succeeds, it will take some years for Rust to be mainstream and as pointed out the library support is great.
If you're learning it for fun or for the sake of learning something new. Then Rust is a very nice and promising language bringing things from functional languages that C++ lacks and offering very interesting tooling around it.
Whatever you choose, after you feel confident with one go and learn the other as it will probably give a better perspective in the strengths and/or weaknesses of both.
When you see Rust it's clear that they have taken note of these advances and added them to the language. Pattern Matching, Algebraic Data Types, Hindley-Milner type inference accompanied by a sophisticated type system, everything is an expression (well, most), immutable variables by default and type classes are all things that many of us who were exposed to the functional world miss sorely in mainstream languages like Java. Rust includes all of them while Golang doesn't, and C++ doesn't have some of them.
And it doesn't end there, in Rust you can also do OOP, though it's different from Java (no classes, more similar to Go). You have concurrency primitives baked into the language as in Go. You have generics as in C++ (the most cited criticism of Go, which lacks them). It lets you manage memory but in a safer way than C. And it can be made compatible with C, which lets a library written in Rust be used by other languages.
So, Rust really feels like the superior replacement of C++, and possibly C, that Golang promised at first, and it has a chance of becoming mainstream when it's stable. Rust offers all the things that Golang does, and many more. The tooling is generally better in Go, but it surely can be improved.