Skip to content(if available)orjump to list(if available)

Every programming language has its 'killer' domain

abeppu

I think the thing missing here is that the killer domain isn't necessarily intrinsic to the language or its design. Some languages are designed for specific domains, but some find their domain based on large projects that happened after the language was out in the world. My understanding is rails came almost a decade after Ruby, numpy etc came well after python. This post says that you shouldn't try to use a language outside of its domain, but if everyone believed that, languages would never find a new domain.

condwanaland

I strongly think that R has outgrown just having statistics as its killer feature. The killer feature of R is data analysis

I have yet to see any software that rivals dplyr, data.table, and ggplot2 in the balance of power and ease of use. It also has all the auxiliary packages you need to fetch your data (DBI, httr, rvest), model it if necessary (parsnip, caret) and visualise it (ggplot2, plotly, shiny)

I know python is more popular here but I would choose R in a heartbeat 19 times out of 20

andirk

Is Python especially popular because of its easier learning curve?

condwanaland

Possibly. I think R is actually easier to learn for people who have never studied or done programming before.

1. It's easier to get up and running as RStudio is much more 'batteries included' than other popular IDEs, it's harder to get into the case of multiple different python versions, and you install packages through the R interpreter rather than via pip at the command line

2. I would say R data analysis packages are easier to learn than the python equivalents. Because the dataframe is a native structure in R there has been a lot more packages that have tried alternative syntax approaches to try and find the 'optimal' one. Python has really only had pandas, polars, and pyspark (all of which have implemented their own data structures and therefore have focused more on performance than syntax)

3. This doesn't hold if you're studying a language to be a general purpose programmer. Then python is much better. Anything to avoid the hell of the R standard lib. But if you need to do a bit of coding to analyse data and you've never done any before, my vote would be for R.

However, these are thoughts from my own personal anecdotes rather than any pedagogical theory

haiku2077

I'd also say because of its price (especially vs MATLAB and Mathematica) and the huge ecosystem of libraries for basically every scientific domain.

chneu

Those libs likely only exist because of how easy python is to learn. So, snake tail situation maybe.

valorzard

C# is also THE language for game developers. No other language even comes close, besides like C++

seabrookmx

It also runs on non "Microsoft systems."

I've been writing C# for over a decade, and 99% of it has deployed in Docker containers to Linux VM's (via k8s etc).

This post seems nonsensical.

notpushkin

It doesn’t say you can’t, or shouldn’t, use these languages for other purposes.

Edit: nvm, see jibal’s comment below

jibal

"in my experience each time I try to use a language in the wrong domain, it's much harder and often practically infeasible."

oliverdzedou

C# is definitely popular for game development, but saying no other language comes close does not seem to be true. Looking at the most popular game engines and frameworks, it seems to be about as represented as anything else.

Game engines: Unreal - C++, Unity - C#, Godot - GDScript (Python) + second-class C# support

Frameworks: Raylib - C, Bevy - Rust, Love2D - Lua, Monogame - C#, Phaser - JS, PyGame - Python

We don't know for sure what AAA companies rolling their own engines use, but the industry standard would be written in C++, exposing C++ for programmers and Lua for non-programmers/modders.

valorzard

I probably should have mentioned Lua, you’re right. The big three for game dev is C++, C#, and Lua.

C# is basically the midpoint between Lua and C++ which is why it’s so popular with game devs imo

worthless-trash

More games are written in javascript than any other language, sad but true.

dedup

To me, Python is a great language for anything that needs to be written quickly and executed a few times and/or on a small scale. I'm a C/low-level guy primarily but I write a lot of Python code (probably more than C these days) for various purposes, and none of it is related to statistics or machine learning.

morepedantic

Because you haven't extrapolated from Python's niche. Those domains are derived from Python's accessibility. Python might be the most accessible big boy language.

andirk

I'm currently learning Python for my ML/Tensorflow online coirses. I thought bc I know C++ it'd be super easy but theres a lot of differences between them. Turns out an "easier" big boy language still has a bit of a learning curve

morepedantic

Python: dynamically typed, structurally typed, garbage collected, exceptions C++: statically typed, nominally typed, manual memory management, exceptions

