Live data from Hacker News

Ask HN: Why do big companies tend to only build with Java?

news.ycombinator.com

1–10 of 57 posts

Ask HN: Why do big companies tend to only build with Java?

#1
I want to understand one thing at major companies: Why Java?

Is this a company investment thing, they're in bed with IBM? Is it a mentallity thing? Is it a compiled language thing? Is it a security thing?

It's certainly not a speed thing. Every team I have had experience with working with on a Java platform has taken ages to deliver anything. CMSs that I could build rapidly with the likes of PHP/MySQL take months/years to get off the ground. Change is slow.

Believe me, I have zero experience of working with Java, but I need to understand why they do it. Have you experienced rapid development teams using Java?

Re: Ask HN: Why do big companies tend to only build with Java?

#2
I'm in South America, but I do work for a big company.

I believe that we use VB6 and .NET because that's one of the two main platforms student learn (the other being Java), and programmers can be treated as interchangeable pieces. You're certain to receive thousands of applications for a job posting, and get outsourcing cheaply and easily.

Are the results good? I believe they mostly aren't, not because of a flaw in the platforms. And yes, change is sloow. There are too many stakeholders for anything.

I've heard of agile development with Java or java-likes, and .NET as well, it's not a platform thing.

Re: Ask HN: Why do big companies tend to only build with Java?

#3
post #2

I'm in South America, but I do work for a big company. I believe that we use VB6 and .NET because that's one of the two main platforms student learn (the other being Java), and programmers can be treated as interchangeable pieces. You're certain to receive thousands of applications for a job posting, and get outsourcing cheaply and easily. Are the results good? I believe they mostly aren't, not because of a flaw in t…

Thats an interesting point about employees. I've seen a Java team take 6 months to hire 3 new developers in London. That's before development even started :)

Re: Ask HN: Why do big companies tend to only build with Java?

#4
I think it stems from the fact that you can almost always find a Java library for whatever enterprise product you're looking to work with. I have yet to find a major company (not a start up) that did not release some sort of Java API to its product. Just an observation and my experience, not rooted in any "scientific" study

Re: Ask HN: Why do big companies tend to only build with Java?

#5
You can do rapid development with Java--it's less a condemnation of the technology and more the process that happens in big companies.

I've worked on contract in large and small companies, and the amount of paperwork to go through in large companies is ASTOUNDING. For example, we once had to get a test account created in the test domain (not even production). It took 23 emails, 4 IT requests, and 6 hours to complete--and that was the "accelerated" path.

