Java 7: What's In It For Developers
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."
You can always tell a language fanboy. He's the one with no computer science degree. He's also a flunkie that needs to attack other languages because of his own inadequacies as a developer and as a person.
is think about you.
you made my soul a burning fire
you're getting to be my JavaOne desire
you're getting to be all that matters to me
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.
I assume the author meant, "... to improved file system access." See here.
If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
Not being a programmer, I would guess that it has something to do with Java running on a VM, and needing some way to interact in a universal manner with the host OS's FS.
Any Java whizzes want to comment?
A: Not much that is interesting given the number of comments?
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-
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!
The improved file system API isn't even really about I/O, it's about a better API for querying file system metadata more or less.
I don't know what you were voted up for, but it is kind of obvious that it means "an improved file system API".
But not soon enough. FTFA...
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."
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() ?".
Hey KID! Yeah you, get the fuck off my lawn!
Java is great. The new release proves that Sun lives on inside Oracle.
The new version is a little faster from what I can tell especially file IO as a few have stated. It did even matter that much people just wanted to see that Java was still alive and it is.
Does this mean Java got any faster or a better UI toolkit?
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.
I hate to break it to you asshole, but all languages suck.
Mod me down, my New Earth Global Warmingist friends!
...please don't let all these fancy tech buzzwords stop Minecraft from working.
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.
If you follow it to it's logical conclusion, the best programmer's flip the machine bits by hand...
If our elected representatives no longer represent us, do we still live in a Democracy?
How compatible is Java 7 with Java 6? Can I run the Andriod emulators? Is it more secure than java 6? I would like to use Chrome but it always runs Java by default and I got owned a month ago from this exploit. I hate using IE as it is the only browser I can disable Java from
http://saveie6.com/
Obligatory xkcd
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...
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
Well going by previous statements by Larry Ellison and Oracles actions in regards to Red Hat Linux. They'll wait until your stuff is popular and then just take it and start charging support fees for your stuff.
"If an open source product gets good enough, we'll simply take it" link
A bag of hurt.
People, People, calm down, put a lid on it.
Look at yourselves... having a big jolly party. There are already so many fantastic features in Java--we're jaded in our big happy family. So many open-source offerings court the Java developer, we forget that we could be going back to Ol' Mamma Redmond night after night. Horrors!
Look at the poor, pathetic .NET developers. Unloved by Microsoft. Uneaten dogfood. Jilted in Windows 8. Told that .NET experience on a resume is a black mark with startups. They need an intervention.
Gentlemen and Lady, how can you Java Developers be so insensitive? .NET developers are weeping. A decade of hard-won knowledge lost and back with that FoxPro DBA textbook. They lay down with the Evil Empire and woke up with fleas. Go figure!
Warning goatse link in parent!
"...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?
1. C#'s 'using' block so I don't have to use try/finally everywhere.
2. C#'s 'out' and 'ref' parameters so I don't have to allocate memory to return more than one value from a function.
3. C#'s 'struct' for "pass by value" data structures, or at least strong typedefs, so that a variable of type "typedef int A" cannot be implicitly converted to "int" or "typedef int B".
But honestly, I'd settle for a C# cross-compiler that targets the JVM.
p.s. Why oh why did I start a year-long game development project in Java? The hoops I have to jump through to get half-way acceptable performance are maddening. Someone please kill me.
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.
Maybe not
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.
If our elected representatives no longer represent us, do we still live in a Democracy?
It is not goatse. Totally different guy doing something even more extreme.
Not something new like this. No butts on this last one
http://www.java.com/en/download/faq/java7.xml -- "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 interested in trying Java SE 7 it can be downloaded from Oracle.com..."
It sounds like even Oracle, itself, doesn't think Java 7 is ready for the public!
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
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, you have very good odds of being let go when that happens. If you are competent in many, you can go far.
The hands down best programmer I ever worked with could code in anything from FORTRAN 77 through .NET and his code was always amazing. But, that's one out of hundreds.
LK
"Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
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?
Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
I believe this is actually because the JVM for 7 hasn't made it to the Mac yet.
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 activity is nearly equivalent to direct use of machine laguage?
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
You can always spot a "over the squabbling" post as it normally sits at the end of a chain of AC's, normally followed by "THIS!" and also someones request to "mod parent up!"
also, mod parent up!
Just to correct the article: Scala is not a dynamically typed language. It uses type inference (at compile time) to create a highly expressive language which still benefits from static typing.
What's In It For Developers? Lawsuit
Got Code?
Why are you both confused/assuming? Too busy to read the article?
No sig today...
there is a difference between understanding how the computer does what it does (and a logical extension of that is knowing how to change it should that be required), and actually attempting to do something via machine code. but you're right, modern day programming is a different beast than old school logic gate manipulation.
It's really not that obvious in the summary.
It sounds like even Oracle, itself, doesn't think Java 7 is ready for the public!
And they are right indeed...
Thats why the summary links to an article. You must be new here.... oh wait... You'll fit in great here. Carry on.
I want this account deleted.
If it is that bad, then don't release it!
Did update #1 even fix it?
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
AFAIK it is planned to be fixed on update 2. Which is kinda retarded - even for Oracle standards.
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. ;)
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
Lolcode sucks, it just sucks in a fun way :/
... is there something you can't do with Threads, but you can with Fork/Join?
I hope this means they will have basic functions like copy built-in. I was quite surprised when I took up Java on Android that such a function was simply not there. And that I basically had to add it myself (luckily code snippets all over the place, but still). The whole I/O felt very primitive to me - it may have its advantages to do it that way, but me coming from Python is used to being able to address files much easier.
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 kilobytes is freaking awesome. Having real system level control over your hardware, awesome. As long as you're not seduced by template fuckery (You know who you are, "lets factor prime numbers at compile time" template people!) or dynamic link libraries, it's a fine language!
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Oh yeah more crappy toolbar of the week installers!
We have made a concerted Java from all of our machines as a toolbar install system wasnt what we had in mind
for business, it was easier/cheaper to purge the company of Java, its toolbar installers, and all its security flaws than have it on the machine and constantly deal with headache of support
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.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Well it is. It has new asynchronous channel functionality and the FS stuff also allows Java to watch directories, walk through them, examine attributes and other stuff. Java is generally a good language but some stuff particularly Date & Time and IO have been pretty mouldy and long over due a revamp.
Read the article? Do you know where you are?
Ah yes. The old "blame the language for the lack of a developer's skills" ploy.
Well, the thing is, one of the goals of Java was to deal with bad programmers by putting safeguards, not having features like multiple inheritance that are useful but require you to have a brain, and forcing you to either catch an exception declare that it can be thrown, among many examples. These are useful, but frustrating if you're prototyping, and not mecanically implementing a well designed specification. Anyway, all those safeguards mean a bad programmer may be able to write some working code in Java.
On the other hand, take Perl. It was meant for good programmers, has no safeguards, and in many ways relies on the programmer using it the sane way. For example, it doesn't enforce public/private access, but instead relies on you to be polite and not access private stuff. No bad programmers could ever be productive in Perl, but a lot of decent-to-good programmers found it very helpful (before Python and Ruby came).
So, in the end, you'll have more bad Java developers than bad Perl developers, just because Java is more friendly to them. Of course, if Java died, its bad developers wouldn't magically become good developers by switching to another language, but they'd either find another dummy-proof language, improve their skills, or change jobs. Just like if PHP died, a lot of crappy web developers would have to either find a replacement that still allows them to write websites without learning to code, or change hobs.
A Language that gives you head? Where do I sign up?!
+1 IDisagreeSoHeMustBeATrollOrAnAstroturferOrAShill
.NET called. It says welcome to 2006.
There are places where it's still very legitimate, like high performance crypto libraries, video processing, graphics engines, that sort of thing. Typically you have a reference implementation in C or some other portable language and the assembler is conditionally compiled in, so it works on other platforms but you only get the extra performance boost on that particular platform. It's a niche but so is kernel and driver development, it still makes sense to have some people specialize and do those specific tasks. I wouldn't go it as a career though, there's way, way too many developers from the "bad old days" who know all about shaving two bits and four instructions off a calculation.
Live today, because you never know what tomorrow brings
I don't really get why people emphasize to be able to program in assembler. Or machine code ...
Do you really believe a programmer who can program in Java or even Visual Basic is incapable of learning assembler?
For most programmers there likely never was a need to learn any assembler or more than 2 languages ... nevertheless assembler is easy to learn.
There is no magic about it.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Where is this Java SE 7 update 1 at since you say it has been released?
It's not on Oracles Java download page:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
FTA:
A key feature of Java SE 7 is its accommodations for dynamic languages, which are becoming prominent on the JVM lately, thanks to the emergence of languages such as JRuby and Scala.
Scala is _NOT_ a dynamic language!
No, I think the Java weenies should be fired en masse and replaced by competent people. Then the Java weenies can work at the fry cook station which is more apt to their abilities as mouth breathers.
Umm, incompetent numbskulls such as yourself can program in any language - Java, C#, Perl, Python, PHP, C, C++...
I've seen idiocies in ALL of them. There are things I hate about Java (and reasons I would never use it for my own projects, unless the only other option was Perl), no doubt about it, but blaming it on people not being able to program... I feel sorry for your boss if you are a developer.
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
The old "blame the language for the lack of a developer's skills" ploy.
Only in your imagination. Java, like PHP, specifically sought to attract the low end developers away from VB; and those who struggled with basic C/C++. The fact that Java is purposely a very limited and dumbed down C++ is further proof in the pudding. In fact, that was part of the marketing strategy. They basically positioned Java as the C++ for idiots. That was their whole enterprise marketing campaign - you don't need expensive, good, C++ programmers when you can do the same with shitty, third rate (frequently third world), cheap, Java programmers. That literally was the push into the enterprise with Java.
While not politically correct to say so, the FACT of the matter is, Java is C++ for idiots. That, of course, doesn't mean ONLY idiots use Java or that C++ has no idiots, but the sad fact is, Java, like PHP, has a vastly disproportionate number of shitty programmers.
Did the language make them shitty? Absolutely not. Do these languages attract a large number of shitty programmers? Absolutely, yes!
Sorry, but this is one of those classic cases where politically correct or not, the fact is, the non-politically correct answer is factually true, regardless of how much it offends your sensibilities.
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.
Of course not. They'll be a much better programmer once they have learnt at least one assembly dialect, however.
The fork-join framework pushed in Java 7 as the "way to parallelism for applications" is seriously flawed, http://coopsoft.com/ar/CalamityArticle.html
When I first started doing Java, I was shocked and amazed at how very shitty the entire IO model and APIs were for IO and Data/Time. Literally, doing it in C++ and especially Python would have been leaps about bounds faster, easier, and better. I quickly found my self wonderful why so many claim Java development is faster than C++ when in these areas, clearly it is not.
I don't really get why people emphasize to be able to program in assembler. Or machine code ...
Says a lot. There are still plenty of platforms where assembler is REQUIRED. Furthermore, on others, even where higher level languages, such as C, are available, to access certain hardware features are still only available via direct assemble and/or machine code.
Do you really believe a programmer who can program in Java or even Visual Basic is incapable of learning assembler?
Bit of a red herring there. Capable of learning? Probably they are capable of learning. Do they have a desire to learn it? Probably not. Are they capable of learning it well? Maybe. Are they capable of understand the overall implications of some of the code they may generate at this level? Its iffy if we're talking about the average Java coder.
nevertheless assembler is easy to learn.
Reading a dictionary is easy. Remembering the words and knowing how to put them together properly and concisely is an entirely different animal.
It would seem I've hit a nerve. It must be embarrassing talking about your lack of education when it comes up. Now, go back to your cubicle, code monkey.
I've been considering using some free time to play around writing Android apps for fun (I have no ambitions of trying to make any money at it) but I'm really nervous about the time investment with all the uncertainty around java. I have literally zero experience programming in Java, but I've played with C++ a little bit and several other higher level object oriented languages.
Can anyone give me some advice here? Is my time better spent just brushing up on HTML5 and Python?
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 attract the competent programmers.
Either that or they forgot to get the server password when buying Sun.
Date & time is a particular bug bear because I had to write an embedded system which dealt with time dependent data, had to cope with local time zones, daylight savings changes and data which was based off UTC. I think I did a pretty good job in the end but it sure as hell wasn't helped by the system libraries. The trick is to use time in millis from the epoch and never attempt to convert to / from local date at all except to present the data to the user. It's still a pain though. I would have used Joda time but it was too big and bloaty for embedding properly.
Java the language is dead to me. I could care less. What I do care about are JVM improvements that speed execution of the alternate JVM based languages: Scala, Rhino, jRuby, Clojure, Groovy, and to a much lesser degree Jython. The alternate languages are where all the action will be over the next ten years.
If you're a Java-only guy and haven't looked at Scala, run don't walk! You will love it, especially if you've played with any of the functional languages at Uni or on your own time.
I can only hope that someone will do a JVM Haskell and that the OCaml-Java project will mature into a stable platform.
"Liechtenstein is the world's largest producer of sausage casings, potassium storage units, and false teeth."
I think that the best programmers learn the hardest and most difficult languages in order to improve their skill, and then actually program in the simplest language that meets the criteria for the task.
I don't like Java much, but it has a purpose, and good code can be written in it. Heck, old VB had it's purpose, and a niche where it was far superior for development purposes than C++.
Now that Apple is moving away from Java and we dont have Java SE 7 downloads from Apple I do not see Java SE 7 downloads on Oracle's page as well. Is building OpenJDK on mac the only option left?
What happens if, say, a close() fails during the destructor call?
HAND.
One tool is better than another when it helps you accomplish the same task with less effort.
An intermediate representation is being interpreted.
HAND.
simply scoped resources that is.
HAND.
Did you really choose Perl as your unsafe language? I thought you were going to describe C. Perl copies lists and strings by default because it's the safe thing to do, even though it is inefficient. Perl added "use strict" and it is widely encouraged and used. Perl doesn't enforce public and private because it is a dynamic language derived from shell programming, and its object-oriented features were tacked on with superglue.
Perl does have a lot of crazy magic and syntax, but that's just a reflection of the designer. Lots of good programmers don't like it, and hence Python was born.
The reason you have more bad Java developers is because that's the language business gravitated to after tons of bad developers were making a mess in other languages, like C and C++. As another example, PHP, has a lot of confusing design choices and lots of ways to screw up, but tons of programmers use it, bad ones included, because it's a very popular language on the Web.
The correct use of apostrophe is grammar, not spelling, as it concerns syntax.
Lazy evaluation has nothing to do with it.
Not even lambdas are needed, nor anonymous classes. All you need is the ability to instantiate objects (with state) dynamically (aka. "new").
Of course anonymous classes and (especially) lambdas make such an API much nicer to use.
HAND.
I didn't describe Perl as unsafe, but as difficult to use for bad programmers, and requiring skill to be used properly. That's also the case with C, but for historical reasons and because C is closer to the hardware. Perl was designed that way.
The rest of your message is rephrasing what I meant, so I agree... but maybe I wasn't very clear in my post.
I don't really get why people emphasize to be able to program in assembler. Or machine code ...
Says a lot.
says nothing at all. using C++ or C# or Java is a conceptual skill quite apart from machine level programming. Everything from threading to object/data maintenance to looping is different in a fundamental way.
I'm one of those "uneducated" (my background is Electronics, not CompSci) java programmers doing mostly business applications. I would only assert my competence. I also entered machine code in Heathkit ET3400 as well as C= Vic20/128. I repaired arcade video games like Defender and MsPackman also.
People learn what they're interested by and what they are required. The "average" anybody is not going to excite... talk about red-herring...
Do you really believe a programmer who can program in Java or even Visual Basic is incapable of learning assembler?
Bit of a red herring there. Capable of learning? Probably they are capable of learning. Do they have a desire to learn it? Probably not. Are they capable of learning it well? Maybe. Are they capable of understand the overall implications of some of the code they may generate at this level? Its iffy if we're talking about the average Java coder.
The truth of the matter is that C and below programming is really not necessary to the majority of today's programmers. I also modified xmodem on a coherent system where I had dial up. I did that to skip the 64, 128, 256 progression it did to bring up to speed. most of my transfers were 1k or greater and starting at 1024 made a huge difference in the kind of quick transfers I needed to do. I got my first job in software programming by showing the place in that C source code that I modified... why and how.
Even today I think the better, elegant solution eluded me at the time. But it worked; both in a pragmatic and preparatory sense.
That's all starkly irrelevant to job-health today for me though.
What you described as features for bad programmers in Java were safety features. The only really valid claim you'd have for Perl was the horrid syntax and abundant magic, but you didn't mention those. You also can't explain why PHP is so popular and full of mediocre programmers when it's essentially Perl for the Web.
I can only hope that someone will do a JVM Haskell
No can do. JVM doesn't guarantee tail call optimization for method calls, which is a must for Haskell (and most other FP languages). It's why Clojure has that ugly explicit "recur" hack.
Unfortunately, JVM wasn't really originally designed for languages other than Java, and it shows. They're trying to patch it up now with things like invokedynamic, but it needs far more than that.
It's just scoping, really. You can do it in C++ if you like, here's one way to DIY (without the error checking):
Note that C++ only guarantees destructors are not run before something goes out of scope; exactly when after is Implementation Defined. So if a file MUST be closed (say, because you just wrote it and want to pass it to another program), you still need to invoke the close method explicitly.
Perl does much the same thing when a reference to an IO::File class or a filehandle gets garbage-collected. This Java feature just makes it part of the language syntax, rather than having to glom on yet another library.
Not speaking for the GP, but my take is that the harder the language, the less incompetent programmers it will attract.
Surely the harder the language, the less programmers it will attract. There will be a similar proportion of incompetent ones in that language.
Think about it this way: if any idiot can do VB then every idiot will do VB (in preference of other languages).
Then why don't the programming Gods use VB? I'm pretty sure they can all code VB if they wanted.
Ah, the impetuousness of youth. All of those "alternate languages where all the action is" are great toys ... until you need to get a job (or leave academia).
PS - Java ain't dead til netcraft says so!
Slashdot: come for the pedantry, stay for the condescension.
> Surely the harder the language, the less programmers it will attract. There will be a similar proportion of incompetent ones in that language.
Not so, the incompetent one will choose easier languages instead, ones that mask their incompetence.
> Then why don't the programming Gods use VB? I'm pretty sure they can all code VB if they wanted.
I knew at least one that did.
He used VBA for MS-Office macros and straight VB for prototypes.
Sorry, that si completely incorrect. Everything I can do with assembler, I as well can do with C/C++ or Modula 2 even. Except emitting the INT xyz opcode which is *perhaps* required for something.
I'm not really sure people know the difference between assembler and machine code ... there are far to many strange posts using the words ;D
I saw a post on stackoverflow lately where people talked about displaying java byte code operations by reading the class file and showing its opcodes. Some guy strongly argumented this was not "disassembling" as it only translated a byte into a mnemonic ;D
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
The new Java 7 resource statement does something more useful here. It catches the exception and attaches the stack trace to the original exception (if there was one). If there wasn't a pending exception when the close failed, it actually throws.
That's not something which can be done in C++ because destructors (as you say, and of course, I knew before asking :)) cannot throw. ... but this also means that if a file fails to close() during normal RAII (perhaps because of a failing flush), there is absolutely no way to tell the user code. So you end up with subtly broken behavior.
In Java (7 or earlier) your code WILL get an exception and won't fail silently. ... and that is why RAII is broken (in C++ at least).
HAND.
> Not so, the incompetent one will choose easier languages instead, ones that mask their incompetence.
And out of those that choose the harder languages there will be a number with inflated egos that think they are awsome when they are actually incompetent in those languages.