TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Is java dead for startups?

59 点作者 lean_startup将近 15 年前
It seems that RoR, PHP &#38; scala are the "hot" languages for startups. I know that java is old, but it lends itself to better engineering IMO. Especially in NYC, where there is a robust market for high- paying java jobs at investment banks, it is hard to find lean startupers.<p>Are there theoretical or practical reasons to avoid java in lean startups? Any ideas where to find folks at the intersection of java + lean startups + NYC or is it hopeless?<p>Many thanks!<p>Cheers, Mike<p>PS Here is the job description. Applicants and feedback on the description are welcome too: http://www.socialfeet.com/2010/05/got-java-chops/

24 条评论

10ren将近 15 年前
It's funny, one initial selling point for Java was as a rapid prototyping language. Because back then it was, relatively speaking.<p>I think in the big picture of a increasing speed supply (courtesy Mr Moore, for cheap cycle farms and cache; but also JIT compilation techniques), and comparatively fixed user speed <i>demand</i> (a gui only needs to be fast enough; network latency swamps many other delays), Java is now much faster than it needs to be (faster meaning performance, not development time).<p>Back then, you had compiled languages (C, C++) that were fast, and scripting languages, like python, that were not. Python was touted as a glue language. Anyway, Java was mid-way in terms of speed (being partly compiled and partly interpreted), and mid-way in terms of dynamic benefits (eg. garbage collected and runtime array bounds checked - but requiring static typing). That combination of ease of use and performance was a good fit for some tasks, at that time. As the speed supply moved up, Java became usable for more tasks. But as speed kept increasing, Python and Ruby and even PHP also became fast enough - and they had the ease of use of being fully dynamic.<p>To give a direct answer your question: agile/iterative prototyping is how startups compete these days (not on performance), and ruby, php etc are better than Java on this particular attribute. Another aspect is that many cool new things are happening in languages other than Java - they have more interesting tools (eg. Sinatra), and more interesting energy in the community, because they attract those crazy, eager, young, passionate, enthusiastic early adopters.<p>Exceptions: where more performance is required (eg. Google uses a lot of Java; and it's the basis of the Android platform and others); and for the Enterprise; and also where type-safety (for reliability) is more important than agility (though ML-based languages have some of this market).<p>Note: a startup can tackle <i>any</i> problem, not just consumer-facing webapps. I think webapps get disproportionate publicity (because they're on the web); and web forums (like this one) favour them.<p>btw: I remember Java's younger years, I'm still a fan, and I'm using it in my product development. Java... some one still loves you.
评论 #1379264 未加载
评论 #1379083 未加载
jdietrich将近 15 年前
Java is an avowedly corporate language. It isn't built to be fun or elegant or beautiful or especially powerful - it's built to be robust, idiot-proof and flexible.<p>For startups, it just seems very poorly suited for the task. I think most of us would agree that the main advantage any startup has is speed and agility. Java isn't that well suited to rapid development, at least not compared to Python or Ruby. It doesn't offer any potentially game-changing technical advantages over the mainstream like Scala, erlang of JavaScript might. Java is a sturdy, reliable language that is very well suited to fairly boring corporate work. It's just not rock and roll though, is it?<p>Think about the standard startup rhetoric - do one thing and do it well, start small and iterate rapidly, split the market with something unique. If you're going into battle against an incumbent, you need to change the rules of the game - you don't want an AK47, you want an IED. If you're trying to build disruptive technology, it seems obvious that you'll be better off using tools that are themselves disruptive.
评论 #1379196 未加载
评论 #1379399 未加载
anatari将近 15 年前
If you're a web shop, IMO, none of the Java web frameworks are ideal for the fast prototyping that most startups need to do on a regular basis. I've hated every Java web framework I've ever worked with and I've used most of the popular ones. Always felt like I was fighting the framework for one reason or another; too verbose, not expressive enough or too tightly structured.<p>There are some decent platforms for the JVM though.
评论 #1378927 未加载
评论 #1378946 未加载
评论 #1380471 未加载
评论 #1379002 未加载
评论 #1380521 未加载
shiftb将近 15 年前
I use Java primarily in my day job, but usually RoR in my side projects (unless I'm using something else just to pick up the language/skill).<p>I think the reason you don't see Java in startups as much anymore is that it's neither rapid nor enjoyable to code in. It's also more difficult to deploy in production and more expensive (it requires more RAM to run well in my experience). Continuous deployment is more difficult with Java. Ruby and PHP you can just push code and restart the server almost instantly, Java takes longer.<p>Java is getting better, but not fast enough, and it's still not a fun language to write in. If I'm going to spend 12 hours coding, I'd like to enjoy it. I can think faster than I can write Java. I'm just able to get more done with other languages.
评论 #1378887 未加载
yesimahuman将近 15 年前
Born again Java fan here. I took a diversion into languages like Python (which I still heavily use), but now I wish I had just used Java in the first place. Once you turn a program from a 2 hour long run-time down to &#60; 10 minutes (my Lucene vs PyLucene experience), you don't really see the benefit of using Python anymore. Plus I've realized that I prefer static typing.
评论 #1378982 未加载
评论 #1378916 未加载
评论 #1378947 未加载
评论 #1379101 未加载
评论 #1379284 未加载
plinkplonk将近 15 年前
I once wrote some blogposts [1] titled "Why do Startups still use Java? ". I would have thought people who wanted the Java libraries/JVM would have used Scala or Clojure. I understand why people would choose Java over say Python (the need for specific libraries like say Hadoop which have no direct equivalent in Python/C land), but I've not yet understood why they won't use Clojure or Scala once they choose the JVM.<p>I wasn't (and am not) running a startup so I asked some friends who were (and were using Java). I never got a satisfactory answer (but I got some <i>surprising</i> answers including "If I were 5 years younger I would be using Scala or Clojure but I am very productive in Java and don't have the energy to learn new languages"(!!)). Another interesting answer I got was that their startup focused on business value but needed only average programmers (I am just reporting what people said) and could very well work in Java. All answers tended to "Sure Java is inferior but there are mitigating factors."<p>Fwiw, If I were to ever start a business where software was a differentiator I would use (a) Scala (if JVM/libraries were important) (b) Haskell + C or (c) use a custom Scheme variant I've been hacking on for many years + C.<p>I personally think the fears of not getting good programmers if you build in unusual languages is overblown. Even in Bangalore, good programmers would jump at an opportunity to work on interesting systems and interesting languages. I am not looking for work but I would <i>still</i> consider a job offer from a startup using interesting languages very seriously.<p>[1] I was trying to figure out stuff by writing and so these posts are not polished, but if anyone wants to read, here they are<p><a href="http://pindancing.blogspot.com/2009/07/why-do-startups-still-use-java.html" rel="nofollow">http://pindancing.blogspot.com/2009/07/why-do-startups-still...</a><p><a href="http://pindancing.blogspot.com/2009/07/why-do-startups-still-use-java-part-2.html" rel="nofollow">http://pindancing.blogspot.com/2009/07/why-do-startups-still...</a><p><a href="http://pindancing.blogspot.com/2009/07/why-do-startups-still-use-java-part-3.html" rel="nofollow">http://pindancing.blogspot.com/2009/07/why-do-startups-still...</a><p><a href="http://pindancing.blogspot.com/2009/07/why-do-startups-still-use-java-part-4.html" rel="nofollow">http://pindancing.blogspot.com/2009/07/why-do-startups-still...</a>
评论 #1379253 未加载
评论 #1380505 未加载
scheff将近 15 年前
I'm going to go against the grain by saying I have created a startup in Java. Why Java? Mostly because it's what I'm competent in, not because it's the best "startup" material.<p>But what I have done is built a framework for a website which I can easily extend. The framework is robust and easy to adapt, so once I get my first startup up and running, I can punch out more in a much quicker turn-around.<p>I refrained from using a bunch of existing java frameworks/technology to speed up development because I didn't know what the end product would look like and don't like the way frameworks railroad you into a particular solution and prevent you from "thinking outside the box".<p>So it's very old school - Servlets and JSP.<p>I achieve agility by now just focussing on delivering new services, and calling those services from either JSP or AJAX calls. This gives me some flexibility in the UX.<p>I prototype very rapidly to prove that I can do what I want to do, then round off the edges if I'm happy that it's functionality that I want to include in the pool.<p>I can turn around new functionality in a matter of hours for the most part.<p>Pete.
stratospark将近 15 年前
Java the language is stagnating, but the JVM ecosystem is stronger than ever. Attract some smart folk with Scala or Clojure, chances are good that they know Java as well.
评论 #1378913 未加载
评论 #1378905 未加载
评论 #1378850 未加载
Keyframe将近 15 年前
Maybe, as others have said, it's due to the nature of most startups talked about here are web-centric. I had to write something in Java two days ago (not web related, but image processing) - it was my first real intro to java, sort of a crash and burn intro.<p>Not only did I write the stuff, it worked, it was FAST (unlike I expected, because you know "java is slow" - I found out it isn't)... and I was damn fast in changing code around, toying with it basically. All of that from zero to hero in a single day (not even an 8hr session).<p>I'm impressed, and I'll probably look into prototyping work with java in the future. I especially like zillion of libraries out there - great stuff if you are trying to make something fast, prototyping for example.<p>I've been driving python for the last couple of years for prototyping (I develop in C later), but I found out that python code of any reasonable scale is really REALLY hard to manage (at least for me), not to mention speed issues (which I sometimes need in prototypes due to the nature of image processing).
wlievens将近 15 年前
Can we <i>please</i> get over all this and just go with the one mantra: use the tools you're productive and comfortable with. End of story.<p>I'm a Java developer, but I also recognize the amazing influence that more dynamic languages have had on my way of thinking. I'm hugely indebted to the SICP train of thought. That makes me a better Java programmer too, to get around some of the stupid practices many other use.
rbanffy将近 15 年前
IMHO, Java lends itself to overengineering. I am not sure why, but Java makes it very tempting to try to nail the design right before you know what you are designing.
评论 #1378985 未加载
_delirium将近 15 年前
I think Java's pretty popular at startups that focus on things other than the web. For example, pretty much everything at Palantir is in Java.
评论 #1379085 未加载
mindcrime将近 15 年前
I agree with what a number of others have said here: Java isn't ideal for front-end web stuff, but it still has a lot of uses for low level data processing and back-end work. Also, the JVM is a great platform, and you can target it with any number of languages: Groovy, Clojure, Scala, Nice, JRuby, Jython, etc.<p>Personally I'm using Groovy on Grails for the web front-end part(s) of my current project, and even using Groovy for some of the "backend'ish" parts just to get through the initial prototype. Grails and Groovy are amazing in terms of developer speed - compared to Java anyway. But since it's all still on the JVM, I can just drop in existing Java libraries and - if, or when - I need to, it'll be fairly easy to transition bits to Java. For my money, it's the best of both worlds at the moment.<p>Then again, the stuff I'm doing is somewhat "enterprisey" so being on the JVM will probably actually be a selling point down the road.
评论 #1379240 未加载
amalcon将近 15 年前
It seems to me the big benefit of Java is interoperability with other JVM languages like Scala and Clojure (or Jython or JRuby). This is much like the benefit you get from learning C when you work in a language with a good C-based foreign function interface (Python, Ruby, OCaml, etc). You can build most of your application in the more dynamic language, but fall back on the static language for the elements it works better for (high-performance, system-related, or interfacing with a library designed for the other language).<p>The advantage Java has over C is that, in that comparison, Java is really nice to work with.
krschultz将近 15 年前
Bug Labs primarily uses Java for their product and Ruby on Rails for their web stuff.<p>If you are assuming startup == web app, then sure Java is probably dead, in other contexts not so much. Using Java was advantageous for Bug Labs for a number or reasons - among them available open source libraries, widest adoption among customers (their business almost requires customers to touch source code and while Python would have brought in more enthusiasts, Java brings in more enterprise customers and thats where the money is), performance of the JVM, and portability across both the ARM platform and x86 stuff.<p>(Oh and BL is in NYC)
scumola将近 15 年前
I work at a startup that's 5 years old and the main app is written in java, but smaller utility pages and apps are written in different languages. I think that the language should fit the problem.
keefe将近 15 年前
Plenty of startups in silicon valley use java. If you want to talk about text editor coding performance, yeah java is the worst language of all time. However, when you have eclipse which features super efficient source code generation, code navigation and autocomplete tools? It's actually nice to have a verbose language. imho this facilitates merging documentation with code, whereas a more mathematical programming style tends to be more cryptic.
rufugee将近 15 年前
If you want a java-based framework coupled with Rails' productivity, go through the play framework's screencast and documentation (<a href="http://www.playframework.org/documentation/1.0.2.1/home" rel="nofollow">http://www.playframework.org/documentation/1.0.2.1/home</a>). It's the only java framework I've found that excites me about development, and if you know Rails, you really know play. It's that similar.<p>Edit: oh, and also many, many times faster.
rbanffy将近 15 年前
Just a minor nitpick: you can use Java the runtime without using Java the language. There is plenty reason to go with Clojure (I am personally dying to try it), Jython, JRuby, Scala and so on.
bootload将近 15 年前
<i>"... Are there theoretical or practical reasons to avoid java in lean startups? ..."</i><p>good programmers can probably program in java but given the choice would they use it at home or on side projects?
评论 #1379057 未加载
strlen将近 15 年前
Java is dead for front-end heavy web apps, but it's (along with other JVM languages) a good option for other parts of a product.<p>Much of the site is frequently focused on web development. Keep in mind, however, that the web is just a UI layer. What is the UI _for_? It really irks me to see Ruby mentioned _only_ with Rails next to it, as if it wasn't an a very interesting language even without it (the combination of ideas from Perl and Smalltalk).<p>Statically typed languages feel awkward for web development (but then again, I haven't done much web development, so perhaps I am missing some of the better options e.g., Lift), but there's all sorts of interesting libraries for Java/JVM when it comes to:<p>* Middleware/services (Jersey/JAX-RS, Grizzly)<p>* Socket communications (Netty, Mina, Grizzly)<p>* Distributed coordination and communication (JGroups, ZooKeeper)<p>* Search and data processing (several "NoSQL" systems, Hadoop, Lucene and Katta for search)<p>* Threading and concurrency: actor libraries like Killim and Jetlang, java.util.concurrent and jsr166y/fork-join framework.<p>It should be noted that you could also use them with Scala. If liked using Java, you'll like Scala even more. Unless, of course, you've already got a predominantly Java project and have a specific reason against mixing/matching Scala (e.g., don't want to have a require having another jar in a servlet container which may be incompatible with the existing Scala jar in that container).<p>Clojure is yet another example of something very interesting that's happening on the JVM, but to me the big pull of Clojure isn't related to it being on the JVM: I like the fact it's a Lisp-1, its STM approach, first-order data structures - with syntactic sugar - beyond lists. Even if you viscerally hate Java and the JVM, you should give Clojure a try.<p>Of course there are a couple of JVM specific issues that <i>are</i> annoying and knee-cap <i>all</i> the JVM languages (in comparison to C, C++, Scheme/CLisp, OCaml and Haskell): lack of unsigned types, lack of ability to create user defined "primitive types", erasure with generics (mitigated through work arounds like Scala's implicit) and other artifacts of the JVM imposing a type system on you.<p>Personally I was dismayed by Java's smell (associated with the enterprise CRUD web development that went on in Java in the late 90s/early 2000s, Java's design by committee, etc...) and didn't even touch it until a few years ago; I squarely believed that all _real_ programming could only be done in C or C++ (while Lisp could be used for prototyping algorithms). I found that despite Java's _many_ annoyances, it's a language that could be practical for many non-trivial programs (rather than the usual "enterprise" apps which crash when you click the wrong button). Subsequently, I also discovered the same about Erlang, OCaml, Scheme, Common Lisp and languages I previously ignored as toys/glue languages (Python, Ruby, Perl).
baddspellar将近 15 年前
Is there really an aversion to using Java in a lean startup, or is this just an example of Voluntary Response Bias?<p>That is, are you simply observing that startups who make a big deal about the language they're using are more likely to be using one of the "hot" languages than a stodgy old language like Java?
评论 #1380167 未加载
runT1ME将近 15 年前
Uh, how is java better at 'engineering' than scala. Do you know what Scala is?
dstainer将近 15 年前
I agree with a couple of the posters, I think the JVM is the core piece of technology to take away from the Java ecosystem. Especially as more languages can compile byte code to run on it.<p>That being said Java still plays a very big role in backend systems and don't forget that some important backend tools i.e. Hadoop and Cassandra are written in java. So I wouldn't write it off just yet.<p>Derek<p><a href="http://nosqldatabases.com" rel="nofollow">http://nosqldatabases.com</a>
评论 #1379317 未加载
评论 #1381720 未加载