HomeНаука и техникаRelated VideosMore From: O'Reilly

OSCON Java 2011: Josh Bloch, "Java: The Good, Bad, and Ugly Parts"

482 ratings | 57242 views
In my technical presentation ("The Evolution of Java: Past, Present, and Future"), I'll be discussing all of the changes to the Java programming language since its inception. In this this keynote, I'll focus my attention on the starting point: I'll present my candidates for the best and worst features in the platform as it was originally released (JDK 1.0), and explain the reasoning behind my choices. Some of my choices may be obvious, but others will likely surprise you. A splendid time is guaranteed for all. Josh Bloch Google Joshua Bloch is a software architect in the Open Source Program Office at Google, author of the bestselling, Jolt Award-winning "Effective Java" (Addison-Wesley, 2001; Second Edition, 2008), and coauthor of "Java Puzzlers: Traps, Pitfalls, and Corner Cases" (Addison-Wesley, 2005) and "Java Conurrency in Practice" (Addison-Wesley, 2006). He was previously a Distinguished Engineer at Sun Microsystems, where he led the design and implementation of numerous Java platform features including the Java Collections Framework and JDK 5.0 language enhancements. He holds a Ph.D. from CMU and a B.S. from Columbia.
Html code for embedding videos on your blog
Text Comments (45)
Yuzhen Wang (5 months ago)
I was reading the Enumeration source code and saw his name then I am here!
Yangfan Cheng (1 year ago)
Dipak Patil (3 years ago)
Joshup bloch you are Rock
Jhon Hernandez (3 years ago)
Even old americans have a fagy way of speak...
Miles (2 years ago)
lol wtf what do you expect? You're watching an OSCON opinion keynote about Java.
Hitesh Patel (3 years ago)
Respect Sir. Every second java internal code I see is written by Josh Bloch. :)
Pavan Kumar (1 year ago)
same here :)
Anthony Wilcox (4 years ago)
I have such a love-hate relationship with Java.
Thuy Nguyen (4 years ago)
Where is the next talk that he mentioned:  "Where we did it proud and where we dishonored it".  Would someone link me to his next talk for Java?
goverdhan kothari (2 years ago)
parleys is hosed - what a pity .. a gem of talk has gone missing with parleys down. Anyone knows how else can we get the handle to the full talk ?
Róbert Papp (3 years ago)
+Tiffastic Nguyen as suggested by @SirSlush86 2 years ago: https://www.parleys.com/tutorial/514892290364bc17fc56c444/chapter3/about You need to register to watch more than 5 minutes, but it's worth it. It also has slow/fast speed and slides/video focusing to make it more readable/watchable from afar. There's also a followup to that (he mentions "Friday talk" at the beginning): https://www.parleys.com/tutorial/the-evolution-java-past-present-future
Jeremy Johnson (4 years ago)
This was a good talk on a retrospective good/bad review of Java 1.0. I find it pretty fascinating.
Salvatore Shiggerino (4 years ago)
So basically Java is a language made for idiots who swallowed the AT&T kool-aid at some point in their life and are just too stupid to learn anything else?
Róbert Papp (3 years ago)
+Roboprogs that may be true, but they were the ones who combined those things and made it available ;) It's easy to throw ideas of what would be nice to combine, but to actually do it and "succeed"?
Roboprogs (4 years ago)
Largely , take something like turbo pascal and UCSD p-system (virtual machine), add garbage collection, dress up to look like C++
thought2007 (5 years ago)
i dont know what hes talking about: switch fall through kicks ass, you can complain all you want but thats the way it is
Roboprogs (4 years ago)
Case clauses that support "or" lists eliminate most need for fall through, unless you want some cases to start in the middle of a block of code (yuck)
thought2007 (5 years ago)
maybe error codes are error prone but fact is every single java program ive run has ended up throwing some uncaught exception somewhere, it means java programmers ignore throws just llike c programmers ignore error codes
Roboprogs (4 years ago)
+HrHaakon as one of the RuntimeException idiots, I hate checked exceptions, and so did the guy that wrote C#. I want one catch ( Throwable) at the top of the handler that logs that a request or message failed with the full stack trace. That's all.
HrHaakon (5 years ago)
You can only ignore RuntimeExceptions, and those are supposed to be "Shit has hit the fan, and spread all over the system. We're going to shut down now, and hope you've had a nice day." Some idiots will throw RuntimeExceptions because they don't want to catch them, but that's the fault of idiots, not the language.
dmcgillen (5 years ago)
Here's a link to the full talk for those interested: parleys.com/play/514892290364bc17fc56c444/chapter3/about
lennyhome (5 years ago)
You have no idea what you're talking about.
Ale Lav (3 months ago)
Lol, good one
DOTA2FroggyStyle (5 years ago)
I imagine its because the API you are working with doesn't communicate with Windows based hardware. You should be able to take your program and easily port it to PC.
paligamy93 (5 years ago)
Nowadays, it's the thing that tries to force toolbars down your throat.
Sage Mantis (5 years ago)
A nerd is someone who cares about trivial shit and doesn't have a real focus.
lennyhome (5 years ago)
If Java is portable, why can't Android apps run on a PC and vice-versa?
green6564 (1 year ago)
lennyhome java on desktop runs on jvm,whereas Android runs them on dvm/art
Karl Isenberg (5 years ago)
Amongst our weaponry are such diverse elements are Josh Bloch, Kermit the Frog... and an almost fanatical devotion to Java.
eddiekoski (6 years ago)
that byte thing is annoying as hell
MrOboema (6 years ago)
"Java: the way you run your shellcode after you sql inject using ruby." I'll be here all week. Try the veal!
TheBRUM100 (6 years ago)
Google "Java: The Good, Bad, and Ugly Parts" and it's the first link.
Dan Howard (6 years ago)
Guohui Xiao (6 years ago)
Google "The Evolution of Java: Past, Present, and Future", then you will find it
Wkterr (6 years ago)
I would like to add that the JVM is a big-endian system. Everyone knows that the correct endianess is little-endian.
Jordan Bennett (6 years ago)
love to hear this guy talk. Here is some more inspiration from a java programmer of 3 months +: /watch?v=IFgs0_0N78U Made by me in 16hrs.
carsten (6 years ago)
"garbage collector idea from Lisp" that's such an abstract idea every high-level language uses that it's not even worht mentioning. i was talking about the language itself, not the environment. i'f im not mistaken according to the spec Java can have any garbage collector as long as it doesn't modify execution of existing programs.
carsten (7 years ago)
@radbarij Java is traditionally said to be influenced by Smalltalk. Look at wiki for example... Though really nothing in common with Lisp...
MissionControl (7 years ago)
for String variables don't use ==, instead use equals() if (scanner_variable.nextLine().equals("string text here")) { // do something } something like the code above
radbarij (7 years ago)
Wow. What a fucking bizarre retcon to argue that Java "snuck the essence of languages like Lisp and Smalltalk by the people [...]". Java has almost nothing to do with any "essence" of Lisp and/or Smalltalk. I had a lot of respect for Josh Bloch (as a craftsman), but that single statement is a strain...
Alexey Filippov (7 years ago)
It should appear on Parleys.com before this Christmas.
kinkokonko (7 years ago)
@jminard whats the point in any history exploration you complete mong?
Jayson Minard (7 years ago)
Ok, but what is the point of this talk 16 years after the fact of the introduction of these good/bad parts?
Dan Howard (7 years ago)
Is there a way to get the longer talks? I'd pay for them.
sgdread (7 years ago)
Is there a link to longer talk, Josh mentioned?

Would you like to comment?

Join YouTube for a free account, or sign in if you are already a member.