Hacker Newsnew | past | comments | ask | show | jobs | submit | more nimchimpsky's commentslogin

Which is torture, so they could do that until he tells them the passcode aswell.


It's true that torturing a person is an effective way to change what that person wants. It doesn't always end with the torturer getting what they want, though.


I thought supermonsoon was much more likely.

Hyercane sounds like sci fi.


Hypersharkicane


Maintenance mode, that's ridiculous.

It's just had one of the biggest releases in years, with 8.

And 9 I understand it is going to be even bigger, with jigsaw - the goal being much smaller dependency.

The Dev community is thriving, growing in fact. The latest release has made lots of people think Java is actually pretty good.

The reference implementation is now the open jdk. So yadda yadda yadda with oracle.


I second your comment about Java 8. Lambdas, streams and code in interfaces are extremely useful.


But it's not rapid release! If it's not releasing a new major version every two weeks it's clearly abandonware in maintenance mode! /s


yeah actually.


"engineer productivity remained constant for both Android and iOS, whether measured by lines of code pushed or the number of pushes."

Both of those metrics are incredibly shit ways to measure productivity.

I guess thats one explanation as to why the facebook app is 200mb+. They've been superproductive with all those lines of code.

A better metric would rely on actual features or bugs, imo.


I think it's obvious that they're bad at a small scale (individually or for smallish teams, maybe < 30 engineers?), but I don't think they're _obviously_ bad for teams of 50+ engineers.

Also, there is a difference between using them as metrics that you want to raise vs metrics you just don't want to drop or fluctuate wildly over time.


Some people at Google are actually quite proud of six digit _negative_ line counts they've contributed. And I think they have every right to be proud of that.


Facebook has a "dead code society" t-shirt for these kind of single commit delete numbers as well :)


That’s why you track changes made.

Throughout my career imve found that number of changes comitted correlates pretty well with features delivered and bugs fixed. Also with feature and bug size.

Yes there are edge cases when it takes a day of debugging to make a 1-line fix, but those are rare. Just like it’s very rare to deliver a useful new feature by changing a single line.

Yes there are also features that are tracked as a real ticket and require a 1-line copy change and nothing else. Nobody thinks doing those makes you hella productive, it just needs to be done.

As for padding lines and changes. That’s what code review is for.


That would be a bad metric for those "negative" folks as well. Their job is called "code cultivation", and they modify everything in Google's monorepo to make it suck less. Often this is done using automated tools, with a subsequent full run of affected tests and human code review. I've never seen anything like this anywhere else, and I probably won't for the rest of my career.


As to what one should track, one should track _results_ if you've managed to accomplish something useful with very little code, that is decidedly better than accomplishing the same with much more code and hundreds of check-ins. Simplicity is the ultimate sophistication.


> one should track _results_

One should, but companies often care more about effort than results. They can manage based on effort, they can't manage based on results.

If you spend 2 days getting the same results as somebody else does in 5 days, guess what, they don't want you milling around those extra 3 days and bringing morale down. Gotta give you more work!


And worse: in more than one megacorp (including Google in late aughts) I've seen _complexity_ as a requirement for promotion. Google has tried to get rid of that de jure, but it remains a requirement in practice, so people do what they are rewarded for: create complexity.


Well at that point I think you've hit the agency problem where management's goals and the organization's goals are different. The organization's goal is delivering results but that is not necessarily what management wants right now.


If you use "number of lines of code" as a metric for productivity, soon people will double-space their code. We went through that in the 90s.


Were there any other signs you had shitty programmers on your team?


It's not about shitty or good, it's about management. Whatever you reward, that's what people will give you.

See also: https://users.cs.duke.edu/~ola/courses/cps108/code/java/harp...


You're arguing against an extreme, though. Sure, if LOC added (or even just changed, which is the saner metric) was linked directly to bonuses, it'd be ripe for abuse. But that completely ignores the more reasonable use in the article, as one (of several) metrics used to measure the impact of their release process.


You should measure what you want more of. Unless for some reason you want more lines of code, then use a different metric.


They should measure and reward lines of code removed instead.


Measuring productivity in LOC...


I just think they are bad for anyone. Its not hard to measure actual useful things like features or bug.

Why even bother measuring lines of code/number of commits.


Measuring bugs and features leads to other equally horrendous problematic behaviors.


> Its not hard to measure actual useful things like features or bug.

Presumably your consulting business has really taken off now that you have such unique insight into a historically unempirical area of our field?


Obligatory Bill Gates quote:

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.


I like this quote because it's so accurate. LOC does provide some information. You'd be unhappy if either LOC or weight were close to zero.

That said, one of my favorite metrics is number of deleted LOC.


Literally the next sentence: """Similarly, the number of critical issues arising from mobile releases is almost constant regardless of the number of deployments, indicating that our code quality does not suffer as we continue to scale."""

This is 'productivity' in the sense of the release eng team attempting to measure the volume of code changes they're pushing out and whether changes they made to the push/release process impacted other teams' ability to iterate. Unless you have some insight as to why adopting a more continuous deployment process would change the ratio between LOC pushed or code-changing-diffs pushed to features-or-bugs specifically at Facebook such that they would not function as acceptable proxies, questioning the metric chosen seems hollow. It's certainly not 'productivity' in the sense of whether people on product teams are considered to have done a good job or are deserving of bonuses / promotions.


I think what they are trying to measure is how much is this build/release system effecting productivity of the engineers and changes their behavior. Not how productive the engineers are per say.

If the build system is super slow and just breaks all the time, your going to see a drop in the number of commits landed per day. If git is completely down and commits per day drop per 0, then you have an outage ;)


Some people, perhaps you as well, take offense at LOC metrics because they're (in theory) easy to game, via redundant code, whitespace, verbose vs concise languages, etc. And because good developers know that small code and systems mean fewer opportunities for lurking bugs and points of failure.

BUT, if a team of developers is not padding their code, nor has shitty programmers who write page after page of nonsense, then in the end the proportion of functionality to LOC should be fairly stable, and thus LOC is a useful and meaningful proxy metric for the amount of new or changed functionality in a codebase.


I'm not offended I just think its shit.

Its not difficult to track "velocity" via story points,features or bugs and is at least a step in the right direction.

LOC going down is often adding the most value.


Story points vary wildly between teams. I'd argue that they're a worse metric than LOC


Sure, deleting unused or bad code is a good thing, or refactoring or rewriting something more tightly. But you can't implement a new feature just by deleting code. I've never been in a codebase that did more and more by getting smaller.

People also take offense because a management weenie can misread the metric and penalize people who delete code, or write concise code, or solved a super tricky critical bug after a month of debugging with a one-line change.

But I still claim, these all normalize in the end. If a developer on my team has committed only 30 lines in three months, sorry but I'm gonna be skeptical of their actual productivity.


> If a developer on my team has committed only 30 lines in three months, sorry but I'm gonna be skeptical of their actual productivity.

I've just committed 3 lines that fix a bad intermittent race condition that took over a month to track down (partially because I can't test it and have to rely on other people who aren't 100% available). Is that unproductive?


It's not.

On the other end, I'd fully expect someone doing that producing : - 3 lines of fix - A comprehensive documentation of what happened here, how to diagnose it and track it down, and how to avoid it in the future, (ideally if the company supports it with an oral explanation to concerned teammates).

In the end, I'd be very skeptical of one month of work letting 3 LOC as the only tangible output too.


> A comprehensive documentation of what happened here, how to diagnose it and track it down, and how to avoid it in the future

The problem and diagnostic conversations are documented in the JIRA ticket; the solution is documented in another ticket which "fixes" the first one (for abstruse internal reasons); and more commentary is provided in both the comments around my fix and my verbose commit message.

(Also there's a whole bunch of angry Slack ranting about this issue but that probably doesn't count as "documentation".)


I never meant to say you did a bad job (looks like you certainly did a great one !), but just that a month of work typically leaves in the end, for good reasons, more than 3 LOC in "committed" (in the sense of accessible to the company as an asset in the long term) work, which was apparently the case for you too !


> leaves in the end, for good reasons, more than 3 LOC in "committed" work

I suppose it depends what people mean by LOC. I guess my 3 LOC isn't actually just those 3 LOC. Definitely an interesting thing to think about at least. Ta!


During the time those others arent available as you say I would expect you to be going through the backlog and looking for other ways to contribute.


That assumes there's sufficiently small chunks of work in the sprint (we're not allowed to touch anything out-of-sprint) to fit into the gaps whilst I'm waiting.


You may want to push back on that. I understand the reasoning but anytime upper management tells people not to work on stuff there is usually a communication breakdown some where.


> But you can't implement a new feature just by deleting code.

No, but you can implement a "story", i.e. the removal of code is presumably a ticket somewhere in the system. (Or could become one.)

> I've never been in a codebase that did more and more by getting smaller.

Run on a smaller system? Run faster?

(I'm not sure whether or not I agree with the parent's point, nor yours, just offering suggestions.)


> If a developer on my team has committed only 30 lines in three months, sorry but I'm gonna be skeptical of their actual productivity

If LOC is what you rely on, I'd be sceptical of many things, sorry not sorry.


>Both of those metrics are incredibly shit ways to measure productivity.

In theory yes. In practice, when you know your team and their average output and quality, no.

>I guess thats one explanation as to why the facebook app is 200mb+. They've been superproductive with all those lines of code

Or you know, most of it is assets, debugging symbols, stray frameworks and libs not stripped, etc. As is the case with almost any app beyond a few MB.


> Both of those metrics are incredibly shit ways to measure productivity.

LOC or commits are certainly bad ways of comparing two different people, teams, etc. But they are fine ways of measuring whether a specific event at a specific time changed productivity, assuming a decently large team etc.


Not when they know that's what they're being measured on...


Sure, nobody should setup incentives based on LOC. But in this case it's not about incentives, it just about seeing if something changed. Nobody writing code is going to be rewarded or penalized if this number changes.


That's not really relevant; if they knew they were being measured before and after the change, it would still show if the new system had an impact on productivity - even faked.


I'd guess LoC changed is implicit in "lines of code pushed", which is a blunt measurement, but isn't the same as the traditional LOC metric and doesn't directly correlate to (rewarding) a large download.


Better measure would be number of tests passing that prove business logic.


Better metric for a business must include revenue.


this has been around for a few years, https://www.emotiv.com/ and never really got any good.

sceptical to say the least.

You just don't get enough resolution via eegs.


> better productivity

than what ? wtf is worse than atom. Even notepad++ is better.


Better in which way? In your daily usage scenario? Memory usage? I'm sure there will be cases where Vim or notepad++ works better for me. At present, vscode works for 90%+ of the things I need to do. For my usage scenario, notepad++ is not better than vscode. Use whatever application works for you, but don't say something is better or worse, without looking at it subjectively.


why are you talking about vscode ?

Last time I used visual studio it was great, levels of magnitude better than notepad++, but not quite as good as intellij.


its not missing from sql server, or oracle.


Geo/GIS is an area where SQL Server and Oracle have a solid lead over MySQL and PostgreSQL. Oracle especially handles GIS data extremely well.


Oracle Spatial isn't that different, compared to PostGIS. Except for license fees, of course.

Meanwhile, they both are missing the concept of spatial contexts.


Benchmarks and proof on Oracle handling GIS data better than PostGIS please.


sql server does. We benchmarked it at work.

If you are that interested do your own tests.


Good for you but I did not ask for stranger's anecdotes. Everything I find online does not support your point so I cannot take your word for it.


I'm not asking you to take my word for it, I'm suggesting you test it yourself using your typical use case.


And I have neither the time nor the resources to do that comprehensively.


For a person who is relying on benchmarks, you should know that benchmarks are only a rough indication of how well anything performs for a very specific use case.

Your reply is arrogant and ignorant, and you should feel bad about typing that.

> If you are that interested do your own tests.

Why is he not allowed to review your results or check what factors you benchmarked it on? If there's no citation, that claim does not stand.


lol


To be fair, Oracle is usually extremely good at most of the stuff it does. I've no idea about GIS specifically, but, generally, you get what you pay for.


> I've no idea about GIS specifically, but, generally, you get what you pay for.

That's a fascinating/contrary, albeit nebulous thing to say in a thread about Postgres...


thats not the same thing


...it's exactly the same thing.


it really isn't. Volume is the amount traded, independent of price.

10 bitcoins when they first came out, would have the same the volume as 10 bitcoins today.


> if HN ever tried to do a major re-design,

I'd love it if they did. I find its minimalism too extreme, and the way they hyperlink unintuitive,


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

Search: