[-] lysdexic@programming.dev 3 points 2 years ago

However, we’re still implementing IPv6, so how long until we could actually use this?

We can already use custom verbs as we please: we only need to have clients and servers agree on a contract.

What we don't have is the benefit of high-level "batteries included" web frameworks doing the work for us.

[-] lysdexic@programming.dev 3 points 2 years ago

That’s only true in crappy languages that have no concept of async workflows, monads, effects systems, etc.

You don't even need to sit on your ass and wait for these data types to be added to standard libraries. There are countless libraries that support those, and even if that is somehow not an option it's trivial to roll your own.

[-] lysdexic@programming.dev 3 points 2 years ago* (last edited 2 years ago)

Also, TIL that the IETF deprecated the X- prefix more than 10 years ago. Seems like that one didn’t pan out.

Can you elaborate on that? The X- prefix is supposedly only a recommendation, and intended to be used in non-standard, custom, ah-hoc request headers to avoid naming conflicts.

Taken from https://datatracker.ietf.org/doc/html/rfc6648

In short, although in theory the "X-" convention was a good way to avoid collisions (and attendant interoperability problems) between standardized parameters and unstandardized parameters, in practice the benefits have been outweighed by the costs associated with the leakage of unstandardized parameters into the standards space.

I still work on software that extendively uses X- headers.

[-] lysdexic@programming.dev 3 points 2 years ago* (last edited 2 years ago)

Such gains by limiting included headers is surprising to me, as it’s the first thing anyone would suggest doing.

Yes indeed. I think this is a testament of the loss of know-how we're seeing in software engineering in general, and how overambitious but underworking developers try to stake claims in technical expertise when they even failed to onboard onto the very basics of a tech stack.

I'm sure it's a matter of time before there's a new post in Figma's blog showing off their latest advanced technique to drive down build times: onboarding ccache. Followed by another blog post on how Figma is researching cutting edge distributed computing techniques to optimize build times by replacing ccache with sccache.

[-] lysdexic@programming.dev 3 points 2 years ago* (last edited 2 years ago)

can I write modern C++ code using the newer standards and still compile with libraries from older standards?

Short answer: yes.

Longer version: It depends on what compiler suite you're using. In the end the main requirements are that a) include headers are valid C++ in any of the standards you're targeting (i.e., don't expect to build a C++11 project which includes language features introduced in C++20) b) it generates symbols that can be resolved and linked on all binaries.

This should be done as a last resort, though. The problems you might experience won't be trivial to troubleshoot or common.

how do I even organize a C++ project?

One of the main advantages of C++ is that it does not enforce any project tree layout. It doesn't even require a specific file type or file extension. You are free to follow what works best for you.

If you want a guideline, that can also be provided. See for example this link:

https://github.com/vector-of-bool/pitchfork

how do I install dependencies?

C++ does not enforce any dependency resolution system. To keep things simple but debatable, you can give Conan a try.

https://conan.io/

[-] lysdexic@programming.dev 3 points 2 years ago

Companies hate giving out cash. Even if it’s for software they critically need.

I think for most cases getting the cash is the easy part, and the hard part is getting all the paperwork in place to validate payments to random external entities. If that was easy, nothing would stop any low-level manager from making cash payments to random users with a GitHub account.

[-] lysdexic@programming.dev 3 points 2 years ago

If you want to use a fourth language, first you need approval to train every single employee in that language.

I've worked at a company where each and every single engineer was free to pick up what he felt was the best tool for the job.

It was an utter mess of unmaintainable code, and everyone wasted time trying to get projects not die out of bitrot.

Training people is not a problem. You also do not have to train everyone to create a single project in a particular framework/programming language. What you do have to factor into your analysis is the inefficiency of having to waste time managing multiple fameworks/runtimes/deployments/programming language development environments, and the lack of progress you will have in your team's skillsets if everyone turns into a one-man silo.

6
11
4
7
Atomics And Concurrency (redixhumayun.github.io)
24
12
16
39
6
4
18
28
[-] lysdexic@programming.dev 3 points 2 years ago

I don’t think anyone believes that you are a list of well known apis.

shhh don't raise suspicions.

[-] lysdexic@programming.dev 3 points 2 years ago

France wants backdoors into these apps, it’s not a lack of trust thing.

If it's trivial for a host nation to add backdoors to instant messaging services, you'd be agreeing with the government of France and you'd be pressing to migrate your communication out of the hand of third parties.

[-] lysdexic@programming.dev 3 points 2 years ago* (last edited 2 years ago)

As a former civil engineer who now works in software, “software engineer” irks me. “Engineer” means you’re supposed to be licensed and you have a responsibility for the public good above your responsibility to your employer.

This. I think some people don't understand that titles are not whimsical status symbols and hold actual legal and regulatory meaning. A random guy can hold an engineering degree and not be an engineer, while a random guy with no degree can actually be a engineer if he jumps through all the hoops.

In engineering fields, being a member of a professional engineering body is critical to work in the field, because the main value proposition of these credentials is to prevent incompetent people from working on critical tasks which can potentially have important consequences to society if they are done poorly. For example, people can die if an engineer signs off on a project for a residential building that collapses due to shoddy work. If that happens then the engineers who signed off on the project will be investigated and if they are held responsible not only can they be held criminally responsible for their work but their license will be pulled, which is society's response to ensure this problem won't happen again.

[-] lysdexic@programming.dev 3 points 2 years ago

Honoring flags is not the same thing as fully supporting a standard version. Currently GCC still marks a few features as missing from GCC entirely.

https://gcc.gnu.org/projects/cxx-status.html

view more: ‹ prev next ›

lysdexic

0 post score
0 comment score
joined 3 years ago
MODERATOR OF