4 ms·
Can confirm. At work we're moving from Clojure 8 to Java 8 partially because IntelliJ is amazing and partially because Java 8 plus the right libraries is close
by sdegutis 10y ago
Can confirm. At work we're moving from Clojure 8 to Java 8 partially because IntelliJ is amazing and partially because Java 8 plus the right libraries is close enough to Clojure anyway, except much faster.
- gravypod 10y agoI think as developers we are so used to pain that we forget how "easy" development can be if we allow people the right tools. If any language had the tooling and development Java did it would hold the market share. It's my opinion that if Rust makes a similar IDE experience (even just using Eclipse's platform) with every feature like code completion, formatting, debugging, the hole 9 yards and integrate Cargo into it they'll win. But, here's the caveat: It needs to be FLAWLESS integration. I've been a java developer for my entire programming career. Java was my first language when I was 12 and I'm 19 now. I still can't use javac without looking at a compiler guide since I never use it. Eclipse does the business and I don't ever even need to think about what's going on outside my code. Not once.
- pjmlp 10y agoJava like tooling already existed before Java was born. We had it in the form of Common Lisp, Smalltalk, Delphi and Visual Basic, IBuilder (for those rich enough), CA Objects, C++ Builder.
- reitanqild 10y agoTo add to this: in school I found Java a complete waste of time. Started working and someone showed me how to productively use eclipse and suddenly it was acceptable.
- javajavaj 10y agoThat you need an IDE to make a language bearable speaks volumes to the design of the language. Go is doing well because it realizes we can strip so much away, stay with the standard lib, and get real work done quickly. That's not to say that Java, in particular the JVM, isn't an impressive piece of engineering, but more that we should be careful when we choose our tools so as to not overly complicate things.
- aninhumer 10y agoWhile Java may be somewhat verbose, good tooling is not just about "making the language bearable". Things like being able to jump to a definition, rename it throughout the project correctly and jump back without even thinking about it are hugely valuable in any language. And maybe you have ways of doing that in your workflow too, in which case great, you too appreciate the value of good tooling.
- javajavaj 10y agoSure, agreed, but I think you misunderstand my point. If I took away your Java IDE would you be able to get very far?
- sdegutis 10y agoThanks for your comment. It inspires me to write a blog post on why Java is my new favorite language, especially in comparison to Go.
- rpeden 10y agoRather than looking at it as a language that needs an IDE to be bearable, it might be more helpful to look at it as a language that is most pleasant to use in concert with well build tools. I look at it similarly to the way I look at Smalltalk. It's possible to use it as just a series of text files (with GNU Smalltalk), but using it with tools that understand the language (such as Visualworks or Squeak/Pharo) turns it into a very different experience. I know that a Smalltalk dev environment feels alive in a way that Java doesn't, but using Java with a tool like IntelliJ is a nice experience. Using something like JRebel or HotSwapAgent to swap code changes into a running application also improves the dev experience significantly.
- javajavaj 10y agoI'm not a Java developer, so I'm interested to know what the amazing parts of IntelliJ are. When I look at it it just looks like they ripped off the skin from Sublime Text and it has some debugging features that are readily available in other editors. I get pretty much everything on https://www.jetbrains.com/idea/whatsnew/ https://www.jetbrains.com/idea/whatsnew/ in my vim setup.
- sdegutis 10y agoAll the refactorings and context-aware code completion, for starters. And as for ripping off, IntelliJ came out 7 years before Sublime Text.
- javajavaj 10y agoCool, show me a screenshot from, say, 5 years ago that looks like Sublime? From what I can see it looks something like this: https://blog.jetbrains.com/idea/2011/10/new-in-intellij-idea-11-preview-of-android-ui-layouts/ https://blog.jetbrains.com/idea/2011/10/new-in-intellij-idea... I didn't say features, I said skin. Of course IntelliJ has been around longer. If you like an IDE that's cool, no hate. I just get frustrated with the idea that I need one to be productive in certain languages. Give me Go and vim, maybe inside tmux, and I'll be productive immediately.
- sandGorgon 10y agowhoa!! this is huge - can you talk a bit more about your stack please. This is the first time I have heard something like this - what libraries, code style, etc would get you the same "feel" as clojure ?
- gravypod 10y agoI'm assuming Lombok and using the new Lambdas. Maybe even a fibers library.
- sdegutis 10y agoYep, mostly Lombok (especially @Data for immutable typed objects with automatic constructors without boilerplate), streams, and lambdas.
- gravypod 10y agoPersonally I think Lombok should be mainlined at some point. It's just so perfect in everything I've tried.
- sandGorgon 10y agoare there any opensource github projects that illustrate the use of this infrastructure (java 8 + lombok + streams + lambda) in a very clojure-ish way ? its hard to find good examples of this style of coding. For example, it is hard to figure out which app server (Spring Boot, undertow, dropwizard, wildfly). I'm sure you can use any... but it would be nice to learn from your experiences.
- gravypod 10y agoCould you provide an example project that you'd like to see implemented and I'll give it a go? I'm not the person who's doing this but I think I'd like to mess around with functional programming and I love Java.
- 10y ago