for a second I thought I read
publ;c
Nah, it’s actually
publ;c
I felt that. I have a colleague whose coding style is different to mine and whenever they work on code that I originally wrote, I have to resist the temptation to modify things to camelCase.
Linters make these kind of things easier. Then you get mad at the tool rather than your coworker.
Does Prettier count as a linter?
I always thought linters were more to find bad practice and possible errors than control the code style
Some linters can do both. Getting one set up as an automated job whenever code is pushed to the repo is on my TODO list…
Yep all my public repos have it on a ci job. When you have a library that is used on many different projects, I want to be able to read the prs.
That does sound nice to me too. I’ve found prettier with format on save works pretty well but that means you have to set it up in every editor
Format on save is a godsend. Copy paste something with whole indentation? Ctrl-s, it’s back to normal. Did some wacky nested anonymous function calls? Ctrl-s, and they’re laid out nicely.
I honestly almost golf my code nowadays and just let the tooling fix formatting for me. The space bar and enter key are in an ideal world vestigial for the purposes of programming.
Last year I had a module for ai stuff. We did things in Python and I am quite into doing things as coding standards say. My mate didn’t really care so much and just went for his style of doing things, also not really worrying about descriptive names etc.
Well, let’s say, we weren’t having a good time.
I also realized that I was probably too harsh and tried to go a bit more easy on it later, but many things just felt wrong.
Add black, isort and flake 8 to your repo, you can set it up to be applied on commit.
So folks can modify their local config all they like, and when they push it’s to the team standard and when they work locally it’s to theirs. It’s the best.
What about Ruff? I’ve been having a great time with Ruff.
It’s interesting that something this minor gets people so upset. I mean, I get it, but objectively it’s weird of us.
I had a debate years ago about test naming. When I was a junior, the lead dev used test methods with an underscore separating different cases. Like testServiceConnector_success(). I thought that’s pretty neat and kept that style. In another project one of the devs almost had a meltdown because I dared introducing underscore scum into “his” project.
I don’t get it
java_devs_when_they_see_snake_case
Imagine using extra characters in your variable names. And they say Java is verbose…
Ah well… Guess I’m lucky that it doesn’t bother me.
I use different languages with different style guides and my IDE autoformats everything properly with the click of a button.
So this looks like it’s based in Java code.
A public class means that any bit of Java code, including that injected by an attacker, can see and mess with the contents of that class.
A private class, in contrast, means that other bits of Java code are restricted to running the class’s predefined functions.
In theory it is supposed to help with the security of the data. In practice if an attacker gets to this point, you’ve got much bigger issues.
Private Vs public has nothing to do with security
If people can execute arbitrary code in your app, they can already read your memory, and even if they couldn’t they could use java reflection to just turn off the private modifier
Accessibility modifiers are to do with maintainability. If you have internal implementation logic that should be hidden from a consumer you don’t want that consumer to have to know about things they shouldn’t be changing anyway.
The comic is just about how classnames in java should be in pascal case
Classes often have camelCase or PascalCase. Snake cases often are for variables or functions.
I don’t remember the java standards, but it’s enough to get it
In college and workplace, all java projects I ever worked with used camelCase. Whether that’s the official stance of Java or not, I don’t recall.
But also classes? In Java, I normally see camelcase (objects, variables, functions, …) except for class definitions, which are PascalCase.
The package itself often is camelcase though iirc?That’s exactly how I was taught Java styling in college. Idk if it was official styling or just professor preference though.
Same I was taught. Think it’s official. Professor was a stickler for following official rules so I doubt he would deviate.
The Java standard is ClassName, variableName, FINAL_VALUE_NAME.
It’s derived from a popular C++ standard. (But C++ has many for you to pick.)
Python is the one that likes snake_case, but it’s for variables, as you said. Classes are still PascalCase.
Rust is like Python, but actually tell you the rules instead of you doing whatever you want
When you’re telling a joke to a bunch of computer programmer nerds, you got to tell them what programming language the joke is in, or else it just falls flat.
I work on a proprietary language that translates everything to uppercase before compiling. So having a specific case is useless. The standard functions all have wacky cases. Some from the same module may use CamelCase, while it’s brother use snake_case.
… I just use Rust’s style. Simple, easy.
This is why I spend a good amount of time setting up linters on new repos before even starting to make the application. It saves a ton of time in peer reviews because no one has to think about formatting. Some people may not like the rules chosen but official direction from the boss is “get over it”. There are 0 comments on PRs about formatting which only ever annoys people and is a waste of good dev time.
On my current team, when we were trying to choose a style, my only input was “any style that can be checked/applied with a git commit hook.”
I get some people prefer reading code in a particular format. Let them configure their editor to apply it, but let’s keep the version history in one unavoidably consistent style. Pretty please.
Don’t look at rust code
Why? It’s fine?
It IS fine, I though the comic was referring snake_case as disgusting. I was uncomfortable too at first but I got used to it
I used to be a PascalCase guy myself, but that changed recently when I had to use React (coming from embbeded C)
I am working with a C embedded framework that uses snake_case, and switching between the two, I realized that it is a lot easier to find information with snake_case for me.
I’ve found whenever people complain about rust code they can only point out how it’s different but not why it’s worse and I can usually point to a reason why it’s better.
to be fair, I get sometimes it’s difficult to pinpoint why something is bad and even “being different” can be a legitimate criticism on its own
People who learnt structural OOP without actually understanding typing system and their benefits really struggle with learning Rist as they try to map classes onto structs and it just doesn’t work.
Traits are not inheritance.
Box
is not polymorphism. Rust is not C++ with more keywords.
I think Rust actually is actually among the best in this regard for the simple reason that there is consistency given by the compiler. A simple
cargo fmt
andcargo build
will fix or warn you about everything. I can read into Rust codebases so quickly. C++ was always really exhausting because most of the time you were just getting used to the code style.I don’t get why every language seems to have its own coding style when you’d think they’d be completely interchangeable depending on user/org/project maintainer preference
Having a standardized codding styles allows people to immediately recognise things, and not have a wacky case mix.
You don’t need to remember the coding style of one specific project. You just need to remember the style of the language
Of course it would be better if it was standardized for every language, but that’s probably never going to happen
What is the freakout?!?!?!?!?!?!?!? Maybe i want to read other people’s code in a wacky comic-looking silly goofy totally awesome monospaced font!?!?!?!