There is already Economic incentives to create.
Really? What are they, then?
There is already Economic incentives to create.
Really? What are they, then?
It got him an off-hour story on Slashdot.
There's a difference between abstracting complexity away; and relying on a cute, obscure, not-quite-feature of a syntax in your program because it saves a few characters.
Of course there is, but at no point have I (or anyone else I've seen in this discussion) suggested doing the latter just to make the code shorter. The point is that there are plenty of languages that can say in one clean, readable line of code what takes half an editor window in Java. I gave some typical examples in my reply to another post.
Ideas are not scarce. They can be freely reproduced without loss.
Right. The marginal cost of extra copies of information is very low. Unfortunately the initial cost of putting that information together may be extremely high, and if the information is never collected it won't be distributed either.
So we create an economic incentive to encourage that creation and distribution, effectively amortizing the initial development cost over all those who ultimately obtain a copy. This might not be the perfect economic model, but I'm still waiting for anyone to offer a plausible better alternative.
You can repeat these arguments as often as you like, but the not-a-lost-sale argument still contradicts basic economics, and the just-trying-it-out argument still contradicts overwhelming empirical data the industry has been collecting for years.
So what you're saying is that...the extremely long copyright durations have no real impact on the bottom line of copyright holders?
No, but I'm saying it appears to have relatively little impact on the bottom line of copyright holders. More importantly, so does vast amounts of empirical data.
Your haskell and Python implementations are unreadable and requires the user to think about each line.
Maybe you personally aren't familiar with higher order functions or comprehensions. However, millions of programmers are, and would read and understand those lines without a second thought.
Using filter in Haskell or a list comprehension in Python is as routine as using your for-loop is in Java, and the associated syntax is similarly familiar to anyone who's ever done a significant amount of programming in those languages.
Moreover, these tools are declarative, which means you can use them in languages that better control side effects for safety, and you can use them in languages that optimise based on that extra knowledge for faster performance, and you will be able to use them in the data parallel languages of tomorrow to make more efficient use of modern processing hardware. In other words, in languages designed to take advantage of them, these styles immediately convey more information than the imperative style required by your for-loop version.
Perhaps it was the filter function that confused you, if you aren't familiar with that particular terminology? If so, I would remind you that you just wrote a code example full of integers and an add function that has nothing to do with calculating the sum of those integers. (At least, I think you did. I notice that you missed out several lines of initialisation and type declarations for those variables, making your example code considerably shorter than it otherwise would have been if you'd actually written a like-for-like equivalent.)
They're inferior to straight forward programming by orders of magnitude and should never be used.
I honestly don't understand how any programmer, whatever their preference of language, can claim that an expression that says filter (<10) items and means choose the items that are less than 10 isn't straightforward. I think you're just trolling here.
What if it's a smear job on Take Two? At taxpayer expense?
1. This isn't at taxpayer expense. It is at television owners' expense. Only people with televisions have to pay the television license that funds the BBC, not all taxpayers. To conflate the two is disingenuous.
2. So what if it is inaccurate or a smear job. That is part of having a free press: the right to get it wrong (and if you do, be eviscerated and/or humiliated by everyone else). The BBC has a very good record and deservedly good reputation, because despite the occasional imperfection, by and large their reporting and documentaries are first rate.
This lawsuit is an attempt to undermine the free press and apply inappropriate pressure to the editorial process, and frankly, Rockstar and Take Two deserve a severe smackdown for trying to do so, irrespective of the program's content.
And in development I have seen lots of python programmers who printed out their own code to meditate on where the one bug is they could not find on screen - only to waste another few hours because the tab/space bug was obfuscated by a page break in the printout.
Good for you. The last time I saw a programmer do that was... also never in my entire career, actually. If your programmers have trouble meditating on a print-out of a language with syntactic whitespace, you might suggest they instead use any modern text editor and a macro/plug-in that makes mismatched whitespace show up in bright red. Then they can become enlightened, spend less time "meditating" like programmers who work with punch cards, and spend more time making useful software.
Curious, which editor from 1927 would you recommend?
I doubt that there was any text editor available in 1927 that got tabs/spaces wrong when working with Python code. Take your pick.
Yeap, of course repeat the type of the object twice, the ugly diamond operators, use else if instead of elif, etc, produces verbosity, but this is not related to be easy or not to understand.
The thing is, I think it is related to how easy something is to understand.
If I can express an algorithm as a single function of 10 lines then, other things being equal, that will be easier to understand than distributing the same algorithm across 5 functions each of 20 lines. You can see the whole thing at once, instead of jumping around within or between files. You don't have overheads of passing around and returning values.
Similarly, if I can express a simple bit of logic as a clean one-liner, while a verbose style requires 6 lines of manual loop/conditional logic and maybe a function wrapped around it, then I'm thinking about what that logic is doing and it how it fits in with the other logic around it while you're still worrying about loop counters.
Here's a version of finding all the items less than 10 in a list, written in Haskell, a relatively powerful language:
items = [1, 15, 27, 3, 54]
result = filter (<10) items
Here's a slightly more verbose version, written in Python, also a language known for being clean and expressive:
items = [1, 15, 27, 3, 54]
result = [item for item in items if item < 10]
And in contrast, here is the best Stack Overflow has to offer about implementing this sort of requirement in Java.
Spoiler: There are basically three kinds of replies. Some write out entire functions to implement the filter using a manual loop. Some use a third party library to do a more clumsy variation of the Python and Haskell examples above. And a few recent ones use Java 8 to do a slightly less clumsy variation of the Python and Haskell examples above. The clear trend is to try to get away from classical, verbose Java to something more powerful and expressive. Like Scala, according to the first comment on the original question...
Generally speaking, the more information you pack into a sequence of characters, the harder it is to understand.
By that argument, doesn't any powerful abstraction make code harder to understand? Similarly, doesn't any verbose style make code easier to understand, even if the boilerplate contributes no additional meaning? Sorry, but I can't agree with this sort of reasoning at all. If it was that simple, we'd still be writing large software systems in assembly language and no-one would use any sort of libraries or modular design.
In a nutshell, what they're saying is:
"If we can't control your editorial content in reporting about or dramatizing our behavior, we're going to sue you in an attempt to make it not worth your while to report on or dramatize our behavior"
Fuck them. I hope the BBC has the backbone to stick up to this sort of corporate bullying. If the show isn't flattering to Take Two, they can suck it up like anyone else.
I'd agree with the ecosystem being a huge factor in Java's success.
More than that, it is a relatively closed ecosystem. Tools like JNI are available, but in practice few projects seem to use them. Mostly, either you're working in JVM world or you're working somewhere else. That's a lot of momentum to overcome for any long-standing project or development team to move to another language, tool chain, standard library, and so on.
I also think the summary's claim that Java is easy for humans to understand at a glance because of its simplicity is a mischaracterisation. Java is a relatively verbose, inexpressive language, so actually it can take quite a long time to figure out how any given piece of code works. What Java does offer is that an average developer can reliably figure out how any given piece of code works, even if it takes a while. For long-running, large-scale projects that is a valuable attribute for a programming language.
I've been programming in Python professionally for something close to a decade now, and in all that time the number of tab/space bugs I've seen in production is: 0.
Get a good edit -- any good editor -- and worry about problems that actually matter. This one was solved in about 1927.
People aren't downloading cracked versions of Donkey Kong. They're downloading cracked versions of the latest Assassin's Creed.
They're doing both.
Most of them aren't.
I agree with you that part of the copyright bargain is (or should be) that works fall into the public domain after a while. You can make reasonable arguments for different periods of protection, but I expect we'd all agree the current ones are absurdly long.
But this doesn't change the fact that most illegal copies being downloaded are relatively new releases.
It's not an optical illusion, it just looks like one. -- Phil White