Java as back-end platform. Good choice? [closed]
My company is about to start building the back-end for one of our new products. The idea is to build a layer that produces resources for every upper layer product (web site, mobile web site, mobile application), also, a significant part of it will be made available as an API for third party developers. You know, the typical start-up scenario.
We were planning on building our backend using Java Servlet Technology so our architecture was going to be dependant on Java, so the question is: What are the implications of Oracle scaring away open-source-aware developers and companies like mine?
Should I try to find an alternative to Java? Are you trying to move away from Java?
This question is not about technical issues with Java platform, but with legal implications of Oracle draconian intentions (my subjective point of vi开发者_运维问答ew).
EDIT: Of course this question is subjective and argumentative, that's the kind of answer I want: opinions, and opinions are subjective and argumentative.
I suspect that Java will remain a strong back=end platform for a long time. Oracle, among other things, doesn't want to kill the golden goose. In addition, there are too many good back-end components based on Java, from Tomcat to messaging, to hibernate and spring, to groovy and grails; the market won't let them disappear for a long time.
Technically, Java is well suited for complicated back ends and large-scale problems; if you're building something simple and lightweight, using a framework like Rails along with an open-source database is often plenty.
Groovy and grails are a nice bridge from the lightweight approach of Rails to the full Java world, although groovy can be a little, um, peculiar sometimes.
We were planning on building our backend using Java Servlet Technology so our architecture was going to be dependant on Java, so the question is: What are the implications of Oracle scaring away open-source-aware developers and companies like mine?
Are they? Last time I checked JBoss and Spring were going strong. Scala is being considered as a strong alternative for replacing Java (or it will shape the next best language for app/system development on the JVM.)
What exactly are you referring to here? I don't follow. Now, if you are going in direct competition to Oracle and their stack (and all their integrated solutions, like Oracle Financials), then maybe you might have something to worry about.
Or if you are (or intend on) doing something that violate (or can be interpreted as a violation in a court of law) the Java license agreements, then you might have to worry about Oracle (because it has the teeth to pursue them, which Sun did have.)
So, you need to be a bit more pragmatic and objective and define clearly what exactly your product role will be with respect to Oracle products. Based on that, you have then to decide whether investing on the JVM is a good decision or not.
Should I try to find an alternative to Java?
Depends on what you are trying to achieve. A question like that is too broad and open ended to be answered in a meaningful manner.
Are you trying to move away from Java?
From the point of view of curiosity and diversifying my skills, yes. But were I in charge of developing a back-end product, I'd use the JVM. I might try to use Java and leverage from the 15 years of collective knowledge on the platform. Or I'd try Scala. But I would stick to the JVM.
Oracle or no Oracle, for these type of things, the JVM is the superior choice in terms of stability, scalability and wealth of knowledge. Erlang VM might be better from a technical point of view, but you would be hard press to build a talented team compared to building a similar one for the JVM.
Found an article discussing the future of Java, dated 05.03.10.
Okay, conclusion from the same link,
While the wheeling and dealing of the corporate world rarely affect developer communities as a whole, the Oracle acquisition of Sun will have far-reaching affects for years to come. And while the profitability of individual Oracle products may not concern you, as a developer, the most interesting points remain to be the:
- Combination of HotSpot and JRockit into an uber-JVM - Unification of the Java SE and Java ME APIs - Increased investment in JavaFX onto more platforms - Continued integration of dynamic languages into the JVM.
I would recommend Java as a back end platform, I am currently employed with a company that specializes in software business solutions for companies, and nearly all of our work is revolved around using Java in the back end.
I am not sure if your back end is going to be web driven or not. I would say take a look at using the Spring Framework with Hibernate Database support. Spring has excellent support for using Hibernate and so many other tools and thats why I am a supporter of it. Unlike some other frameworks that limit you to using only certain tools, Spring does a great job of allowing you to integrate many different libraries, tools and frameworks with it. This is good because as we know too well, technology is always changing and something that is popular now, may need to be changed in the future.
Java as a back end solution will require a little more work in the beginning as oppose to lightweight approaches like Rails, but once you get everything setup(database,build files,etc) then it is off to the races.
If you end up taking the Java route, look into using Maven for building. Ant is also good, just a little more work to setup.
... did you rule out any particular technologies and for what reasons? Is .Net an option?
精彩评论