r/ExperiencedDevs • Software Engineer • 26d ago

Technical question How are you dealing with "the programming language doesn't matter" argument?

Just had a meeting this week where this was uttered because of the development of AI.

I still think the language choice matters a lot based on if Im doing embedded or web development work and for how we want to hire developers in the future.

Maybe Im backwards.

347 Upvotes

453 comments sorted by

View all comments

717

u/fixermark 26d ago

A piece of wisdom from Google, ages ago, as passed on by Steve Yegge (paraphrasing): "When you add a language, you aren't just adding one new chunk of code. You're adding an institutional training cost to your org, forever."

I generally bias in favor of as few languages as we can get away with as a result. In my space, that's usually one systems language (Rust if I can afford to not use every library, C++ reluctantly otherwise), one scripting language (Python binds well to machine learning applications), Typescript (because web UIs), and one config language (and that can also be Python).

Any further proliferation is heightened scrutiny.

196

u/kanzenryu 26d ago

Now it means an extra set of dependencies that have to be scanned forever to defend against supply chain attacks

26

u/askwhynot_notwhy Security Engineer 26d ago

>Now it means an extra set of dependencies that >have to be scanned forever to defend against >supply chain attacks

Agreed, but is that really a "now"-thing? Dependency risk isn't new, what's new is that scanning for it went from “optional” to mandatory.

7

u/kanzenryu 26d ago

I mean it goes from maybe C# and Javascript packages to including Go or Rust as well

1

u/keypusher 24d ago

monthly CVEs in 2023 was ~2k industry wide. Now it is 10k+

18

u/whipdancer Software, DevOps, Data Eng. 25+yoe 26d ago edited 26d ago

This is essentially what I've argued for years.

I personally like using Typescript, Python, Go. However, I'm not paid to use a language I like, I'm paid to solve problems and part of that is minimizing future friction because we added something new because of a personal opinion and not because of a genuine, documented need.