But bureaucracy is only part of it. The real reason it takes a company to build something so freaking long is testing. Not just test-driven development (that's crazy talk, by the way), we're talking testers. Lots of them. Now, I'm all for testing (yay testing), but companies go to the extreme. I've had more than one of my projects take three to four times as long to test as they took to develop. Sometimes you luck out and get really good testers, though, so then life is peachy.

But to answer your question about why companies use Java, it's because it's widely taught, and programmers are thought of as interchangeable pieces. They can bring over a ton of people from out of the country for cheap labor, or just hire a bunch of D+ CS students and put them in cubes and give them detailed specs and just let them go at it. There's no thought to it--they're cogs in a machine.

Also, sometimes technology choices are just at the whim of people higher up--they have a favorite technology and push that as "the way," even in situations where it doesn't quite fit. Such is life.

To sum up, companies are slow to develop because of overhead and bureaucracy, and they use things like Java because they want cheap programmers, not good ones.

Edit: I should clarify something that came off as really presumptuous and pompous. Java isn't a bad technology, per se, and there are plenty of great programmers who use it. My point was that Java developers are easy to find cheap, so that puts a vote in the win column for larger enterprises.

That being said, there are a lot of really good reasons to use Java, and if you know Java really well, you can put together a CMS as fast (if not faster) than somebody slinging PHP or Python or whatever their language of choice is.

My main goal was to address why enterprise development is often considered slow by startup standards, and what causes that. I know a few really great Java programmers in big enterprises, and I know they often get frustrated by the glacial pace of enterprise development.

Re: Ask HN: Why do big companies tend to only build with Java?

#6
It's mostly an ecosystem thing. Large companies follow the lead of their vendors and Oracle/IBM/HP all push Java. There is a vast array of third party tools and software packages for doing boring enterprisey stuff like monitoring and integration. If you want to integrate or extend one of the big ERP or CRM systems that is mostly Java. At this point there are lots of people that can be hired with passable Java skills and most consulting outfits have large Java programs. Admittedly this is something of a positive feedback loop that got started because the big vendors stared it 15 years ago.

As for team delivery speed it is certainly possible to deliver quickly. The dynamic languages have definite advantages over Java. There is less XML/property/configuration stuff to manage for instance. But the Java frameworks are actively developed and they get better all of the time too. Delivery speed is mostly a team and organization thing. Large orgs can take forever to deliver the simplest of things. It can take forever for people to decide what they want. You might have to get permission from three different VPs. You may have to schedule a series of meetings to have a decision made and it can take a couple of weeks the find time when all stakeholders have open time on their calendars. You may be dependent upon cooperation and resources from another team that isn't really motivated to help you because they have their own stuff going on. So it's not really a technology problem, it's a management problem.

Re: Ask HN: Why do big companies tend to only build with Java?

#7
There are a plethora of reasons that the enterprise uses Java and many of them are really good reasons but the main reason now is inertia, so many enterprises and vendors are invested in Java that to divest of Java just does not have a good value proposition, given the fact that their has not been a major revolution in languages or run-times, no one has had the stomach to try to move off in a serious attempt.

To understand it we have to look at the history of when Java came about and what Java brought to the table. Most people think it was a more modern language that was what won but the reality is that was just icing. The real winner for Java taking over was the VM, at the time Unix was dominating the server space (in particular Solaris) but Microsoft has a through monopoly on the desktop. So here you had all of development on one OS and all of the runtimes on another, The promise of Java was that your developers could continue to develop on desktops while delivering to Server architecture, it was not always totally smooth but it did work and their in lies the revolution that Java brought. A common development platform across architectures. It seems so common today but at the time it was huge, it had the potential to save companies millions if not billions.

Fast forward to today and a big issue with the enterprise is labor, and lets face it trying to take the road less traveled can introduce unnecessary risk into the enterprise. If a company is not in the Vally the quest to find a Ruby or Python or Node.js developer can result in not finding a single candidate, this is far more risky than another month of development time to stay with Java. They are totally different concerns, a small scrappy start up, can afford to kick the bushes of local groups to find a guy playing around with Node.js, an enterprise has no systematic way of figuring out if the kid at the local users group is an expert at Node.js or has just been playing with it for 2 weeks. To me this is the biggest one, talent is available locally and even if it is not, the big vendors and even the recruiters can dig someone up fast. This alone mitigates a lot of risk from the organization.

Second most enterprise software is built with Java and has Java API's, SAP, Oracle, IBM and many of the other offerings these guys use are in Java. I like to poke a lot of fun at some of those systems but the reality is implemented correctly they can save a lot of money and time and unlike in a start-up where every penny counts in the enterprise vendor supported systems are considered a good thing. They allow the company to focus on their core business while leaving system development to a vendor.

Which brings me to my last point, there is a new revolution underway, and I do believe that in the near future the cost benefit analysis is going to be so great that the enterprise will not be able to ignore it, and that revolution is SaaS. For the same reason I just highlighted, (focusing on core competency), SaaS will be huge, now not only will the enterprise not have to concern itself with maintenance of custom systems, but they will be able to offload support as well as infrastructure. Getting out of the infrastructure game for the enterprise will be huge and may herald the end or Java's dominance.

Re: Ask HN: Why do big companies tend to only build with Java?

#8
Statically typed languages are favoured when you're working on a team with 40 other developers and you want the idiotic changes being made 5 desks over to break before they check in, not after you've pulled their changes.

Autocomplete also makes life staggeringly easier, as do strong refactoring tools.

Not having to deal with memory management is also a big plus.

When you put those requirements together you end up with C#/Java. Which is why a fair number of places whack together UIs in C# and server side code in Java.

Re: Ask HN: Why do big companies tend to only build with Java?

#9
It's a safe choice. It is easy to find Java developers with enterprise experience. There are lots of vendors and consultants with Java expertise. There is a lot of corporate mind share around Java. And at this point, most companies have a large investment in Java (or .net) so it makes sense to continue on that path.

"Taking months/years to get something off the ground" has little to do with Java itself and mostly to do with corporate project lifecycles.

Re: Ask HN: Why do big companies tend to only build with Java?

#10

Statically typed languages are favoured when you're working on a team with 40 other developers and you want the idiotic changes being made 5 desks over to break before they check in, not after you've pulled their changes. Autocomplete also makes life staggeringly easier, as do strong refactoring tools. Not having to deal with memory management is also a big plus. When you put those requirements together you end up wi…

On the other hand, maybe you wouldn't need 40 developers on the project if you weren't building it in Java...
Post reply on HN