this post was submitted on 30 Sep 2023
109 points (91.0% liked)

Programming

17668 readers
232 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 57 points 1 year ago (4 children)

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.

[–] [email protected] 15 points 1 year ago (3 children)

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?

[–] [email protected] 10 points 1 year ago

I’ve never used it on Linux but Rider seems fast to me on Windows. It’s snappier than Visual Studio + Resharper at least.

[–] [email protected] 7 points 1 year ago (2 children)

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.

load more comments (2 replies)
load more comments (1 replies)
[–] [email protected] 12 points 1 year ago

I write C++ for a living but all the C# devs around me are very happy about this language.

load more comments (2 replies)
[–] words_number 40 points 1 year ago (1 children)
[–] xav 7 points 1 year ago

That thing is rock solid, it's nearly magical.

[–] [email protected] 37 points 1 year ago (1 children)

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.

load more comments (1 replies)
[–] [email protected] 30 points 1 year ago (2 children)
load more comments (1 replies)
[–] starman 24 points 1 year ago

C#

F# is also nice, but I don't use it very often

[–] [email protected] 21 points 1 year ago* (last edited 1 year ago) (9 children)

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.

load more comments (9 replies)
[–] [email protected] 19 points 1 year ago (1 children)
load more comments (1 replies)
[–] h_a_r_u_k_i 18 points 1 year ago* (last edited 1 year ago)

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.

[1] https://clojuredocs.org/

[2] https://github.com/tallesl/Rich-Hickey-fanclub

[–] [email protected] 17 points 1 year ago* (last edited 1 year ago) (2 children)

Elm (for frontend). https://elm-lang.org/

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. And the resulting output outperforms other major frameworks.

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.

Adding the link to their front page, I see they call it "A delightful language for reliable web applications" and the first claim is "no runtime exceptions". I remember thinking that was marketing BS but being intrigued by the bold claim. A few years later and I can honestly say that that accurately describes my experience.

These last few years I've rediscovered the joy of coding.

[–] [email protected] 7 points 1 year ago (1 children)

I've literally never heard of this before. Are there any major projects which use this?

load more comments (1 replies)
load more comments (1 replies)
[–] coltorl 16 points 1 year ago* (last edited 1 year ago) (3 children)

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.

load more comments (3 replies)
[–] [email protected] 14 points 1 year ago (1 children)

Java. I'll be the one to say it.

[–] [email protected] 15 points 1 year ago

You can leave now.

[–] [email protected] 13 points 1 year ago* (last edited 1 year ago)

Probably Typescript, it has so many quality of life features that I miss when I'm using anything else. A close second is C#, Kotlin third.

Rust when performance really matters.

PowerShell when scripting and automating stuff. It's common to hate it because "microsoft bad" but it's very logical and it feels modern. Funnily enough, I've only used it on Mac and Linux.

[–] [email protected] 13 points 1 year ago (1 children)

Rust and Zig are currently my favorite languages.

load more comments (1 replies)
[–] [email protected] 12 points 1 year ago (3 children)

Ruby! It's a wonderful language with a fantastic community, mature frameworks, and active development on performance and core features.

load more comments (3 replies)
[–] [email protected] 12 points 1 year ago (2 children)

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.

load more comments (2 replies)
[–] [email protected] 11 points 1 year ago

Python, it's pretty simple and I am pretty dumb.

[–] [email protected] 11 points 1 year ago (1 children)

C# is my happy place. Started doing python more over bash scripts for complicated stuff and I like it. I mostly use Java for work and my opinion of it depends on the how much extra effort I had to spend doing something I could have done in C# in a few minutes. Otherwise it has some nice features and project Panama has been a game changer.

load more comments (1 replies)
[–] swordsmanluke 11 points 1 year ago (1 children)

For the beauty of the language: Ruby

For Doing Businessy Things For Business: Kotlin

For low-level, gotta-go-fast: Rust

[–] [email protected] 7 points 1 year ago (7 children)

I love Ruby since I got introduced to it. The syntax is great and you can do many things in a simple manner.

Before that, Python was my go-to language for scripting but now I cannot stand the syntax anymore. I dislike the lack of braces and forced indent.

load more comments (7 replies)
[–] [email protected] 11 points 1 year ago (1 children)

Don't laugh on me or make fun of me but I like JavaScript because of it's major library. I can make a Minecraft Bot which can intergrate with Discord, Matrix and many more at the same time. I am always get amazed by JavaScript because it was not made for this type of thing.

Other than JavaScript I like Bash.

[–] swordsmanluke 9 points 1 year ago

Other than JavaScript I like Bash.

Oh man, you had me going until this part! Good joke!

[–] [email protected] 10 points 1 year ago (3 children)

Typescript. Its pretty good and feature compleate overall, but has by far the most flexible typesystem.

load more comments (3 replies)
[–] snaggen 10 points 1 year ago

That depends on the job I want to do. But generally my selection is something like this.

  1. Is it a short simple script: Bash
  2. Longer script, then a more competent dynamic language like Perl/Python.
  3. Backend, a strong typed compiled language, with as few runtime errors as possible. If it depends on some particular API, the language with good enough bindings.

Preferred backend language, Rust, since that have the least runtime errors, thanks to its strong typing and the great error handling. But I also use Go if it have better libs for what I do, or Java for situations where that is more suitable.

[–] [email protected] 10 points 1 year ago

Either Python or its fraternal twin wearing a game engine patterned trench coat, GDScript.

[–] [email protected] 9 points 1 year ago

C, definitely.

As a hobbyist programmer, I can write code just the way I want, in my own style and without any legacy code. In that context I find writing C relaxing, as I like to understand how things work internally and avoid abstractions levels as much as I can. ASM requires too much discipline though 😅

[–] onlinepersona 9 points 1 year ago (1 children)

For prototyping: Python

For desktop UI: Rust

For OS scripts: Bash, then Python

For web backend: Python (Rust gets a Django-like framework with an ORM that doesn't expose SQL like butane)

For web frontend: Javascript 😢 Because it's all I know, but I would like to pick up Slint (Rust --> WASM)

[–] [email protected] 16 points 1 year ago (9 children)

For desktop UI: Rust

Okay, what crate do you use for UI, that it is your goto?

load more comments (9 replies)
[–] [email protected] 9 points 1 year ago* (last edited 1 year ago)

Frontend: TypeScript - You get the massive ecosystem of JavaScript with type "safety". You can get stuff done and prototype quickly!

Web framework: Svelte - While frameworks aren't languages, they still have their own ways of being written and worked with, much like a language. Svelte is a dream to work with, and I highly recommend it to anyone who is fed up with web framework boilerplate. (Shameless self-promo)

Backend: Rust - Something something blazingly fast. While it will usually take you a little longer to write than most other langs, you can rest in the knowledge that what you wrote is correct, safe, and fast.
C# also gets an honourable mention here. I've never not enjoyed working with it on the backend.

[–] [email protected] 9 points 1 year ago (1 children)
load more comments (1 replies)
[–] [email protected] 9 points 1 year ago (1 children)

SQL. The simplest syntax of all languages but can be amazingly powerful if you know what you you're doing. (And frighteningly dangerous if you don't).

[–] [email protected] 7 points 1 year ago (3 children)

I would disagree, the simplicity of its syntax gives it a steep learning curve for doing anything that is not simple

load more comments (3 replies)
[–] [email protected] 8 points 1 year ago

JS/TS cause it's my job and easy quite fast to write code in it, so it's good for quick prototypes (or when I want to go dirty). Rust for when I want to write something actually good. It has a better ecosystem, building tools, and the DX is much better compared to C++ which is just an eldritch clusterfuck where dreams die

[–] [email protected] 8 points 1 year ago (2 children)

For getting actual stuff done: Rust For playing around: Uiua or BQN

load more comments (2 replies)
[–] [email protected] 8 points 1 year ago

Whatever gets the job done 🤷‍♂️

[–] [email protected] 7 points 1 year ago

Though you give me pain and suffering, C you will always be my beloved.

[–] [email protected] 7 points 1 year ago (6 children)

C# was my favorite language to use, though I haven't touched it in 7+ years because I don't do any windows or desktop UI development anymore. It feels the most expressive and doesn't get in your way too much. It has all the mainstream OO language features while not feeling overly burdensome like Java.

Go is now my favorite to use because it's super fast at runtime and I don't have to deal with a bunch of environmental and framework nonsense at runtime. It's hands down the fastest runtime for serverless lambdas, which is the majority of my work. I have several gripes about the language, namely the embarrassment that is their implementation of type inheritance and generics, but the lack of ease for the developer is offset by performance. Java handles that stuff better, but I'm not trading a little ease in dev cycles for 20x longer cold starts and 5x poorer runtime performance. (Actual stats based on some use-case specific testing we did)

TypeScript is my fav for frontend dev (React), but it's not as if there's any choice there. I used to be a plain-JS psychopath, but then I had to work with other people on projects and TS makes that waaaaay easier.

load more comments (6 replies)
[–] [email protected] 7 points 1 year ago (1 children)

I’ve gotta go with Elixir. I’ve been using it professionally for about 7 years now, and it’s been amazing to see it grow in the way it has. It’s very well-designed, based on a rock-solid foundation (Erlang/OTP), has an amazing standard library with fantastic documentation, and has a strong culture of pragmatism and developer friendliness.

I personally work in web dev, and Phoenix has consistently shown itself to be an extremely capable web framework. LiveView has kicked off a new paradigm for making web applications that most major languages are copying.

There’s a solid embedded story with Nerves, and serious foray into ML/AI with Nx. It’s obviously not suited for the lower level stuff, but that’s when Rust integration with Rustler comes in. Many wouldn’t be interested in Elixir because of it’s dynamic typing, but there’s serious effort by the creator and a research team into developing a gradual type system for the language.

Just an overall solid language that’s extremely pleasant to use with a really healthy and (slowly but surely) growing community.

load more comments (1 replies)
load more comments
view more: next ›