I'm wondering whether Ceylon could be considered a modern day Ocaml substitute?
It has a very strong type system, focus on immutability, a strong module system and Object Oriented capability. What's missing?
I don't think Jane Street would be using OCaml to this extent if it needed a "modern day substitute". And the language is evolving, which is always a healthy sign.
I suggested Ceylon as the 'modern day substitute' in the sense that it has had the opportunity to learn from mistakes made by the older FP languages. Ceylon has a very consistent type system and is therefore able to deliver more clear error messages.
It has 3 (4?) different, not very compatible stdlibs, for example. Also 3 tools for syntactic extension, two of which suck incredibly, while the last one is pretty new. It has 2 (3 if you count Reason) very different syntaxes defined, even though I've never seen the "light" kind in the wild. The whole String mutability story is interesting in its own right. I'm sure there's a lot more.
But note: every single language has warts like this, especially if it's been developed for a couple of years already. I think OCaml has probably fewer warts than JavaScript, or PHP, or even Java; but more than Go, or Elixir, or Scheme. It's still very nice language and toolchain, though, perfectly usable in many cases - the learning curve may be steep at some points, but on average it's not that hard to learn, and you gain a lot of benefits if you do.
OCaml isn't without its warts (like any language), but I don't quite think you've nailed them.
For one, the different stdlibs are in fact highly compatible. Basic types (option, result, string, int, array, float) are all the same, so code using different stdlibs works together seamlessly most of the time.
Lwt and Async are a different story, and there is a real incompatibility problem there.
The syntax extension story is pretty clear and simple: PPX rules the roost, and the tools for building PPXs are quickly getting better and more unified. Reason is an interesting variant in the ecosystem, but its existence doesn't amount to a wart in my eyes. It's an alternative syntax that you can use interoperably with the rest of the OCaml ecosystem (and Dune makes that awfully easy.)
It has one standard library, and several alternative standard libraries of varying popularity. I would argue that Core is probably the most popular. For what it's worth, Haskell also has several replacement for its standard library, Prelude.
For the syntax extensions, the community has largely migrated to PPX. Alternatives are being phased out.
String is no longer mutable in recent versions of OCaml. The string type is now immutable, and a new type, bytes, has been introduced which is mutable.
I agree with the rest of your comment, but I think this Ceylon is probably closer to Kotlin. is unfair on Ceylon
Kotlin basically has the Java type system with a few extensions, but no substational changes.
Ceylon has its own type system that draws heavily from the FP/ADT style of thinking. It's not OCaml (nor does it want to be), but it's also not Kotlin.
Having tendon issues in my wrists, I would love a linear keyboard with gentle push down force. Or at least just gentle push down force. Any suggestions?
The Gateron Clear switch is the lightest linear switch currently available, with an actuation force of about 30g - half that of a typical membrane key switch and 50% less than the Cherry MX Red linear switch. It's not a particularly popular switch, because it's so light that the weight of your fingers tends to cause accidental keypresses on the home row. Nonetheless, you can buy a KBParadise V60 keyboard with Gateron clears. The Qisan Magicforce 68 is occasionally available with Gateron clear switches. Alternatively, you could buy the keyswitches and build a keyboard to your own specifications using a bare keyboard PCB.
Seconded Gateron Clears (though I've heard the activation force is more like 35g than 30g). I use them on a Noppoo Choc Mini.
I'm a fast typist (around 130wpm) and use these switches just to try to improve speed, rather than anything relating to health. They're also great for gaming for me, playing Starcraft 2.
Has Cherry Red switches. I've been using an advantage for probably going on 20 years at this point, but I'm not going to lie, it took a fair amount of time to adjust to it's non staggered layout (the wells and thumb clusters are easy to get used to, but you have a lot of staggered muscle memory if you touchtype).
So if you aren't ready to take the "crazy layout" plunge but want low force switches, MX Reds are really light and really linear.
You can even go further and try Cherry Silvers, I believe they are essentially the same (same spring weight, same linear stem) but the actuate at 1mm instead of 2mm (most cherry switches have 4mm of total travel).
Cherry MX Red switches are probably what you want, there are tons of keyboards with cherry switches and frankly not a whole lot of difference between them in terms of typing experience. Corsair K66 is a decent example, one of the cheapest at $60 from amazon currently and doesn't have the ridiculous "gaming aesthetic" that plagues so many mechanical keyboards.
Cherry Red switches are linear with light force. I was having some finger joint pain for a while, and bought keyboards with both Cherry Reds and Cherry Browns (similar but with a slight force bump). It took a little while but I trained myself to type on these without bottoming out the keys. My finger problems cleared right up, and as a bonus I ended up typing faster.
Ignorant here (I've never done database work):
What's wrong with asking the database to do the sorting for you? (assuming you do work that involves a database. Perhaps this assumption itself is the problem?)
That's a bold statement. Read Forbidden Archeology, and you'll see quite a few oddities in the archeological realm. Such as metal spheres with odd, precise features, that are very very old ( http://4.bp.blogspot.com/-oiiiI75kDic/TdRv4ZsspWI/AAAAAAAAAC... )
(Yes, you can now give me the defaults:
"if this was true we would have heard of it"
"if he says something that is unconventional, he's probably a retard/arbitrarily biased"
etc. etc.
yes, go ahead)
> As proposed by Cairncross, the grooves represent fine-grained laminations within which the concretions grew. The growth of the concretions within the plane of the finer-grained laminations was inhibited because of the lesser permeability and porosity of finer-grained sediments relative to the surrounding sediments. Faint internal lamina, which corresponds to exterior groove, can be seen in cut specimens. A similar process in coarser-grained sediments created the latitudinal ridges and grooves exhibited by innumerable iron oxide concretions found within the Navajo Sandstone of southern Utah called "Moqui marbles".
> Similarly, the claims that these objects consist of metal, i.e. "...a nickel-steel alloy which does not occur naturally..." according to Jochmans are definitely false as discovered by Cairncross and Heinrich. The fact that many of the web pages that make this claim also incorrectly identify the pyrophyllite quarries, from which these objects came, as the "Wonderstone Silver Mine" is evidence that these authors have not verified the validity of, in this case, misinformation taken from other sources since these quarries are neither known as silver mines nor has silver ever been mined in them in the decades in which they have been in operation.
> For example, it selectively cites a tiny corner of the
> research literature, conveniently ignoring the mountains
> of evidence that don't fit the stated thesis.
You really should provide some sort of reference on that claim.
I would say, that the consensus among psychologists in academia is the opposite of what you suggest:
A majority of those people would admit that genes have a significant influence on differences in human behaviour, interests, capabilities etc.
Ceci & Williams (2011). Understanding current causes of women’s underrepresentation in science. Proceedings of the National Academy of Sciences, 108, 3157-3162.
http://www.pnas.org/content/108/8/3157.full
Wang et al (2013). Not lack of ability but more choice: Individual and gender differences in choice in careers in science, technology, engineering and math. Psychological Science, 24, 770-775.
http://journals.sagepub.com/doi/abs/10.1177/0956797612458937
Williams & Ceci (2015). National hiring experiments reveal 2:1 faculty preference for women on STEM tenure track. Proceedings of the National Academy of Sciences, 112, 5360-5365.
http://www.pnas.org/content/112/17/5360.abstract
> A majority of those people would admit that genes have a significant influence on differences in human behaviour, interests, capabilities etc.
This is in no way in contradiction with anything I said. I specifically said the majority of the gender patterns we see are cultural. Not anything else.
I did not say either that "All human differences are cultural." nor that "All gender differences are cultural."
If you enjoy The Blank Slate, then you might be interested in reading Pinker debate with Spelke:
So given the "consensus" that "genes have a significant influence on differences in human behaviour, interests, capabilities etc.", you're basically saying that a significant and spontaneous, yet undetected, mutation appeared in the human female population, during the '80s [1] ?
Actually, it's pretty easy for people in power to avoid the truth revealing effect that 'common knowledge'presents: simply label your less powerful adversary as a 'conspiracy theorist', and nobody will want to deal with that matter again. Nobody likes being labeled, or associated with, a loony.
Simple social dynamics tricks can mitigate the 'annoying' liberating effect that the internet poses.
Want an example? The content of this article by journalist Seymour Hersh will never become public knowledge. For reasons pertaining to simple social dynamics.
https://www.welt.de/politik/ausland/article165905578/Trump-s...
Regarding the linked article, I was alarmed after reading reading it in its entirety.
The portrayal of incompetence and worse at the nexus of the Trump administration is horrifying, but entirely believable, and even predictable at this point.
It also seems fairly plausible to me that the US military might have ultimately attacked Syria even though it knew Syria had not actually used chemical weapons in their attack. That wouldn't be unprecedented.
However, it didn't seem at all plausible to me that such knowledge, if it could be substantiated/corroborated, wouldn't be a major, stop-the-presses, huge-font-headline story in most of the many newspapers we still do have that do real journalism (e.g., the Washington Post, New York Times, or many many others).
It's pretty hard to believe that such news wouldn't get out, regardless of social dynamics. Not knowing much about it beyond the articles (and horrific photos of dead kids) I'd seen in the papers, I googled it a little more.
But there seems to be pretty compelling evidence that it was, in fact, a sarin gas attack perpetrated by Syria. I mean, the OPCW has issued a report concluding that[1].
So it strikes me that the content of the article by Seymour Hersh might not become public knowledge simply because it's one guy's anonymous sources vs. various entities that seem pretty credible, even if you entirely rejected the US government itself.
That's not really true. With JS glue code (including many libraries already written) Wasm modules can access anything JS can do. E.g. there are Wasm demos showing access to WebGL2, audio generation, camera/microphone, HTTP, storage, gamepads, ...
That's the point. a WASM app has access to the same Web APIs that JS does, for the most part. This was in response to the claim that WASM only gets to work off of a limited api, not an argument as to why WASM is an improvement over JS.