> Some places who use those languages have additional requirements (e.g. PhD, competitive interview process, math background, domain knowledge).
One data point - I get paid to solve problems by writing OCaml code. I am a self-taught programmer with a linguistics undergrad degree.
I hope this helps others who are interested, but are feeling insecure because of the stereotype that one needs a PhD to write programs in a particular language.
> one needs a PhD to write programs in a particular language
This isn't what I said. Even a high school student can write programs in OCaml, it doesn't require any degree and is no harder than other languages.
My point is that if you want to work at Meta, Jane Street, Standard Chartered, or other selective companies that use Haskell/OCaml, just having "Haskell" listed on your resume is probably not enough to be considered for interviews. You will need other skills to distinguish you from other candidates. Could be a PhD, or being good at grinding leetcode problems, a recognized expertise, a prestigious degree, domain specific knowledge and so on.
I suspect companies using these languages tend to be more selective on average than those working on more common tech (e.g. php, js).
> You will need other skills to distinguish you from other candidates. Could be a PhD, or being good at grinding leetcode problems, a recognized expertise, a prestigious degree, domain specific knowledge and so on.
I agree that listing Haskell or OCaml on one's CV isn't enough. I think this holds the same way for other languages, at least in the company where I interview.
To the people who are interested in solving problems using functional languages. You should apply, even if you think you are not part of the "selective" in-group like PhD or language expertise
If your company is ever looking for more OCaml programmers, please let me know. (My email address is in my profile.) I learned Haskell and OCaml ages ago, and once upon a time I tried getting a job working with one of them. Unfortunately, the companies wouldn't take me seriously without professional experience in those languages.
> feeling insecure because of the stereotype that one needs a PhD to write programs in a particular language
One certainly doesn't need a PhD to program in a functional language. But I can tell you, there is a big gap between being able to do it and convincing someone to hire you. I even have a PhD in comp sci, and AFAICT, it hasn't convinced anyone that I can do anything in particular.
> My assumption is that future machines will have more cores than we have today on average, so I'm optimizing mold for such computers.
From the manpage of mold-1.3.0, I get the impression mold is designed to scale up to 32 cores, but not more.
man mold | rg -C2 32
--threads
--no-threads
Use multiple threads. By default, mold uses as many threads as the number of cores or 32, whichever is the smallest. The reason why it is capped to 32 is because mold doesn't scale well beyond that point. To use only one thread, pass --no-threads or --thread-count=1.
Is this correct or does the manpage need to be updated?
Looking further into the future and the advent of io_uring in Linux, would you consider special-casing Linux IO ops to use io_uring or do you not expect any speedup there?
I'm not sure if io_uring can improve mold's performance, as it has to access random locations while copying file contents to apply relocations. Currently, we mmap all input files and an output file and use memcpy to copy file contents.
Given that the UK has left the EU, couldn't you call every trade deal or cultural exchange with a non-EU country a Brexit project?
Even if it is, what is wrong with that? The people of Britain voted for Brexit and now need their elected officials to deliver, which motivates projects like these
Edit: to clarify, i live in London and i didn't vote for Brexit. Regardless of the outcome, I consider it a national security issue and a productivity boost to have cheap energy collected from a diverse set of sources from solar plants abroad to domestic nuclear energy plants and off-shore wind turbines.
If you live in Britain, would you really prefer Britain stop investing in projects like these, just because there was an election result you disagreed with?
I'm just curious if a direct interconnect from Morocco->UK is the best solution from an engineering perspective, or if a Morocco->EU->UK interconnect would work better without the politics.
The latter would work better in terms of energy losses, but would require major overcapacity in the interconnectors between Spain and France (from Spain's and France's point of view). They'd drag their feet.
We are where we are. Politics is a thing.
If it pushes along the transition from fossil fuels to renewables, I don't care if it's "inefficient". Show me a major company that hasn't wasted money or done something in a way that is technically less than optimal.
> The people of Britain voted for Brexit and now need their elected officials to deliver
the desired position of many is that the UK should crawl off into a corner and almost die, then will have to come crawling back to the EU to show that is indispensable
The latter being a dictionary definition of a bad idea, the first being the buffoons who lied about it, flying kites, tossing dead cats around to manipulate the conversation and ultimately shove it through, half cocked.
This looks like yet another kite to be sold with: "Look what we can do now we're out of that wretched EU".
Possibly a nice idea, aggressively detached from reality.
> we are really proud to have got it working at all
On the contrary, the rust crate ecosystem and tooling means a lone developer can compose specialised libraries to produce a working artefact that scratches her own itch. Such productivity is the opposite of getting something working at all.
Trying to build an OSS cpp project or even worse, use an OSS Cpp library in your own project is more along the lines of "getting something working at all". Every third-party and some enterprise-internal Cpp libraries require one answers the following questions:
- how do I build the damn thing?
- how do I run the tests?
- how do I use the library? Vendor into the repo? apt install?
- what APIs does the system/library provide?
- where can I find the documentation and examples?
- how do I set up code completion?
- how do I know am using the library interface correctly?
- how do I know I didn't violate any invariants/safety guarantees?
Compare with the list of dependencies across the Cargo workspace members.
The cost of adding a new rust dependency when measured by the number of questions you need to answer beforehand is nearly constant. This means a layman can be more productive in rust.
Correct use, documentation, and other concerns are imporant for all libraries, whether got via cargo or otherwise, so this amounts to special pleading again.
More importantly, though: how hard is it to use a library coded in C++ from your Rust program? You have to make and maintain some sort of shim layer. Even a C library needs some such effort. For any given need, you are much less likely to find an existing and suitable Rust library already written, released, and maintained than one in some other, more widely used, language.
Coincidentally, the above linked crate `libloading` also shows how to access functionality in a shared library that exposes a C ABI compatible interface whatever the implementation language.
Rust has a built-in macro marker for tests. I suspect rust-analyzer uses this fact when it searches all AST nodes with the #[test] marker that contain a call to the symbol in question for the implementation.
So adding the related tests interface to other languages would require similar AST-level primitives.