What IDEs, frameworks, languages, and other software do you use on a regular or semi-regular basis? Spring? Android Studio? Git? Maven / Gradle / Ant? What do you use for the front-end? React? Vue? JavaFX?
I'll go first:
Language(s): Java, some Scala
Project Management: Maven
Version Control: Git, GitHub, GitLab
Database: MongoDB, H2, Hadoop, or Derby, but I've also used MySQL and PostgreSQL (I'm flexible)
IDEs / Editors: nano mainly, but starting to use Eclipse and VS Code more
Front-End: I've dabbled in JavaFX, but I'm trying to learn some more JavaScript, including ReactJS
Other: Trying to catch up and learn REST / Spring, and Android Development
It looks a lot more intimidating now that I've written it all out like that!
How about you? What are you using and what are you learning? Let me know in the comments!
Oldest comments (55)
I've seen a lot of support for IntelliJ... is it that much better than Eclipse to justify the price?
Yes, please give it a try with Community Edition.
The community edition is free and open source, I use it every day, it blows eclipse away in every way.
I'll definitely check it out! How, specifically, does it improve on Eclipse?
Its much faster, more organized, better android support, cleaner ui, better code auto complete, really nice git features, its just awesome.
Java/kotlin
Intellij Android studio
Gradle
Git, github, self hosted gitea
Mongo, and SQL
Ive never used Gitea... how does it compare to GitHub?
I first got paranoid about github when some people's repos were being deleted by bots, or entire countries blocked so I installed gitea on my raspberry pi at home. I mainly use it to mirror my important repos, as well as private repos. It almost looks like github, but there are tons of customization, documentation is good and is open source.
Language(s): Java, Kotlin
Project Management: Team City
Version Control: Git, BitBucket, GitKracken
Database: MongoDB and MySQL
IDEs / Editors: IntelliJ IDEA
Front-End: ReactJS
Other: TypeScript
I've never heard of Team City, what is that?
It's a ci/cd service from jetbrains - company behind kotlin and intellij. Though I wouldn't call it project management tool
Language: Kotlin
Frontend: Angular/Typescript
Desktop app: tornado FX
IDE : Jetbrains IDEA
build system: gradle
Server side: spring boot, http4k, ktor, GraphQL
A word of caution: "catching up with Android development" is a full time job or more, I wouldn't recommend it as a side thing
Yeah I meant it more as "trying to get a flavor for" Android development. Maybe make a small app or two to understand the process. Do you know of any good resources?
Avoid at all costs the official Android documentation, it's bad.
I would recommend those tutorials
raywenderlich.com/
Thanks, Jean-Michel! And thanks for the discussion with Corey! I'll check out the resources you recommended as well as developer.android.com (taking the latter with a grain of salt).
I would honestly recommend just working through the developer.android.com/ tutorials; they give you a good overview of how things work! Patience is key though, it takes a while to really grasp how everything works together
As I said, I would actually recommend avoiding that resource.
I take seriously this honest admission by Diane Hackborn that the Android team doesn't really know or care how you should build your app
cnblogs.com/jarvisyin/p/6361184.html
I think it's great that you're providing other resources, but I don't quite understand why you would knock the official documentation since there are resources there that aren't just tutorials. I know it's not perfect, but it can be a good starting point to investigate things further. I've looked at reywenderlich in the past and found their tutorials really helpful.
I feel that the android documentation is preaching a lot of bad things, in particular all the examples still tell you to put your logic inside God Activities, Fragments, Context, ...
I also feel that they are not talking about lots of good libraries, just because they do not come from them, but do talk about a lot of bad libraries, just because they come from them.
I was probably too harsh, do read the parts of the developer.android.com that are good, like Room for example. But always keep a critical mind and use other sources as well. Learn Kotlin from Jetbrains for example.
I agree that often times they recommend particularly unhelpful resources. The worst offender in my opinion is the networking libraries. I have NO idea why they do not recommend okhttp and retrofit. Maybe one day they'll open source their docs so the community can help maintain them
It's simple,
Retrofit and okhttp do not come from them so they don't document it.
AsyncTask and IntentService do come from them so they document it.
It makes sense from their perspective, but from the perspective of someone learning how to build the app, you end up not learning about the right thing.
What do you mean; Android doesn't change that fast. \s
Once I took a 6 month break from Android development and literally everything had changed. Fragments were now considered a compat library class, ViewModels and live data were king, and there was this looming nightmare for existing projects called AndroidX
Why so passionate about Gradle? I thought Maven was the de facto standard but these responses are making me think otherwise
I think Maven is still very popular in the backend/enterprise development space, where it's been used for ages and "just works". It's stable, it's easy to maintain, and it does exactly what is needed from it without any fuss. But I also think that it's pretty common for Maven to just be a relatively small part of the overall build/deploy process for a Java project, and Jenkins or other CI platforms pick up where Maven drops off.
Gradle is a much more fully-rounded automation tool, and ideally, would handle the entire build/deploy pipeline and CI tools would only need to call Gradle once for the entire thing to go from source to production. If the entire build/deploy pipeline is in Gradle, then it is no longer a requirement for CI tools to run deploys, as you can still deploy locally if you need to, and you're less locked into a specific CI platform for its plugins.
Also it seems pretty rare that new frameworks/libraries are created using Maven, most new projects I see all use Gradle. This may very well be selection bias on my part as I live almost exclusively in the Android and Kotlin world where Gradle is the supreme ruler, but it does seem much more common for new projects to be created with Gradle. This leads me to believe that Gradle is actually the "de facto standard" over Maven these days.
Language(s): Java
Version Control: Git, BitBucket, GitKracken
Database: postgres
IDEs / Editors: IntelliJ IDEA
Front-End: Vue JS
Other: JS
Ooh, what's GitKracken?
GitKraken is amazing! Easily the best Git GUI I've ever used.
It looks really neat! I'll have to play around with it. Thanks for the recommendation!
Do you ever run into problems with lack of support for Gradle? Maven is ubiquitous so I've never had a problem with a library missing or anything. Is it easy enough to use with Spring?
As a new Java developer (5 months now) I've been working on a model or starter Spring Boot web app aimed at long-term maintainability. (here: github.com/joeclark-phd/granite) I'm honing in on a toolkit that I like.
IDE: IntelliJ (free edition for now)
Languages: Java 8 (I expect to upgrade to 11 soon), and of course HTML/CSS/Javascript
Database: PostgreSQL
Framework: Spring Boot
Front-end: Thymeleaf templates with Bootstrap 4, JQuery
Dependency management: Maven + WebJars (the latter for JQuery, Bootstrap, etc.)
Build tools: Maven, Docker
Testing: JUnit 5, Testcontainers
I have a pretty good build process at this point which uses Testcontainers to spin up temporary Postgres databases as Docker containers during the 'test' phase for true integration testing, then builds and publishes images of the app and the database to Docker Hub in the 'deploy' phase. Still got some bugs to work out though.
That testing framework with Testcontainers sounds awesome, I would love to read an article about your setup!
Java, Kotlin, Spring Boot, Maven, Jackson, Jersey, Apache Commons, Failsafe, IntelliJ IDEA
Good ol' Apache Commons.
Failsafe looks interesting... could you explain that in a nutshell?
Language(s): Java
Project Management: Manual, npm/Yarn for front-end
Version Control: CVS, GitHub, Bitbucket
Database: DB2, Oracle SQL
IDEs / Editors: Eclipse, VSCode
Front-End: JavaScript, jQuery, a little dabbling in React
Other: CSS custom properties and grid
Is "Manual" a tool or are you actually doing everything by hand?
I might have anticipated that. It's by hand.
Haha, all these packages have ridiculous names nowadays, you'll have to forgive me. :-)
No worries, man. You never know!