Because that is what abolishing corporate profit tax comes down to. The only substantial tax most states have are consumer taxes, and we all know that these taxes disproportionately hurt people that are already poor.
155 karma · joined June 16, 2016
Because that is what abolishing corporate profit tax comes down to. The only substantial tax most states have are consumer taxes, and we all know that these taxes disproportionately hurt people that are already poor.
"Oh, it's not tax evasion, it's tax avoidance!"
And now "oh, it's not tax avoidance, it's tax-friendly jurisdictions".
Let's just agree to close the loopholes so that everyone pays their fair share.
I think the languages aren't really comparable from a maturity and support pov. Clojure is mainly done by hobbyists and enthusiasts. There is a large gap in terms of tooling that can't be closed in a few years.
I don't have issues with Haskell-inspired constructs, I have issues with Haskell-inspired behavior.
Why would they create cats while they still had hope to save scalaz from its community? No need to spin some crazy conspiracy.
> you apparently dislike the people involved
LOL WTF? That guy has single-handedly destroyed more than one community already. It's not like it's some unfortunate thing that accidentally happens. It has happened before, and will keep happening until he is shown the door for good.
The rest of the scalaz community are enabling him to keep doing his toxic shit. The faster scalaz goes the way of Lift, the better.
I judge people for using scalaz. If you think it is acceptable to keep enabling him, you are a bad human being.
They need to move their lazy asses to Haskell and start fixing and implementing the tooling there instead of enjoying their free ride in Scala while constantly shitting on the language and its community.
The average programmer can enjoy completely consistent names and signatures across different libraries, without having to know that the consistency comes from one method being applicable to various types, not manual labor repetitiously adding the same method to different types which can drift apart at any time without anyone noticing.
HKTs are not that expensive. Slow compile times are usually caused by people doing Prolog at the typelevel in Scala.
[1] https://mvnrepository.com/artifact/org.scala-lang/scala-libr...
I would disagree with the comment on verbosity compared to Java 8/Haskell/Ocaml. Most of the things I do regularly in Scala would require a magnitude of more code. Ocaml doesn't even have higher-kinded types or implicits, so I don't think it can win much on that front (except of saving a line where Scala's curly brace might be). With Haskell it really depends. There are certainly ways to write much more succinct code, but what I see in practice is that it's not that much different from Scala. Haskell has it's own unsolved issues though: broken typeclasses, lacking module system, poor tooling, and a weekly-changing, terrible dependency management.
* It also compiles to Scala.js (it's actually the independent best compile-to-JS language out there in terms of libraries, tooling and IDE support). Support for compiling directly to native is coming around nicely.
* Scala is quite far away from the kitchen sink, and many of the questionable parts have been deprecated and/or removed.
* I have never seen much DSLs while writing Scala. Sure, it's probably quite nice, but I have rarely seen endless DSLs in practice.
* The jar is around 4MB (2.12) and when writing idiomatic Scala (~ not Spring/Servlet) there shouldn't be any kind of reflection or classpath scanning happening.
That's why reasonable people want to have good type systems: People who think that they can keep the type system in their head are exactly the people whose opinion should be ignored.
Well, it does.
There is no determination in failing to get anything done and doing NIH for a decade.
I think it's mostly down to determination. Some things are hard, but need to be done.
Haskell people just seem to give up more easily - see all the half-working projects. Nobody finishes stuff, the next dev just starts his own new project, and abandons it later.
Scala.js handily beats JavaScript in terms of IDE support and tooling
You can't BUILD an implementation of Java, because "Java" is defined by "passes the Java conformance tests".
You can build "something", but it won't be Java, so don't call it Java. Even Google understood that.
SI-1503 should warn in 2.12, additional progress might happen in https://github.com/scala/scala/pull/5310.