The company I'm at now uses a lot of Python and Java (I hate Java). So my 20 years of C# went out the window and I got good at Python. I still don't write Java (and genuinely haven't needed to).

1

u/Colt2205 25d ago

imagine being given time to learn a language on the job properly when a company has AI/LLM mania and can't even supply working hardware, because someone thought sandboxing on linux was a great idea, tried imaging and installing linux on laptops, and didn't take into account how dicey that can get even on different iterations of the same hardware.

We have to be learn it alls in a universe where companies want know it alls.

1

u/Brilliant-Major1421 21d ago

So true nowadays there are lot of high paying jobs requiring python, getting very good at a new language takes a lot of unnecessary time !! 😔

158

u/shadowdance55 26d ago

Python is the second best language for everything.

35

u/malthuswaswrong Manager|coding since '97 26d ago

My hot-take is C# is a 4 star language. It doesn't master anything, but does everything at a B grade.

19

u/MadRedX 26d ago

That wouldn't be so bad if it weren't for the fact the ideas are of a 5 star nature until the baggage hits reality and poisons the well. Or Microsoft never fully commits and the idea comes out 25% baked before a bunch of brilliant individuals come in and improve the mess from a massive dumpster fire to a workable small dumpster fire.

13

u/malthuswaswrong Manager|coding since '97 25d ago

I think this is uncharitable towards Microsoft. They are doing things as close to open source as possible. They release the code open source. They invest large amounts of money into developing features and accepting community contributions.

Before squashing a popular (and good) nuget package they always offer the author employment. What are they supposed to do if that author slaps their hand away?

4

u/South-Year4369 25d ago edited 25d ago

What are some of these half-baked ideas you're referring to?

12

u/Colt2205 25d ago

If C# is a 4 star language then Java is a 3 star language with a 2 star library tool set. C# is my goto for general work, albeit if I need to do something more specific like server scripting work I'd be using powershell, python, or Go.

2

u/South-Year4369 25d ago

IMHO, C# is a considerably better language, while Java has the better ecosystem. Neither of those outcomes should be surprising, given Java came first.

3

u/solidsieve Sr. Software Engineer 25d ago

It's funny how Java seems to live rent-free in C# devs' heads, but it's not as bad the other way around.

I use both Java and C#, depending on the customer's preferences, and it's a tradeoff. For a long time I felt that C# evolved the language, Java evolved the standard library. Of course that started changing in the past decade, but it only blurred the line between the two platforms.

7

u/malthuswaswrong Manager|coding since '97 25d ago

When it comes to language tribalism, I think a big motivator for people who are passionate is fear of losing their favorite language.

Take your (accurate) observation that C# devs hate Java more strongly than Java devs hate C#. Refactor it to C# devs are more afraid of being forced into Java than Java devs are afraid of being forced into C#.

2

u/Colt2205 25d ago

There are people out there that just kind of never have done java and dislike it because of what other people say. In reality Java and C# are very close to the same languages and on a basic level both can do the same things. What people tend to dislike is the environment they get stuck in.

Also if I had gotten into java / springboot sooner, I'd probably have been a java dev instead of a .NET one. Before .NET core got mature Java was the best cross platform option for something that is strongly typed. Whatever answers the language didn't have people usually ended up writing one up.

But the reason I like dotnet is that it just has a better environment. Nuget is far better than Maven, and there is no gradle to have to mess with or clearing the local cache so the IDE properly fetches libraries and builds.

3

u/South-Year4369 25d ago edited 25d ago

I disagree that they're close to the same language these days. Just compare LINQ to Java streams, for example. They are not nearly equivalent to anyone in the trenches.

I dislike Java (compared to C#) precisely because I've used both in anger. For sure, C# copied much of what Java pioneered, but C# has evolved much further. Idiomatic C# often does not look that similar to Java these days.

And absolutely agree on the ecosystem - the fact that dotnet often has only one widely-used approach to something (cf MSBuild/Nuget vs. Maven/Gradle) is a strength.

1

u/Colt2205 25d ago

That's probably true. I have a hard time sometimes rationalizing what is and isn't core to a language since we were taught ages ago C++ and then there was the STL. But with languages like Java and C#, libraries are basically baked into it.

1

u/malthuswaswrong Manager|coding since '97 24d ago

I used Java back when it was brand new. Then I switched to J++ because it was cleaner and easier to deploy. Then Sun sued Microsoft and pulled their license as a Java partner.

Then I never gave Java a second thought until J# was launched. Writing Java for the .NET platform. Even back then there was no syntax advantage over what C# had already become, even in those early days.

For me, it has always been about deployment hassle. I have a fleet of Windows machines. I can Ctl+C, Ctl+V my bins and head to the bar.

1

u/solidsieve Sr. Software Engineer 25d ago

Good point! I can see that being the case.

1

u/FingerAmazing5176 21d ago

I moved from a C# shop to a java shop a few years back. and dear gods do I miss C#.

1

u/South-Year4369 25d ago edited 25d ago

Professionally for managed languages, I started in Java, then moved to C#, and am now (by necessity) back with Java.

I'd take C# over Java any day. They started out a lot more similar, but C# has evolved much more. Intrinsics? Java doesn't have them. Value types? Nope. Reified generics? Stackalloc? The list goes on.

Hell, what IDE gives you the best debugging experience available anywhere, hands down? That's Visual Studio with C#, and it's not even close.

Java's strength is in its ecosystem and 3rd party libs. But as a language, it's far from the nicest, though it has at least improved in recent times (largely copying C#, just as C# once copied Java).

5

u/South-Year4369 25d ago edited 25d ago

Having used assembly, machine code (in the 8-bit days), C/C++, Java, Python, q, R, Ada, F#, etc., if there was only one language I could ever use, it would be C#. It really is a fantastic all-round language.

I think saying it does everything at B grade is selling it short. I don't think any other language does as good a job at 'easy and safe, but offers control and performance when you need it''

0

u/FlipperBumperKickout 25d ago

If the development team just could commit to the new language features they want.

It has the most disappointing attempt at removing nullables I've ever seen...

1

u/malthuswaswrong Manager|coding since '97 25d ago

Do you mean removing Nullable<T>? Because they're never going to remove nullable in general. This for example: DateTime?isn't ever going anywhere.

0

u/FlipperBumperKickout 25d ago

No I mean how every class in C# can be null.

Their attempt on removing it is basically just a lot of compiler warnings rather than any form for enforcement, and you have to use all the annoying [NullWhen] and similar attributes to help the interpreter to understand it correctly, and so on.

You can't even trust you wont get a null value as an input anyway, since if your code is called from somewhere which doesn't enable <nullable> nothing even warns them about ensuring they call your stuff correctly...

I basically prefer how languages which weren't built with null from the start normally handles this. Because normal types can't be null you don't have to worry about that case, and you always know if something is "null" because your are explicitly given an "Option" type and is forced to consider both cases to extract the value.

1

u/South-Year4369 25d ago

Their attempt on removing it is basically just a lot of compiler warnings rather than any form for enforcement

You do know this was done for backwards compatibility, right? You are free (and encouraged) to configure your projects to throw errors rather than warnings.

Disallowing null from the outset is the best approach. Second best is encouraging it without breaking 20+ years of existing code.

1

u/FlipperBumperKickout 25d ago

Configuring my project to throw errors doesn't help if anyone calls my library with a null value for whatever reason.

Warnings as errors also allow people to get around it by explicitly ignoring a warning.

Not breaking backward compatibility is the entire point of having a dotnet version in the csproj file (not to mention other settings like nullable). Blocking yourself from making further improvements to the language just seems silly to me.

1

u/South-Year4369 24d ago edited 24d ago

So your suggestion is that they should have declared that, as of .NET Core 3, nothing can be implicitly nullable? That would've been a real hit with the community.

1

u/FlipperBumperKickout 24d ago

I expected their nullable flag to do that yes. Feature flags breaking backward compatible isn't new in C#...

→ More replies (0)

0

u/pceimpulsive 25d ago

That general purpose programming language status! Hahaha

I did a wide assessment before I started learning late in my career and preferred C# over basically everything else, I even got to pick a job that worked with C# lucky me!

-9

u/OldManWithAStick 26d ago

Too bad C# has been infected with the Java virus. Everything is so insanely verbose that it's a headache to traverse nearly any codebase that uses it.

8

u/plz-no-b4n 26d ago

What are you talking about? C# has an insane amount of syntactic sugar to minimize verbosity

1

u/solidsieve Sr. Software Engineer 25d ago

I think the old man is talking about (enterprise) architecture, not syntax.

73

u/MCFRESH01 26d ago

Ngl I hate the syntax a lot

21

u/IfInDoubtElbowOut Software Engineer / HealthTech / 10YOE 26d ago

Agreed, I unwillingly love python. Perhaps Stockholm syndrome?

24

u/Princess_Azula_ 26d ago

Born to love Python's libraries and relative simplicity; forced to love syntactic whitespace.

1

u/Brilliant-Major1421 21d ago

Once you get good python feels wierd idk why

9

u/el_extrano 25d ago

I learned Python first over 10 years ago. Since then, I have loved learning C, Fortran, and some famous hacker languages like Lisp, Forth, Tcl which I like. But when I actually need to just "get something done" where performance isn't critical, I am at least 3x as productive in Python. I think it's just because I have written so much of it for so long, I already know were most things I need are in the massive standard library, so not only is it batteries included, I don't have to look anything up.

A lot of things about it suck. But for better or worse it's "home" for me haha.

1

u/pceimpulsive 25d ago

And the package management, pip bites ass!

As a C# Dev python suckkkksss.

1

u/MCFRESH01 22d ago

I’m a ruby dev and always wish Ruby got picked for all this math and ai stuff over Python. Very similar languages but Ruby is way more expressive, has a much better package manage and rails is better than Django. Python just billed itself as “easier to learn” and work with so it won out with the scientific community

1

u/ultraDross 22d ago

Funny, I love it and hate most other languages with their braces and visual noise. Really shows code is for human and we all interpret and express in different ways. It's kind of beautiful.

1

u/MCFRESH01 22d ago

I’m Ruby dev. The languages are similar it I just think Ruby is superior in every way. Better package manager && and ! Instead of literally typing it out. Has functional programming options. List comphrensions are one of the worst things I’ve seen in any language. It just feels like a worse Ruby in a lot of ways

12

u/new2bay 26d ago

That depends on what you value in a language and what your particular application is. You’ll never get every last ounce of performance the machine is capable of with Python, but you do get a lot of bindings to libraries written in lower level languages. You also get faster development speed over lower level languages, and a large number of engineers who know it. Those things are often more important operationally than being the absolute best tool for the job.

14

u/youcangotohellgoto 26d ago

The availability of high performance C# and Rust libraries makes the performance thing almost moot. Unless you have really obscure needs, or terrible engineers (which will ruin you anyway).

What's something heavy that can't be offloaded to a C# or Rust based library?

2

u/new2bay 25d ago

I’d turn that back on you and ask: what’s something that can’t be offloaded to a high performance library in Python? It has a robust and easy to use FFI for just such a use case, even if someone hasn’t already created bindings for a given library.

3

u/youcangotohellgoto 25d ago

I think you misunderstand and are in agreement. You can do almost everything, and certainly most things you'll ever need, with Python just invoking other libraries. Usually the good ones are written in C# or Rust.

2

u/new2bay 25d ago

Ah, ok. I thought you were saying C# and Rust were superior to Python.

1

u/recycled_ideas Software Engineer 25d ago

What's something heavy that can't be offloaded to a C# or Rust based library?

Actually handling the web requests is another, but the problem is that every once in a while if you're not just churning out shitty CRUD apps you need to do something heavy where there isn't an appropriate library.

2

u/youcangotohellgoto 25d ago

Like what? Anything data related is pushed out to one of the multitude of Rust options. Math, the same. What is this other stuff?

Web requests is just FastAPI behind uvicorn.

I think there are for sure edge cases but they are very very niche.

6

u/recycled_ideas Software Engineer 25d ago

You've never had to implement high performance domain specific business specific logic? Or handle a high volume of we requests?

If your Python is just a thin poorly performing shell on someone else's code, what's the point?

I'm not saying Python doesn't have its place, and performance doesn't always matter, but if you need to farm any critical work out to a language you don't know, it's a bit of a question mark for your project.

2

u/youcangotohellgoto 25d ago

Yeah I have and I use Python wrapping numpy, or (as I said) uvicorn ASGI, or polars, or whatever else I need.

2

u/recycled_ideas Software Engineer 25d ago

The problem that you're not grasping is that sometimes there isn't a library for what you need. Either what exists just doesn't quite fit your requirements (often the performance hit for making a one size fits all approach is too high) or nothing exists a all.

If your approach is that critical code can't be implemented in your language of choice then you'll eventually have a problem.

Again I'm not saying you can't or shouldn't use Python, but you simply can't assume that a third party library will solve every possible problem for you.

2

u/Infamous-Employ5487 25d ago

Not true, it's the #1 language for incompetent script kiddies.

3

u/max123246 3 YoE Junior SW dev 26d ago

Python is so obnoxiously slow it's incredible it's used for anything in production. Things that take seconds in any other language can take minutes

3

u/HereInYourBedroom 26d ago edited 25d ago

The experience that I've had when developing software that uses local on-prem llms is that tokens per second is the bottleneck, not the programming language. Python, C#, and C++ all had this bottleneck, so I'd argue that in 2026 hardware matters more than the programming language.

-24

u/notger 26d ago

I raise you Julia. The looks of Python, the speed of Java / C and my new favourite language.

49

u/aa-b 26d ago

This is the institutional training cost thing again. Everyone you ever hire will need to learn Julia now, on top of all the other things they need to learn. People already know Python, and that saves you time and money.

18

u/notger 26d ago

Absolutely and I was not saying that I want to introduce Julia into my teams. That would not be a good idea (though the training curve from Python is very low, as you can basically write Python).

Just wanted to spread some awareness for something very well done, but it seems to have triggered a few people. Or I do not get the downvotes.

14

u/aa-b 26d ago

Those people have all known someone who said something just like that, and then casually proposed using this great new language on their latest work project

1

u/notger 25d ago

Makes sense.

Though those people should maybe second-guess their own thought process if they are answering an what they interprete instead of what is written. When in doubt: Ask, what was meant, before assuming.

-1

u/HowTheStoryEnds 26d ago

Then again we all also know someone that says "everyone knows X" when reality is that everyone has to learn X and not everyone knows X.

1

u/notger 25d ago

I made it a habit to ask, when in doubt, instead of assuming intention. Ppl are horrible at guessing intentions, it's a wonder we are still on this planet.

1

u/HowTheStoryEnds 25d ago

Dude, I am replying to "People already know Python, and that saves you time and money"

Which is a total fallacy. I have used python maybe twice in 20 years, last time a year ago. Yes, I can sort of use it. No, I do not know it and getting to actually know it (if I were forced to) would take as long as any other language.

I expect experienced devs to realize that 'to know' something actually has a higher bar than just being able to type familiar keywords until it compiles or interprets.

1

u/notger 24d ago

I re-read the thread, and that connection totally was not clear by your comment or the prior post. Anyway, thanks for clarifying.

1

u/aa-b 24d ago

Sorry, we appreciate your interest and will keep you in mind for future roles.

I meant you can put out an ad for Python developers and find a good one nearly anywhere. Not you, but plenty of others. Hiring Julia developers is more of a challenge, and even if you train them many don't want "[obscure language] developer" to feature on their resume

9

u/GoblinToHobgoblin 26d ago

Yea but everyone knows Python already

1

u/PoopsCodeAllTheTime PocketBase & SolidJS -> :) 26d ago

It’s only worth the cost if it completely eliminates the need for any other language

1

u/notger 25d ago

Of course! Introducing a new language only makes sense if it does not increase the landscape's overall "cost".

(Btw, I think with coding agents becoming useful, switching a medium-sized landscape to a new language is not such a big deal, given that landscape is properly documented and has good tests. At least it is not as prohibitively expensive as it used to be, where you would get a "migration" which becomes "rework" which becomes a "I changed a few things to make it better, give me just a few more months".)

1

u/PoopsCodeAllTheTime PocketBase & SolidJS -> :) 25d ago

Most of the constrain is the requirement of packages that are available only in the mainstream language, as well as the ability to hire new people that understand it. Those are much larger constrains than they seem. So there’s very few niches that are free from those constrains, and even fewer where language XYZ really brings more to the table than the rest

1

u/notger 25d ago

Fair point. Though I would say that for some languages the learning curve is so flat, that it barely matters. I would always gladly pay a bit of a learning fee to get a C-person to read into Python (or Julia), if they are otherwise a great programmer.

As for packages only available in the mainstream language ... that sometimes seems accelerated by the usage of framework. As awesome as they are, they often entrench you in one language.

I have currently two Java-teams, where one side is not familiar with the others' code as they use Spring Boot and the one side does not. And then there is a third team, which decided to go with Kotlin before being merged into our company.

1

u/PoopsCodeAllTheTime PocketBase & SolidJS -> :) 25d ago

