Since you specifically mentioned C# : https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions
I’d be surprised if there is a serious language that doesn’t come with at least some semi-official style guide. But usually they are not universally followed and everybody just does their own thing.
Just to add, I’d argue dotnet has one of the best sets of guidance on style. It goes beyond just naming and towards how to structure code for easier consumption and consistency. People love to dump on MSFT, but the dotnet platform is superb.
https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/
deleted by creator
deleted by creator
I’d be surprised if there is a serious language that doesn’t come with at least some semi-official style guide.
Does JavaScript have one?
Edit: Except google’s style guide
Edit: Except google’s style guide
This legit made me laugh lol, Google’s style guides for their longer standing languages are always dismissed, especially their one for C++
Not sure if they still do it, but Google’s python code is some of the ugliest python I’ve seen and uses 2-space indentation.
What is wrong with Google’s C++ guide?
To summarize the explanations i’ve come across: It’s tailored to Google’s internal teams maintaining tons of legacy C++ code, doesn’t cover exception handling, and generally has outdated advice best suited for the code they developed in that time period. While their style guide is ideal for maintaining consistency with Google’s existing codebase, someone working on a modern C++ project should consider using the language’s more modern features and STL components
Something I’d want to note though, someone developing in C++ for an embedded platform or even working on hardware drivers would probably have very lean and mean code which doesn’t conform to a particular style guide, especially ones advising against use of “unsafe” operations.
Google’s, Mozilla’s and Apple’s style guides are pretty much as official as you’re gonna get here.
The ‘prettier’ formatter is also rather popular and as such its stylistic choices, although that is of course moreso a hammer than a guide.
Is JavaScript a serious language? /s
Joking aside: One of Brendan Eich’s books probably contains something resembling a style guide.
Eslint rules and prettier. I use the AirBnB ruleset as a base close to my personal preferences and then customize to my liking.
I don’t really have to do any manual formatting. I just save to apply the formatting.
edit: javascript
Java walks in, whose stdlib uses different styles in the same file.
Rust has a style guide and comes with a linter. But I don’t think you need to follow it if you don’t want.
Rust, like the majority of modern languages, has an official formatter which everyone should be using. Formatters are good enough nowadays that everyone should be using them.
What other languages have formatter programs?
I’m fond of Go, which comes with its own auto formatter. It eliminates all arguments over style and format.
If you’re using visual studio (2022 is current) the idiomatic styling will be mostly correct by default (Ctrl k,e will reformat).
I’ve found it to be less strict than I’d prefer. Things like whether parameters are aligned or indented, whether or not the first one is on its own line, what statements are indented in fluent calls that have blocks, etc.
A lot of other formatters (prettier, anything for python, etc) force something consistent in those cases, whereas it seems like the dotnet formatter prefers to leave things as they were.
I’d love for it to be more opinionated and heavy handed if anyone has suggestions
I’ve never looked into it very deeply, but it uses a styling spec called EditorConfig. Check it out, https://editorconfig.org/
go fmt has been a thing for almost 11 years
deleted by creator
There’s
dotnet format
which will format your code. You can configure it with editorconfigFor practical advice, I recommend starting a project with
dotnet new editorconfig
which covers many of the .NET coding conventions. If you want more strict standards you can use StyleCop, but you will need to configure it a bit to be consistent with the .NET conventions.lots of languages have linters to enforce style. Examples are jslint/eslint phplint, etc…
ESLint will hurt your feelings.
Anyway, I didn’t setup the tooling, and it can be configured to enforce code styles, as it does with each commit. It also enforces rules, but can enforce code style as well.
There are a few coding conventions and style guides for C#:
Javascript has airbnb style guide, enforceable through eslint. There’s also react related eslint extensions to give you a lot of best practices to follow.
There’s also prettier, which is just about formatting.
For Java, I guess this as official as you can get.
https://www.oracle.com/technetwork/java/codeconventions-150003.pdf
PHP has PSR-1, PSR-2 and now the updated PSR-12: https://www.php-fig.org/psr/psr-12/
I refuse to believe that people use a php style guide. I have yet to open a php file in the course of any job that doesn’t mix tabs and spaces arbitrarily on top of numerous other horrors.
Luckily it’s not often that I have to, so sample size may play in a bit…
Sort of. Python is a lot more ceremonious about its PEPs or whatever, but there are official naming guidelines for .NET in general at least. The rest of it falls more under the general “this and that is considered ‘good’ code, this and that is not”. You could prefer ancient-style C# or heavily functional C#, there’s the SOLID stuff that applies both generally and specifically to OOP, etc
In my experience, they’re rarely as strictly enforced as e.g.
flake8
does it for Python, but yeah, there is usually some resource suggesting a code style. If all else fails, you can look at some of the code the language authors have written. They’ll usually have developed a rather consistent style…C# has the Microsoft coding standards that are most accepted. PHP has the PSR standards. JavaScript has pretty much nothing and is the Wild West.
Those are the only ones I know about.