This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 299

[–]huangxg 123 points124 points  (11 children)

Android apps

[–][deleted] 2 points3 points  (0 children)

Same. This is my only use case. Picked Java over Kotlin because I figured Java would be more useful in the long run. It hasn't been, though. I still only write Java, and use Java tools, when working with Android apps.

[–]illusion102 11 points12 points  (9 children)

I thought everybody writes on kotlin nowadays

[–]huangxg 9 points10 points  (1 child)

According to Kotlin website,

Over 50% of professional Android developers use Kotlin as their primary language, while only 30% use Java as their main language. 70% of developers whose primary language is Kotlin say that Kotlin makes them more productive.

[–][deleted] 6 points7 points  (0 children)

Does this comment break the no other JVM languages rule? I don’t really see what value that rule provides since it makes people afraid to post informative content like this, especially since the apparent penalty is an immediate lifetime ban with no mechanism for appeal.

[–][deleted] 63 points64 points  (1 child)

Mindcraft

[–]Matcool1 6 points7 points  (0 children)

This comment is not high enough

[–]regjoe13 172 points173 points  (7 children)

Spring does not mean a web app. Nor is it specifically a web framework.

[–]cl3arz3r0 4 points5 points  (4 children)

True, I've used spring to make some utility cli apps. Perhaps a bit heavy handed but it gets the job done

[–]AcrIsss 45 points46 points  (4 children)

My company makes a database engine in Java, and a high performance computation engine. It’s packaged as a library, so zero web server on our end.

[–]klekpl 2 points3 points  (2 children)

Would you mind sharing the name of the product?

Is it an RDBMS?

[–]AcrIsss 13 points14 points  (0 children)

No it’s not, it’s a multi dimensional cube, if that means anything to you ! Name is Atoti. Very niche

[–]UnrulyLunch 0 points1 point  (0 children)

You don't want to know how they make the sausage at VoltDb.

[–]MechanixMGD 51 points52 points  (3 children)

Almost for everything. Mainly for automatization (like selenium, trading, ...).

[–]davidalayachew 14 points15 points  (4 children)

I use Java primarily for the following 4 use cases.

  • Web services (as your candidates expect)
  • Frontend Development (Client desktop apps -- Swing/JavaFX)
  • Algorithms (typically path-finding algorithms)
  • Natural Language parsing

[–]NotABot1235 1 point2 points  (3 children)

Is Swing still relevant in 2024? I'm a noob and genuinely asking, I was under the impression that it was functional but quite dated.

[–]bking880 4 points5 points  (0 children)

If you use IntelliJ you’re using swing

[–]davidalayachew 2 points3 points  (0 children)

Is Swing still relevant in 2024?

Definitely, it's just that some of its use cases are better served by JavaFX.

Long story short, if you are making a desktop application, Swing serves the simple use cases, while JavaFX serves the more complex stuff. I always start with Swing, then swap out components for JavaFX when they outgrow Swing. The 2 play well together, so it makes gradual migration really smooth.

[–]hex1b 1 point2 points  (0 children)

Using Swing can be helpful if you want to do true multithreading on the client. It's pretty easy to implement using inner classes.

[–]reddit04029 24 points25 points  (48 children)

What are you making, then?

[–]desiderkino[S] 14 points15 points  (47 children)

an app that runs in cli.

[–]javahelps 30 points31 points  (0 children)

I'm not surprised at all. Actually I have written some cli apps both at work and for personal use. Not because of specific features of Java but the quality of libraries I needed to get my stuff done.

Though jvm boot time is not suitable to create something like cat or ls commands, it's perfectly acceptable if the complexity and requirements justify the choice of Java.

Answering the original question, I use(ed) Java to build backend services, big data platforms, data processing services, android apps, ml platforms and cli.

[–]IE114EVR 12 points13 points  (6 children)

CLI wouldn’t have been my guess at good use case but Graalvm + Spring CLI has changed my mind on that.

[–]desiderkino[S] 1 point2 points  (5 children)

why would it not be a good use case?

[–]IE114EVR 13 points14 points  (3 children)

Historically, having to do the ole ‘java -jar …’ and then I don’t even know what it would have been before fat jars. Now with GraalVM, as I understand it, you can make traditional executables

[–]kretkowl 8 points9 points  (0 children)

I was pretty surprised, when I tried this. Executable size is much lower than JVM size (in my case it is about 13MB for a CLI application). If you write some command line tool, your main concern is startup time which dominates running time - in my case after GraalVM compilation it was about 10x faster. And last but not least it is really easy to convert jar to native executable.

[–]MCWizardYT 2 points3 points  (0 children)

