Java 7: What's In It For Developers 338
GMGruman writes "After five years of a torturous political process and now under the new ownership of Oracle, Java SE 7 is finally out (and its initial bugs patched in the Update 1 release). So what does it actually offer? Paul Krill surveys the new capabilities that matter most for Java developers, from dynamic language support to an improved file system."
Devs can now be more lazy (Score:2)
Along with promoting an easier multithread API the artical also contain the paragraph:
Project Coin's diamond syntax for constructor calls lets the compiler infer type arguments, and the try-with-resources statement helps the compiler make reliable code by automatically closing files, sockets, and database connections when developers forget to do this, Ratcliff says: "That's something that's been tripping up developers -- especially young developers -- for years. That'll be a good productivity improvement and will reduce bugs."
This is almost like programming language lock in, once you have programed in Java for a few months you are incapable of writing functional C++ code and if you lean to program in java you have no idea why your non java programs fail.
Re:Devs can now be more lazy (Score:5, Insightful)
Yes. Let's shun all advances in programming language design, because they make it too hard to use languages without them.
Man, imagine what'd happen if you ever ran into a programming language with a good design. There are some out there that are actually pretty good. Of course, no language is perfect - or even close. But people who resist making things better just because it makes defects in existing languages more obvious is doing themselves, and the entire field of software engineering, a disservice.
Re: (Score:2)
Are these really meaningful advances? (If they are then yes i would agree with you)
Though i have no idea what they added to thread module if it was an advancement i would think you could sell it a bit better than it makes things easier. There has got to be a performance hit for "extending" garbage collection to files, sockets, and databases. How hard is it to realise you no longer need a resource and free it.
Sure its fine if you don't need it to be faster than python (or pypy) but changes like these (yes yo
Re: (Score:2)
Are these really meaningful advances?
Making it easier for people to close files? I'd say that was an advance.
At least somebody is finally admitting that garbage collection causes as many problems as it solves.
Re:Devs can now be more lazy (Score:4, Informative)
Are you trolling? You said:
They haven't "extended garbage collection", they've introduced syntactic sugar. Instead of this (with real indenting in real life because you're not limited by Slashdot's lame commenting system):
You can have something like this:
So either you're trolling or "The Dawn Of Time" is right [slashdot.org]: you have no idea what you're talking about.
Ian
Re: (Score:2)
Sorry was not clear i meant to imply they were applying the concept of GC to resources other then memory. Java decided you no longer need the resource and frees it. This is simplified situation say you make an object that opens a file (or other resource) but then still need the object without the file then the VM would recognise this and close the file. Its more complex than just SS.
And you raised the issue of what happens if you cant close/save the file, it would be come more complex to handle the only way
Re: (Score:2)
No hit (Score:2)
There has got to be a performance hit for "extending" garbage collection to files, sockets, and databases.
No, there does not. All that is happening is the compiler is writing correct code for you that is commonly used, so that you don't have to try and get it right.
Re: (Score:2)
There has got to be a performance hit for "extending" garbage collection to files, sockets, and databases. How hard is it to realise you no longer need a resource and free it.
Garbage collection can take some time to realize that a resource is no longer needed and release it. For memory, it's mostly not a huge problem (and you can tune how often the garbage collector runs) but many other resources come from really rather small pools so releasing them earlier is really important. This is especially so for anything connected to a file descriptor and/or process, such as all those that you list.
Releasing a resource early means doing some kind of close operation on it, and requires th
Re:Devs can now be more lazy (Score:4, Interesting)
once you have programed in Java for a few months you are incapable of writing functional C++ code
Having been a Java developer for eleven years now, I still write C++ with few memory leaks and a couple of passes through a debugger usually fixes that. I am not sure why people believe Java makes you a bad programmer. Java, C#, and C++ all follow the same design patterns, they just use different methods on getting there. It is really not that hard to remember, hey in this language the object is GC and in this one it isn't. A singleton design pattern in C++ and Java look exactly alike and function exactly the same. Java you don't have to worry about cleaning the mess up and in C++ you clean it up in the destructor, c'mon some people make it out to be the difference between gutting a fish and brain surgery. It's all syntax sugar, a lot of people need a new argument.
Re: (Score:2)
I did not say its currently the case, looking at the article I suggested/said it could be going there. (I do think that some of Javas features unnecessary make it easy for people to write programs that could easily preform better.)
Do you believe, not having to close unlock things makes you a better programmer? or that developer of Java will magically make it so there are no issues like (unnoticeable but cumulative) effects on performance, keeping the file open longer than it needs to be or having to reopen
Re: (Score:2)
Re: (Score:2)
I don't like your metaphor, you have simplified the issue too far and it hides the numbers needed to compare things to see if the tradeoff is worth it and I never said there is a problem with the part you described.
But to carry it on what happens when you go to another store and the door does not close and something goes wrong (say something gets blown over and you have to pay for it) or when to cover the cost of putting the door they markup your prices. (I assume the door is hypothetical as here the door w
Re: (Score:2)
Re: (Score:2)
Thus we have scripting languages (for performance CPython or pypy) which is this taken to the extreme.
I said that due to the tone of the article and the quote (i don't know who he is) that making the language easier (rather than simpliler) would make it make it harder to move to another language (others have said this is nothing new) and that it could be intentional.I think i left it up to the reader to decide the extended consequences of this.
Re: (Score:2)
At some point, farmers mostly stopped planting fields with the help of a hoe and they hooked up plows to oxen or some other beasts. Then, the tractor was invented, making life even easier. Advance after adva
Re: (Score:3)
Do you believe, not having to close unlock things makes you a better programmer?
No and that's not the point of these features. A car can have a manual or automatic transmission. Either one won't prevent the driver from being an ass to me on the road or make them a safer driver overall. Likewise, the features aren't there to make one a better programmer or a programmer who is bad at resource handling suddenly better. The features are there to handle certain cases automatically, cases where we've already had a solution (using finally) but would have preferred it to be less verbose.
Li
Re: (Score:2)
I think the design focus should be simpler rather than easy (using the word easy over simple just screams bad deign to me, maybe the article writer just chose the other work). I tried to make it obvious that my one line was based of the paragraph from the articular. I don't think anyone who has much influence has ever wanted GC directly built into C++. It just does not fit to have automatically included in Native Code.
I never said this would make you a bad programmer just that it would be frustrating/diffic
Re: (Score:3)
I believe not having bugs makes you a better programmer, and if the language helps enforce that by design, even better. If you're trying to prove yourself by doing things manually that computers are capable of handling for you,
Re: (Score:2)
Java you don't have to worry about cleaning the mess up and in C++ you clean it up in the destructor
If you're doing it right C++ needs very few destructors and memory leaks only happen once every blue moon.
Re: (Score:2)
If you're doing it right C++ needs very few destructors and memory leaks only happen once every blue moon.
Exactly. Usually deep in the code internals you'll see a couple of d-tors that do all the delete's. Everything else just seems to auto-magically happen and delete itself, sorta like Java.
Re: (Score:2)
Can you believe these so-called programmers? Always going on about their infernal structured whatsises with their new-fangled compilers and crap! Real men program directly in binary and enter the code with toggle switches. How will the program layout ever be right if you let some so-called "linker" do it? IOf that wasn't bad enough, now they want to ling AT RUN TIME fercristsake!
Now GET OFF MY LAWN!
Re: (Score:2)
Re: (Score:2)
The problem you describe isn't one of developers being lazy... it's a problem of developers being *stupid*, and failing to learn anything from the languages they've previously programmed in. Every language you use in anger should inform you about viewpoints and techniques for every subsequent language, even if they don't directly apply.
This is why all programmers should start with a language like Pascal, so they learn the basics of structured programming, lexical scoping, and what the hell the difference
Re: (Score:2)
Just look at those silly C++ programmers letting the compiler manage the stack for them. Once they've programmed in C++ for a few months, they'll never be able to manually set up call stacks in assembly across multiple operating systems and instruction sets.
I think I speak for many when I say... (Score:2)
...please don't let all these fancy tech buzzwords stop Minecraft from working.
Do these developers include Android developers? (Score:2)
"...Paul Krill surveys the new capabilities that matter most for Java developers..."
Do these developers include Android developers? Well, that's the question. After all, Java code will run on Android's Dalvik VM without modification, right?
Meh. (Score:2)
As a developer I could care less about Java itself. It's the new Cobol.
It's in an awkward spot. For anything high level I'd rather just use Python. And for the few cases where Python's not fast enough, it's easiest to jump down to C++ and write a module I can call from Python.
The best thing about this new release are JVM improvements for dynamic languages, which should help out projects like Jython, JRuby and Scala.
Here's a reason why it is not on http://java.com. (Score:2)
http://www.java.com/en/download/faq/java7.xml [java.com] -- "Why is Java SE 7 not yet available on java.com?
Java SE 7 is the latest release for Java that contains many new features, enhancements and bug fixes to improve efficiency to develop and run Java programs.
Why is Java SE 7 not yet available on java.com?
The new release of Java is first made available to the developers to ensure no major problems are found before we make it available on the java.com website for end users to download the latest version. If you are
Re: (Score:3)
It sounds like even Oracle, itself, doesn't think Java 7 is ready for the public!
And they are right [slashdot.org] indeed...
Re: (Score:2)
If it is that bad, then don't release it!
Did update #1 even fix it?
Re: (Score:2)
AFAIK it is planned to be fixed on update 2. Which is kinda retarded - even for Oracle standards.
Re: (Score:2)
Wow, that is seriously messed up if it is true. I will stick with the older stable version (v6u27) that just got an update last week. ;)
Riddled with errors (Score:4, Insightful)
Among the delayed capabilities are adding Lambda expressions, or "closures," to Java for multicore programming, ...
Lambda expressions are not closures, and neither enable parallelization. Yes, the Wikipedia articles for both are dense swamps, but couldn't you have at least tried to ask someone? Please?
Re:Riddled with errors (Score:4, Insightful)
Lambda expressions are not closures, and neither enable parallelization.
I noticed that too. Somehow, in the Java community, closures somehow became connected to lambda expressions. Whether you have a syntax for anonymous functions is completely separate from whether you have closures.
In a reasonably static language like Java, adding closures makes the concept of the "stack" a lot more complex. A closure can contain a binding to a local variable outside the closure. That binding can outlive the scope of that local variable. So local variables now have to be handled in a more general (and slower) way. The semantics of local variables gets a lot more complicated, too.
Perl, Python, and Javascript have closures, although most programmers who use those languages don't know it. In those languages, any nested function can potentially be a closure. (Well, in Perl, there's a warning if you do that.) The Java people don't seem to have taken that route, possibly because they don't want to incur the overhead of a closure unless the programmer really wants one.
No Thanks! (Score:2, Funny)
Google just needs to re-implement all their shit in C++ and we can get an "Oracle can Blow Me" congo line going. Having a native mode executable build down to 20 *kilobytes* and actually run in 20 kil
Re: (Score:2)
Re:Kill it Oracle (Score:4, Insightful)
Ah yes. The old "blame the language for the lack of a developer's skills" ploy. It's a sad carpenter who blames his tools for his incompetence. It's a sadder carpenter who blames a tool for other carpenters' incompetence.
Just curious: what do you think all those "Java weenies who couldn't code themselves out of a paper sack" would do if Java died. Would they magically become skilled code gurus because Java doesn't exist? Or would they be incompetent coders in a different language?
As Dilbert so succinctly put it: you're solving the wrong problem!
Re: (Score:2)
Ah yes. The old "blame the language for the lack of a developer's skills" ploy. It's a sad carpenter who blames his tools for his incompetence. It's a sadder carpenter who blames a tool for other carpenters' incompetence.
I can't speak for other workplaces, but there are certain languages that people at my company develop in and you can get a pretty good idea of a programmer's skill level by what language he develops in. Anyone who develops in only one language is very good at that language. S/He can solve any problem you throw at him/her in that one language. There's nothing wrong with that per se, but demand is not constant. Sometimes, they need more people in a different department. If you are a one language programmer, y
Re: (Score:3, Insightful)
If you follow it to it's logical conclusion, the best programmer's flip the machine bits by hand...
Re: (Score:3, Funny)
Obligatory xkcd [xkcd.com]
Re: (Score:3)
If you follow it to it's logical conclusion, the best programmer's flip the machine bits by hand...
Correct: the best programmers can use machine code if needed. But the best programmers also don't abuse the apostrophe as much as you did...
Re: (Score:3)
If you follow it to it's logical conclusion, the best programmer's flip the machine bits by hand...
Correct: the best programmers can use machine code if needed. But the best programmers also don't abuse the apostrophe as much as you did...
If I found out someone was manipulating code at the machine level - I'd definitely have issues with that. You lose portability and expose yourself to a nearly infinite amount of issues - there really aren't many cases left where this would even be remotely advisable.
:p
PS. Nitpicking grammar - that's nearly as bad as using machine code directly.
Re: (Score:2)
If you follow it to it's logical conclusion, the best programmer's flip the machine bits by hand...
Correct: the best programmers can use machine code if needed. But the best programmers also don't abuse the apostrophe as much as you did...
If I found out someone was manipulating code at the machine level - I'd definitely have issues with that. You lose portability and expose yourself to a nearly infinite amount of issues - there really aren't many cases left where this would even be remotely advisable.
Well, that's why I emphasized the "if needed" bit. I suspect that cases where a real need for machine code might arise are probably limited to embedded systems and other single-architecture real-time applications, where a complete re-write (from specs) would be needed for a change in architecture.
PS. Nitpicking grammar - that's nearly as bad as using machine code directly. :p
Hmm... now was I picking at a grammar nit or a spelling nit? Or were you suggesting that grammar related to a disgusting [wikipedia.org] activity is nearly equivalent to direct use of machine laguage?
Re: (Score:2)
Re: (Score:3)
Let me get this straight - you think that a harder programming language increases programmer competence. While I'm not defending Java, this logic is deeply flawed.
Glad to know you're here to fix the entire world's education system. Sorry, but YOUR logic is deeply flawed. With your logic, none of the "good schools" are actually any good. So yes, clearly those capable of mastering difficult tasks show they are better in any way.
I'm going to take a wild stab here and say, perhaps you are a Java programmer? And even if you are not, YOUR logic is dubious at best and in no way invalidates the line of thinking which spurred your initial response.
Re: (Score:3)
Not speaking for the GP, but my take is that the harder the language, the less incompetent programmers it will attract.
Think about it this way: if any idiot can do VB then every idiot will do VB (in preference of other languages).
That said, if a language is merely hard, with no added benefits in power, expressiveness, etc., it will also fail to at
Re: (Score:2)
You can usually spot "likely to be baseless" criticisms on slashdot, even if youre not up to date on the particular topic. Usually they are made by ACs.
Re: (Score:2)
Re: (Score:2)
A Language that gives you head? Where do I sign up?!
Re: (Score:2, Informative)
Re: (Score:2)
Why are you both confused/assuming? Too busy to read the article?
Re: (Score:2)
Read the article? Do you know where you are?
Re:A language with a file system? (Score:5, Informative)
It's just improvements to the I/O API. Java has the New IO API for doing I/O. java 7 has extended it, hence NIO2. http://www.ibm.com/developerworks/java/library/j-nio2-1/?ca=drs- [ibm.com]
Re: (Score:2)
Re: (Score:3)
Re: (Score:2)
Re: (Score:3)
Re:One day we will be done with java... (Score:5, Insightful)
While you are busy being a jackass and letting us all know you have never made a single mistake EVER with resource allocation, some of us have work to do and enjoy the fact that we will never have to type try{openFile}catch(DamnException){}finally{try{closeFile}catch(AotherDamnException){}} ever again.
Re: (Score:3)
I totally agree. Also, it's not about the noobs. I suspect most experienced java programmers cant' code the correct try/catch/finally/try/catch for a resource access without looking it up. Check http://stackoverflow.com/questions/4092914/java-try-catch-finally-best-practices-while-acquiring-closing-resources [stackoverflow.com]
Re: (Score:2)
Re: (Score:3)
C# had it 10 years ago.
Lisp had it 30 years ago. Go suck eggs.
Re: (Score:3)
Thanks for the object lesson dick.
You thank him for the lesson which is strange since you seemed to misunderstand it.
1. Raii gives you the -ability- to reclaim resources after a fault,
No, it automatically reclaims them. E.g.:
osfstream f("tile.txt");
throw "An error!";
now f is automatically flushed, closed and reclaimed.
2. If you mean writing a hell of a lot of useless boiler plate and trouble laden code
Well no, not really. In this case, the C++ version is shorter and therefore less error pron
Re: (Score:3)
That is great (really), but it does not support inheritance.
Huh?
If you want inheritence, you have to do it with pointers.
auto_ptr p(get_from_factory());
throw "An error!\n";
Is that what you meant? It still works...
Re: (Score:2)
In the 50s and 60s, programmers were skeptical of using a high-level programming language in place of assembly, but the productivity and understandability increase was too great to ignore. Today, using assembly is frowned upon expect in very specific situations. In fact, compilers are generally regarded as being capable of doing a better job than a human could.
The computer exists to do work for you, and that inevitably includes managing its own memory. Automatic memory management in some form is an inevitab
Re: (Score:2)
Re:One day we will be done with java... (Score:4, Interesting)
"Write once, run anywhere" was like communism -- an idea that sounds nice in theory in some ways but utterly fails to work in reality.
True, if you hardcode C:\something or /somethingelse in your app. I've never had cross-platform problems, either on big server side applications or trivial desktop ones. So I guess 'utterly failes to work in reality' is somewhat dependent on the developer.
Re: (Score:2)
I mean if that doesn't say it all I don't know what does. Hmm Allocate a resource, Free a resource. I think they still teach that in CS-101, then again maybe not. I alloc() therefor I free() ?".
Maybe they do. Doesn't mean it's not a pain in the arse to get right ESPECIALLY in Java since a close() can throw an IOException and ESPECIALLY if you have more than one resource open, e.g. input & output file and you need to ensure both get closed in all normal and extraordinary circumstances.
Re: (Score:3)
Well since JDK downloaded, ant XML in my head,
jars, wars, and .class files all night with laptop by my bed,
well java you look so fine (look so fine)
for C++ errors took all my time,
for you to help me java
get Stroustrup outta my heart.
help me java, help help me java
help me java, help help me java
.........
help me java, yeah, get him outta my heart.
Bjarne was gonna be my god,
and we gonna be his bitches,
preprocessor bloat came between us,
patterns ruined by the glitches
Re:Improvements (Score:5, Interesting)
Arguments for slow Java are so 1990's. Every Java application, desktop or otherwise, I have written has been very snappy, very responsive. Swing has always had places where you can get caught making your own application slow to load or slow to respond. I believe that the community and Sun have really ushered in conventions to mitigate that. SwingWorker (part of core Java Swing), Timing Framework [java.net], JPA (especially our friends at Eclipse), and other community frameworks have really changed the way coders write Java desktop applications in ways that avoid a lot of the pitfalls that came with the 1.1, 1.2 and so on versions of Java.
I think this is the reason why Oracle really needs to embrace the community. It has been because of them that Java has gotten better and faster with each release. People who still talk about how slow Java is and how crappy Swing is, are still living in the past. Is it the perfect platform? No, but it has gotten multiple times better than where it was.
Re: (Score:2)
Arguments for slow Java are so 1990's.
Nope, still as relevant as ever. Java simply doesn't scale. Try running your microbenchmarks with a million objects in memory...
Re: (Score:2)
Java simply doesn't scale. Try running your microbenchmarks with a million objects in memory...
That sounds like EE development and not SE development. If that is the case:
That sounds like a problem with the design. Try using more lock free structures, you can use the java.util.concurrent package to find tools that will help you build these easier in Java 5 and better.
If your are indeed talking SE development, why is your desktop application using millions of objects in memory? I do not think it is wise to juggle that many objects in any desktop platform. Usually, and this is just me, I flush
Re: (Score:2)
If I was doing this I would use an in memory database. I would talk to that database using Java.
I developed in C++ for 5 years, I have thanked Jesus and his angels every day since Java came to save me.
Re: (Score:2)
Because 10 years ago it was the best tool for the job.
It's still the best tool for the job. And it scales extremely well assuming you bother to write apps correctly to cope with the dataload.
Re: (Score:2)
The problem with Java is that the startup time is poor, which is often ignored by benchmarks.
First, for an apples-to-apples comparison, this is the startup of a typical installed .NET app:
* Operating system loads the cached, fully compiled EXE or DLL.
* Operating system loads the cached, fully compiled System library DLLs.
If the app is not cacheable (not signed, not properly installed, or whatever), then the process is almost the same, except that the first step changes to "Operating system loads the bytecod
Re: (Score:2)
The problem with Java is that the startup time is poor, which is often ignored by benchmarks.
I can understand this poorly written application usually have very long start up times. Usually if you need to yank in a ton of stuff you can do that at runtime in the background. Dynamic loading.
Compare that to, say, ASP.NET, which if precompiled can launch in a few hundred milliseconds!
You can precompile EE applications as well and have them start up in milliseconds. I think the PHP guys are the ones who came up with this in the first place but then of course I am sure that at some point Xerox came up with the idea first.
There's no good reason for this. Oracle could use a container format that's uncompressed by default, pre-compile, cache, etc...
As far as EE goes you are not required to use WAR or whatever they are ca
Re: (Score:2)
So does .NET, except it's not a switch away. Do you think they use the same .NET VM in Windows Server as they do in Windows Home whatever?
I dont know what he thinks, but you are quite clear about what you think and its wrong. The CLR is the same between Server and Home versions of windows. There simply is not differing branches of the CLR because that would defeat its purpose.
Re: (Score:2)
I can understand this poorly written application usually have very long start up times.
Nothing to do with code quality, unless you consider "using the standard libraries" poor programming practice!
You can precompile EE applications as well and have them start up in milliseconds.
Maybe, with some containers. I said that. My point is that 90% of Java environments don't or can't do this. It's certainly not the default.
In SE that is being addressed in Java 8
That's my point! Java 7, which is now 16 years old, still doesn't have minor, unimportant features like... fast start time, even though, as you put it, other people have solved the problem decades ago.
Dot NET is snazzy in the fact that the VM is loaded with the OS so you only incur the cost at startup and shutdown
Not true! The VM is only loaded if an application needs it. Th
Re: (Score:2)
My biggest problem with Java isn't the language, which I have grown to respect, it's the Java programmers. They think they are using Java so they don't have to worry about memory, that things can't leak. No, you still can stick an object in a queue and forget about it. Or register a Swing
Re: (Score:2)
Is that why Java installs so many "Quick Starters" as background processes and plug-ins in every nook and cranny it can?
Re: (Score:2)
n my experience most of Java's performance improvements have had more to do with advances in hardware.
I can tell you that all compilers have advanced in step with hardware improvements. Also, I have easily ran Tomcat 6 and Linux on a Dell OptiPlex GX300. Trust me I have tons of 90's hardware that I am required to make work and enjoy hacking on. I still change DIP switches on ISA cards at my work place.
Re: (Score:2)
Re: (Score:2)
Meh, not sure what you're used to but Eclipse is always slow, no matter how few plugins you use.
I don't disagree with the original comments- that Java being slow is a 90s argument, but Eclipse is a particularly poorly written piece of software that really doesn't demonstrate Java very well.
The GP pointed out why Eclipse is slow though, and why it's not a Java issue, but a poor design issue.
Compare Eclipse to other IDEs like NetBeans, JDeveloper, or Visual Studio and you can see how much of a joke it is. It'
Re:Improvements (Score:4, Informative)
To be fair here compared to other interpreted languages Java is still the king of the hill. By far.
Disclaimer: Yes, interpreted. Bytecode is interpreted, even with stuff like JIT.
Re: (Score:2)
Disclaimer: Yes, interpreted. Bytecode is interpreted, even with stuff like JIT.
Um, no, it is not. There really isn't much to debate here. This is like debating if JIT is the same thing as a compiler.
Re: (Score:2)
Bytecode IS interpreted (by the JVM), sorry. Jazelle was the only attempt of a hardware JVM implementation that i know of and even that was short lived.
Re: (Score:2)
Interpreted code does the following: Bytecode is loaded by a native program into an Interpreter. The Interpreter reads the code and sends native code to the machine or to another piece of software that can do such.
JIT code does the following: Bytecode is loaded by a native program into a compiler. The bytecode is compiled into native code. The native code is sent to the machine.
The difference is the following, the bytecode in JIT eventually become
Re: (Score:2)
The difference is in the how. JIT gives huge improvements in stuff like loops and basic constructs because these are easily translated into machine code. But for Java bytecodes dealing with OOP constructs (new, for example) this basically means that the JIT has to embed a lot of machine code as an abstraction layer. The improvements there are minimal because this code is doing pretty much the same the JVM would do processing that bytecode on the fly.
Making a very loose comparison, i could easily bundle a JV
Re: (Score:2)
At some point a machine will not natively do everything a language requires and thus extra "fluff" will need to be added. That's wh
Re: (Score:2)
No. C++ generates binary machine code. It is not portable. It is loaded directly into memory where it is executed directly by the CPU. There's no "just in time" there, at all.
Re: (Score:2)
I was referring to speed alone, where Java runs circles around Lisp. But yes, if we're talking elegance Lisp makes Java look like Flavor Flav.
Re: (Score:3)
I love Python, don't get me wrong, but it is nowhere near Java regarding raw performance. Even the developers acknowledge this, with stuff like the Google sponsored Unladen swallow [google.com] and PyPy [pypy.org].
Haven't toyed much with Ruby these days though. I should :)
Re: (Score:2)
A bigger issue for Java is that it uses layout models extensively to ensure GU
Re: (Score:2)
It won't be jilted in Windows 8. Why you people keep perpetuating this myth? Just because C++ is making a comeback (it was about time) and JavaScript/HTML5 is finding a new home, doesn't mean that we throw away .NET Framework 4.5.
Re: (Score:2)
HTML 5/JS is just being added onto what is already there. The fact that no one has heard about Silverlight has made everyone worried. Microsoft has talked about Silverlight just not to the degree that everyone had hope for. [zdnet.com] So since no one likes waiting until September, we'll just spread rumors and make Microsoft pay for suddenly wanting to do things like Ap
Re: (Score:2)
Can we get it reviewed by someone who isn't a fanboi and butt licker?
Re: (Score:2)
There were a number of proposals for how to improve Java. Some of them were controversial. The controversial ones got moved out to Java 8, and the ones that everyone agreed on made it in to Java 7.
In essence, this is a good, solid, incremental update.
My idea of a perfect programming language is somewhat different, but I can respect this as a solid improvement.
Re: (Score:2)
1. C#'s 'using' block so I don't have to use try/finally everywhere.
That's in Java 7, in the form of the try-with-resources statement [oracle.com].
Re: (Score:2)
This new Java statement, C#'s blocks and C++'s destructors are all hacks that solve a problem that would not exist in the first place if those languages had lazy evaluation: the code that uses those resources could have been passed as a functor to another function that opened the resources, called the functor and then closed the resources.
It it amazing that in this day and age, language designers ignore language design and compiler basics this much.
Re: (Score:2)
That was one of the questions I wanted to ask. So how open (source) is it now ?
I just know OpenJDK exists, I even know where to download it:
http://download.java.net/openjdk/jdk7/ [java.net]