I'm not so much disagreeing with what you have said, as obviously the various courts this has already been through hold a similar position on the matter, however, I would like to emphasise two points:
1) Google continue to possess _copies_ of books that they do not own. Hence my suggesting they purchase the books (i.e. I don't think that partnerships with libraries is enough). To offer the service of Google Books they must retain these copies, i.e. to allow you to read individual pages of the books.
2) Fair use usually entails the production of another copyrighted work that includes as a very small portion the existing copyrighted material. For example, a quote in a book. However, there are some instances such as for criticism or satire that allow a far greater amount of the original material to be used. But my main point is that a new work is created that is now distributable and is complete in and of itself, i.e. it does not rely on the maintenance of any source materials for its continued existence, e.g., a paper, a book, a video, a movie, a poster, a painting, a program, etc.
The copyrighted work that Google have created is entirely their own, i.e. the source code related to the Google Books service. The copyrighted material they are using is the data used by their system. I don't think it is right to argue that each time a person accesses Google Books that the transformation from data in the database to webpage output constitutes a fair use as the content output is largely just a subset of whichever book it is. There is no extra criticism, satire, or transformation added,
as you can then read the output as you would a normal book, and the entire purpose is to read the book as the author originally wrote it (albeit with some pages missing).
But they aren't just indexing the book. They are copying it completely. Then using that copy to provide a commercial service to people that reinforces the Google brand.
In a similar way, I could _borrow_ books from the library, take them home and digitise them, then return the library book while retaining the digital _copy_. I'm pretty sure this is not allowed under copyright law.
However, if I go one step further, commercialising my collection of digitised books by providing them online to everyone in the world in a searchable format - but removing every few pages - that somehow makes the original copyright infringement legal?...
Does Google Books provide a useful service? I think Yes.
Do they infringe copyright to do it? I think Yes.
How could they not infringe copyright?
I suggest if they bought every book that they digitise, they would then have the right to index those books so that they could offer their fair use service to people. Optionally, publishing houses and authors could opt-in to the system by providing them with a free book or a waiver.
It looks like most of those have been applied for but are not yet registered. I'd be very surprised and (shocked/dismayed/appalled) if Pinterest was able to register a trademark for the word "PIN".
That said, INAL (I'm not a lawyer), but I believe legally they could argue that because you are using a word that is Prefixed with "pin" and that your product also a service related to Pinterest that there could be confusion as to whether PinPigeon is a product of Pinterest's or not.
My impression is that desktop software is/was largely written in C/C++/C#/Objective C/Objective C++ because those are the languages to which the Operating Systems of today expose their APIs. For example Win32 = C/C++, Cocoa = Objective C, Metro = C# (or I guess anything compiled to the Common Intermediate Language (CIL)???).
Now that said, most languages provide a bridging layer that allows them to call out to those "native" APIs. These are used to enable API ?wrappers?, however due to these being provided by third parties (I believe) there has been a tendency to gravitate toward the "blessed" language of the OS vendor.
One of the big advantages of Java (to me at least) was that it provided a platform independent windowing capability inbuilt within the JDK that has been maintained by Sun/Oracle/(and Apple) as new operating system revisions were released.
Note, for example, that C/C++/Objective-C/Objective-C++ programs aren't/weren't allowed in the Mac App Store (I'm not sure if this is still the case...).
(Personally I ported a Java App to Objective C++ due to this.)
But generally I agree with your point that this isn't the only reason why C was so pervasively used. However, you also need to consider that a large number of programming environments and tools were specifically developed to aid C/C++ programmers, e.g. Borland C++, Visual C++, Code Warrior, XCode. It's also worth remembering that the GNU C Compiler and Debugger were import contributions to free software back in the day.
But also consider distribution of compilers etc. I think it is pretty fair to say that a lot of programmers learnt to program using Borland Pascal/C++ because at that point the Internet was not as accessible as today and copies of these could be "obtained".
The advent of Internet has not only allowed the distribution of compilers and environments for other programming languages, it has also meant that the languages used for backend systems, i.e. web servers and web applications, is irrelevant to the user's web browser.
Anecdotally, for safety-critical system software an issue with some languages other than C is that they have not been suitable for real-time systems. I don't know much about this other than that exception handling and also garbage collection can cause issues due to their non-determinism.
I fear that you'll think that the above is a bit too much like saying "all software is 'C' because it needs to do system/library calls", however I think it's probably fairer to say "all software is 'C' because many people have really, really liked it" and "better the devil you know".
To clarify, to me, each particular statement was condescending to the developers of those products.
The comments are condescending because you imply that there is no difference between them and the technologies you listed. In reality, most advances are made incrementally, and if one wants to make such an advance then one often needs to reimplement some, or all, aspects of what has been done before.
"What" a tool does is often irrelevant. Often advances occur in "How". And "How" is often either hard to communicate, not desirable to communicate (I.e. for competitive advantage), or not particularly interesting, but vitally important.
Indeed, often existing technologies need to be trimmed back to provide a more useful subset - asm.js comes to mind.
However, obviously the person you replied to was using those as _examples_. Your reply completely missed the point he was trying to make that new things, I.e. things that are not the same as other things, are used by people regardless of how similar they may be to other things.
Unless I am mistaken it would allow a person to create a web-based editor that can compile and run the python code on the same web page. This seems to be very much the direction that online programming tutorials are taking.
For schools, Universities, etc, it means not having to worry about platform or installed software.
As most open source projects stall due to "more important things to do", it would probably be wise to offer these people as much encouragement as we can to better the chances that someone will complete one (and want to support it in the future).
Congratulations to PommeDeTerre for providing the perfect example of the sort of comments that are so condescending. I hope that he/she meant it in jest.
Very nice. Would be great if you could specify a common default grid, e.g. bootstrap or 960.gs.
While aligning objects with objects is useful, often its the initial grid that is the most important thing to align to.
Maybe allow the user to specify column width and column gap and automatically add some guides...
Luck is like time travel.
Once you've done such an analysis, luck moves on to represent all those factors that you didn't take into account.
That's what the word means.
I usually start a web project by doing fairly complete mockups using Balsamiq. From this I can work out what the DB data model should be. Then I build screen by screen.
You may not be able to "win them all", but you can certainly piss off everyone by making a stupid decision.
If an iPad user asks for a mobile version of a site, I would assume it would be so that they can view it on a smartphone not on an iPad.
Personally I wish people would get over this fetish for making the tablet version different to the desktop version.
If it doesn't work on the tablet you'd be better off fixing your desktop version.