7 ms·
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 prob
by svendisnigh 9y ago
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.
- jackmott 9y agononsense
- svendisnigh 9y agoI 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 https://www.quora.com/Why-does-Palantir-use-Java
- slap_shot 9y agoI'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.
- busterarm 9y agoProspective 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.
- obmelvin 9y agoIt'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
- linkregister 9y agoIt'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?
- sgift 9y agoYes, 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.
- CydeWeys 9y agoJava 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.
- 2muchcoffeeman 9y agoIn 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.
- deleted 9y ago[deleted]
- ygaf 9y ago>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++.
- rpedela 9y agoWhen 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.
- sidlls 9y agoHardly. 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.
- criddell 9y agoI think Java still makes a lot of sense on the server.
- sidlls 9y agoSure 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.
- rdtsc 9y agoThat'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.
- colek42 9y agoI 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/ http://www.meshlabjs.net/
- mcast 9y agoFor 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.
- lmeyerov 9y agoMaybe 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 !
- pjmlp 9y agoWebGL2 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.
- mynameishere 9y agoI 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.
- Joeri 9y agoMeh, 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());
- TeMPOraL 9y agoI 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.
- paulddraper 9y agoYou 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.
- Joeri 9y agoWell, 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.