8. No more bullshit with 10000 kinds of integer and other numeric types that you constantly convert between. Just use numbers with the operations you need.
-
-
Replying to @Ngnghm @dyokomizo
9. The OCaml ecosystem is a disaster zone with no solution in sight except maybe embrace JaneSt as your savior, if you can tolerate their style. Gerbil Scheme has a smaller community, but people *talk to each other*, synchronize, and offer all the essentials in one place.
1 reply 0 retweets 3 likes -
Replying to @Ngnghm @dyokomizo
10. OCaml modules lack good recursion or fixpoints and require a whole lot of scaffolding. OCaml objects are limited and unwieldy and don't compose well with modules. I can do so much more in Gerbil Scheme with either its builtin objects or my own Prototypes.
1 reply 0 retweets 1 like -
Replying to @Ngnghm @dyokomizo
11. Of course, typed functional programmers like to boast at how good typed fp is at writing compilers and making everything composable, but their metaprogramming tools utterly suck and are completely non-composable. Liars, hypocrites or just morons?
3 replies 0 retweets 1 like -
Replying to @Ngnghm @dyokomizo
12. Sure, OCaml has a super fast compiler, whereas Gerbil Scheme's is dog slow (it calls GCC). But guess what? With Gerbil I can do all that work incrementally at the REPL without having to recompile from scratch every time because a type has changed, thus losing all debug state.
2 replies 0 retweets 3 likes -
Replying to @Ngnghm @dyokomizo
13. Interactive state? Oops, all objects are opaque by default. That all makes debugging all the harder, and/or forces yet more boilerplate on you for string converters. 14. Parametricity is way cool, but makes data even more opaque, and then you need to break it for debugging.
1 reply 0 retweets 2 likes -
Replying to @Ngnghm @dyokomizo
15. Configuration files? User specified computations? In OCaml you'll soon reinvent your own crappy evaluators. All the advantages of static typing vanish, and all your tooling. Or you reinvent the world, badly. Meanwhile your users must use a crappy language.
2 replies 1 retweet 1 like -
Replying to @Ngnghm @dyokomizo
16. GADTs... very cool, but not very usable: too powerful for a lot of the tooling to work, yet too weak to express the things you really want to say.
2 replies 0 retweets 4 likes -
Replying to @Ngnghm @dyokomizo
17. I never understood why people complained so much about the OCaml syntax, until I had to use it. Ugly, indents poorly. Case-sensitive, ugh. And is there really no way to specify a module for an infix operator without including the operands?
3 replies 0 retweets 2 likes -
Replying to @Ngnghm @dyokomizo
18. OCaml has no typeclasses, so you keep shadowing modules with newer modules that extend them… which is not modular. All the troubles of class inheritance, except without the benefits of late-bound fixed-points. To avoid copy/paste you need plenty of higher-order scaffolding.
2 replies 0 retweets 5 likes
19. Opaque types mean that it's impossible to extend a library. Thus so many forks and reinventions of libraries and datastructures, yet none is ever perfect and complete for everyone's needs, thus more pointless forks and bad reinventions—or accepting badness.
-
-
Replying to @Ngnghm @dyokomizo
20. At least Haskellers have the abstract pure form of Category Theory to aspire to in defining their libraries, etc. But IIUC, this approach requires higher kinds that are not available in OCaml.
2 replies 0 retweets 2 likes -
Replying to @Ngnghm @dyokomizo
21. The best infix operator is |>, that allows you to, albeit locally, replace the demonic right-to-left evaluation (contravariant with how types are rightfully written) with god-given left-to-right evaluation. It also makes debugging nice: just pipe into a printing identity.
1 reply 0 retweets 1 like - 5 more replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
Read my blog!