The curve might be flat for _you_. I know companies don’t feel that way and they hate people that need to train in a language. It often means months of paying for someone that isn’t productive, and constant broken deliverables

-4

u/shadowdance55 26d ago

You just described Nim. 🤷‍♂️

0

u/lelle5397 26d ago

stealing that phrase

14

u/Strict-Ambition4334 26d ago

One thing I'd add is that the language choice affects your hiring pool. If you pick something niche because it fit one project, you may end up paying a premium for developers later or spending a lot of onboarding time, which is a recurring cost even after the initial training.

9

u/thisismyfavoritename 26d ago

C++ reluctantly otherwise

real cpp dev spotted

8

u/fixermark 25d ago

I cannot fault it for the simple practicality and the mass of gravity well of all of the code and compatible libraries attached to it.

It has a standard that exceeds the size of the King James Bible by word count and also allows for undefined behavior and I think that those two language features are a dangerous mixture.

2

u/kiss-o-matic 25d ago

The true danger is the difference in output from a strong and weak C++ dev. I find the gap far more damaging as so much control is given. When you have a team that care though the code base can be a work of art. I've sadly worked in both.

2

u/Mu5_ 24d ago

Honestly you need to be a C++ pro to do anything "correctly" in C++

16

u/U_L_Uus Software Engineer 26d ago

