"Software as a mass-market product is a failing business model, software as a service is the future"
There, I fixed it for you. When demand for a certain type of software is very high, open source will provide a suitable replacement. For niche markets, or markets involving high liability, or strict government regulation, open source replacements are not nearly as abundant. For example, how many open-source hotel management software suites are there? How many open-source flight control systems are there?
In response to Steve Jobs anecdotal evidence regarding Flash as the #1 source of crashes for OSX, let me present my own anecdotal evidence: In the last week, safari on my iPad has crashed 4 times. I think safari itself is the #1 source of crashes.
Dangit, man! Haven't you ever heard of the Oxford comma? I thought the last charge was "selling children as food and misrepresenting the weight of livestock".
Apparently, though, the consumers want it or they wouldn't watch it. They may complain, but they still consider what's provided as better than nothing.
When studios see their works pirated, they think it means that people still want that content. If you don't like it, don't watch it, and don't pirate it.
But what happens when one of the wannabe miscreants decides he can take down the ring-leader by framing him? Then the wannabe ends up on top because the ring-leader has been punished and has lost his position of power.
Bad form to reply to my own post and all that, but I re-read the GP and noticed that I failed at reading comprehension regarding null pointer exceptions.
I noticed the GP said he would prefer if the whole program would crash on an NPE like C/++ - I think it would be useful to be able to tell the JVM to completely die on certain (arbitrary/user-selectable) classes of exceptions. So I guess we both agree about that. However, I still prefer the java model of throwing an exception rather than allowing access to arbitrary memory.
there's generally only 1 way to do a specific task which makes it really easy to read somebody else's code
You can certainly write obfuscated code in any language. Simply name your variables poorly and you're done!
But what I mean is that you can generally tell what the JVM will do with any piece of code, even if you don't know what the programmer is attempting. This is definitely not true of C++. Because of operator overloading, even the simplest looking code could compile in unexpected ways. For example, "a == b" looks like a simple comparison. But it might invoke the overloaded comparison operator if it has been defined. Or worse, the compiler might decide that the only way to make the comparison work is to do all sorts of type-conversion on the sides until it can find one that works. It certainly allows it to compile, but it probably won't do the operation the way you expected.
If you see "a->b" do you know that the dereference operator won't initiate some long running algorithm (maybe a computationally heavy database lookup of "a" in some remote location)? I think we both agree that doing anything like that would be bad form. But you cannot know that's not happening simply by looking at the source.
To address your bullet points, java has a few simple rules:
1) If the type name starts with a capital (Object, Integer, etc), it's an object. You can only get a pointer to it. It is always passed by reference.
2) If the type name starts with a lower-case (int, float, char) it's a primitive. You cannot get a pointer to it. It is always passed by value.
Regarding null pointer exceptions, as with dereferencing NULL memory in C family languages, they usually indicate a bug or design flaw: either an uninitialized value or the unchecked result of a map lookup. However, if you cannot fix the design, you can catch them like any other exception and let your thread continue where it left off. This is different from C family languages where those sorts of bugs give you either a crash, or unknowing access to rotten memory. At least with the NPE you get a stack trace and can find it!
Java is very verbose. However, the pain from that can be mitigated significantly by using an IDE that types most of it for you like eclipse
When the GP talks about safety, he doesn't mean a bug-free program (which is what a NPE in java is). What he means is that you cannot accidentally corrupt your memory (or hack the system) by accessing arbitrary memory.
It's also true that you can run out of memory with java. Simply create a collection, and add objects to it until the system is out of memory. There is not a language on earth that can deal with that-- How could it possibly know which ones you wanted to keep and which ones you wanted to throw away? Yes, you have to think about memory management, but you don't have to worry about it to the extent required in the C languages.
Personally, I really like Null Pointer Exceptions. They tell me exactly what and where my bug was-- unlike the behavior that can happen with one of the C languages. Because the java GC won't free an object unless nothing points to it, you cannot access a deleted object and consequently don't have to worry about the security implications of dangling pointers. In some ways, they traded one class of problems (pointer insecurity) for another (memory usage).
There are other good languages available, and java is not the best at everything. But because of its strong security features, strict typing, huge library of existing code, and simple yet cohesive syntax (there's generally only 1 way to do a specific task which makes it really easy to read somebody else's code) I believe it's one of the best general languages for business applications.
The solution to the looming computer shortage is to have more and more people share each of these remaining computers. I have developed an optimal technique for sharing (I call it Normalized Access Time, or NAT for short).
An alternate solution might be to just build more computers, but I'm not sure the infrastructure is in place for that yet.
A service mentality focuses on what works best for the company and saves money, not what your technical people know and where they've invested their training.
Re-training your technical people to know the other technologies has costs as well. For some organizations, it would cost more to re-train IT to support other technologies than it would to shoehorn everyone onto the same platform.
And while were at it, how about a Star Wars reboot? Not eps IV,V and VI. Just I, II and III. Please?
I don't know why you'd stop just after the first three. Have you SEEN episodes episodes 4, 5, and 6 recently? They're terrible! I still love them (childhood memories and all that), but the quality is about the same as 1, 2, and 3. They have the same lame comedy relief, the same cliches, and the same bad acting (though I'll admit that Harrison Ford is an exception).
Case in point: Ewoks (killing the empires best troops on the Endori moon surface)./RANT
Re:Sony rescinding "NIH" attitude with 3DTVs
on
Hot Or Not — 3D TV
·
· Score: 1
Most slashdotters will agree--we don't need more proprietary, incompatible Sony formats.
Unfortunately, this doesn't seem to matter to anyone else. Just look at the (general) success of Sony in the marketplace, and you'll see their proprietary formats doing just fine in many cases.
Flash also provides a convenient packaging system. All multimedia associated with the ad can be downloaded with a single HTTP request. If the ad were HTML+image, two requests would be required, with more requests for additional images/sounds/etc.
I wonder if widespread automatic translation will drive evolution of all languages toward vocabulary and syntax that's less prone to embarrassing or dangerous misinterpretation?
That seems unlikely. There are just too many good backhanded compliments that can be given to make all double-meanings disappear.
For example, the UTOPIA network offers much faster speeds than are available from any other providers. They've been around for 5 years, and yet they still haven't really caught on.
It's unfortunate, but as long as most people are getting the pages and applications they want, when they want them, they'll be happy with not-the-fastest-speed. And most of the time, that's what happens.
Consider the case of a seeing a new movie in a theater. You cannot make a recording of that movie and pass it out to your friends, but you are still able to tell them all about it.
Though it sounds ridiculous, I suspect there are portions of this policy that will be just as enforceable (unfortunately). I believe they will be legally able to strongly discourage you (either via the threat of confiscation, or the threat of ejection) from taking video, and possibly taking pictures as well.
From a practical perspective, though, given the size of the modern football stadium, there just aren't enough police or patrol people to enforce this-- unless they search people as they enter the stadium and prevent them from taking devices in with them.
Since I suspect you are either self-selecting into an exclusive group, or you are only seeing what you want to see, allow me to present evidence to the contrary:
Both of my parents are very "degreed", and they have 6 kids. All of my aunts and uncles are also very "degreed", and also have larger than average families. I also have many extremely intelligent friends, who come from or have created their own larger-than average families.
I live in the city with the highest birthrate in the nation, so I am aware that I am self-selecting into a group with large families. However, I would like to see non-anecdotal evidence of your hypothesis before I can agree with you.
Rather than remove the reviewers, the process could be made more transparent. My main frustration as an app developer isn't that the reviewers are fickle, but rather that I have no idea how long the review process will take. Even having some sort of visible queue or ETA (your app is 1045th of 1050 to review) would *really* help, because I could guess how long it would take.
So far, my apps have never been approved in less than 3 days, and never longer than 14 days... But as the OP said, that's time that a development team is burning cash!
What a nice skeletal structure!
"Software as a mass-market product is a failing business model, software as a service is the future"
There, I fixed it for you. When demand for a certain type of software is very high, open source will provide a suitable replacement. For niche markets, or markets involving high liability, or strict government regulation, open source replacements are not nearly as abundant. For example, how many open-source hotel management software suites are there? How many open-source flight control systems are there?
Your jokes bug me.
Will we hire him? I think he'll make the cut.
In response to Steve Jobs anecdotal evidence regarding Flash as the #1 source of crashes for OSX, let me present my own anecdotal evidence: In the last week, safari on my iPad has crashed 4 times. I think safari itself is the #1 source of crashes.
Dangit, man! Haven't you ever heard of the Oxford comma? I thought the last charge was "selling children as food and misrepresenting the weight of livestock".
Apparently, though, the consumers want it or they wouldn't watch it. They may complain, but they still consider what's provided as better than nothing.
When studios see their works pirated, they think it means that people still want that content. If you don't like it, don't watch it, and don't pirate it.
Speak loudly and carry a big stick, eh?
But what happens when one of the wannabe miscreants decides he can take down the ring-leader by framing him? Then the wannabe ends up on top because the ring-leader has been punished and has lost his position of power.
Bad form to reply to my own post and all that, but I re-read the GP and noticed that I failed at reading comprehension regarding null pointer exceptions.
I noticed the GP said he would prefer if the whole program would crash on an NPE like C/++ - I think it would be useful to be able to tell the JVM to completely die on certain (arbitrary/user-selectable) classes of exceptions. So I guess we both agree about that. However, I still prefer the java model of throwing an exception rather than allowing access to arbitrary memory.
You can certainly write obfuscated code in any language. Simply name your variables poorly and you're done!
But what I mean is that you can generally tell what the JVM will do with any piece of code, even if you don't know what the programmer is attempting. This is definitely not true of C++. Because of operator overloading, even the simplest looking code could compile in unexpected ways. For example, "a == b" looks like a simple comparison. But it might invoke the overloaded comparison operator if it has been defined. Or worse, the compiler might decide that the only way to make the comparison work is to do all sorts of type-conversion on the sides until it can find one that works. It certainly allows it to compile, but it probably won't do the operation the way you expected.
If you see "a->b" do you know that the dereference operator won't initiate some long running algorithm (maybe a computationally heavy database lookup of "a" in some remote location)? I think we both agree that doing anything like that would be bad form. But you cannot know that's not happening simply by looking at the source.
To address your bullet points, java has a few simple rules:
1) If the type name starts with a capital (Object, Integer, etc), it's an object. You can only get a pointer to it. It is always passed by reference.
2) If the type name starts with a lower-case (int, float, char) it's a primitive. You cannot get a pointer to it. It is always passed by value.
Regarding null pointer exceptions, as with dereferencing NULL memory in C family languages, they usually indicate a bug or design flaw: either an uninitialized value or the unchecked result of a map lookup. However, if you cannot fix the design, you can catch them like any other exception and let your thread continue where it left off. This is different from C family languages where those sorts of bugs give you either a crash, or unknowing access to rotten memory. At least with the NPE you get a stack trace and can find it!
Java is very verbose. However, the pain from that can be mitigated significantly by using an IDE that types most of it for you like eclipse
When the GP talks about safety, he doesn't mean a bug-free program (which is what a NPE in java is). What he means is that you cannot accidentally corrupt your memory (or hack the system) by accessing arbitrary memory.
It's also true that you can run out of memory with java. Simply create a collection, and add objects to it until the system is out of memory. There is not a language on earth that can deal with that-- How could it possibly know which ones you wanted to keep and which ones you wanted to throw away? Yes, you have to think about memory management, but you don't have to worry about it to the extent required in the C languages.
Personally, I really like Null Pointer Exceptions. They tell me exactly what and where my bug was-- unlike the behavior that can happen with one of the C languages. Because the java GC won't free an object unless nothing points to it, you cannot access a deleted object and consequently don't have to worry about the security implications of dangling pointers. In some ways, they traded one class of problems (pointer insecurity) for another (memory usage).
There are other good languages available, and java is not the best at everything. But because of its strong security features, strict typing, huge library of existing code, and simple yet cohesive syntax (there's generally only 1 way to do a specific task which makes it really easy to read somebody else's code) I believe it's one of the best general languages for business applications.
The solution to the looming computer shortage is to have more and more people share each of these remaining computers. I have developed an optimal technique for sharing (I call it Normalized Access Time, or NAT for short).
An alternate solution might be to just build more computers, but I'm not sure the infrastructure is in place for that yet.
I wish I had mod points, because you spoke my mind perfectly!
Re-training your technical people to know the other technologies has costs as well. For some organizations, it would cost more to re-train IT to support other technologies than it would to shoehorn everyone onto the same platform.
I don't know why you'd stop just after the first three. Have you SEEN episodes episodes 4, 5, and 6 recently? They're terrible! I still love them (childhood memories and all that), but the quality is about the same as 1, 2, and 3. They have the same lame comedy relief, the same cliches, and the same bad acting (though I'll admit that Harrison Ford is an exception).
Case in point: Ewoks (killing the empires best troops on the Endori moon surface). /RANT
Unfortunately, this doesn't seem to matter to anyone else. Just look at the (general) success of Sony in the marketplace, and you'll see their proprietary formats doing just fine in many cases.
Ah yes, I am quite fond of World of World of Warcraft!
Flash also provides a convenient packaging system. All multimedia associated with the ad can be downloaded with a single HTTP request. If the ad were HTML+image, two requests would be required, with more requests for additional images/sounds/etc.
That seems unlikely. There are just too many good backhanded compliments that can be given to make all double-meanings disappear.
I want to believe you. But it's just not true.
For example, the UTOPIA network offers much faster speeds than are available from any other providers. They've been around for 5 years, and yet they still haven't really caught on.
It's unfortunate, but as long as most people are getting the pages and applications they want, when they want them, they'll be happy with not-the-fastest-speed. And most of the time, that's what happens.
Complacency FTW!
IANAL (YMMV)
Consider the case of a seeing a new movie in a theater. You cannot make a recording of that movie and pass it out to your friends, but you are still able to tell them all about it.
Though it sounds ridiculous, I suspect there are portions of this policy that will be just as enforceable (unfortunately). I believe they will be legally able to strongly discourage you (either via the threat of confiscation, or the threat of ejection) from taking video, and possibly taking pictures as well.
From a practical perspective, though, given the size of the modern football stadium, there just aren't enough police or patrol people to enforce this-- unless they search people as they enter the stadium and prevent them from taking devices in with them.
Of course squatters are evicted on a regular basis. If they weren't, they'd end up owning the property!
Is that code for "Backpacking the Appalachian trail" (if you know what I mean)?
Since I suspect you are either self-selecting into an exclusive group, or you are only seeing what you want to see, allow me to present evidence to the contrary:
Both of my parents are very "degreed", and they have 6 kids. All of my aunts and uncles are also very "degreed", and also have larger than average families. I also have many extremely intelligent friends, who come from or have created their own larger-than average families.
I live in the city with the highest birthrate in the nation, so I am aware that I am self-selecting into a group with large families. However, I would like to see non-anecdotal evidence of your hypothesis before I can agree with you.
Rather than remove the reviewers, the process could be made more transparent. My main frustration as an app developer isn't that the reviewers are fickle, but rather that I have no idea how long the review process will take. Even having some sort of visible queue or ETA (your app is 1045th of 1050 to review) would *really* help, because I could guess how long it would take.
So far, my apps have never been approved in less than 3 days, and never longer than 14 days... But as the OP said, that's time that a development team is burning cash!