"... Are there theoretical or practical reasons to avoid java in lean startups? ..." good programmers can probably program in java but given the choice would they use it at home or on side projects?
Is java dead for startups?
31–40 of 101 posts
Re: Is java dead for startups?
#32If 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. There are some decent platforms for the JVM…
The play framework sounds like something you'd be interested in. It abandons the Java conventions for a more rails like experience. http://www.playframework.org/
Re: Is java dead for startups?
#33Re: Is java dead for startups?
#34It's funny, one initial selling point for Java was as a rapid prototyping language. Because back then it was, relatively speaking. 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 demand (a gui only needs to be fast enough; network latency swamps many other delays), Java is now much fas…
Re: Is java dead for startups?
#35I 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.
Re: Is java dead for startups?
#36Much 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).
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:
* Middleware/services (Jersey/JAX-RS, Grizzly)
* Socket communications (Netty, Mina, Grizzly)
* Distributed coordination and communication (JGroups, ZooKeeper)
* Search and data processing (several "NoSQL" systems, Hadoop, Lucene and Katta for search)
* Threading and concurrency: actor libraries like Killim and Jetlang, java.util.concurrent and jsr166y/fork-join framework.
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).
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.
Of course there are a couple of JVM specific issues that are annoying and knee-cap all 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.
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).
Re: Is java dead for startups?
#37Born 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 < 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.
BTW, both the Java (javac) and Scala compilers were written by the same person.
Re: Is java dead for startups?
#38I 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). 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 difficul…
You should look at the Play Framework (www.playframework.org) if you'd like to see rapid Java. Agree that Java is verbose though. Java7 will improve things only slightly.
I've actually gotten to use groovy/grails for a lot of new projects/enhancements and that is making my job much nicer.
Re: Is java dead for startups?
#39It's funny, one initial selling point for Java was as a rapid prototyping language. Because back then it was, relatively speaking. 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 demand (a gui only needs to be fast enough; network latency swamps many other delays), Java is now much fas…
I was under the impression that much of googles code base is python.