I hope he finds Amazon to be a much better place than he found Oracle to be. The experiences he shared while leaving Oracle were unpleasant.
"As to why I left, it's difficult to answer: Just about anything I could say that would be accurate and honest would do more harm than good."
"For the privilege of working for Oracle, they wanted me to take a big pay cut."
"In my job offer, they had me at a fairly significant grade level down."
"Oracle is an extremely micromanaged company. So myself and my peers in the Java area were not allowed to decide anything. All of our authority to decide anything evaporated."
"The word came down that Oracle does not do employee appreciation events. So she forced the thing to be cancelled. But they didn't save any money because the money had been spent - so we ended up giving the tickets to charities. We were forced to give it up because it wasn't the Oracle Way.' On the other hand, Oracle sponsors this sailboat for about $200 million."
I realize people like to hate on Oracle, and some hate justified, but there's also a reason why Oracle is one of the extremely few tech companies that have survived the test of time.
Gosling is complaining about about pay and management oversight.
Has anyone wonder if overpay and no oversight is what contributed to Sun's failure.
Speaking as an insider, I can say with 100% certainty it was.
Sun had this hardware business that was printing money and then the music stopped.
I wonder if Google might suffer a similar fate like Sun. As soon as ad-revenue slows down, will they need to grow up and be managed like a real company by putting restrictions on pay and enforce management oversight.
The more I hear about Oracle the less respect I have for them. My company is already working hard at dropping all things Oracle. I really can't wait for the day when we can wash our hands of them completely. Its not that far off really.
I know this is a joke but an Amazon recruiter sent me prep info for an interview last month ( I declined ) but it says no one does whiteboard coding. They give you a laptop for those portions of the interview. They only use a whiteboard for systems design questions for software developer interviews. (not that James Gosling would get the standard interview, either)
I understand people's hatred towards whiteboard coding, but be realistic, James will find no problem doing them, and no one would bother to waste the time either.
Perhaps he shared his dismay at Oracle and one of his Amazon connection came to him with an offer. He probably did have a few interviews to make sure his future manager and his peers are comfortable. More of a cultural fit.
If they like you, no whiteboard coding will be given. If they don't, you can do perfectly on whiteboard coding and still get rejected. This applies to all companies not just Amazon.
Now, I'm sure Gosling is a much smarter man than me, and I couldn't be a 10th the language designer he was, but I'm going to say something terrible:
Java was badly designed, as a language. The things that made it good came far, far too late in its lifetime. The thing that made it successful was not a good design, but big corporate backing, a free compiler, a batteries-included approach to libraries, good marketing, and good platform support.
But the language itself was bad. No custom copy-by-value objects, static typing without generics or macros to make reusable collections, a GUI library that was widely considered a bad joke, a null hole big enough to drive a truck through, checked exceptions, the frustrating inconsistency between .Equals and ==...
So many bad decisions. Many of these were mitigated over time, but it took a long time to get there. It's hard to say that "designed Java" is really a good feather in the cap.
Do not paint a picture with one-sided argument. To say Java is badly designed, is to say human is an evolution failure. It's not hard to find evidences to support both, but they hardly make a dent to both being hugely successful things in their respective fields.
Java is a great and extremely well designed language. All you mentioned are nothing but natural expansion of the language's use cases.
It's hard to look at a historical success, and determine which attributes caused that success. I agree that the non-product attributes (tooling, docs, libraries, corporate backing etc) were important. Elsewhere you describe it as "moderately-usable", and I think that implies the key: to compare it with the alternatives, such as C++ and COBOL. That's how market success comes about.
It's similar with google: was it "the algorithm"? Or was it honest results, uncluttered, fast?
> Now, I'm sure Gosling is a much smarter man than me
Java doesn't represent anywhere near the full depth of what Gosling actually knows about programming languages. You remark about "static typing without generics or macros to make reusable collection". Yet, Gosling made a structural macro system for the C language in 1989. The ideas in that could easily have been further developed in Java.
From Mock Lisp to Java: the really unfortunate thing about Gosling is the cynicism in his designs.
All the libraries you need. Fantastic runtime environment. Easy to hire programmers and admins who work with it. It's $HOT_NEW_THING which really needs to be sold.
As not a java guy: very good concurrency support, the memory consumption isn't really a big deal anymore and the tooling connected to the jvm for introspection are very valuable and relatively easy to set up, strong user base of programmers relatively speaking, the language updates have kept it relatively fresh and useable - much cleaner than what you remember for 5-8 years ago - and it runs easily on many systems. It has good inertia: once some of your projects are already in java, it's easy to just add onto that. It has solved many of the day-to-day problems that younger languages haven't reached yet (distributed packaging, metrics). And everything supports it.
Java 8 is great. Java 8 + Spring boot + JOOQ is a complete, easy to setup web service backend. It has great tooling, is very fast, and has an enormous amount of libraries available.
I actually question why anyone would use Node except in a few cases (like backend for front end), but maybe I'm just old school :)
Great performance, a massive community, top tier support by partners and vendors, deep talent pool, and a huge ecosystem of libraries and products. Nothing else even comes close.
People have a tendency to trash talk it for being verbose, but writing the code is a vanishingly small portion of the engineering effort, and if you're hand wringing about whether it's fun to write then you're optimizing for the wrong things.
Enterprise support. But the reality is, most Java shops continue to use it because that's what all of their engineers know. There's literally nothing that Java (the language) provides me that other languages don't (and better). If I were to start a project today, I'd pick from a more modern list of language (Go, Python, Rust, C#). Java would never make the list.
There is nothing to sell. Its a modern language that many people know and are experienced in and many extremely large scale and modern projects are written in it.
Why does anyone need to sell anything? So we can all go ahead and spend 5 years getting good at clojure and haskell?
If you have not recently looked at what is happening within the Spring Framework, I would highly suggest taking a look. There are some really great tools that are baked in. Also if you are planning on writing containerized microservices, Spring offers a really nice environment to do that.
And if you do not want to use Java the language, there is always Kotlin (and Scala).
Pros: Fast, stable, mature, excellent tooling, big ecosystem, and easy to hire programmers.
Cons: Oracle's shadow of semi-legitimate FUD, higher memory consumption, ecosystem is rife with over-engineering and the language seems to almost encourage it.
I don't use Java but from what I know it's a very mature environment with excellent tooling and library support. I am not convinced that the same people who mess up Java code will do any better with other languages.
Bill Vass, also formerly of Liquid Robotics is a VP at AWS, maybe had something to do with the hiring. He had James come do at least one talk while I was working at AWS, talking about the things Liquid Robotics are up to. The prohibitive cost of satellite data is just astonishing. It really emphasised to me just how much livestreaming of SpaceX rockets landing on a barge is a PR move.
[+] [-] acdha|8 years ago|reply
[+] [-] foo101|8 years ago|reply
"As to why I left, it's difficult to answer: Just about anything I could say that would be accurate and honest would do more harm than good."
"For the privilege of working for Oracle, they wanted me to take a big pay cut."
"In my job offer, they had me at a fairly significant grade level down."
"Oracle is an extremely micromanaged company. So myself and my peers in the Java area were not allowed to decide anything. All of our authority to decide anything evaporated."
"The word came down that Oracle does not do employee appreciation events. So she forced the thing to be cancelled. But they didn't save any money because the money had been spent - so we ended up giving the tickets to charities. We were forced to give it up because it wasn't the Oracle Way.' On the other hand, Oracle sponsors this sailboat for about $200 million."
Source: http://www.eweek.com/development/java-creator-james-gosling-...
[+] [-] throwaway170523|8 years ago|reply
Gosling is complaining about about pay and management oversight.
Has anyone wonder if overpay and no oversight is what contributed to Sun's failure.
Speaking as an insider, I can say with 100% certainty it was.
Sun had this hardware business that was printing money and then the music stopped.
I wonder if Google might suffer a similar fate like Sun. As soon as ad-revenue slows down, will they need to grow up and be managed like a real company by putting restrictions on pay and enforce management oversight.
[+] [-] datatan|8 years ago|reply
[+] [-] donretag|8 years ago|reply
[+] [-] stevenwoo|8 years ago|reply
[+] [-] pavement|8 years ago|reply
[+] [-] justicezyx|8 years ago|reply
[+] [-] yeukhon|8 years ago|reply
[+] [-] namelezz|8 years ago|reply
[+] [-] Pxtl|8 years ago|reply
Java was badly designed, as a language. The things that made it good came far, far too late in its lifetime. The thing that made it successful was not a good design, but big corporate backing, a free compiler, a batteries-included approach to libraries, good marketing, and good platform support.
But the language itself was bad. No custom copy-by-value objects, static typing without generics or macros to make reusable collections, a GUI library that was widely considered a bad joke, a null hole big enough to drive a truck through, checked exceptions, the frustrating inconsistency between .Equals and ==...
So many bad decisions. Many of these were mitigated over time, but it took a long time to get there. It's hard to say that "designed Java" is really a good feather in the cap.
[+] [-] nosefouratyou|8 years ago|reply
- Guy Steele, Java spec co-author
[+] [-] justicezyx|8 years ago|reply
Java is a great and extremely well designed language. All you mentioned are nothing but natural expansion of the language's use cases.
[+] [-] hyperpallium|8 years ago|reply
It's hard to look at a historical success, and determine which attributes caused that success. I agree that the non-product attributes (tooling, docs, libraries, corporate backing etc) were important. Elsewhere you describe it as "moderately-usable", and I think that implies the key: to compare it with the alternatives, such as C++ and COBOL. That's how market success comes about.
It's similar with google: was it "the algorithm"? Or was it honest results, uncluttered, fast?
[+] [-] kazinator|8 years ago|reply
Java doesn't represent anywhere near the full depth of what Gosling actually knows about programming languages. You remark about "static typing without generics or macros to make reusable collection". Yet, Gosling made a structural macro system for the C language in 1989. The ideas in that could easily have been further developed in Java.
From Mock Lisp to Java: the really unfortunate thing about Gosling is the cynicism in his designs.
[+] [-] Scarbutt|8 years ago|reply
[+] [-] forgottenacc57|8 years ago|reply
What's the sell, these days for java?
[+] [-] klodolph|8 years ago|reply
[+] [-] buahahaha|8 years ago|reply
[+] [-] matwood|8 years ago|reply
I actually question why anyone would use Node except in a few cases (like backend for front end), but maybe I'm just old school :)
[+] [-] srdev|8 years ago|reply
People have a tendency to trash talk it for being verbose, but writing the code is a vanishingly small portion of the engineering effort, and if you're hand wringing about whether it's fun to write then you're optimizing for the wrong things.
[+] [-] jhall1468|8 years ago|reply
[+] [-] NikolaeVarius|8 years ago|reply
Why does anyone need to sell anything? So we can all go ahead and spend 5 years getting good at clojure and haskell?
[+] [-] bebop|8 years ago|reply
And if you do not want to use Java the language, there is always Kotlin (and Scala).
[+] [-] api|8 years ago|reply
Cons: Oracle's shadow of semi-legitimate FUD, higher memory consumption, ecosystem is rife with over-engineering and the language seems to almost encourage it.
[+] [-] maxxxxx|8 years ago|reply
[+] [-] unknown|8 years ago|reply
[deleted]
[+] [-] xyzzy_plugh|8 years ago|reply
I wonder what they'll have him do.
[+] [-] Twirrim|8 years ago|reply
[+] [-] g12mcgov|8 years ago|reply
[+] [-] smithsmith|8 years ago|reply
[+] [-] gefh|8 years ago|reply
[+] [-] forgottenacc57|8 years ago|reply
[+] [-] hossbeast|8 years ago|reply