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!
Top comments (55)
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
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
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?
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.
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).
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!
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(s): Java
Project Management: Maven
Version Control: Git, GitHub, Bitbucket
Database: H2, Postgres, hsql
IDEs / Editors: Eclipse, VSCode
Other: trying to create my own little RAD framework (core-next.io), learned a lot about spring and some other cools stuff while doing it. Also digging into native macos apps using java (sounds weird huh? :-D, github.com/mojo2012/kakao).
We're setup twins! Though all these comments here have me wondering if the grass is greener on the IntelliJ / Gradle / Kotlin side of the fence...
I tried intellij, so many times. I tell myself, just do what people tell you: go though the first 2 weeks and you never want to go back. Well I did that, I used it for more than 2 weeks and I still don't get it. It's so friggin buggy!
You know, I do almost everything with keyboard shortcuts. When using switching to to other apps and back suddenly the window focus is messed up. I hit cmd-w to close the active tab but something else in the background closes. That even happens with active windows (like the vcs view, which is a separate window).
There is no proper compile feedback, like in eclipse. Everything always looks good until you realize that although the app started, some code just doesn't work because it actually didn't compile properly.
It makes awesome statically typed java like a dynamic language (aka javascript hell).
There isn't even a autoformat and autoimport hook on save - that'S one of the most basic features at all!
You have to install a damn plugin that uses the eclipse formatter, what the heck.
Then why are there so many panels open, I constantly switch them, because I don't need all this crap and they just reappear all the time. Even the "do you want to buy the ultimate version???" message bubble. I already have that damn ultimate version you son of a ...
To sum it up: eclipse may be slow but it's still the way to go for me, because it supports me in most cases, whereas intellij is just like a text editor, not really an IDE to me.
Language: Kotlin. Java only when I must (supporting older codebases). New code is pure Kotlin, even multiplatform if it makes sense
VCS: Git, GitHub, GitKraken
CI/CD: Azure Devops, GitHub Actions, Travis CI (though I'm trying to migrate those repos to GitHub Actions)
Build Tools: Gradle. Lots and lots of Gradle.
IDEs: Android Studio, IntelliJ IDEA Ultimate
Front End: Vuejs, though I'm using Kotlin/JS more and more
Back End: Ktor, Kotlin/JS serverless on Node
Other: project docs websites with Orchid
I guess I'm moving to Gradle and IntelliJ, haha! Does Kotlin have its own front-end? Is that what Kotlin/JS is?
Language: Java
Project Management: Maven, Gradle
Version Control: Git, GitHub, GitLab, BitBucket
Database: MongoDB, H2, PostgreSQL, ElasticSearch
IDEs / Editors: IntelliJ IDEA, some Vim
Front-End: don't work with FE last 5 years
Other: playing with GraalVM and Quarkus framework
How do you like GraalVM? Do you actually use it for polyglot programming? I want to play around with it, but it feels gimmicky
Actually I didn't try it for polyglot things and mainly use with Java. It's interesting for me due to native-image feature (as Quarkus project too). Currently I'm trying it on my pet projects, not on production. But I want to figure out how can I use it with AWS Lambda functions with which I work on my job. Hope, it can help me with Lambda function cold start issue :)
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, JavaScript, XML, XSL, JSON, bash
Project Management: Ant (yup, old school)
Version Control: GitLab
Database: PostgreSQL
IDEs / Editors: long time Eclipse user (VSCode pretty awesome too) and BBEdit (Mac OS-based)
Front-End: jQuery, JavaScript, CSS, HTML, JSP, XML/XSL
Other: requests come through custom, homegrown MVC framework, hits Java code, queries db, results transformed into XML, passed as request attribute to JSP, calls Java code to transform with XSL, producing more HTML and JS code, JSP converts to HTML, presented to browser. Ouch!
Language: Groovy
Build System: Gradle
Version Control: Git, GitLab
Database: H2, SQL Server
IDEs / Editors: Vim, VS Code, IntelliJ Idea
Front-End: JavaScript, jQuery, Bootstrap, some Vue, interested in Svelte
Other: Grails for web applications and Micronaut for services, Docker, and Linux
What is the deal with MongoDB these days? Why is it so popular? I know it is more scalable and faster, but what does it offer to you-developers? How would you compare your daily work on project between using any SQL like Postgres and Mongo? Don't get me wrong, I know something about it(I participate in great university.mongodb.com courses), but I do not see any advantages in switching to Mongo in small-scale applications, as it would take time to educate whole team and it changes nothing and even more I would have to sacrifice multidocument transactions. So what I am missing guys?
Anyway, my stack is below:
Language(s): Java, Kotlin
Project Management: Maven, Gradle (on Kotlin ones), NPM for frontend
Version Control: Git(GitLab), SVN(iF.SVNAdmin) for docs
Database: PostgreSQL+PostGIS, MariaDB, H2 in local envs, ElasticSearch for fulltext
IDEs / Editors: IntelliJ <3 (Eclipse before)
Back-end: Spring
Testing: JUnit5, Mockito, AssertJ + Sonar for static analysis
Front-End: Angular, JSF(JoinFaces+AdminFaces/PrimeFaces) if project is quick and team is inexperienced with SPAs
Hosted apps: YouTrack(task management), Rancher(containerized dev/test environments), GitLab CI(CI/CD), Artifactory(maven repo), PassBolt(in-team password management), MailDev/mailtrap.io (mocking smtp), ELK (log aggregation)
Other: Currently focusing on DDD and Spring Cloud microservices running on Kubernetes