Live data from Hacker News

IT Runs on Java 8

veekaybee.github.io

511–520 of 556 posts

Re: IT Runs on Java 8

#511
post #92

Fun story : i had to develop the same system for two different companies, one a startup with 3 employees (the founders) , the other a billion dollar business. Just a backend api & web interface, together with an iOS app displaying the content. I could use shiny new tech for the startup (which at the time was python on app engine and its nosql datastore, with a backbone.js framework), whereas the other one forced me t…

The "problem" is, in a big corp nobody gives a damn how much things cost. But you see, it's only a problem from a certain point of view (you want to get things done quick and cheaply). Otherwise, it's not a problem at all. It looks like you got yourself a nice support contract with that big corp, and the big corp will happily absorb the cost - everyone's happy.

Re: IT Runs on Java 8

#512
post #490

Earlier quoted context omitted.

Unlike the others, I'm going to disagree with what you've said. If you have a mono-repo set up you can develop like it's a monolith but with the added benefit that you don't have deploy the whole macro-service at once. I think people are just spinning up a bunch of unorganized services and calling them micro and then complaining about it. If you're on a small team that can build a clean monolith, the work to make the…

I have never seen a microservices architecture where transactions spanning services were trivial.

If you need to do that then you've most likely cut along the wrong service boundry. Same thing can happen in a monolith, although you can kludge something out with spaghetti code I suppose. Doing it the right way in both cases takes about the same amount of work.

Re: IT Runs on Java 8

#513

Earlier quoted context omitted.

> microservices definitely make a host of issues harder ... I agree with all the issues you've stated, but I'd like to add one more. Microservices arguably make it much easier to build systems with circulate dependencies leading to weird race conditions and deadlocks. Consider two units of code A and B. If implemented as classes, modules, or libraries, it's relatively easy to spot and prevent A calling into B which i…

There are few options, but what do you need beside a graph data structure? We had a pipeline consisting of microservices and Kafka topics. Simple if/then logic quickly became problematic so I implemented our flow control as a directed acyclic graph, and it helped tremendously. It's also easy to render your graph out with any number of visualization tools to quickly understand/validate work flows.

> There are few options, but what do you need beside a graph data structure?

I don't see how graph data structure solves this problem. Suppose you've created a photo sharing app. One microservice, A, has the graph database and stores the photos. One service, B, uploads and downloads photos. And a third service, C, applies filters to photos.

It's pretty easy to architect these services such that the download service B uses the filter service C in some situations, and the filter service C uses the download service B in others. This is obviously a bad design, but with microservices it's easier to make these bad design choices because the folks who wrote one service have little information about the other.

Re: IT Runs on Java 8

#514

Earlier quoted context omitted.

$30,000 for a Civic? You better be getting gold-plated cup holders at that price.

1x $1900 Civic 1x $100 eBay turbocharger 1x $1000 misc expenses 27x $1000 JDM long-block There's probably less fun ways to spend $30k on a Civic too

[deleted]

Re: IT Runs on Java 8

#515

Earlier quoted context omitted.

$30,000 for a Civic? You better be getting gold-plated cup holders at that price.

1x $1900 Civic 1x $100 eBay turbocharger 1x $1000 misc expenses 27x $1000 JDM long-block There's probably less fun ways to spend $30k on a Civic too

Like in Singapore:

Example A - Honda Civic 1.6 i-VTEC

    Registration Fees - S$220
    OMV - S$19,370
    Excise Duty (20 percent of OMV) - S$3,874
    COE (as of 23rd March 2018) - S$38,000
    ARF - S$19,370
    VES - $0
Basic Cost of Car - S$82,460 (~ 60k USD)

https://www.sgcarmart.com/news/writeup.php?AID=171

Re: IT Runs on Java 8

#516
I don't think there's anything super surprising about running on Java 8. I would be more worried if she said Java 4! Java 11, the next long-term support release after Java 8, came out late last year, and there were a lot more breaking changes between 8 and 11 than there were between 7 and 8. I had to a lot of dependencies, especially the ones that use reflection heavily (Mockito and Lombok come to mind!).