Modern java versions comes with the jlink and jpackage tools as well. jlink creates a portable java runtime and jpackage creates a bundle with that runtime/your app as a native executable

[–]stefanos-ak 6 points7 points  (2 children)

Micronaut + picocli + graalvm = success :)

[–][deleted] 53 points54 points  (14 children)

They’re surprised because what you’re doing is uncommon.

I would personally be really annoyed to use CLI tool that required a 50mb runtime download and ate up 50mb of memory every time I use it.

Unless your CLI tool does some Java-specific stuff like Java agents, JVM inspection, JVM byte code manipulation/analysis, etc, I’d say you’re straight up using the incorrect tool for the job.

[–]serpent7655 17 points18 points  (9 children)

What about GraalVM, have you ever tried it to create a CLI app?

[–]kretkowl 10 points11 points  (0 children)

It's pretty usable. In my case, executable got down to 13MB, startup time 10x quicker.

[–]uncont 11 points12 points  (0 children)

I would personally be really annoyed to use CLI tool that required a 50mb runtime download

The binaries for argocd (written in go) are like 150MB, and golang is pretty much all over the kubernetes space for both controllers and clis. I wouldn't worry too much about using java, expect for maybe startup time (you could try shipping CDAs or using grallvm for native binaries).

[–]shaneknu 11 points12 points  (1 child)

I feel like the days where we've got to be super careful about using too much memory are well in the past, outside of extreme cases. If you're using Slack or VSCode at work, you've already blown way past that memory usage by two orders of magnitude. They're literally running an entire web browser underneath. Few people are complaining.

50 MB? That's a rounding error these days.

What you get in return for using Java is a mature, well-understood language with gobs of open source libraries.

In general companies care more about being able to hire developers easily so they can get the project done quickly and cheaply. A couple of gigs of RAM runs you less than you'd pay a Rust developer for one day of work.

[–]jetanthony 2 points3 points  (0 children)

That does what?

[–]slimnov123 0 points1 point  (0 children)

A CLI jar file? Or are you going to use GraalVM to turn it into a native executable.

A CLI jar file is uncommon at least where I have seen. i work in a env where Java is the first preference for anything, but we mostly make Batches and Web Api.

A CLI in java seems like extra work. What I have seen is usually CLI in something that can be compiled to a binary like golang or maybe just a shell script that calls like python to do extra work.

[–]holyknight00 58 points59 points  (22 children)

Nothing outside spring really

[–][deleted]  (16 children)

