Even with type inference, I feel that the idea of interfaces and implementations (e.g. a Set can be any class derived from the Set interface underneath) is weakened. I haven't tried any type inferring language long enough to see if it matters enough. It's certainly one of the more verbose things about Java.
Both are a problem for code maintainability. Java will never have dynamic typing. It's not that it is hard to implement (e.g. look at bsh an interpreter that is still, basically Java), it's that it has way to many drawbacks. If you want to have that, use a scripting language (and don't use it for large programs).
Mod parent up, I was about to quote that overpaid idiot from Cap Gemini 15 years back that said the same thing (in a university class), but this is much better.
Wake me up when computers understand context (say, 30 years on if not way more).
I've been thinking about doing largely away with most part of the ASCII representation of a language (as a followup to Java). So that certainly could become a representation of the source, or more precisely of the abstract syntax tree (AST). Of course, it would be for the machine, not for the programmer.
Inconsistent implementation? Of java, javac or the API? Compared to *what* I ask you? I've seen many API's and I think Java is one of the more consistent ones. At least it is possible to use many many libs without too much fuss (mostly for it's unequaled way of handling strings, exceptions and collections).
Unless there is a more maintainable language in which it is even easier to focus on the problem at hand, I vote for letting it live. And yes, I know that maintainability has no coolness factor about it. No matter, I'll try and make my apps cool instead.
How are generics a good thing? They are a band aid for the fact that not everything in Java is an object.
Bollocks, auto-boxing is a band aid for that. Generics *require* the use of objects instead of basic types.
I would say that is the most serious defect of Java, apart from the lack of closures (yes, I know they are coming, but when?).
Generics are hard to add, since they require specific support on the language level, it's not just adding syntax and be done with it.
Plus any JVM I have seen is a piece of shit. Sorry, but if the official JVM takes several seconds just to start, that disqualifies it from a lot of perfectly good uses.
And there am I, replying to a fucking troll. Applets still have pretty bad startup times, but the JVM? Seriously?
Use an IDE that fixes this for you. Really, I don't see a problem with import statements at all. They can be easily inferred during code creation and when looking at code outside the IDE it makes it abundantly clear which class/enum you are referring to. I've never had a junior complain about package names (for long). Classpath issues are e.g. much more troublesome.
I was writing this when I noticed the AC above with 0 mod points.
To be honest, that is more a problem with the API than with either Java or Groovy. It's currently being worked on in JSR-310.
The time API is well known for it's ugly design and is commonly brought up as a way not to design API's. Because of that I think it's far fetched to use it as an example of how ugly a language can be.
JSR-310 is much more sensible and uses Joshua Blochs Java design principles (for immutability and thread safety). It's based on Joda time (actually the lead dev is the same), which sensible people are using right now.
Yeah, well, they find bugs and fix them, regardless of all the other testing they perform. If they are not deprecating other tests that (may not be fully covered) then yes, I can see a problem here. And don't forget, even the dumbest bug can become a vulnerability.
Any other time you might have been modded funny for a lame joke like that, but - as you - mention, it is 2nd of April, we're still trying to recover from yesterday. No lame jokes today, please.
For each and every project that specified that a standardized format should be used, they can now be hold liable. Lets hope that they get sued to bits over it. I'm not holding my breath though, the EU seems to have some random rights and wrongs they pursue.
Nice pranks:) I like to start up a VM in full screen mode and do a full format on the hard disk (hint, use a static sized *virtual* hard disk). The fun was that the last person I tried it on did not even notice my mail application running on the other monitor.
As with all testing tools, the more of them you use, the better. There are many reasons why you don't want to employ all tests, e.g. lack of knowledge, lack of manpower, lack of money or lack of time. The good thing is that if you can get them automated, then they quickly become affordable.
For an example: I was thinking if it was wise to put findbugs (which works on compiled byte code) next to checkstyle (which works on source code level) in my Java project. Obviously I put them both in; they duplicate bugs but who cares ? I'll just look at checkstyle first and findbugs second. If I can put in a pre-build fuzzing component I probably will.
But fuzzing tools are different than unit tests. Fuzzing can never cover every nook and cranny. They will produce reports that are much less readable, and that cannot be directly tied to particular events (e.g. during regression testing). If anything, they'll put some pressure on developers to put in more unit tests; if the fuzzing tool finds many bugs in a component, it should be a good indicator that even the basic unit tests have not been created.
All the those that still think of the kilo as meaning 2^10 should know that 10 is not a power of two. All computers and the computers before that used 2^8 and 2^16 much more often. I therefore suggest you define 2^8 to be the new kilo.
"Odd. The few times I've had to explain the concept to anyone, they understood it immediately. "Computers operate in base-2, and a funny result is that kilobytes, megabytes, etc. end up being 1024.""
That's not a result, that is and always was a bad approximation.
What do you define as "practical level" ? Are there *that* many attacks on the system? I see a lot of infected client and host systems. I see a lot of phishing going on. What I personally don't see is a lot of MITM attacks on SSL.
I do think that the system could be (greatly) improved. What I don't see is the whole SSL certificate system as being pointless.
True, but for now, IMHO, the ATI stuff pretty much sucks. I went back from AMD / ATI to Intel nVidia because of stability issues (OK, the instability of the SATA implementation was a lot more problematic than the video problems, but still). And even now I cannot really use Compiz 3D effects on my 64 bit Ubuntu, without all kind of video and 3D issues.
(Wait a bit) and try an eBook that supports annotations using a touch screen & stylus - e.g. an iRex one. You can bring *every* paper anyone has made with you instead, and be able to read comfortably as well. What I cannot understand is how you can accept only paper copies. Are there contributions so uninteresting that you don't want to store or index them somewhere?
I just forward such mails to a safe account. The level of trust of those accounts (e.g. Gmail) is about the same level - if not better - than those within the office.
Even with type inference, I feel that the idea of interfaces and implementations (e.g. a Set can be any class derived from the Set interface underneath) is weakened. I haven't tried any type inferring language long enough to see if it matters enough. It's certainly one of the more verbose things about Java.
Both are a problem for code maintainability. Java will never have dynamic typing. It's not that it is hard to implement (e.g. look at bsh an interpreter that is still, basically Java), it's that it has way to many drawbacks. If you want to have that, use a scripting language (and don't use it for large programs).
Mod parent up, I was about to quote that overpaid idiot from Cap Gemini 15 years back that said the same thing (in a university class), but this is much better.
Wake me up when computers understand context (say, 30 years on if not way more).
I've been thinking about doing largely away with most part of the ASCII representation of a language (as a followup to Java). So that certainly could become a representation of the source, or more precisely of the abstract syntax tree (AST). Of course, it would be for the machine, not for the programmer.
Inconsistent implementation? Of java, javac or the API? Compared to *what* I ask you? I've seen many API's and I think Java is one of the more consistent ones. At least it is possible to use many many libs without too much fuss (mostly for it's unequaled way of handling strings, exceptions and collections).
Unless there is a more maintainable language in which it is even easier to focus on the problem at hand, I vote for letting it live. And yes, I know that maintainability has no coolness factor about it. No matter, I'll try and make my apps cool instead.
How are generics a good thing? They are a band aid for the fact that not everything in Java is an object.
Bollocks, auto-boxing is a band aid for that. Generics *require* the use of objects instead of basic types.
I would say that is the most serious defect of Java, apart from the lack of closures (yes, I know they are coming, but when?).
Generics are hard to add, since they require specific support on the language level, it's not just adding syntax and be done with it.
Plus any JVM I have seen is a piece of shit. Sorry, but if the official JVM takes several seconds just to start, that disqualifies it from a lot of perfectly good uses.
And there am I, replying to a fucking troll. Applets still have pretty bad startup times, but the JVM? Seriously?
Initial startup time:
real 0m0.928s
user 0m0.080s
sys 0m0.030s
second startup time (things are in cache now)
real 0m0.109s
user 0m0.070s
sys 0m0.000s
Use an IDE that fixes this for you. Really, I don't see a problem with import statements at all. They can be easily inferred during code creation and when looking at code outside the IDE it makes it abundantly clear which class/enum you are referring to. I've never had a junior complain about package names (for long). Classpath issues are e.g. much more troublesome.
I was writing this when I noticed the AC above with 0 mod points.
To be honest, that is more a problem with the API than with either Java or Groovy. It's currently being worked on in JSR-310.
The time API is well known for it's ugly design and is commonly brought up as a way not to design API's. Because of that I think it's far fetched to use it as an example of how ugly a language can be.
JSR-310 is much more sensible and uses Joshua Blochs Java design principles (for immutability and thread safety). It's based on Joda time (actually the lead dev is the same), which sensible people are using right now.
Yeah, well, they find bugs and fix them, regardless of all the other testing they perform. If they are not deprecating other tests that (may not be fully covered) then yes, I can see a problem here. And don't forget, even the dumbest bug can become a vulnerability.
Any other time you might have been modded funny for a lame joke like that, but - as you - mention, it is 2nd of April, we're still trying to recover from yesterday. No lame jokes today, please.
For each and every project that specified that a standardized format should be used, they can now be hold liable. Lets hope that they get sued to bits over it. I'm not holding my breath though, the EU seems to have some random rights and wrongs they pursue.
Nice pranks :) I like to start up a VM in full screen mode and do a full format on the hard disk (hint, use a static sized *virtual* hard disk). The fun was that the last person I tried it on did not even notice my mail application running on the other monitor.
Well, the first problem is that my computer reads that as (sudo)(make me)(a sandwich). And I don't want to be a sandwich.
As with all testing tools, the more of them you use, the better. There are many reasons why you don't want to employ all tests, e.g. lack of knowledge, lack of manpower, lack of money or lack of time. The good thing is that if you can get them automated, then they quickly become affordable.
For an example: I was thinking if it was wise to put findbugs (which works on compiled byte code) next to checkstyle (which works on source code level) in my Java project. Obviously I put them both in; they duplicate bugs but who cares ? I'll just look at checkstyle first and findbugs second. If I can put in a pre-build fuzzing component I probably will.
But fuzzing tools are different than unit tests. Fuzzing can never cover every nook and cranny. They will produce reports that are much less readable, and that cannot be directly tied to particular events (e.g. during regression testing). If anything, they'll put some pressure on developers to put in more unit tests; if the fuzzing tool finds many bugs in a component, it should be a good indicator that even the basic unit tests have not been created.
"What multiple of 4 is 28?"
I know that one!, I know that one! It's (wait for it) 7!!!
You can't turn it off? WTF? This is supposed to be a geek site, now go away!
All the those that still think of the kilo as meaning 2^10 should know that 10 is not a power of two. All computers and the computers before that used 2^8 and 2^16 much more often. I therefore suggest you define 2^8 to be the new kilo.
"Odd. The few times I've had to explain the concept to anyone, they understood it immediately. "Computers operate in base-2, and a funny result is that kilobytes, megabytes, etc. end up being 1024.""
That's not a result, that is and always was a bad approximation.
Last checked 3 months ago, at that time it ****** balls, can't call it anything different.
What do you define as "practical level" ? Are there *that* many attacks on the system? I see a lot of infected client and host systems. I see a lot of phishing going on. What I personally don't see is a lot of MITM attacks on SSL.
I do think that the system could be (greatly) improved. What I don't see is the whole SSL certificate system as being pointless.
True, but for now, IMHO, the ATI stuff pretty much sucks. I went back from AMD / ATI to Intel nVidia because of stability issues (OK, the instability of the SATA implementation was a lot more problematic than the video problems, but still). And even now I cannot really use Compiz 3D effects on my 64 bit Ubuntu, without all kind of video and 3D issues.
You can try and do both.
(Wait a bit) and try an eBook that supports annotations using a touch screen & stylus - e.g. an iRex one. You can bring *every* paper anyone has made with you instead, and be able to read comfortably as well. What I cannot understand is how you can accept only paper copies. Are there contributions so uninteresting that you don't want to store or index them somewhere?
Somebody please mod this AC comment funny.
I just forward such mails to a safe account. The level of trust of those accounts (e.g. Gmail) is about the same level - if not better - than those within the office.