I'm getting sick and tired of the verbosity and clumsiness of Java. I use it for many of my labs at uni, but then I also have to deal with it for an additional 10h/week for my part-time job working on an image analysis java swing program.
Can people who have worked with Java or similarly verbose/clumsy languages and made the switch to something else weigh in on what I should take a look at?
I've already dabbled with C and assembly and can hack stuff together with Python.
>image analysis using java wtf. Qt/C++ all the way nigga.
Andrew Allen
>wtf. Qt/C++ all the way nigga. It's out of my hands. The code base was several years old before I even started working on it.
Luis Sanchez
It's swing dawg. You take your medicine. Are you at least using Java 8?
Oliver Johnson
>wtf. Qt/C++ all the way nigga >image analysis
Wtf are you retarded?
Dominic Collins
Yeah. So at least I can streamline with streams and lambdas.
It's not always frustrating, but I hate how many steps everything takes. I can't see myself being productive without my trusty IDE either since the code base is quite large and it's, well, java.
Leo Gomez
>Swing Stop.
I get the image analysis program being in Java, but the Swing framework is balls old. Use Javafx or something. Or personally, I'd just build a rich web interface.
Jacob Garcia
When I came in there were zero unit tests or integration tests and a LOT of swing code.
I got kind of duped by the interview into thinking that they were serious about testing, but after taking the job I realized that they were talking about checking boxes on a paper-testing, nothing automated...
Trust me, there is no saving this program from Swing. It's gonna stay swing until the day they retire it due to overwhelming spaghetti.
Zachary Parker
That sucks. Proper testing is so important in project maintainability. If you want another java job, we have 10 open positions at my company. Work might be funner here.
Shit user, I'm going to start oop next year with java, how fucked am I?
Christopher Carter
>Work might be funner here. Thanks, guess you're not located in Sweden or hire remotely though?
I'm just curious if ex-java devs can tell me if the grass is greener on the other side.
Charles Bailey
It's fine. I never resented java doing little lab projects or whatever. Working on an old code base is no fun though. That might be universally true though. I've heard that languages that aren't statically typed have their own problems when the code base grows big.
Thomas Young
Oh yeah, it's a US gig. We pay relocation fees too, but we'd need US citizens or at least permanent residents/greencard holders. My job is pretty nice. I work with PDFs and get to do some NLP work with our Python guy. I'm solve the user stories however I wish and the project is fairly fresh (only a year old). Java can be very fulfilling when you get the chance to play with some obscure libraries.
For example, my boss showed me this paper: scfbm.biomedcentral.com/articles/10.1186/1751-0473-7-7 I implemented it into our pipeline and it works so good. It's such a good way to filter out crap and boilerplate (reduce wordsoup to something manageable).
Elijah Taylor
Just use a good ide and enjoy autocompletion. Othewise kotlin is the latest jvm meme, you wouldn't have to throw your existing stuff out the window.
Oliver Cook
Static typing is so important. Particularly for code discovery. When every data structure in Javascript is of type "any", it makes it hard to discover the relationship between objects, methods, et cetera.
Lincoln Rivera
That sounds great. Must be so much more interesting to get to steer the project from the start. Still got over a year left before I finish my masters, but just out of curiosity, which state are you in? I've been in a serious relationship with a yank from the D.C. area for several years now and I know we might end up in the US once I've got my masters.
Haven't looked much at Kotlin. Thought it was niched for android dev.
Yeah, seems great for smaller things but can probably be hellish if it's a large unknown code base.
Oliver Torres
C# is Java done even more wrong
Jayden Foster
well that's just bullshit. Then by that rule of thumb in C++ "auto" is making same problem?
Clojure is example of dynamic typing done right.
Benjamin Miller
>verbosity and clumsiness Java is not verbose. Ada is verbose. You probably mean the APIs are not convenient to use.
Ryan Rogers
With auto you can get the inferred type from the ide. Still, we have banned its use in our code outside some very specific cases.
Dominic Powell
>Ada swear its the same guy whos been posting about this language in every thread for the last week
Adam Ross
It's the ghost of ada lovelace
Connor Nguyen
>clumsiness stop using swing
Leo Collins
Fuck off microshill.
Jordan Williams
>he uses Java 6 still in 2019
Thomas Perry
>AKSHUALLY DYNAMIC TYPING IS FINE, IT'S WEAK TYPING THAT IS BAD
Yeah yeah whatever pal. Clojure is dead.
Ayden Smith
>type inference is the same as dynamic typing kill yourself
Landon Richardson
Any JVM language is shit. As long as you use the JVM Larry Ellison's balls are firmly rooted in your throat.
Go, python and C are the only good languages. If you already know the other 2 then learn Go.
Nicholas Hall
if your language requires an IDE, it's worthless
Juan Hall
What language requires IDE? wtf are you even talking about
Camden White
java is really fucking difficult to write without an IDE
Isaiah Myers
Maybe if you're a brainlet. I've done all my java school assignments in vim for the past 2 years.
Ian Robinson
>image analysis java swing.. sounds horrific..
OpenCV + python is your friend.. C -> Cython is also your friend
Gavin Miller
Google used to be extremely Java heavy and they decided to invent Go and push it hard, opting for no OOP sticking to fast and concise imperative style. It's basically a modern C. If that doesn't prove Java is shit I don't know what does.
Henry Mitchell
Scala. But it's not the low hanging fruit for brainlets.
It's a comparatively fast-moving ecosystem with a powerful [which means also conceptually diverse and generally rather complex] language.
Carter Myers
> If that doesn't prove Java is shit I don't know what does. The ratio of succesful Go to successful JVM mixed / pure Java projects is really not particularly leaning towards Go's side, regardless whether the NIH syndrome at Google produced something more or less workable.
Go's greatest successes in the wild outside of Google seem focused more around things that might have been perl, python or shell scripts. Things like Docker, Kubernetes, ethr...
Henry Sanders
Dude. School assignments are not the same as getting a large code base dropped into your lap that you now quickly have to figure out and support.
Good luck exploring a large java code base quickly without an IDE, friend.
Colton Ross
>we'd need US citizens or at least permanent residents/greencard holders. Every open position does this. Why I can't work in US but pajeets get imported by the dozens REEEEE
Something like 3/4 million Indians are in the green card waiting queue.
Try cloning yourself as many times, some of you will probably get in.
Nolan Adams
be specific. I don't think Java 11 is verbose anymore. You're probably just too stupid to make use of all the Java 8 features.
Gavin Sullivan
Stick to your own country. We already have way too many foreigners here.
Chase Clark
also this.
Hudson Cooper
You can write scala which interops with java. Of course now your codebase has two languages, so it's probably a no go.
Scala is a really nice language in my opinion, and the typelevel libraries are really solid (fs2 for stream, doobie for jdbc, cats and cats-effect for autism and so on), highly recommended
Christopher Brown
>2019-1 >not using kotlin oop master race
Grayson Hill
You need a good IDE with auto completion if you want to have programming in Java be nice. AKA get IntelliJ.
Isaac Baker
>verbosity An IDE does 99% of it for you. Java just prefers to be explicit. >clumsiness In what way is it clumsy?
Zachary Kelly
forget it if the project uses swing too
Brandon Long
JavaFX is fucking shit too though, fxml tries to do MVC but you just end up with empty templates because you can't put any logic in the fxml to load and display dynamic object types.
I use to meme about hating web dev but after trying to build something semi functional using JavaFX I'd literally rather just push data to a rest API and display it with a web front end.
Logan Price
TornadoFX.. also JavaFX is still 100x better than Electron
Ryder Powell
>can't put logic in fxml that's not what fxml is for
Caleb Murphy
Someone should unironically port android xml layouts for use in desktop applications. They're probably the most actively developed Java ui framework. And it's legitimately comfy to use.
Dominic Sullivan
I mean display logic i.e. If var display x else display y or looping over a list of objects and displaying their properties etc. all of that has to be done in the controller where you build up a panel and then insert it into the fxml anchor. You can't just pass a list of objects into the UI and let the UI handle the display (which is how it should be)