Lots of Web stuff is just that (DB queries, GET/POST parameters, HTML, templating, URLs, JSON, XML, etc.). Whilst lots of that can be done via bytes, there are certainly cases where Unicode is needed (e.g. finding word boundaries, case-insensitive comparison, etc.).
Ocaml (and SML) have the enviable position of being safer+faster than scripting languages, and more approachable+familiar than the likes of Haskell (which otherwise has a similar feature set). That makes it very well suited to such domains IMHO.
Some industrial Ocaml users use the web as a UI. I'm fairly certain Jane Street does it for exemple. That's very much user-facing web apps.
I understand that it's not something that interests you but there has been plenty of work geared towards building web applications in Ocaml (and Reason). Saying it probably won't ever be a core application target seems quite wrong.
this is a self-fulfilling prophecy
I wouldn't be so sure. The way that the ReasonML and ReScript communities have been attracting frontend developers, webapps may already be the single biggest target platform for OCaml (well, a derivative) today.
And yet OCaml is French and its French authors do not feel constrained by the lack of unicode or they would have "scratched their own itch".
Language-wise, it is Ocaml with a different syntax layer, so all of the nice things about the language are still available.
- Super-fast compiler
- Readable and succinct JS output with nearly 1-to-1 mapping from OCaml source
- Simple module system with no need to explicitly import modules--the compiler takes care of it for you
- High-quality React and other bindings
- The standard advantages of the type system like expressive power of data types and pattern matching with exhaustivity checking
- Tons of super useful built-in lints like 'unused variable', 'unused function parameter', 'discarding a value', etc.
* Node with TypeScript
* JVM with Scala
* CLR with F#
Maybe I’m just in the minority - I like the fact that there are lots of languages out there, some of which choose not to cater to every possible development scenario. This is why I know lots of languages - instead of trying to apply one to every situation, I look at a situation presented to me and can go into my mental toolbox to pull the right language out for the job. I don’t see language design/implementation as a competition to acquire users. Do a job, do it well, and some subset of people will be happy - those that aren’t can move along and continue browsing the catalog of languages until they find one that meets their needs.