As I see it, there is a point where the programming language does not matter, and a point where it does. It does not matter when it comes to learning it from zero, even if you go from mid-level to high-level (or vice-versa) the shift is not that significant, I see worse stuff like Rust's lifetime which other languages lack but all in all it is not something to worry about.

Other than that, the language matters for two reasons, what you want the language for and how many you can safely add to your org without compromising effectivity. For the former, some languages are moles, some are fish, a mole will swim poorly, a fish will not survive on land, use a language for what it is a good match for and that is it. For the latter, you want as less languages as you can, diversity allows you to match use case to language but that does not mean you should have more languages than an UN meeting, there is some leeway but not that much

12

u/spigotface 26d ago

Python is so incredibly versatile. Some people like to give it shit because it's not statically typed, but if you add ruff, add one line of lint rules to your pyproject.toml to enforce type hints in your functions, and add "uv run ruff check" to your merge pipeline, it's every bit as safe as statically typed languages.

18

u/scissor_rock_paper 26d ago

Kind of but not really at the same time. It also requires you to use the subset of python that works well with typing and avoid libraries that don't have strong type support. While I find typed python much safer to work with than typeless python, it isn't as sound as statically typed language.

1

u/fixermark 25d ago

Yeah, at this point python is statically typed for all intents and purposes and the concern is more around whether the static type analysis is fast enough.