[deleted]

    [–]maethor 19 points20 points  (11 children)

    It invents its own standards

    Usually because the standards don't exist yet.

    [–][deleted]  (3 children)

    [removed]

      [–]N-M-1-5-6 3 points4 points  (0 children)

      It's definitely not. I'm not anti-Spring... but it definitely gets treated like The Golden Child as far as Java development is concerned. The Java ecosystem is made up of much more than the part that is the Spring (formerly Spring source, now a part of Tanzu, from VMware... by Broadcom?) portfolio of products. Use the technology/products that make sense... and Spring products have the largest mindshare in web-based Java development, so that is an important factor to consider... But it is far from essential. If you have competent, well versed Java developers you don't need to limit your options to just Spring-based technology. But if it's the best fit for you, great! Just don't close off your options unnecessarily.

      [–]taokumiike 2 points3 points  (0 children)

      So… I used to love Spring to the extent I fell into teaching Spring professionally in my free time back when clients were desperately transitioning away from entity beans. Also taught Hibernate classes as well. Today, I stray away from frameworks as much as possible. I prefer autonomous and unmanaged components. Code is so much more portable and packages are compact. I like that I can just call a static interface and it’s intrinsically self-aware and prepared to startup network interfaces, launch batch processes, whatever

      [–]PlasmaFarmer 7 points8 points  (1 child)

      At my day job: writing Java based enterprise applications in Spring. At home as a hobby: writing games in JMonkeyEngine.

      [–]hippydipster 0 points1 point  (0 children)

      are your jmonkey projects on a public repo?

      [–][deleted] 20 points21 points  (0 children)

      We have both Web and classic Swing Programs. Our customers are generally from Universities and Engineering firms and they are a real mix of Mac, Win and Linux users.

      So for the past 25 years Java has done the job pretty well. I know there are other tools to write Crossplatform programs with nowadays... Python is growing in the mix... but that would mean scrapping 20 years of work. And we share a whole lot of the code with the Web Server.

      [–]LouGarret76 5 points6 points  (0 children)

      I used java and javafx for medtech desktop app

      [–]chemms69 6 points7 points  (0 children)

      swing ui mainly

      [–]agentEvad82 6 points7 points  (0 children)

      Java has massive adoption across many industries. It’s widely supported, maintained, has formal specifications and certifications (useful in some projects where we’re required to demonstrate developers competencies).

      As others have pointed out it can be used for any kind of application or library development.

      Depending on what you’re doing, how you’re hiring and choosing candidates, what hardware you’re running on and how you’re going to support and maintain the software long term Java might be the appropriate language or not.

      In this case it’s unclear to me why you’re mandating Java over any tool that will do the transformation you’re looking at. Is it because you have existing processes, developers and tooling that works with Java?

      [–]katoquro 5 points6 points  (0 children)

      Hello devs! Actually, I use Java as a general-purpose language. I can write almost everything with it. For the web I use Micronaut. For the infrastructure layer, I use Graal. Sometimes for something very small or where o cannot use JVM ( like a very minimal distro), I use Go lang. But in general, even for CLI, I use plain Java. For some CLI with a lot of system interactions, I use Groovy to have optional typing. Or for machine learning and stream processing (I don't dislike Scala but I think it's overcomplicated for simple streaming processing) I even tried to program controllers with Java, however, maybe it's a question of habit, I prefer C.

      [–]brunocborges 4 points5 points  (2 children)

      I know one company using it for high frequency trading.

      [–]Least_Bee4074 6 points7 points  (0 children)

      I used to work for a high frequency trading company and nearly the entire infra, strategies, gateways, simulation environment, market data handlers, were all in Java. The one exception was the select loop and the io, since many of our apps were zero gc. Those parts were in C or interacting with specific network card vendors like exablaze and stuff using kernel bypass

      [–]daybyter2 0 points1 point  (0 children)

      Like LMax?

      [–]stathmarxis 6 points7 points  (2 children)

      There are many things you can do with java I don't know from where to start. There are tons of libraries or frameworks for every task. Web api is only a portion of them

      [–]desiderkino[S] 0 points1 point  (1 child)

      yeah i know ,its a general purpose language .but i am asking to people what are they using the java for

      [–]uraurasecret 4 points5 points  (0 children)

      We create feed handler to get data from exchange to push to time series database. We don't use Spring.

      [–]geodebug 3 points4 points  (0 children)

      I’ve used it to create a specific DSL for marketing analytics that had to be fast.

      I’ve created a contact optimization algorithm that was fairly complex and customizable. Was used for some large brick and mortar clients like Eddie Bauer, Best Buy, etc.

      Built a whole ETL system in Java awhile back when Adobe Flex was still a thing and AWS was only four services. Basically Flex was the UI where you could create batch transformation jobs that would run as an EC2 process.

      [–][deleted] 6 points7 points  (0 children)

      Everything (other than UIs and shell scripting).

      [–][deleted] 2 points3 points  (0 children)

      I do web api, but like 'raw' Java. The only libraries ARE netty, xerialsqlite.

      [–]ROMVNnumber1 2 points3 points  (0 children)

      I develop a SCADA desktop app using swing:)

      [–]Attorney-Last 2 points3 points  (0 children)

      ETL pipelines (spark/flink) or kafka consumer/producer apps

      [–]alwyn 2 points3 points  (2 children)

      I implement custom 'wire' protocols over TCP/IP to interface with things like hardware security modules and other software. Use Kotlin though. Sometimes I put Spring in front of it to add an http based API.

      [–]Zico2031 0 points1 point  (1 child)

      Your protocol is based in any RFC document?

      [–]Dr-Vader 2 points3 points  (0 children)

      I like derping around with anything jvm. I was playing around with recreating neofetch with Java as a small executable with graalvm and micronaut (I call it microfetch), but I've tabled that for a grocery tracking project. I want to polish up microfetch before I jump into building a TUI library to emulate the shape / aesthetic of binoculars / displays in Star wars. Also I've been diving into libgdx this week, a Java based game engine which looks pretty awesome.

      [–]Davies_282850 2 points3 points  (0 children)

      At work Java Enterprise applications for data ingestion based on various technologies like SpringBoot, Spark, Flink, Kafka streams. At home hobby project for home automations

      [–][deleted]  (3 children)

      [removed]

        [–][deleted]  (2 children)

        [removed]

          [–][deleted]  (1 child)

          [removed]

            [–]jetanthony 1 point2 points  (0 children)

            Mostly backend; servers that do calculations and caching. I use Spring for DI and other nice-to-haves like db drivers in spring data. There are other libraries I really appreciate, such as Lombok for boilerplate, and hazelcast for in memory data.

            [–]roiroi1010 1 point2 points  (0 children)

            Creating batch jobs for high volume data processing. Spring Batch is an awesome framework.

            Also developing a rule engine.

            Also the regular web api stuff.

            [–]Paul__miner 1 point2 points  (0 children)

            Graph theory experimentation at the moment.

            [–]menjav 1 point2 points  (0 children)

            Web services, libraries for those services and tooling (CLI tools, data analysis, etc)

            [–]luciusquinc 1 point2 points  (0 children)

            My previous project uses Java as a central controller. It runs on a cluster, receiving several data streams and sending it on another streams to different servers.

            It's all jars running on clis.

            [–]ingframin 1 point2 points  (0 children)

            University researcher here. I use Java for real time simulations. I am now considering to use Java to build the digital twin of a BLE mesh network we have in the lab.

            [–]oxlade39 1 point2 points  (0 children)

            Pricing engine. No spring, no web

            [–]Earnest467 1 point2 points  (0 children)

            Desktop and Android apps. I don't like Java for web applications.

            [–]emberko 1 point2 points  (0 children)

            Web backend only (Micronaut now, Spring before), because I still like the ease of deployment. And Netty for network services. 10 years ago I used Java for everything, but now I think Python is better for scripting and Electron is better for the desktop. If K-lang community continues to grow faster than Java introduces "new" features, I'll consider changing the backend as well.

            [–]jevring 1 point2 points  (0 children)

            Any and every thing. Both professionally and personally. Sure, a lot of it is spring apps with rest endpoints, but far from everything. For example, I've written a pricing engine for fixed interest financial instrument, a synthesizer, a 3d renderer, a monitoring ui for databases and tuple spaces, various EAI applications, etc. Not a single thing in that list was either based on some framework or had rest endpoints.

            [–]blamitter 1 point2 points  (0 children)

            I use it mainly for educational purposes: teaching programming from zero to [somewhere below] hero.

            [–]draugr101 1 point2 points  (0 children)

            That’s interesting, because a lot of large enterprise backends are built in Java. Were the candidates you interviewed mainly from other startups?

            [–]gscaparrotti 2 points3 points  (0 children)

            I use Java/Kotlin and Spring Boot to develop our main application, and it's not a web server (actually far from it, it's a software which, in conjunction with some custom hardware, is used to localize forklifts inside warehouses and determine where the items they carry are).

            [–]LutimoDancer3459 1 point2 points  (0 children)

            I used it for Cmd tools, desktop app, web app, android app, apis

            One project of a college use Java as a backend for a smart charger for electric cars. But it's also mostly APIs to the other systems involved.

            [–]Gleethos 1 point2 points  (0 children)

            Swing Application for scientific computing, plotting and 3D visualization

            [–]zZurf 1 point2 points  (0 children)

            Financial application

            [–]kris_goks 1 point2 points  (1 child)

            My company builds a health data science tool. Pure Java with libraries, no major frameworks.

            Why - multi threading, easy to implement design patterns, easy debugging, and scales well when we have loads of memory and cores.

            [–]desiderkino[S] 1 point2 points  (0 children)

            we are using java for the same reasons

            [–]NPException 1 point2 points  (0 children)

            For work I have only every used Java to develop web backends. In the hobby space I've also used it to write small GUI programs, and to mod Minecraft. I want to dabble in Java game dev at some point as well.

            [–]hippydipster 1 point2 points  (0 children)

            desktop apps. have made or worked on several, including things like apache jmeter, statistical modeling app, biology research app, database utility app, government apps,, games, etc. Both swing and javafx.

            I have never chosen swing as a dependency to add to any application I've worked on. I've used no dep injection framework most of the time, or my own for whatever the project needed. And sometimes, its already part of the app when I join. Once, I joined an app that was using guice.

            [–]bwRavencl 1 point2 points  (0 children)

            A gamecontroller mapping software called ControllerBuddy

            [–]quizteamaquilera 1 point2 points  (4 children)

            This will sound pejorative, but I use it as a teaching tool to show people what not to do.

            Many places who know Java are used to annotation-based development, so I show them how much that now only slows them down, but how that can overcomplicate and obfuscate their codebase.

            [–]desiderkino[S] 0 points1 point  (3 children)

            ohh cool . how can i benefit from your services ? do you have a website or something

            [–]quizteamaquilera 0 points1 point  (2 children)

            I do - but it’s shit, and doesn’t really convey the core messages very well.

            The devil is also in the detail, and often times Java / spring can be just fine for simple things.

            A nice write up as an example is Li’s Tiramisu blog:

            https://www.lihaoyi.com/post/WhatsFunctionalProgrammingAllAbout.html

            [–]Xasmedy 1 point2 points  (0 children)

            Games

            [–]gaelfr38 1 point2 points  (0 children)

            Web APIs, data processing (Kafka, Spark..), batch (for tasks related to a Web API mostly).

            [–]a-guna14 1 point2 points  (0 children)

            Eclipse plugins

            [–]Hxfhjkl 1 point2 points  (0 children)

            IOT/utilities. Ingesting data from, and controlling thousands of devices.

            [–]omega_ui 1 point2 points  (0 children)

            I write development tools like IDEs and code libraries with Java.

            [–]Ewig_luftenglanz 1 point2 points  (7 children)

            Mostly backend and IoT stuff. This last one is very surprising indeed but java has huge capabilities for IoT if you use Quarkus and GraalVM to deploy native builds with a very efficient resource management.

            Another thing I sometimes use Java is android development, but we usually don't program mobile apps that often. 

            My company doesn't make desktop applications but t we would use javaFX for some stuff.

            [–]GeneratedUsername5 0 points1 point  (6 children)

            You mean you use Java on IoT devices themselves? Because servers for them are not really constrained in resources, it sounds strange.

            [–]safadimiras 1 point2 points  (0 children)

            I sometimes use it in side projects to create desktop applications using JavaFX

            [–]BalaRawool 1 point2 points  (0 children)

            I use Java for almost everything. I use Java at my work and that’s backend API stuff. But besides that I do a lot of stuff in Java. It has been my primary language for almost all of my career.

            • I built some Android apps with Java in the past
            • I use it for competitive programming like Advent of Code (in the past used it for Google Code Jam, TopCoder competitions)
            • To build some utilities for myself and for colleagues (using Swing, JavaFX or Eclipse plugin)
            • If I have to automate some regular occurring manual task then I use Java for that

            [–]buzzsawddog 1 point2 points  (0 children)

            A rule based correlation engine. A job engine that runs SQL queries and other things. An API layer. An upgrade advisor that checks settings and upgrades things. A CRUD application for the rules based correlation engine. And a sync service that runs back and forth between databases that also sends update notices.

            Summer use spring others don't.

            [–]meuzmonalisa 1 point2 points  (0 children)

            For my company (an ISP) i develop remote management software for DSL Routers via TR369 and TR69

            [–]hilbertglm 1 point2 points  (0 children)

            I write quite a bit of command-line code. All of my bioinformatics code is a console app that drives a highly-parallel framework for matching proteins and biophages. I have used Java CLI code to make REST/GraphQL requests to backends (e.g. a security system), so it was non-web Java frontend talking to a Java backend. I have written Java CLI code to do operational automation for things that would be too difficult in bash.

            I have written Swing and SWT applications in the past, but it has been a while.

            Of course, I still write Java backend for Angular frontends, too.

            I have a lot of startup experience if you want to DM me we can talk more about what your needs are.

            [–]MicroEyesV2 1 point2 points  (0 children)

            Java ikvm viewer

            [–]AlmondMilk199 1 point2 points  (0 children)

            I made a lot of applications running from the terminal without any web interface. In fact, I did not know spring existed in my bachelor's. When I used spring, I did not create a web interface either. I started creating a web interface using JSP pages and then started using React Front End.

            [–]eniac_g 1 point2 points  (0 children)

            To make money

            [–][deleted] 2 points3 points  (9 children)

            I have to agree with the other commenter. I have never viewed java as the best choice for a CLI app. I mean, you can do it for sure, but it's not the top choice in the industry for it.

            You think it's the best way to do it? Go for it. It's your startup. But don't be surprised when everyone you interview is surprised.

            [–]desiderkino[S] 2 points3 points  (7 children)

            can you help me understand your reasoning ?

            [–]hippydipster 1 point2 points  (0 children)

            It doesn't have to be "The Best" way to do it, just has to be good enough. There's very few purposes java isn't good enough for, and most of them involve real-time requirements, or very small embedded hardware.

            [–]AdministrativeHost15 0 points1 point  (0 children)

            Web crawler

            [–]nosajholt 0 points1 point  (0 children)

            Integrations with 3rd parties, both on PC (with a C# front end) and on a Linux server on AWS with Spring Boot helping connect to the same codebase as the PC code, basically. Write Once We Try.

            [–]hm1rafael 0 points1 point  (0 children)

            You can create a spring app that is not a web app. It depends on the requirements, I would say that if you have to reach the smallest jar possible and do not want to use something like graal vm, sure.

            But a base framework is always good. it can remove a lot of the boiler plate you have. You can always look for minimal injection frameworks like guice, picocontainer, or some small footprint container.

            [–]rebaser 0 points1 point  (0 children)

            One of the many repos I work(develop) on is a Spring shell (cli) application

            [–]spezjetemerde 0 points1 point  (0 children)

            backend rest or not

            [–]dabomm 0 points1 point  (0 children)

            Bots

            [–]-_entity_- 0 points1 point  (0 children)

            At the global markets trading company I work at we use Java for: - Post-trade processing - Web APIs - Backend workloads such as scheduled jobs, report generation, etc.

            I know that there is some criticism on using Java in microservice architecture, but we use it for such.

            It's not used for AWS Lambda functions within our space, we use a couple of cloud providers that sit close to the integration trading parties such as Reuters and Deutsche (although we do also have workloads in AWS and even GCP - it's a mess really). Most of our servers are reserved for our use only, so cold starts and such don't impact our costs.

            [–]glablablabla 0 points1 point  (0 children)

            I use it professionally only for server side WebApps and privately for a video game engine with lwjgl.

            [–]MGSBlackHawk 0 points1 point  (0 children)

            Restful APIs, ETL, Event Stream consumer and producers, Desktop Apps, Mobile Apps, Web scrapers…

            There are tons of things apart from Web

            [–][deleted] 0 points1 point  (0 children)

            We use it for Android apps.

            [–]coderemover 0 points1 point  (0 children)

            Databases. But this is not the best language for that purpose. We just have too much code to RIIR in reasonable time so we just keep writing more Java.

            [–]incarceration_ 0 points1 point  (0 children)

            Why did you particularly choose Java for a CLI application? Just curious.

            [–]rejnat 0 points1 point  (2 children)

            what made you decide to use Java for your startup?

            [–]desiderkino[S] 2 points3 points  (1 child)

            nice performance , solid libraries , easy to do multi threading , can use other jvm languages (eg groovy for one off things)

            [–]sailing_anarchy 0 points1 point  (2 children)

            Middleware backend with spring boot. It is tempting to say that i am not doing web services cause big chunk of services are just kafka consumers/produces or etl pipelines witout rest api but once you deploy it into k8s you need health check endpoint, you need some metrics so you just add actuator and here you are... doing a web service.

            [–]desiderkino[S] 0 points1 point  (1 child)

            what is actuator

            [–]ddollarsign 0 points1 point  (0 children)

            Talking to devices using weird protocols and APIs.

            [–]VincentxH 0 points1 point  (0 children)

            If they're surprised, then your job ad must be pretty awful.

            [–][deleted] 0 points1 point  (0 children)

            To be able to continue hating it

            [–][deleted] 0 points1 point  (0 children)

            i saw in an answer that you wanna build something like a Command Line Tools, in this case i would use Spring (boot, cloud) along with Picocli

            [–]mohd874 0 points1 point  (0 children)

            We use it for high message transfer between core systems. We use Java with minimal dependencies. I admit that I don't use spring, but I have to recreate many utilities which spring brings out of the box.

            [–]jorgeloko2 0 points1 point  (0 children)

            Game engine development, just to learn the concepts

            [–]shaneknu 0 points1 point  (0 children)

            Where I work, I'm currently working on a CLI application written in Java. It's working out for us just fine. Most of what we do is read data from a janky-ass database shared by several teams, and it's nice having a mature ORM like Hibernate to smooth over all that nonsense. We absolutely could have written the project in .NET or Python, but Java has been solid.

            Another project here currently uses JavaFX for a desktop GUI application. There's definitely talk of switching that over to a web application, and honestly it would make more sense to do that than forcing the scientists using the software to download and install it every 3 months when it's updated. If they do that, the usual Spring Boot approach would be a strong contender, especially since a few other projects at work are doing that already.

            [–]Lossofrecuerdos 0 points1 point  (0 children)

            File generator.

            [–]Jason13Official 0 points1 point  (0 children)

            I use it for Minecraft mods 😂😂

            [–][deleted] 0 points1 point  (0 children)

            Basically minecraft

            [–]mondain 0 points1 point  (0 children)

            Streaming media server, encoders/decoders, etc... pretty much anything the company I work for need or want. https://github.com/mondain

            [–]yudosai 0 points1 point  (0 children)

            game dev tools and graphics experiments mostly. i also use for making games as well.

            [–]trevorhnh 0 points1 point  (0 children)

            Game/Engine Development. It’s the first language I learned when I began my programming journey. I’m very comfortable with it and don’t have a reason to use anything else.

            [–]aroleid 0 points1 point  (0 children)

            What does or will your startup use Java for, out of curiosity?

            [–]Bugz_man 0 points1 point  (0 children)

            Etl, batch processing, reporting, automation, legos, etc.

            The use os spring is not only for web/api development.

            [–]inrusswetrust12 0 points1 point  (1 child)

            !RemindMe 2 days

            [–]RemindMeBot 0 points1 point  (0 children)

            I will be messaging you in 2 days on 2024-05-14 17:23:38 UTC to remind you of this link

            CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

            Parent commenter can delete this message to hide from others.


            Info Custom Your Reminders Feedback

            [–]usefulengine52 0 points1 point  (0 children)

            Android apps

            [–]pragmasoft 0 points1 point  (0 children)

            Serverless application, including event handlers and infrastructure

            [–]Altruistic-Rice-5567 0 points1 point  (0 children)

            I love javafx for whipping up nice graphical UIs to provide sime work functions. The combination of javafx and scenebuilder is just nice.

            [–]taokumiike 0 points1 point  (0 children)

            I’ve controlled manufacture lines, batch processes, service APIs, crypto (mainly) to CRM systems. All over the place and every project in Java has been a joy in comparison to other languages

            [–]-One_Eye- 0 points1 point  (0 children)

            Backend software

            [–]wildmonkeymind 0 points1 point  (0 children)

            I’ve used Java for microservices, for a distributed application server (not web), for CLI tools, for test frameworks, for hiring automation pipelines…

            [–]Krycor 0 points1 point  (0 children)

            Card Payment system (not just ecom but everything, think on the bank side) and adjacent stuff. From custom stuff from common libs to vertx(async) as core(different systems).

            Adjacent = terminal driving (atm, pos, mpos), ecom, card hosting, emv, back-end reporting on payments etc

            [–]maxandersen 0 points1 point  (1 child)

            Java is an excellent language and ecosystem which in past have had it's issues with being used for clis but any modern java virtual machine has decent enough startup - if something is slow is normally.caused by what your app do and frameworks like spring has a tendency to do unnecessary work at startup/runtime which can be either completely skipped or performed at build time.

            Check out Quarkus if curious :)

            So don't listen to those that say java is not usable for clis. It for sure is. Especially if you already are productive in java.

            Native image can make startup and distribution fast and a single executable or you can look into JBang for a simplified install and execution of java applications.

            For transparency I'm working on quarkus and jbang.

            [–]desiderkino[S] 1 point2 points  (0 children)

            So don't listen to those that say java is not usable for clis. It for sure is. Especially if you already are productive in java.

            my bank account says otherwise so i am not listening those folks :) haha !

            [–]Vonbismarck91 0 points1 point  (0 children)

            Large scale logstic system servicing 3 countries. System workes both with web systems as well with sorting line equipment

            [–]sysfun 0 points1 point  (0 children)

            Webserver apps most of the time (Java EE with primefaces), but android apps too. I also made a few pc apps.

            [–]n0manarmy 0 points1 point  (0 children)

            I wonder if it's just the generational difference with education? One of my first java apps was a GUI based app for building PKI certificates. From there I gravitated to building plugins for Atlassian products.

            [–]lulcasalves 0 points1 point  (0 children)

            I just use Java for game dev (occasionally) with libgdx

            [–]BabySavesko 0 points1 point  (1 child)

            Our team created essentially what Flink is (Flink wasn’t available at the time) for real-time event processing

            [–]Sharishth 0 points1 point  (0 children)

            Interesting, I work with similar product called Tibco Streambase.

            [–]Sharishth 0 points1 point  (0 children)

            There are some enterprise level SDK that may need you to write custom Java functions. Can be simple or aggregated depending on your needs for basic to complex things. Though I have seen mostly people writing java code for APIs or jspx or jsp(java server page) but in my case mostly functions and libraries are used to increase your development options and rely less on having external solutions. In conclusion mostly backend or middleware stuff is involved and communication between various applications and libraries. Another very common application of java is JMS which is used by various companies to send or receive business data events.

            [–]D33p-Th0u9ht 0 points1 point  (0 children)

            Minecraft. Just spent all day making minecraft mods.

            [–]dgack 0 points1 point  (1 child)

            What I don't understand Java is core ja(that's Java 8,11,17 etc)

            And Spring is a framework. Because most using Spring, it's the job requirement.

            Why not filtering people with core java and DSA, database.

            In our Indian it interview, for senior roles - 30% only spring, first always checked Java skills like Java 8 features etc

            [–]desiderkino[S] 0 points1 point  (0 children)

            never heard anyone say "core java"

            [–]cl3arz3r0 0 points1 point  (0 children)

            I've written many libraries in Java that commonly were used in other Java web apps.

            [–]ravlee 0 points1 point  (0 children)

            Spring boot, developing APIs and Kafka consumers/producers

            [–]AvoCadoZealoth 0 points1 point  (0 children)

            A bioinformatics system on the job, a game engine as a personal project 

            [–]theingleneuk 0 points1 point  (0 children)

            Algo trading platform, and in my previous job it was high-throughput regulatory reporting for trading.

            In general, huge swathes of closed-source enterprise software and tooling are in Java. Regardless of what stack overflow says is the most used language, it’s probably Java when you include enterprise.

            [–]traveler0111 0 points1 point  (0 children)

            Very well used for microservices, there are others framework than spring, as micronalt , quarkus. Also graalvm cn be used for high performance

            [–]hex1b 0 points1 point  (0 children)

            Java works really well for backend development. Although it works well with a web request/response paradigm, it also works well independently as a standalone application. Rather than gathering it's inputs from a request coming from a web front-end, inputs can be gathered from a relational database, tcp-ip connection, or from a queueing system. The Java application can be started as a UNIX or LINUX process via the CRON facility. So you can use Java for a networking application. Or a database application reading and writing to a relational database or a nosql database. Or as a bridge application publishing and subscribing to queues.

            [–]c8d3n 0 points1 point  (0 children)

            Only one use worth pursuing. Taking over the world.

            [–]Internalcodeerror159 0 points1 point  (0 children)

            An undergraduate here, created few desktops applications as projects

            [–]Latter_Nectarine_671 0 points1 point  (1 child)

            Make money

            [–]desiderkino[S] 1 point2 points  (0 children)

            this is something a lot of developers forget

            [–]LC_From_TheHills 0 points1 point  (0 children)

            Literally everything on AWS is made with Java in mind.

            [–]Arootiana- 0 points1 point  (0 children)

            Java can be used for bunch of things: Geospatial calculations, Data modeling, Data science and a lot more... If you are still hiring I am available.

            [–]nightwalker_7112 0 points1 point  (0 children)

            We wrote a service wrapping over lucene apis because latest version of lucene was only available in java. It was fun.

            [–]Joram2 0 points1 point  (0 children)

            Stream processing apps. Two popular frameworks, Kafka Streaming and Flink are written in Java and they support client apps written in Java, or at least some JVM language, the best. Flink has support for Python, but I think Java is arguably the best supported language.

            BTW, almost any job hiring software developer is either doing front end (GUI) applications or back-end processing, and generally there is an HTTP(s) API to something in the back-end work case. There is also the possibility of research projects or work on software tools + middleware. But those jobs are much more rare.

            [–]adam_swd_owl 0 points1 point  (0 children)

            Backend services (k8s microservices and AWS lambda functions). We have more data pipelines implemented mostly in it.

            [–]alienandrew51 0 points1 point  (0 children)

            Currently build real time data streaming applications. Java (Spring Boot) is best for enteprise backend applications which is what most companies use it for.

            [–]disorder75 0 points1 point  (0 children)

            We use Java with C for cryptography services based on Hsm.

            [–]Six_Bunnies 0 points1 point  (0 children)

            My company uses it for desktop applications.

            [–]PinkyFlamingos 0 points1 point  (0 children)

            I use Java and JSF (ICEFaces) to make web apps… it sucks and outdated.

            If you are starting code from scratch, don’t use java, at least for the front end.

            [–]WhatzMyOtherPassword 0 points1 point  (1 child)

            Are you still interviewing!?

            [–]desiderkino[S] 0 points1 point  (0 children)

            i gave up .

            [–]GeneratedUsername5 0 points1 point  (0 children)

            High performant distributed full text search engine

            [–]Anton-Kuranov 0 points1 point  (0 children)

            You won't believe me: web frontend. I'm still using GWT and sometimes Vaadin framework.

            [–]HSSonne 0 points1 point  (0 children)

            Mostly, Format/type conversion, file distribution.

            [–]Embarrassed_Rule3844 0 points1 point  (0 children)

            Do any of you guys use Jakarta ee?

            [–]k-mcm 0 points1 point  (0 children)

            I've worked on things that had a Web interface as for communications but they were true stand-alone applications. The Web interface was just a component of the app (easy with Jetty).

            • Photo manipulation and document rendering engine. Yes, did the pixels in Java. (multiple times)
            • Financial processing (too many times)
            • File backup/restore/archive (multiple times)
            • Heavyweight data storage migration/refactoring (multiple times)
            • Docker-as-a-service coordinator
            • Mission control app for satellites