C#. Comes with a first-class dev and debugging experience, a HUGE first-party BCL, cross-platform application support, and one of the best webserver frameworks out there.
TypeScript makes a reasonably-close second, not necessarily because it’s great, but because of how effective it is at making JavaScript usable.
The first-class dev and debugging experience, is this with Visual Studio or Rider as IDEs?
Because I currently do C# with Linux + neovim + Omnisharp as Language Server and it is really slow and bad. Do you have any tips?
I’ve never used it on Linux but Rider seems fast to me on Windows. It’s snappier than Visual Studio + Resharper at least.
VS for me. I’ve heard notbing but praise for Rider.
I know there’s also a lot of popularity for VSCode, if you know what you’re doing and what all extensions you need to setup, but that makes for a much bigger barrier to entry.
Do you know which extensions are good? I used to use 🤪 vscode but changed to helix and then neovim due to the memory and cpu usage vscode does require.
Nope, sorry. https://discord.gg/csharp if you wanna find folks that do.
Rider on Linux has worked great in my experience
I write C++ for a living but all the C# devs around me are very happy about this language.
Couldn’t have said it better myself! Lovely that it’s the most upvoted one.
Funny you list both C# and Typescript because the lead architect of C# also worked on Typescript.
Rust by a big margin.
That thing is rock solid, it’s nearly magical.
I’ll just say it: PHP. I mean the language itself is not really pretty (but came a long way).
But I’ve got a nice side gig running where I help small businesses and schools to keep their old PHP based websites running and secure until they can afford a new system. In that area money is often very tight and there are no “content managers” but a few people maintaining content with next to no technological knowledge and in their spare time. So changing systems is a hard task. Being the really decently priced guy who keeps their PHP ship afloat is pretty rewarding (not really monetarily but personally).
So working with PHP I have a very nice group of customers who are grateful for every bit of help. I love that.
I like php. I can get stuff done in it.
Depends on the task
deleted by creator
C#
F# is also nice, but I don’t use it very often
Oddly enough Java. If you weren’t brainwashed to write the “enterprise Java”, it’s surprisingly succinct. More so than Go, whose forced “simplicity” ended up making it more verbose.
How do you feel about Kotlin?
I fucking love Kotlin.
Access to the massive Java ecosystem, and takes away 99% of the boilerplate that everybody loves to hate. AND introduces Optional types to make Null-management better. AND smart, type-aware hinting in the editor so that if you’ve validated once that x is not null, you won’t get warnings downstream - unless your variable could be altered by another thread, which is an important thing to know.
Kotlin is Java with all the suck taken out.
…And the Kotlin compiler is compatible with Java, so you can migrate one file at a time or just try it out in a subsection of your codebase…
It’s just… chef’s kiss
deleted by creator
Fair.
@DeprecatedCompatV2 @dingleberry I mean…I’m not totally versed, I’m still learning but I don’t hate it.
It’s pretty good. I’m trying to use it more in my personal projects.
I’ve heard that the recent versions of Java are a lot more pleasant to work with. I’ll probably still stick to C# though.
It sort of had a renaissance since Java 8. It incorporated all the best features of other JVM languages.
Same here. Java has a great ecosystem of tools too.
Elm (for frontend).
Nothing is as easy to refactor, maintain, add new features to, work with after a gap, nothing else is as crashless and rock solid.
No compiler is a fast, friendly, helpful and insightful. Seriously. You don’t wait for the compiler. It’s instant even on huge code bases.
Its syntax is weird at first (even stranger than python) and the autoformatter is mad keen on blank lines but after a while it’s just so clear and easy to follow.
You have to let go of your object oriented mindset and stop trying to turn everything into objects and components but everything I hated about maintaining old code evaporated once I did. I used to believe that objects detangled code, I don’t know why I continued to believe that despite the evidence, because apart from pretty small and simple things, OO code gets extremely tangled. Elm is absurdly easy to refractor, so you just do.
It’s genuinely nice to add new features to old code, something I’ve never experienced before in a few decades of programming.
The elm slack is also a very helpful place indeed and you usually get a lot of support pretty quickly.
These last few years I’ve rediscovered the joy of coding.
I’ve literally never heard of this before. Are there any major projects which use this?
https://github.com/jah2488/elm-companies Vendr use it too (didn’t spot them in the list) https://www.vendr.com/
I really love Elm, and it challenges the common notion of what it means to be a “healthy” language/ecosystem. It’s a beautiful passion project that can really only be used if you adhere to the vision of its creator, but it’s a really admirable and utopian vision.
The reasons for it not being very popular are pretty clear (slow language evolution, “one way to do anything”, perfectionist design), but it’s an extremely cohesive and friendly language. I’ve never used it for anything serious, but I hope it stays around. Clearly the creator isn’t aiming for widespread adoption, but I hope that the niche it’s created grows nonetheless, because it’s a lovely ecosystem and community.
Scala 😀
Had to scroll far to find this. Love Scala!
Clojure. It’s just fun to write.
Firstly, it’s functional and “Lispy”. My code is super expressive. Writing code is like writing prose where I can choose a word (function) from a large vocabulary [1]. I can focus on high-level concepts and modifying states instead of fighting with low-level logic.
Secondly, it runs on JVM - an already robust and performant platform.
And there are so many good things that I cannot simply write in some words. The father of Clojure, Rich Hickey, is a genius in expressing Clojure’s design. You should check out some of his talks [2].
Too bad that Clojure is too “niche” that I haven’t got a chance to make a living by writing Clojure, yet. But learning it is one of the best decisions I’ve ever made in my career. Yes, it’s that good.
C++, I am a library developer with some embedded experience. I can easily interface with c libs and expose my lib with a c interface. With clang, static analysis catches most bugs before runtime. Everything I write can be compiled nearly anywhere with very little dependencies required. Excellent IDE and LSP support with a ton of documentation on the language features available (admittedly, there are a lot). The standard library is gigantic, useful, and well documented. It is used everywhere, so resources and example source code in C++ are very easy to come by. Project configuration (via CMake) is extremely powerful and expressive (though not technically C++).
Some languages have some of the elements I listed, but no other language has them all.
I would also mention support for third-party compiler cache systems. Install something like ccache, set a couple of flags in the CMake project, and your whole project can now reuse build artifacts with barely no CPU load.
If you don’t mind throwing your two cents my way, what’s a good intro to C±± book for those who already have a basic understanding of C?
A tour of C++ by Stroustrup, the latest edition. It’s short but good.
Java. I’ll be the one to say it.
You can leave now.
Rust and Zig are currently my favorite languages.
Zig is really starting to grow on me, it’s basically an unfucked C (screw you, macros) and you can translate C into Zig code…and it has comptime, very nice! I don’t have the patience for Rust in my hobby projects and the standalone-ness of Zig is perfect for embedded/systems programming. it definitely needs to mature more before the masses start taking it seriously, but goddamn it’s nice to code in.
Ruby! It’s a wonderful language with a fantastic community, mature frameworks, and active development on performance and core features.
Same here. My company uses ruby (on rails) and golang and ruby is by far the language that gives me the most joy. One of our projects has reached a size where I really wish ruby had a built-in type system but other than that it is a really great language and by all means it is fast enough for most use cases.
Reminds me of hilarious write-up
It’s the language I’m most capable of making a living with. It’s familiar to the point of being boring, I know what popular tools to avoid, I know my way around making Rails get the hell out of the way, turning it into a useful and handy tool.
I do want a chance at something that’s more exciting though. Some of the features I spy in other languages would be so nice to have.
Although I’d recently finally had to solve a problem where Ruby being slow was the major factor. Haven’t had that much fun in years. Benchmarks and second degree lap burns will do that to a person.
Racket but I’ll take Guile Scheme as a close second. Then Hy, a lisp dialect of Python. I’m writing a blog written in a DSL of Racket right now, Pollen, that makes authoring a joyful experience. Hy gives me access to the entire Python ecosystem plus access to things like macros. Guile Scheme is the configuration language of the Linux distribution, Guix System. Guile’s G-Expressions are so powerful for writing packages.
Are the differences between racket and guile significant?
I’d say Racket is the most different of any Scheme I know but it’s not hard to get started if you know one or the other. Racket (in my opinion) has more niceties around the development experience than Guile and a pretty dang good IDE if you ask me.
Python, it’s pretty simple and I am pretty dumb.