5 ms·
Google open-sourcing their servlet engine (sort of)
- timf 18y agoQuoting from the article, this sums it up: "For folks outside of Google, there's really no compelling argument to drop Apache Tomcat/Jetty, etc. in favor of OpenGSE's reference servlet engine, but anyone interested in servlet engine and servlet spec compliance would have a fantastic learning resource available to them"
- paul 18y agoI think they are really trying to discourage usage. It used to be a nice, fast, and simple http server (when it was originally written), but from a quick look it appears that they made all "enterprisy" with FactoryFactories and whatnot. Java the language is ok, but I the culture is dangerous.
- timf 18y ago"the culture" There is no single Java culture.
- anuraggoel 18y agoAgreed, but I think paul is referring to the most prevalent culture, which, unfortunately, has a tendency to over-engineer. Here's a completely unscientific comparison: Java: http://www.google.com/codesearch?hl=en&lr=&q=FactoryFactory+lang%3Ajava&sbtn=Search http://www.google.com/codesearch?hl=en&lr=&q=Factory... Python: http://www.google.com/codesearch?hl=en&lr=&q=FactoryFactory+lang%3Apython&sbtn=Search http://www.google.com/codesearch?hl=en&lr=&q=Factory...
- timf 18y agoI understand what he was referring to... but there is a pretty big part of the Java world where things are actually kind of slick. So I don't like seeing such a blanket and semi-derogatory statement.
- paul 18y agoWe probably have different definitions of "slick". Nevertheless, I'm curious where I can find this slick code just in case... BTW, I'm not just randomly bashing Java. I've actually been using it since 1995, worked briefly at Sun/Javasoft, started one of the largest Java projects at Google, and used to like programming in it. However, the trend that I've noticed is that I like Java less and less because the culture has fallen into a degenerate process of building towering abstractions. Put simply, their metric of "good" seems to be very different from mine.
- timf 18y agoWell I'm only on my fifth year with it (at work) so maybe I have not been given as much a chance to get disillusioned. It's not my choice "as a language": I can't stand using Java with just a text editor whereas that's very nice with Python for example. I'm talking more about the platform. Spring (the small focused parts of it like IoC and AOP), Hibernate, Terracotta, Lucene, Jetty, YourKit, Clover, and many of the OSGI/JMX deployment solutions are all just polished, productive and out of the way to me with very nice integrations into my IDE. Yeah, IntelliJ -- that's probably a big part of my ability to like Java, to be honest. I'm with you on the abstractions thing, I've avoided J2EE etc.
- moe 18y agoI can't stand using Java with just a text editor Same here and imho that's quite an alarming indicator for the "towering abstractions" that paul mentioned. When you can't realistically navigate a significant codebase without tool support anymore then many of the components just aren't "out of the way" as much as they used to be or should be. Personally I jumped ship when java went through the heights of its XML disease which is apparently cooling down nowadays. The available toolchain (part of which you mentioned) is mighty impressive, no question. But it's the amount of boilerplate- and meta-code required to glue the stuff together that's driving many of us away.
- timf 18y ago
- green 18y agoOnce you get many "enterprisy" minds, they will be screwing stuff badly. Startups usually proven to build nice and simple solutions, without fat. ;-)
- vsiva68 18y agoI've heard this sentiment echoed numerous times (esp. by people who love Python).Could you guys clarify more as to the different things to keep in mind while writing "good" Java? Are there examples of Java projects you'd consider good and worth learning from? As far as Python (and dynamic languages in general) goes, I haven't heard any good responses to Ted Dziuba's blog post: http://teddziuba.com/2008/12/python-makes-me-nervous.html http://teddziuba.com/2008/12/python-makes-me-nervous.html I can see that a startup would prefer Python/Ruby to Java, but what about bigger projects?
- anamax 18y agoDziuba says "In Java, static typing makes the method signature into a recipe: it's all the shit you need to make this method work." What definition of "work" are we using? He also write "As a programmer in a team, you need rules. You need structure. You need order." Some of us think that the rules matter, that it's not just having rules, but having the right rules.
- tlrobinson 18y agoHis definition of "work" appears to be "compile".
- anuraggoel 18y agoApache Lucene, Solr and Wicket are all great, light-weight open source Java projects. Ted Dziuba's argument doesn't seem to be Java vs. Python for large projects - it's more statically typed vs. dynamically typed languages and checked vs. run-time exceptions - or compile-time error checking vs. run-time error checking. There are several large companies that use Python for X and Java for Y. I don't think either language has significant advantages for large projects that the other doesn't have, assuming that developers can utilize the strengths of the language. I was working with someone who wanted to implement a prepaid card application (the ultimate enterprisy app) and his biggest objection to using Python was the inability to find Python developers in India. He was going to pay the bills, and I didn't have a counter-argument.
- litewulf 18y agoI presume that in most cases FactoryFactories exist for testability, and aren't created just to check that off on the enterprise checklist ;)
- anuraggoel 18y agoTime to update the project README? http://code.google.com/p/opengse/source/browse/trunk/README.google http://code.google.com/p/opengse/source/browse/trunk/README.... ... (This is currently a hidden project with members-only access; a Google Account is required in order to become a member and access it.)... Edit: They just fixed it. The power of open-source.
- cdibona 18y agoYep. It's obviously not hidden :-)
- anuraggoel 18y agoFactoryFactory sighting! http://code.google.com/p/opengse/source/browse/trunk/transports/nio/java/com/google/opengse/core/ServletEngineFactoryFactory.java http://code.google.com/p/opengse/source/browse/trunk/transpo...
- deleted 18y ago[deleted]
- tlrobinson 18y agoThey should have used Google Guice! I haven't used it, but it sounds like an interesting framework: http://video.google.com/videoplay?docid=2948853912335655747&ei=2aF_SZWcJaS2qAPIteGWDg http://video.google.com/videoplay?docid=2948853912335655747&...
- hello_moto 18y ago"... raw HTTP processing and a shell which wraps that inner core and ... the compliance shell... this compliance shell can wrap our internal corporate version, the Google Servlet Engine, ..." Something wraps something that wraps something else. Sounds familiar from what I've seen in my office. Coincidentally, most developers in my workplace swears by Java.