It's a big jump from C++ to Python. If you want a midway, use Go.

-__---____-ZXyw

I wonder what Common Lisp's 'killer domain' is in this framework... general purpose computations? Which was a bit much to handle for businesses and even a lot of programmers, hence its niche (yet actually very resilient) status?

maz1b

Elixir/Phoenix? Haskell? Erlang? F#? Crystal?

I also don't agree with the fact that ruby is just like PHP.. for web backends.

notpushkin

Elixir/Phoenix → web, various parallel processing stuff?

Haskell → dunno, but it’s pretty cool

Erlang → dunno again, maybe some low-level stuff for Elixir?

F# → business apps for MS when you get sick from C#

Crystal → web, I guess?

Ruby is good for web, but it’s also useful when metaprogramming tricks work for you in your particular domain. Same with Python (it’s also insanely good for web!).

simonmic

Haskell → High-assurance applications and prototyping/research.

rienbdj

F# is strictly better than C# if (huge if) you have a team that knows both languages.

notpushkin

It’s an important caveat, yeah!

asplake

Erlang → scalable real-time systems, eg telecoms

notpushkin

Yes, though could you perhaps use Elixir there as well? (Sorry, I’m still largely ignorant to this space, but would love to learn more!)

sedatk

“C# → Business applications that run on Microsoft systems.”

Folks, it’s 2025. This stereotype should have died at least five years ago. C#+.NET is open source and cross-platform since 2016 or so.

dgrin91

Not to mention c# is commonly used for video games (see: unity)

oaiey

Surely there is somewhere a number, but my educated guess is that 90% of all new / greenfield deployments go into a Linux (or a Lambda/Docker variant).

vaylian

Did C# really catch on on other platforms? C# was somewhat popular on Linux with Gnome for a while but my impression is that this has completely died down.

While it is technically possible to use C# on Linux and MacOS, it doesn't seem to have a significant mind share.

oaiey

For the development of the platform, like desktop apps, no. But as web server, api or just whatever logic layer, definitely. Big times. On Linux in containers or lambdas.

mg

    Python → Scientific computing and machine learning.
    PHP → Web backend.
    
I wouldn't be surprised if more web backend code is written in Python than in PHP these days.

Not sure how to figure it out. Google trends maybe?

https://trends.google.com/trends/explore?date=all&q=python%2...

Boltgolt

I think you underestimate the sheer volume of wordpress sites that pay for custom development

kyriakos

Or how many agencies are using laravel for all their customers

chiffaa

> Only Ruby lists Ruby on Rails as its killer app, but that's basically it.

Concrete examples: Dart with Flutter, Elixir with Phoenix,

Arguable ones: JavaScript and browsers, Go and Kubernetes

I kind of disagree with the "killer app" concept because most languages can work in a lot of domains, but there are more examples if you're willing to think about it

creshal

I wonder what the killer domain for brainfuck is.

0x000xca0xfe

When you spilt so much coffee over your keyboard that only a couple keys are still working... then finally your brainfuck skills will come in handy.

cadamsdotcom

It's right there in the name :)

ghplreq

Rust needs to focus in systems programming domain as top priority and get better at working with C++, or it risks staying a niche language. Without strong support for existing C++ code, it could eventually be passed up by other languages with better C++ integration — even if those end up being technically worse, like Carbon,Zig or something similar.

MyOutfitIsVague

Rust isn't a niche language by a long shot anymore.

CXX[0] is fine. Personally, I just always use a C ABI to communicate between the two. I've had to do it for every other language anyway. Languages that have native C++ interop are significantly more rare than ones that don't. Most languages have some way of talking to C, though.

[0]: https://cxx.rs/

ghplreq

C++ interop still far from perfect , check out ClickHouse blog: https://clickhouse.com/blog/rust

Hammershaft

I don't agree that Zig is (on paper, it's still alpha) technically worse, it just has radically different goals for a systems lang than Rust

pdimitar

In a world where we have a constant stream of memory unsafety CVEs, Rust seems superior.

You might not be worried about these and that's okay but it's a real measurable factor by which you can evaluate languages.

setopt

I think it’s more that languages fail to go mainstream unless they have a killer domain. Lots of languages don’t.