Meanwhile there are still young Java programmers who think that since 8 is the newest and sexiest thing, everything has to be written using lambdas and streams.

Re: IT Runs on Java 8

#517

Earlier quoted context omitted.

> provides little concrete value to the business The concrete value doing such things add to our business is happy staff (which you mentioned), which means the best people don't leave, and stat excited and productive for the long term. Also, when hiring, because it helps us get the best people to join us in the first place. It's not just about "bleeding edge", it's about giving dev teams the freedom to do that if the…

The costs of doing such things include... 1. Half-done projects started by some happy staff who then went on to start the next project in the next shiny new thing and either more-or-less completed by someone who was just about capable of cut-n-pasting without understanding or who decided that some new shiny thing needed to be added to make the rest wonderful. 2. A monstrous stack of projects in 637 different programm…

I always hear people warn about these things, but haven't seen it in practice at all, as long as those who write the systems are also responsible for operating them and not subjected to inappropriate external interference.

Of course, letting someone write whatever and then move on and leave it to someone else is a problem, but that's a problem regardless of whether they used bleeding edge tech or not.

For example, I've personally seen more tech-debt sins in more traditional monolithic Java + rdbms applications than I have an any of the Go based micro-services + nosql/etc I've seen over the years. I'm not trying to prove that "bleeding edge" is therefore better because it's not. I'm saying it's irrelevant.

The problem of leaving behind unmaintainable crap isn't about the tech, it's about the management, the team processes, the prioritisation process etc.

Re: IT Runs on Java 8

#518

Earlier quoted context omitted.

> Java has a big selection of GCs, and each has their bunch of knobs for tuning. And you have to pay attention to that stuff. You never have to touch them in the Java world either, unless you like making performance worse that is. I've never ever seen a case where fiddling with garbage collection parameters didn't make things slower. I worked with a guy who worked on a popular java compiler, and he says the same thin…

What sort of scale are you working at? At our scale, it is normal to look into these sorts of things. Reading and understanding and applying articles like the following is absolutely necessary. http://clojure-goes-fast.com/blog/shenandoah-in-production/

Medium scale. It's not like I need to pimp each of my servers like it's a Honda Civic.

If the load gets too high, I just add another instance.

It's way more economical than wasting developer time fiddling with GC params.

Re: IT Runs on Java 8

#519
post #456

Earlier quoted context omitted.

Jython seems to be much, much slower than CPython, actually: https://pybenchmarks.org/u64q/jython.php The only benchmark where it's faster is the one involving threads, which makes sense. CPython definitely has multi-threading support, but it also has the Global Interpreter Lock preventing threads from actually executing bytecode at the same time. Jython doesn't. People have written patches that successfully remove t…

I consider that as basically no multithreading support. CPython multithreading is useless in comparison. Those benchmarks indicate that the Jython compiler is far from optimal. The equivalent code rewritten in Java would be an order of magnitude faster. https://julialang.org/benchmarks/ (note the single Python outlier there is the result of calling a C library for matrix calculation). Anyway, the JVM and CPython are…

All that might very well be true, but I was responding to your assertion that "The JVM ... can even run Python code (Jython) faster than CPython".

Re: IT Runs on Java 8

#520

Earlier quoted context omitted.

We’re both making points based off anecdotal experience, so who knows. I have been a reader for the last 7 or 8 years, but my experience is just one subjective data-point. Having said that, the most apparent change to me is in the tone and substance of the comments rather than the front page. And it isn’t a huge change. Just noticeable for me.

You don’t have to use anecdotal experience. You can use the same link format for any day that Hacker News existed and see the same thing.

HN archives are stored in BigQuery, so it would be possible to do an analysis that was more rigorous than a human reading the thousands of front pages to see a pattern of difference.
Post reply on HN