As far as the UI, they should just do that in Javabuilders and call it a day.
Which is what matters when delivering business value to fulfil customer's needs, not to be something cool to write blog posts on HN.
Also a few days reading "Filthy Rich Clients" would make wonders to some Swing developers that actually care about UI/UX.
How do you know?
While HTML5/JS is not without its own problem. Yet using it over a native framework like Swing, enables the development process to leverage external knowledge (Open Source libraries, etc.). This problem is further worsened when your competitors in enterprise Business Intelligence space can leverage those tools, while you are stuck with maintaining the old stack for government customers.
I think many people have a misconception of what modern java is. They still think java code is all this verbose monstrosity where every single thing requires massive amounts of boilerplate code. And yes, at one time it was that thing. But modern java isn't like that at all, with streams, collections, optionals and closures getting rid of much of the boilerplate.
For example, this is the entire body of the REST endpoint that fetches a drawing for a particular location in my current codebase. It wouldn't be any simpler had it been written in typescript.
return Drawing.getForLocation(id)
.map(d -> ok(Json.toJson(d)))
.orElse(notFound());Try writing a serious CAD application in HTML5/JS for example.
On the one hand, you can't deny the wins that comes from bullshit-free operations - no installing, no permissions, no need to deal with sysadmins to approve a new program[0], and updates do themselves. Files are backed up and trivially shared across devices.
On the other hand, you're now locked in to a vendor system, with vendor software doing file management, version control and sharing. You need constant access to Internet to do anything at all.
Then there's also issue of performance. I actually registered for a free personal account and started playing with this software. I saw more-less what I expected: it kinda works, like most such web tools kinda work - good enough to do something, but laggy and slow enough to piss me off if I were to spend more than 10 minutes designing anything in it.
--
I can understand all the cloud nonsense (though I prefer regular files, thank you very much). But from the quick experience, the application would feel much better if it was a desktop/mobile native program, not a webapp. It's like with Google Office suite - looks cool to have it in a browser and it sorta can help with the basic things, but try to build a reasonably-sized document, spreadsheet or slideshow, and the performance drop will make you tear your hair out.
--
[0] - How security is done on work machines is ridiculous, though it's a separate topic. I'll just leave this: https://xkcd.com/1200/.
If you need to print something that looks reasonably nice - then maybe Word would make sense.
Thankfully we are sort of living in digital era where printing is synonym to bureaucracy.
I think this was done a few years ago, but it still amazes me.
All my mobile devices have OpenGL ES 3.x running intensive native games without issues.
Yet for mobile browsers I have to specifically enable the WebGL 2 support.
No user without technical skills is ever going to deep dive in the browser flags to enable WebGL content on computers that don't have any issue playing 3D games.
I'm not familiar with their product, but a web app would certainly introduce more developer time spent on keeping cross-compatibility with older browsers while a Java/native app is practically WYSIWYG.
-- We achieve magnitudes higher visual scale via GPU client/cloud computing... while running in a browser
-- We intersect with some of Palantir's customers (though we're more fortune 2000 sec/fraud/etc.), and are deploying fine. WebGL is ~5 years old.
This may also be a good point to note.. The Graphistry team is ~doubling! If scaling visual analytics for cybersecurity, anti-fraud, etc., sounds worthwhile, please send your CV/LinkedIn/Github to [email protected] !
If your problems are interesting and we get along well, I will happily work on whatever out-of-fashion tech stack you have that the web development intelligentsia sneer at. And we'll do great things!
I had a blast making Wordpress development not suck and it led me down a lot of interesting roads and brand new ideas.
These other potential hires who only believe in The One True Stack are silly.
You can still make your SV rockstar programmer salary writing code in Java. Don't they still use it at Google?
But better yet, we have embraced Cloud Native, so between containers and microservices it doesn't really matter what language we use.
We use Java, Python, Go, Ruby, C++ and our front end is React.
Individually, every language we use is both powerful and flawed. But together it builds a pretty amazing platform.
But I really resent this sort of mentality. It causes a lot of work trying to 'upgrade' your tech stack when you'd get more benefit from fixing your architecture, refactoring, building new features, fixing bugs etc. I'd rather work on improving software in meaningful ways and make the company more money.
You don't have to like Java, but it is fine to use and there are plenty of potential hires.
Sure, but isn't Java basically the biggest language in the world? And it can't "limit development velocity" more than C++.
I suppose they could have used Kotlin, Scala, Haskell, or some other more language with a more advanced type system. But it would have been truly horrible had they written their back-end in an awful (dynamically typed) language like JavaScript or something.