7 ms·
I would like to meet one of these fantastical java-only OO-proponents that are often brought up in posts like this, claiming that Java and OO are the end-all of
by marcusf 14y ago
I would like to meet one of these fantastical java-only OO-proponents that are often brought up in posts like this, claiming that Java and OO are the end-all of programming. To be honest, I never have.
Some people seem to have a disposition to modeling problems with objects, but I fear I'm too young to have ever met any Java zealots. To me they seem more like straw men invented to help set up posts like this one.
- Ingaz 14y agoI've met a lot. Java, .NET, C++ guys. Sometimes it's hard to convince them that even particular OO-flavor is not the end of the road. C++ - guys thinking that OO in C++ is the best, java-guys thinking that extensions methods ruins OO in C#, all of them looking with horror in python. (Where's my private and protected??)
- checkers 14y agohttp://techiest.blogspot.com/ http://techiest.blogspot.com/
- richbradshaw 14y agoThere are a lot of people who think like this. It does seem to be more enterprisey people generally who are working with large older codebases. I'm not sure how many people would design a product from ground up only using Java today.
- UK-AL 14y agoMaybe people who don't care how trendy the language is? There are thousands of well tested, well maintained libraries for java mainly because of the funding from the corporate world. What was the first API for amazon aws in? Java. Nearly everything has Java API because it is so well supported. Java developers don't get off on, programming language one upmanship. Some people like being boring... SAP? Jave API. Oracle? Java APIs. Google Stuff? Java APIs. Android? Java APIs nearly every piece of commercial software has java apis. I remember having to use a 3rd party django paypal plugin and it was half broken(IPN callbacks), that would be unlikely with Java. Ended up faffing about in its source code to get it working.
- Roritharr 14y agoGood point. Sometimes I ask myself why everyone thinks that Ruby Gems are so amazing. I've had all kinds of awesome Java Libs for years that work without much problems. Maven obviously isn't as nice as the way Ruby handles Gems, but to me it feels more structured.
- icebraining 14y agoAs far as I know, you could use those APIs with any JVM language, not just Java. There's Clojure, Scala, Groovy, Jython, JRuby and probably a few others.
- ajdecon 14y agoTrue; but for random programmer off the street, these languages impose an additional cognitive load. For a given Java library, most of the example code and documentation will be geared to Java itself, and translating that to "another JVM language" isn't always trivial. Especially since most programmers out there are not polyglots, work in a big company, and may not even by "programmers" but just "engineer/accountant/business person who programs a bit".
- pjmlp 14y agoMany people do. What is the business value for rewriting the code in the flavor of the month language? In what sense does it improve profit?
- option_greek 14y agoYou should get interviewed for enterprise jobs sometime. It's all about objects, patterns and lots of factories... some times makes me wonder if we intentionally make stuff complex to find meaning in what we do.
- groovy2shoes 14y agoThere are a lot of Java-only OO-proponents in the corporate world.
- babarock 14y agoAgreed with parent. Come take a stroll in my office; I work in a coporate bank. Most of my coworkers learned "real" programming in the 90s, when Java was the hot new thing on the block. To most of them, the whole Programming Language eco-system can be summarized to an endless "C++ vs Java vs C#" flamewar. Just yesterday a colleague of mine looked at me with chock and awe when I told him I enjoy coding in C. "But... it's not OO!" he mumbled, puzzled. Pushing the caricature a little further, Python and Ruby are toy languages that only hipsters use, Perl is only to be used by the sysadmin down the hall, and Lisp is the biggest failed experiment programmers ever came up with. Pointy-haired bosses encourage this kind of thinking: They would never get in trouble for chosing a language amongst the big 3 (C++/C#/Java). I once heard someone say: "I don't understand why there are still new languages coming out every day. Shouldn't everyone just use Java?"
- jasonlotito 14y ago> can be summarized to an endless "C++ vs Java vs C#" flamewar. As opposed to an endless "Ruby vs Python vs PHP" flamewar? Pushing the caricature a little futher, C++ and Java are enterprise languages that only old out-of-touch programmers use. Hipster Apple-using kids encourage this kind of thinking: They would never be un-cool for choosing a language among Ruby, Python, or Lisp. It's far too easy to become that type of programmer. Choice of language has little to do with it. No doubt you understand this, just making the point clear.
- babarock 14y agoYou sir made my day, thank you very much!
- arunmur 14y agoThere are equally large number of people who hate Java for no good reasons. Its all the effect of "Once a fan boy always a fan boy".
- huggyface 14y agoAlmost all of the observations you read on programmer blogs are summarized in this academic piece - http://www.theonion.com/articles/sociologist-considers-own-behavior-indicative-of-l,421/ http://www.theonion.com/articles/sociologist-considers-own-b... [Aside - I had a faint memory of that article, having only read it when it first came out, but managed to find it via a domain-filtered search with cognac and trend, the only two words I could remember from the article. Thought that memory cluster was humorous] Usually it's someone responding to some personal issue with a public post. Perhaps they argued with a peer. I also found it to be a serious mental bender to see OO and Java called "new", relative to "old". In most programming groups Java is the new Cobol, considered anything but new. Often it is a legacy language.
- eli_gottlieb 14y agoStrangely, Java is a legacy language, but also the lingua franca of the largest, most prestigious tech companies.
- huggyface 14y agoSuch as? It certainly isn't at Microsoft. Nor at Apple. Nor at Amazon, or Facebook, or LinkedIn or Twitter. Android made a big mistake of throwing in with Java originally (as the project originated as a decoupled version of J2ME, as such was the thing at the time), and Google has a preponderance of Javaheads internally, perhaps explaining their continued reinvention of new languages. Oracle likes Java, but that's because their products are largely code produced over a decade ago.
- pjmlp 14y agoJava at LinkedIn http://www.infoq.com/news/2010/08/linkedin-data-infrastructure http://www.infoq.com/news/2010/08/linkedin-data-infrastructu... Java at Twitter http://www.readwriteweb.com/cloud/2011/04/twitter-drops-ruby-for-java.php http://www.readwriteweb.com/cloud/2011/04/twitter-drops-ruby... Java at Facebook http://www.infoq.com/presentations/HBase-at-Facebook http://www.infoq.com/presentations/HBase-at-Facebook Java at Amazon http://aws.amazon.com/dynamodb/ http://aws.amazon.com/dynamodb/
- arethuza 14y agoI was a total Java zealot from about '95 to about '00 when I was pretty much your standard architecture astronaut in a startup environment (back when Java was "cool"). Totally reformed now - I hope.
- reitzensteinm 14y agoI went to university starting 2004 for an electrical engineering degree, and our programming classes were basically structured around OO Java as a panacea. Later in life, listening to the Berkeley SICP lectures made me realize what a joke the whole thing was. I don't think Java OO zealots are a straw man. I think they're very common, and many of us are living in a happy Hacker News and startup bubble, where people we meet are surprisingly competent.
- UK-AL 14y agoSICP/Scheme is usually taught as a first language(To blow their mind) for cs students, then eventually they get taught Java anyway at most universities...
- paxswill 14y agoNot in my experience. C++ is taught at my school, and a mix of C++ and Java is used at most (all?) the other schools in my state as the intro language. Even MIT, the source of SICP/Scheme, is using Python for its intro language. It's only much later are you exposed to other languages (at my school, Java, ML and Prolog are explicitly covered).
- UK-AL 14y agoMaybe I should state. Most schools that USE SICP/Scheme use it as introductory language. Most don't however. MIT has only recently moved to python. That introduction course used to be Scheme based which converted to python. I believe they have a optional scheme course now.
- deleted 14y ago[deleted]
- seanmcdirmid 14y agoThis is not very accurate. SCIP in [yesterday Scheme, today Python] is taught first to MIT students (where SCIP comes from). Some universities follow MIT but most do not; I don't think there are many schools actually using SCIP at the high end, maybe some lower end schools trying to emulate MIT in order to capture their greatness (rarely works from what I hear). Example: U of Washington CSE 142 (the entry level course for one of America's better programs) starts with Java and continues that through 143.
- ajuc 14y agoWhen I was at university (early '00) the default opinion was that OO is the way to go, and everything other is obsolete or esoteric. I thought that way then, too. I remember complaining with my friends to teacher that he teaches us algorithms and data structures in procedural Turbo Pascal, when everybody knows it's obsolete, and we should be doing everything in C++ or Java. Yeah, I was clueless, and that particular prof. was right. But most teachers were OO fundamentalists, and it was assumed everything should be OO. One stupid exercise - design system to keep data about students and teachers on university, using OO. And the answer was obviously - Student and Teacher class extending Person class. No matter that sometimes people are studying on 2 facoulties, sometimes Student is also a Teacher, or becomes Teacher after he graduates. And when we could use relational DB, it was always with ORM, because objects are needed in any modern system.
- UK-AL 14y ago"Student is also a Teacher, or becomes Teacher after he graduates" - That's the result of not using composition... "No matter that sometimes people are studying on 2 facoulties" -- Why doesn't this work? Just use a collection, several students inside a collection object... "And when we could use relational DB, it was always with ORM, because objects are needed in any modern system." - Because you manually want to populate objects with tons of boilerplate? Just sounds like results of bad design in general, not OO...
- jerf 14y ago"That's the result of not using composition..." Historically, OO's acceptance of composition over inheritance only came after a decade of experience that showed inheritance doesn't work as promised. (Or two decades, depending on your accounting.) Composition as an answer came later. "Just use a collection, several students inside a collection object..." So, embed an ad-hoc, informally-specified, bug-ridden, slow implementation of half of a relational database in OO and its problems go away? I've found some places where OO works (the traditional UI widgets still tend to work pretty well), but it isn't even close to a panacea and if you compare the initial promises to what it can actually deliver, history has not treated it that well.
- rbanffy 14y agoGo to LinkedIn, search for Java in jobs around you, find the ones that look more boring and apply. Enjoy the perplexity when you offer a non-OO solution to a problem.
- v0cab 14y agoDepends on how old you are perhaps? I remember being told that my way would work but wasn't OO enough, and because of that it was wrong i.e. I hadn't done well on that portion of the interview.
- rbanffy 14y agoThe older you are, the more likely it is that you were presented to other ideas before - and that can help you contextualize object orientation. I learned OOP in the late 80's with Smalltalk/V, used Actor (an Algol-ish ST-workalike), but the first computer I ever programmed was a Sinclair ZX-81 clone (http://www.old-computers.com/museum/computer.asp?c=910&st=1 http://www.old-computers.com/museum/computer.asp?c=910&s...), quickly moving on to an Apple II clone (http://www.homecomputer.de/pages/f_info.html?cce_Exato_Pro.html http://www.homecomputer.de/pages/f_info.html?cce_Exato_Pro.h...). So, before my first contact with OO, I learned BASIC, 6502 assembly, FORTRAN, GraFORTH, C (on QNX!), some Pascal (Turbo on CP/M), a little bit of Lisp (and I ran away from it). Dijkstra would consider me hopeless.
- gbog 14y agoWould be interesting to know what non-OO means precisely. I am reading SICP right now and a bit confused: functional programming is not newer, nor more powerful. It just easier to debug. (It seems)
- rbanffy 14y agoI once saw a "Library" class with lots of public static methods. That's as non-OO as it gets when you are writing Java code. The worst part about it is that it actually made sense. You don't want your Order class to worry about localizing dates and you don't want to clutter your glue code with Java's cruel date/time system either. You also don't want to make yet another subclass of a date/time and glue it to your ORM.
- stonemetal 14y agoI work with one, it isn't hard to get him to start the this isn't OO it is complete and utter crap routine. To be fair to him though we just inherited a large code base of low quality. He turns out good code, but is mostly a 501 programmer.
- batista 14y ago>I would like to meet one of these fantastical java-only OO-proponents that are often brought up in posts like this, claiming that Java and OO are the end-all of programming. To be honest, I never have. Strange, because I have met many of them. As well as many VB jockeys, who would look at you with a blank stare if you mentioned either OO or functional programing. Maybe you should work in bad companies more ;-)
- epo 14y agoSo what you're saying is you are too young to have a real opinion about the article because you don't have enough experience. Instead you invent a strawman to attack some other alleged strawmen