Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The issue with Java/Swing is that it limits development velocity and makes job less appealing for current employees.

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.



Meh, I've done typescript node.js and java play framework projects interchangeably for the past two years and honestly there isn't much of a difference when it comes to velocity or code verbosity.

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());


I agree. I work with Java at my $dayjob, and I must say that the introduction of Java 8, as well as JavaFX becoming a de-facto standard Java UI toolkit, made this language much saner to work with for building anything GUI-based. It's no Common Lisp, but coupled with a decent IDE Java today isn't significantly less productive compared to other mainstream languages.


You forgot to declare the package (i.e. the file path), and the class name (i.e. the file name), and the class definition so that the Verb you posted is chaperoned by a Noun.


Well, you'd have those things in any language. A route definition, some kind of namespace, a controller object implementing a method for the route, the last bit being what I posted code for. My point is: Java doesn't need to be worse than other languages in any of those things anymore.


That's not true universally. While there is a hot market for startups based on Angular ( or is React these days?) and microservices or other such things the market for enterprise desktop software is still there.

Try writing a serious CAD application in HTML5/JS for example.


https://www.onshape.com Build by some Solidworks people offering basically the same experience but in the browser with server side computation. Very promising as it tries to solve problems which the older CAD players can't tackle with there current desktop tech.


God, I have such mixed feelings after viewing the product overview video on their site.

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/.


You guys all have kill cords attached to your wrist, right? https://github.com/hephaest0s/usbkill


I dread whenever I need to open MS Word and choose G Suite anytime I need to write a longer document...


Because you are on Linux, or because you like your software laggy? ;).


Office suite takes a ridiculous time to load on OS X. Plus stuff like Word is painfully over bloated.

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 don't think writing a browser based, professional, CAD application is out of the question. Especially with WASM gaining support in modern browsers and WebGL2.

I think this was done a few years ago, but it still amazes me.

http://www.meshlabjs.net/


WebGL2 is a nice toy for writing blog posts, nothing more.

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.


It's enabled by default on Chrome for Android and Android webview now.


Not if the GPU is blacklisted for whatever reason, in spite native games not having any issue with it.


For a company like Palantir, I would imagine most of their clients are running older browsers, possibly even IE <10 still.

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.


Maybe two fun data points:

-- 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 build@graphistry.com !


Hardly. I work in a company who's stack was Java from the beginning as a "scrappy startup." Some of the folks who have been here the longest are some of the first to jump on any heavyweight Enterprise Stack they can think of.


I think Java still makes a lot of sense on the server.


Sure it can make perfect sense. There are plenty of developers who know it well enough to be productive and it's certainly fast enough for typical server applications even at a large scale. It's the crufty heavyweight frameworks and ceremony around the ecosystems that can be a bit off, in my view. Also I'm not a fan of OO programming for most use cases. It has its place, like any paradigm, but I'm not convinced that place is as large in scope as others might think.


I could pound out a UI in no time flat using Swing compared to anything related to JS. Desktop applications are not fashionable, but they are effectively still something that webapps and mobile merely strive towards.


nonsense


I welcome you to start your next hot startup in 2017 using Swing/Java instead of React/React Native/Node/Ruby/Python/Go/Rust/C++ etc. The merits of the stack are determined by both intrinsic factors and the market. Ignoring the market (remember Palantir is hiring in SV / Palo Alto) you risk alienating potential hires and current employees. [1] Another great example is EHR/EMR market with Mumps etc.

[1] https://www.quora.com/Why-does-Palantir-use-Java


Prospective employers:

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.


It's not silly to want to use tech stacks that are commonly used instead of learning a stack that won't transfer elsewhere, I.e epic


It's absurd to compare MUMPS with Java. Java is very much used by modern companies on the backend and for desktop applications.

You can still make your SV rockstar programmer salary writing code in Java. Don't they still use it at Google?


Java is still the language of choice for many new projects at Google. Your options for new large server-side projects are, realistically, C++, Go, and Java, arranged in order of how high-level the language is. Java is a perfectly rational choice even today given those options.


Yes, they use it at Google and basically everywhere else. The JS circle jerk is extreme here. JS has its uses - mostly because it is the default language of the web and the web has many uses. That is all.


I'm a recent founder a big data platform and a lot of our code is Java.

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.


There's a sheep in your HQ?


In terms of hiring, I think you're right.

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.


When it comes to NLP, Java is one of the best languages because of the library support (e.g. Lucene, Tika, Stanford CoreNLP).

You don't have to like Java, but it is fine to use and there are plenty of potential hires.


>The merits of the stack are determined by both intrinsic factors and the market

Sure, but isn't Java basically the biggest language in the world? And it can't "limit development velocity" more than C++.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: