> under 21 ft away, at which distance a knife is as dangerous as a gun.
No, it is not as dangerous.
To use gun from 7 meters away, you have throw it, which takes way more movement hand movement and time. While you should not rely on it, it is very feasible to just move out of the way of the thrown knife.
Other possibility getting closer to you. Running will take 2 seconds. (Not a lot, but definitely not as dangerous as a handgun)
The statistic isn't related to thrown weapons. It's how quickly you can close the space between you and your adversary, as well as how much bearing drift you can create as you do so.
If you do that daily, sure it is easy. But a lot of human behaviour is automatic, based on what we are accustomed to do daily. (During covid there were many videos, where person on the screen says “… also avoid touching your face …”, while touching his/her face)
- What's the catch? It's better than forcing the population to pour all their money into stocks that they don't understand just to stay ahead of inflation. This form of passive investing is creating a lot of problems under the surface.
- The one with the most control would get the biggest share of liability.
Blame attribution doesn't have to be precise. For example, if a police officer catches someone littering and it's a plastic Coke bottle, they would fine the person doing the littering, but also a small fine for Coca Cola for having made their bottle out of plastic... If the problem is significant enough, the CEO would be fined a large fine and lose their job along with any employees responsible for the design choice of using plastic. The shareholders would also get a fine (potentially taken out of their dividends).
Some panel of councilors in different towns can decide on the fines independently and fine any local branches that the company has.
It would open up opportunities for smaller companies which is good. Everyone is working constantly anyway; life would be better for most people if they could operate their own company.
Firstly, I question the efficiency of large companies in terms of delivering what people actually need. Secondly, I question the need for such efficiency to begin with; especially in a world where everyone is spending all of their time working bullshit jobs.
Wouldn't it be better if everyone could feel useful in their jobs? Even if it was less 'efficient' in aggregate? I'm pretty sure people would get more value in terms of what they actually need from such society.
Bright future for it just means it is not planning to become 40th or 400th.
(My prediction - in next ten years java will always be among top 6; new language might come to the very top and some leapfrogging game between c# and java)
> for not embracing religion of OOP and FactoryFactory
Not the case today. Of course, crappy code (or questionable patterns) can be found in all languages, and java community had made some innovations in the area early on, but today we have a different picture.
FactoryFactory has gone mostly extinct, the most likely place to see it is “dailywtf.com”.
We now know that we prefer composition over inheritance, we have stream api - language and community evolved, old patterns are not neccessary anymore to solve same/similar problems.
> We now know that we prefer composition over inheritance
When people say "composition over inheritance" in Java discussions, they usually mean the trivial modeling rule: prefer has-a over is-a.
But that’s not what composition is really about.
The deeper idea is interface composition -- building types by composing multiple behavioral contracts behind a single cohesive surface.
Java provides inheritance and interfaces, but it doesn’t provide first-class delegation or traits. So most developers never really practice interface composition. They either subclass, or they wire objects together and expose the wiring.
The slogan survived. The concept mostly didn’t.
The manifold project, for example, experiments with language-level delegation to make interface composition practical with Java.
> Java provides inheritance and interfaces, but it doesn’t provide first-class delegation or traits.
I'm not sure I am missing first class delegation much (not a lot of UI projects in Java these days).
But interfaces with default (and static) method implementations are actually quite usable as traits / mixins. Since Java 8 IIRC.
You can also pass around functions / lambdas (coincidentally also since Java 8) to compose functionality together. A bit harder to follow and/or understand, but another perfectly legitimate and very powerful tool nevertheless.
How does a type class help with composition? They do help with the expression problem (adding support for an "interface" after definition), and via parametric polymorphism they might give you a bit with regards to composing two traits.. but you do also have generics in Java, even if not as good as type classes.
So anyways, I don't see as big of a change here. But there was a Brian Goetz mail/presentation somewhere where he talked about adding "basically type classes" to Java? But unfortunately I couldn't find it for you now.
Kotlin's "delegation" feature isn't true delegation, it's just call forwarding, which is better than nothing, but it falls down pretty quickly as an alternative to implementation inheritance.
The manifold project provides true delegation[1] for Java.
it really depends on your project, and what framework(s) and libraries you choose to use.
Java still has a tonne of legacy projects using old(er) frameworks that rely on such patterns - spring has some old versions which is like that, and i am certain plenty of java projects are retaining those old versions due to lack of desire to upgrade.
If you're starting a greenfield development in java, you surely would not befall into that factoryfactory pattern (unless you're just copy/pasting old projects around...). But i imagine there's way fewer greenfield projects compared to older projects requiring maintenance.
It's still going to be hard to overcome the stigma of ex-Java developers coming into other languages and bringing their overly complex ideas with them. But I am happy to hear Java itself is evolving and I hope that limits the downstream effects of it being one of the most popular language a lot of devs start on.
No, it is not as dangerous.
To use gun from 7 meters away, you have throw it, which takes way more movement hand movement and time. While you should not rely on it, it is very feasible to just move out of the way of the thrown knife.
Other possibility getting closer to you. Running will take 2 seconds. (Not a lot, but definitely not as dangerous as a handgun)
reply