this post was submitted on 30 Sep 2023
44 points (92.3% liked)

Programming

16975 readers
1288 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 1 year ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 22 points 11 months 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] 7 points 11 months ago (2 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] 5 points 11 months 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] 4 points 11 months ago

Funny you list both C# and Typescript because the lead architect of C# also worked on Typescript.

load more comments (2 replies)
[–] [email protected] 18 points 11 months ago* (last edited 11 months ago) (2 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.

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

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.

load more comments (1 replies)
[–] [email protected] 5 points 11 months ago (3 children)

How do you feel about Kotlin?

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

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

load more comments (1 replies)
load more comments (2 replies)
[–] [email protected] 15 points 11 months 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.

[–] [email protected] 4 points 11 months ago

I like php. I can get stuff done in it.

[–] [email protected] 12 points 11 months ago

I enjoy C#. Learned it through game development in Unity.

Currently learning GDScript, because reasons... It's easy and simple, but I still prefer C# though, I'm not a fan of dynamic languages.

[–] [email protected] 12 points 11 months ago (1 children)
load more comments (1 replies)
[–] [email protected] 11 points 11 months 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.

[–] [email protected] 9 points 11 months ago

Other than JavaScript I like Bash.

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

[–] [email protected] 11 points 11 months ago

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

[–] [email protected] 11 points 11 months ago* (last edited 11 months 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] 10 points 11 months 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 11 months ago (2 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.

[–] [email protected] 4 points 11 months ago (2 children)

That's funny, I dislike Ruby for probably the same reasons you like it. I don't want a language that's clever or elegant, I want it to do exactly what I say and nothing else. Lower level just makes more sense to me, I'd be a shit & unproductive software engineer.

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

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

[–] [email protected] 9 points 11 months ago

C#

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

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

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

[–] [email protected] 5 points 11 months ago

You can leave now.

[–] [email protected] 8 points 11 months ago* (last edited 11 months ago)

Not because I think it's the best of all time, but because I'm grateful it made my work easier: Kotlin.

I used to write tons of boilerplate in Java for my job, and now I don't.

[–] [email protected] 8 points 11 months ago* (last edited 11 months 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] 8 points 11 months ago* (last edited 11 months 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] 7 points 11 months ago

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.

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

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

load more comments (1 replies)
[–] [email protected] 6 points 11 months 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] 5 points 11 months ago

PHP. I've worked on many languages but I keep coming back to PHP. It's so easy to get shit done fast, easy, and with all the security upgrades, secure too

[–] [email protected] 5 points 11 months ago

Typescript and C#, partly because they make me stupid amounts of money in a seemingly neverending sea of job opportunities.

I've dabbled in Go, but something about it made it never really stick with me. Same with Java.

I've been interested in looking into Rust and Kotlin, but haven't yet had the time.

[–] [email protected] 5 points 11 months ago (1 children)
load more comments (1 replies)
[–] [email protected] 5 points 11 months ago (4 children)

The ones I can get things done with:

  • Python
  • Zsh

My current obsession:

  • Factor

Honorable mentions:

  • Nim
  • Roc
load more comments (4 replies)
[–] [email protected] 4 points 11 months ago* (last edited 11 months ago)

C++. I want to make things go fast and/or run with minimal resources

It's true what they say: there are languages that everyone complains about, and languages that nobody uses. C++ has been tested time and again.

[–] [email protected] 4 points 11 months ago

I don't program but as a user I like python cause it'll tell me what's wrong in a pretty easy format

[–] [email protected] 4 points 11 months ago* (last edited 11 months ago)

I currently don't have 1 favorite there are so many really cool languages. but here are 2 and some that have inspired me.

  1. Common Lisp for sheer Technological prowess has some very advanced features that I dont see very often, runtime recompilation, code as data, data as code, debuggers, images, redefinition, macros , perf measuring, recompilation during errors to fix bugs etc... and has a algebraic syntax which can be nice.
  2. D for general purpose, again has features that are not common, optional GC, C compiler, zero allocation c strings, Lowlevel purity, and can be as Fast/Faster than C, and as simple as python(in the base language obviously pythons packages make up for basically all of its flaws). Languages that have inspired me not favorites but changed the way I think are APL, Factor, Scheme, Lobster, Unison, and Koka, I hope you enjoy the read if you check any of those out.
[–] [email protected] 4 points 11 months ago

Python, for when I don't feel like writing in Rust.

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

Rust and Zig are currently my favorite languages.

load more comments (1 replies)
[–] [email protected] 4 points 11 months ago

Go make me feel more productive than any other language I've used which makes me feel smarter than I am.

[–] [email protected] 4 points 11 months 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 😅

[–] [email protected] 4 points 11 months ago

Whatever gets the job done 🤷‍♂️

[–] [email protected] 3 points 11 months ago* (last edited 11 months 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] 4 points 11 months 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)
[–] [email protected] 3 points 11 months ago (1 children)

Favorite for quick tasks: javascript, the last few years of ecmascript features make it an incredibly productive language.

Favorite for hobby stuff: rust, but with caveats. I miss default parameters, I dislike the syntax soup, the async system has too many "standards" (see xkcd on competing standards)

Favorite for work: javascript/typescript. Having my team be fully capable of working on any part of our competencies with just one language is huge. Sharing code between front end and backend, across products, and easily finding developers all make it an easy choice.

Least favorites:

Php: magic quotes? Golang: using casing to establish public vs private? Objective-C: the worst combo of every one of it's predecessors Java: forcing the paradigm of everything is an object causes so much boilerplate Vb5/6/a: triggering a button with = True, using a single equals for both assignment and equality, callbacks are an absolute nightmare

load more comments (1 replies)
[–] [email protected] 3 points 11 months ago

C Bash and Go. I feel like I can do pretty much anything with this trio.

But Java is my paycheck language.

[–] [email protected] 3 points 11 months ago (4 children)

Logo. 🐢

Yeah, not really a programmer. Logo and Basic were pretty much the extent of my learning as a kid back in the early 80's. Wouldn't mind getting into python if I had some spare time. Keep coming across stuff where being able to do python scripting would be useful.

[–] [email protected] 3 points 11 months ago

Logo is the GOAT.

load more comments (3 replies)
[–] [email protected] 3 points 11 months 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] 4 points 11 months ago (4 children)

For desktop UI: Rust

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

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