This would be a much better "Prison" scenario as well, since a single riot half a mile underground won't cripple the entire structure. All we need are tunnel boring machines. The smallest such ones can *just* be lifted to orbit by our largest rockets.
While I agree with you the moon is a better target, a prison scenario is not very likely. It's more cost effective to stick them in a prison on earth somewhere.
Which highlights a problem with all these plans. We live in a gravity well. Getting out of it takes effort. Until we find a way to ferry a couple of million people back and forth every month, any sort of plan for large scale colonization is doomed from the start. We simply don't have the energy budget to blow on it (general price/kilogram reflects this). In the very best case, we'll start some sort of research station on the moon.
Colonization of mars is a pipe dream. Maybe in a couple generations we can start thinking about it.
That said, I think the white-space delimited block syntax in Python (and other languages) is really stupid. I know you Python people will chomp at the bit about that, but I'm right about this, Guido is a snob about this, and you know it - let it go. Anyone who's had their Makefile blown because of a lost tab, or bitched because X converted tabs to spaces in a copy/paste knows what I mean - and yes, get off my lawn:-)
Of all the problems with python, whitespace delimitation really doesn't rank very highly. You get it wrong a couple of times when you first start out in the language, after that it really doesn't tend to bother you anymore. It's really nothing like Makefiles, since the interpreter can afford to be a lot smarter and you will get a warning much sooner than in Makefiles. Not to mention that you set your editor up once and then you always indent te same way (even auto reindenting works most of the time in vim).
I think It's all personal taste really. I find python code more readable, but I've known people who said the reverse. I think we can agree that people should know a midlevel scripting language like this, in any case.
Python should be in every programmers tool set because it is such a versatile tool. Unfortunately it's not enough in most cases for a guaranteed job.
That's why one becomes proficient in Perl and Ksh.
Your comment doesn't make much sense. Python and Perl really are sort of on the same level in functionality/performance characteristics (there is some string parsing that would definitely be easier in Perl, but it's not a huge gap). I reckon what the GP was getting at is that they're all somewhat slow for certain tasks (where you would grab java, C++ or C in that order of increasing need for performance).
Really, the OP should just learn one of (python, ruby, perl) and be done with it. One can get along fine in the job market for now with java/c++, but I can only imagine how he handles common scripting tasks. Definitely a gap there.
Java has try-finally, with the obvious downside that you need to wrap everything in there and you go at least two levels deep for something like a file copy (i.e. try-except wraps two try-finally's). JDK7 or 8 should have a with keyword or something of the like, which will hopefully help. You definitely have a point that it isn't very readable. I'm more concerned here though with how they access OS/window system primitives (i.e. windows etc). That might be a cause of a lot of our pain.
OTOH, other VM languages have the same problem, and they seem to do just fine.
The problem with Java re GUIs is that Java does not have a reasonable way to handle resources. Try writing a snippet that copies a file to another, and remembers to close them both:) Then recall that in a GUI, you'll have dozens of resources to manage all the time. That makes it harder.
I don't know, aside from all the exception handlers it's pretty much just C, right?
Eclipse uses SWT, another toolkit not part of the standard lib. It sucks. I have never used AWT, but that was the predecessor to Swing...
D'oh. Yeah I meant to say SWT. I have written a GUI or two in AWT. It makes Swing look good, I think that says enough.
The language itself is partly at fault, since it GUI programming means handling a lot of resources (window handles e.g.), but Java is notoriously bad at handling resources bar memory.
I personally think the class design for Swing was overly ambitious and probably just too constrained by their desire to reuse at least some of the AWT stuff. SWT provided a clean break, but apparently that didn't help matters much. I'm not at all sure that the problem is really inherent in the language as such, but these things are hard to quantify.
It's also not as if a decent UI layer actually needs to be wonderful and fun to work in. I write some JSP now and then and it's painful, but it works (though btw, also can have huge rendering times considering what you're doing is outputting some text to a page). I've heard people gripe about how awful coding their UIs in ObjC (+cocoa?) can be, but they get it done anyway. I feel the error was in trying to provide a "pure" class framework to do the work, instead of some hack that actually works.
The problem being that if you implement Java or a Java-like language right now, you're not sure whether you won't be staring at the business end of a million dollar lawsuit in a year's time. So people will wait out what happens in the Google lawsuit, which might take years (actually, if it's like SCO at all, it will take years).
By the time we're sure we can implement a JVM without getting our asses sued, people might well have moved on to different languages (I know I'm considering it).
Re:Uh, watever, just migrate to Python, Perl6, Lua
on
Oracle To Monetize Java VM
·
· Score: 2, Insightful
As a java coder, when someone says "Java app" I almost never think of anything with much of a GUI (unless it's a web page). The swing libraries are notoriously bad and a real weak spot in the entire framework. The problem is mostly that they're not just badly designed (not with performance in mind, and usually lousy bindings to the underlying platform), but also that they're hard to work with. Considering most coders actually coding up GUIs really don't know what they're doing, it would help if it was all a bit more straightforward.
I dunno what AWT is like, but from personal experience with Eclipse I'm not all that positive.
I don't suppose this counts for you, but it's worth point out that google app engine code is either Python or Java.
I do know at least one blogger (Steve Yegge) that used to use java at google and has done some work on tool support. At least all his blog posts on how much java sucks seem to suggest it.:-) The google testing blog (before it became shit) has in the past also focused a lot on java-specific testing techniques, suggesting they do a lot of java.
If you don't pass the official testsuite, you don't get the patent grant. So Oracle can simply sue you.
Re:Oracle is doing everything they can to fuck up
on
Oracle To Monetize Java VM
·
· Score: 4, Insightful
No reason it cant happen with OpenJDK.
AIUI there is a major problem, one that apache Harmony is now faced with. Basically, to get a patent grant for your open source project you need to show that you have delivered a full implementation of the platform. To show that your implementation needs to pass the TCK tests. To get those tests (that are proprietary software, owned by Oracle), you need to agree to certain Field of Use restrictions. Which are incompatible with pretty much any open source license you can name.
So while OpenJDK has Oracle's blessing and thus gets to get out from under this problem, any other open source project that forks off OpenJDK would lose access to the TCK and probably find itself in Oracle's crosshairs a couple months/years down the line.
It'll be at least another half century before we seriously consider sending people to Mars (and it might be never, there is nothing out there that robots can't explore better). So why should we spending money on these lessons now? There's a lot of basic science where the dollars would be better spent, IMHO.
I get what you're saying, but there's something to be said for not having all sorts of junk electronics lying around for various tasks and just use one portable, general purpose machine to do them all. Of course that also introduces a single point of failure.
I'm not entirely sure that's right. I very much doubt you could bring out a multitouch device in the 90s that had a battery life of more than an hour. There was also not really much of a point. The reason we like these touch screens now is that we need lots of screen space for our browsers and games, something else you wouldn't really be running on something of this form factor in the 90s.
I think patents do hamper progress a lot, but a lot of technology takes a while to make the jump from the lab to real world apps, because it depends on so many factors to really be useful and successful.
Apple doesn't overcharge for their hardware. They charge what the market can bear (i.e. what people are willing to pay). To do anything else would be ridiculous for any company.
I can't provide a citation but I know at least one person that writes software to efficiently generate large graphs (the mathematical structure) with certain properties in C. Doing the same in java did result in an implementation that was an order of magnitude slower (I think after some work they got it down to two times as slow in the end).
For certain types of number crunching applications C or C++ is still a very good choice. Game engines are another example that come to mind, though there are a few examples cropping up where even there it doesn't really matter anymore, e.g. minecraft. Carmack is writing a game engine for iPhones (the mobile Rage engine, IIRC) that needs to be written mostly in C for obvious reasons (he recently tweeted even using ObjC's number formatter is a bad idea here).
I wouldn't call these extreme cases, but it's true that most of us aren't twiddling bits in code anymore. I do a lot of web app development and 95% of the time everything is I/O-bound. In the rare cases where it's not, we're gonna have to do precomputing and caching anyway to make it work/scale. Using C would be a humongous pain and it would buy me nearly nothing. People have been writing payroll apps in COBOL and not C for exactly the same reason for decades.
Yep, there's nothing more fun than being teabagged by some jerk who has no life or job so they spend 24/7 practising so they can feel their life has meaning when some wage slave logs on to go find some fun for a few hours.
You do know we're on a story complaining that games are too easy, right?
My central point was that game studios are getting lazy and using multiplayer as an excuse to cut development effort (and cost).
If you look at the Madden series, the game has actually LOST depth over time, and everything is shoving toward online play.
You clearly have a very blinkered view of the gaming landscape as a whole. Many of the mainly multiplayer games out there definitely did NOT take any less effort. The whole point of multiplayer is that it opens up more possibilities. Even then, there is no general move to multiplayer. There are tons of single player titles out there.
Unless if you just play EA sports titles. Then yes, you are probably correct. The only other example I can think of right now is Section 8.
Perhaps I've just been coddled as a PC gamer, but jeez, generalise much?
Except half of the time it doesn't actually work. Not to mention you can forget about putting your laptop to sleep and reconnecting the wireless when (if!) it wakes back up.
I'm really getting tired of hearing things like this from people that have no idea what they are talking about.
National governments abuse EU legislature to circumvent their national democratic system. When a country can't get a law through their own parliament, they can just propose it in the Council of the EU (or the European Council? They're different and often mixed up) and later blame the unpopular law on the EU, further undermining public trust in the EU.
The EU is based on some really very old treaties that should be obsolete by now. It's impossible to repeal those treaties, because there's always one country that profits enough from it that it vetoes any attempt to change it.
They should have just pushed through the EU "constitution" years ago without allowing citizens to vote on it. Instead, certain member countries knew pretty damn well their constituents would reject it (out of general euroskepticism, I bet 99% of no-voters didn't bother reading it, it was a _lot_ of pages) and we're now stuck with this somewhat undemocratic construct for ages to come.
Another one, don't position any seats under an airconditioning vent and make sure everybody is getting about the same temp from the airco (i.e. uniform vents and no asymmetric arrangements).
The problem is that Turbine, makers of DDO and Lord of the Rings Online, is installing what is essentially the equivalent of adware or spyware without the user's permission.
How is it "the equivalent of adware of spyware"? What does that even mean?
I encountered Pando installing League of Legends. The installer explained quite clearly what it was, what it was for and under what circumstances it would be running. It's also not configured to run on startup/login, only when you run the game and there's a patch to download. That's not very sneaky, and hardly in the realm of spy/adware. It seems more like a commercial version of blizzard's roll-your-own downloader.
This would be a much better "Prison" scenario as well, since a single riot half a mile underground won't cripple the entire structure. All we need are tunnel boring machines. The smallest such ones can *just* be lifted to orbit by our largest rockets.
While I agree with you the moon is a better target, a prison scenario is not very likely. It's more cost effective to stick them in a prison on earth somewhere.
Which highlights a problem with all these plans. We live in a gravity well. Getting out of it takes effort. Until we find a way to ferry a couple of million people back and forth every month, any sort of plan for large scale colonization is doomed from the start. We simply don't have the energy budget to blow on it (general price/kilogram reflects this). In the very best case, we'll start some sort of research station on the moon.
Colonization of mars is a pipe dream. Maybe in a couple generations we can start thinking about it.
That said, I think the white-space delimited block syntax in Python (and other languages) is really stupid. I know you Python people will chomp at the bit about that, but I'm right about this, Guido is a snob about this, and you know it - let it go. Anyone who's had their Makefile blown because of a lost tab, or bitched because X converted tabs to spaces in a copy/paste knows what I mean - and yes, get off my lawn :-)
Of all the problems with python, whitespace delimitation really doesn't rank very highly. You get it wrong a couple of times when you first start out in the language, after that it really doesn't tend to bother you anymore. It's really nothing like Makefiles, since the interpreter can afford to be a lot smarter and you will get a warning much sooner than in Makefiles. Not to mention that you set your editor up once and then you always indent te same way (even auto reindenting works most of the time in vim).
I think It's all personal taste really. I find python code more readable, but I've known people who said the reverse. I think we can agree that people should know a midlevel scripting language like this, in any case.
That's why one becomes proficient in Perl and Ksh.
Your comment doesn't make much sense. Python and Perl really are sort of on the same level in functionality/performance characteristics (there is some string parsing that would definitely be easier in Perl, but it's not a huge gap). I reckon what the GP was getting at is that they're all somewhat slow for certain tasks (where you would grab java, C++ or C in that order of increasing need for performance).
Really, the OP should just learn one of (python, ruby, perl) and be done with it. One can get along fine in the job market for now with java/c++, but I can only imagine how he handles common scripting tasks. Definitely a gap there.
Java has try-finally, with the obvious downside that you need to wrap everything in there and you go at least two levels deep for something like a file copy (i.e. try-except wraps two try-finally's). JDK7 or 8 should have a with keyword or something of the like, which will hopefully help. You definitely have a point that it isn't very readable. I'm more concerned here though with how they access OS/window system primitives (i.e. windows etc). That might be a cause of a lot of our pain.
OTOH, other VM languages have the same problem, and they seem to do just fine.
The problem with Java re GUIs is that Java does not have a reasonable way to handle resources. Try writing a snippet that copies a file to another, and remembers to close them both :) Then recall that in a GUI, you'll have dozens of resources to manage all the time. That makes it harder.
I don't know, aside from all the exception handlers it's pretty much just C, right?
Eclipse uses SWT, another toolkit not part of the standard lib. It sucks. I have never used AWT, but that was the predecessor to Swing...
D'oh. Yeah I meant to say SWT. I have written a GUI or two in AWT. It makes Swing look good, I think that says enough.
The language itself is partly at fault, since it GUI programming means handling a lot of resources (window handles e.g.), but Java is notoriously bad at handling resources bar memory.
I personally think the class design for Swing was overly ambitious and probably just too constrained by their desire to reuse at least some of the AWT stuff. SWT provided a clean break, but apparently that didn't help matters much. I'm not at all sure that the problem is really inherent in the language as such, but these things are hard to quantify.
It's also not as if a decent UI layer actually needs to be wonderful and fun to work in. I write some JSP now and then and it's painful, but it works (though btw, also can have huge rendering times considering what you're doing is outputting some text to a page). I've heard people gripe about how awful coding their UIs in ObjC (+cocoa?) can be, but they get it done anyway. I feel the error was in trying to provide a "pure" class framework to do the work, instead of some hack that actually works.
The problem being that if you implement Java or a Java-like language right now, you're not sure whether you won't be staring at the business end of a million dollar lawsuit in a year's time. So people will wait out what happens in the Google lawsuit, which might take years (actually, if it's like SCO at all, it will take years).
By the time we're sure we can implement a JVM without getting our asses sued, people might well have moved on to different languages (I know I'm considering it).
The engine for those is usually written in C++.
As a java coder, when someone says "Java app" I almost never think of anything with much of a GUI (unless it's a web page). The swing libraries are notoriously bad and a real weak spot in the entire framework. The problem is mostly that they're not just badly designed (not with performance in mind, and usually lousy bindings to the underlying platform), but also that they're hard to work with. Considering most coders actually coding up GUIs really don't know what they're doing, it would help if it was all a bit more straightforward.
I dunno what AWT is like, but from personal experience with Eclipse I'm not all that positive.
I don't suppose this counts for you, but it's worth point out that google app engine code is either Python or Java.
I do know at least one blogger (Steve Yegge) that used to use java at google and has done some work on tool support. At least all his blog posts on how much java sucks seem to suggest it. :-) The google testing blog (before it became shit) has in the past also focused a lot on java-specific testing techniques, suggesting they do a lot of java.
If you don't pass the official testsuite, you don't get the patent grant. So Oracle can simply sue you.
No reason it cant happen with OpenJDK.
AIUI there is a major problem, one that apache Harmony is now faced with. Basically, to get a patent grant for your open source project you need to show that you have delivered a full implementation of the platform. To show that your implementation needs to pass the TCK tests. To get those tests (that are proprietary software, owned by Oracle), you need to agree to certain Field of Use restrictions. Which are incompatible with pretty much any open source license you can name.
So while OpenJDK has Oracle's blessing and thus gets to get out from under this problem, any other open source project that forks off OpenJDK would lose access to the TCK and probably find itself in Oracle's crosshairs a couple months/years down the line.
Ah, so what you're saying is, private industry will take care of it. Sounds good.
It'll be at least another half century before we seriously consider sending people to Mars (and it might be never, there is nothing out there that robots can't explore better). So why should we spending money on these lessons now? There's a lot of basic science where the dollars would be better spent, IMHO.
I get what you're saying, but there's something to be said for not having all sorts of junk electronics lying around for various tasks and just use one portable, general purpose machine to do them all. Of course that also introduces a single point of failure.
I'm not entirely sure that's right. I very much doubt you could bring out a multitouch device in the 90s that had a battery life of more than an hour. There was also not really much of a point. The reason we like these touch screens now is that we need lots of screen space for our browsers and games, something else you wouldn't really be running on something of this form factor in the 90s.
I think patents do hamper progress a lot, but a lot of technology takes a while to make the jump from the lab to real world apps, because it depends on so many factors to really be useful and successful.
Apple doesn't overcharge for their hardware. They charge what the market can bear (i.e. what people are willing to pay). To do anything else would be ridiculous for any company.
I can't provide a citation but I know at least one person that writes software to efficiently generate large graphs (the mathematical structure) with certain properties in C. Doing the same in java did result in an implementation that was an order of magnitude slower (I think after some work they got it down to two times as slow in the end).
For certain types of number crunching applications C or C++ is still a very good choice. Game engines are another example that come to mind, though there are a few examples cropping up where even there it doesn't really matter anymore, e.g. minecraft. Carmack is writing a game engine for iPhones (the mobile Rage engine, IIRC) that needs to be written mostly in C for obvious reasons (he recently tweeted even using ObjC's number formatter is a bad idea here).
I wouldn't call these extreme cases, but it's true that most of us aren't twiddling bits in code anymore. I do a lot of web app development and 95% of the time everything is I/O-bound. In the rare cases where it's not, we're gonna have to do precomputing and caching anyway to make it work/scale. Using C would be a humongous pain and it would buy me nearly nothing. People have been writing payroll apps in COBOL and not C for exactly the same reason for decades.
Just to provide some background anyway.
Switzerland is not a direct democracy in the full sense of the word.
And considering how the swiss seem to feel about muslims, I don't think they're all that well educated.
Yep, there's nothing more fun than being teabagged by some jerk who has no life or job so they spend 24/7 practising so they can feel their life has meaning when some wage slave logs on to go find some fun for a few hours.
You do know we're on a story complaining that games are too easy, right?
My central point was that game studios are getting lazy and using multiplayer as an excuse to cut development effort (and cost).
If you look at the Madden series, the game has actually LOST depth over time, and everything is shoving toward online play.
You clearly have a very blinkered view of the gaming landscape as a whole. Many of the mainly multiplayer games out there definitely did NOT take any less effort. The whole point of multiplayer is that it opens up more possibilities. Even then, there is no general move to multiplayer. There are tons of single player titles out there.
Unless if you just play EA sports titles. Then yes, you are probably correct. The only other example I can think of right now is Section 8.
Perhaps I've just been coddled as a PC gamer, but jeez, generalise much?
Except half of the time it doesn't actually work. Not to mention you can forget about putting your laptop to sleep and reconnecting the wireless when (if!) it wakes back up.
I'm really getting tired of hearing things like this from people that have no idea what they are talking about.
National governments abuse EU legislature to circumvent their national democratic system. When a country can't get a law through their own parliament, they can just propose it in the Council of the EU (or the European Council? They're different and often mixed up) and later blame the unpopular law on the EU, further undermining public trust in the EU.
The EU is based on some really very old treaties that should be obsolete by now. It's impossible to repeal those treaties, because there's always one country that profits enough from it that it vetoes any attempt to change it.
They should have just pushed through the EU "constitution" years ago without allowing citizens to vote on it. Instead, certain member countries knew pretty damn well their constituents would reject it (out of general euroskepticism, I bet 99% of no-voters didn't bother reading it, it was a _lot_ of pages) and we're now stuck with this somewhat undemocratic construct for ages to come.
But yeah, there are lots of good parts too.
Another one, don't position any seats under an airconditioning vent and make sure everybody is getting about the same temp from the airco (i.e. uniform vents and no asymmetric arrangements).
The problem is that Turbine, makers of DDO and Lord of the Rings Online, is installing what is essentially the equivalent of adware or spyware without the user's permission.
How is it "the equivalent of adware of spyware"? What does that even mean?
I encountered Pando installing League of Legends. The installer explained quite clearly what it was, what it was for and under what circumstances it would be running. It's also not configured to run on startup/login, only when you run the game and there's a patch to download. That's not very sneaky, and hardly in the realm of spy/adware. It seems more like a commercial version of blizzard's roll-your-own downloader.