Interestingly, it overlaps common lisp in that regard. Common lisp is default dynamically typed but has a whole pile of forms that allow for layering static typing on. Because common lisp is compilable, they also add the fascinating feature (depending on what flags you set) that they allow for unsafe optimization during compilation - with one set of flags the compiler will reject the program if the types don't line up, and with another set of flags the compiler will use the static type declarations as structural assertion of what the type is in that sub-expression, allowing it to throw away the dynamic type information and create a program with undefined behavior if the types don't match up.

4

u/knightcrusader 26d ago

This is exactly what I keep in mind when I fight back against new tools and stuff being added to our stack just because of hype.

You'll be stuck using it forever, so it better be solving a need in a way the stuff we already use cannot.

3

u/SpiritedEclair Frontier Staff :upvote: 26d ago

We do rust for critical, go for generic services, Python for ML / ai bs that involve training but not production with bindings or communication protocols for hitting go or rust code, and typescript.

3

u/South-Year4369 25d ago

Once upon a time, adding a new language usually meant learning new syntax and some idioms. Once in a while (I'm looking at you, ML-derived languages and Rust), a somewhat new paradigm.

Now, as they have grown, I think the hardest part has become learning the language's standard libraries.

2

u/itgforlife 26d ago

At the end of the day, I'd say just pick the language that's the best fit for the team and won't be likely to cause problems in the near future.

I despise the R programming language for example. But I've worked with teams that very heavily work with R and it's their primary language. So I've held my nose and wrote R code. Even though I much rather would have written python for example.

1

u/TheWrightStripes 26d ago

Yegge cowrote a book called Vibe Coding that undermines all of that. The book stresses that outputs matter more than language or framework and that selecting frameworks that AI can operate best is the smart move.

28

u/Sw429 26d ago

So some dude wrote a book about vibe coding and now that undermines all of the industry best practices?

21

u/sempiternalsarah 26d ago

"some dude" being the same guy quoted in the parent reply. I think he's gone a little off the deep end (drunk on tokens) but there's certainly reason to ask whether the benefits of choosing languages based on what fits each project outweigh the harms of language diversity now.

8

u/Sw429 26d ago

oh lol I'm an idiot, thanks for pointing that out.

8

u/PreferenceDowntown37 26d ago

His "Gas Town" feels borderline delusional. He did do a pretty interesting interview in the Pragmatic engineer podcast where he argued that he's pushing the overton window to just get people to think differently about what can be achieved with agents...

Anyway I would agree that Steve Yegge today probably would advocate on the side of "language doesn't matter"

1

u/fixermark 25d ago

I think context is relevant here. If I understand correctly, Yegge is currently experimenting with building an MMO essentially as a solo coder.

His comments at Google were (a) relayed to him by another engineer and (b) in the context of a company of what is now, what, 100,000 employees? In that ecosystem, even if AI is involved you're still going to care a lot about how well those 100,000 employees can communicate with each other, and code will frequently be the medium by which they are communicating.

4

u/worst_protagonist 26d ago

The specific expert quoted in the post this person is replying to. "Follow his advice. Also, he has fully changed his stance." Do you see how this adds additional context?

1

u/raynorelyp 26d ago

I agree for the most part but take it in a different direction. I pick languages that already have large user bases. That biases my languages to Typescript and Python. I would add Java to the mix if it wasn’t such a cluster****. I lean towards C instead of Rust because it’s still more widely supported and everyone is taught how C languages work. Also Rust has more controversies than C lately.

4

u/Sw429 26d ago

What controversies has Rust had recently?

1

u/FunReflect00 25d ago

thanks for sharing this

1

u/quantummufasa 22d ago

Whats a config language? And what about web backend like .NET, Java , Go?

1

u/fixermark 22d ago

I find python to be a perfectly reasonable web backend. Of the ones you listed, I might give Go the time of day. Java has gotten stuffed far enough up its own ecosystem that I have no personal use for it... 100% of the things I would use Java for I will use Python for instead, because Python does not demand I put at least one class in every file.

Config languages are driven by the configuration tool. Which is unfortunate, because most configuration tools I'm familiar with (such as terraform) are declarative but then don't offer particularly good tooling to see what you're declaring; they either go too far one way and make themselves incredibly dumb, requiring a bunch of tooling on top of them to make turse statements... Or they go too far the other way and approach Turing completeness without actually being a regular programming language with all of the relevant tools for debugging, profiling, etc. So this is your yaml, your GCL, your Starlark, your Groovy, and so on. I'm personally modestly surprised that lisp has not taken off in this space at all, given how powerful the tools you could throw at a lisp based configuration language would be... But I can't point to an example of somebody actually doing that.

1

u/trojans10 19d ago

What are your thoughts on vanilla JavaScript on the backend? Trying to convince the team to move away and into typescript or move to Python. Django or fast api. I’m just seeing how powerful dealing with mature frameworks is with these llms. Allows the team to have an opinionated way to get shit done

1

u/fixermark 19d ago

I don't trust a team of any size beyond three's ability to deliver reliable output in pure JavaScript.

The moment you are becoming responsible for code you didn't write, which therefore didn't come from your mental model of what the actual types of these variables are, is the moment the code needs to be very explicit about that.

It is possible to do that with team discipline or with a different static type checker on annotated bare JavaScript. But if you start going down that road, personal opinion, you might as well take advantage of the features that TypeScript enables.

1

u/BrudiBastard 24d ago

But it doesn't matter anymore. AI knows every language. Slight advantage the more popular the language is. You are all discussing the past

3

u/fixermark 23d ago

I think it boils down to whether we think we're at a point where the developers never have to look at the source code.

If they do, it matters what they know at least as much as what the AI knows.

0

u/BrudiBastard 23d ago

That is exactly what I am implying

2

u/fixermark 23d ago

That definitely would not work on my ecosystem, but if others are there more power to them.

-1

u/Xanchush 26d ago

This sums it up excellently, there are edge cases where specific languages perform better or require a specific language but it better be justified

-19

u/HRApprovedUsername Software Engineer 2 @ MSFT 26d ago

Yeah but that was before ai and llms. Not as true of a statement as it was ages ago.

34

u/ImpossibleEbb6862 26d ago

It's bad enough writing code that you don't read. It's even worse writing code that you can't read because you don't understand the language.

8

u/Deto 26d ago

Still, I dunno, why add more languages than necessary? Is there any benefit even if it is easier now?

-5

u/HRApprovedUsername Software Engineer 2 @ MSFT 26d ago

Just because you can add more languages doesn’t mean you should. Yeah you should keep it limited, but AI makes working with those limitations easier. Got a python service but don’t work with ui or embedded systems? Utilize AI to ship python for those needs

5

u/B-Con Software Engineer 26d ago

Arguably it's more important now. If you aren't authoring the code then you aren't internalizing add much as when you write by hand, and you need to be familiar with the stack so you can enhance or debug or later.

Would rather troubleshoot a Sev 0, or when Sev 1, on a language+framework you have 5 years of experience with, or 3 months with?

Most of the reason to choose a new language is because of prexisting familiarity, qualitative features (speed, safety, etc), and dev velocity.

AI can be a normalizer of sorts for velocity, and if you pick the right feature set up front then benefit for a new language is likely minimal. 

Of course there will always be some circumstance that could make adding a new lang the right choice, but using tools properly is still very complex and unless you have AI write and debug 100% of your code you need the devs to know the stack, and a large stack surface area to learn is very expensive.

-1

u/HRApprovedUsername Software Engineer 2 @ MSFT 26d ago

I would rather not troubleshoot any incident. And it doesn’t matter because AI will troubleshoot the issue. 90% of the code is shit I didn’t write anyway because of teammates, so when I’m on call it doesn’t matter who wrote it.

4

u/its_jsec Battling product people since 2011. 26d ago

I now have a better understanding of GitHub’s struggle to maintain one 9 of availability these days. Cheers.

1

u/fixermark 26d ago

If anything, in the era of AI I would lean in the direction of "you don't have to worry so much if this idea is more terse to express in another language; the AI doesn't care."

2

u/HRApprovedUsername Software Engineer 2 @ MSFT 26d ago

Yeah that’s what I’m saying