Hacker News new | past | comments | ask | show | jobs | submit login
In what niche does your favorite programming language surpass all competition?
13 points by codygman on Sept 10, 2020 | hide | past | favorite | 25 comments
And why? What makes them special? How do they make the job so much easier than everything else?

Some examples include but aren't limited to (not necessarily my opinion):

- Web Programming: Python(Django), Ruby/Rails

- REST Api's: Haskell(Servant), Python

- Machine Learning: Python

- Embedded Software: C, Rust

- Domain-specific languages: Haskell, Ruby, Racket, Lisp

- Data Science: Scala (spark), Python, R, Julia

- Game Programming: C# (Unity), C++




R + the tidyverse (dplyr, ggplot2 etc.) is easily the most elegant data analysis combo I've used. However, I tend to use Python for this usecase nowadays, primarily to reduce friction when working with others where Python is the lingua franca. Also, RMarkdown is superior to Jupyter notebooks in my opinion.


Can you give an example of something you have to do all the time in Python that's a lot nicer in R?


Python, Numpy, Pandas is very inconsistent in comparison to R. For example, calculating and adding a column to existing dataframe using df.assign.

Coming from R, working in Python Pandas world, I am constantly googling, and checking the results of each command to make sure no errors and consistent output.


Embedded software: Rust, due to its easy-to-use tools, and powerful features, without sacrificing low-level functionality or speed.

Serverside web programming: Python, due to how useful Django's batteries-included approach is. And, its model representation of database tables, with auto-migrations.


You mention easy to use tools for Rust. Can you be more specific?


Web programming has to include PHP. You might might not like the language, but it easily beats other languages when it comes to the sheer volume of CRUD web apps built in the language.

It's available on every possible flavour of hosting (including shared hosting which makes it very accessible to many users). To setup an app can be as simple as copying PHP script files to a folder on the server. No other language can beat PHP for ease of server deployment.


Compilers: Lisp

Nothing comes close to efficient tree matching or list processing, esp with its macros.


Which Lisp (or Lisp in general)? Because of homoiconicity?


Any Lisp or Scheme. Because of the cited features. Homoiconicity only helps with macros.

I should have mentioned Prolog also, because this is even better for compilers. You state the rules, and the system comes up with the optimal transformation by itself. Trees are natural as in Lisp. But unfortunately Prolog is not popular enough, and you rarely see an open source Prolog compiler. Ocaml took that niche, but prolog would be far better.


Text processing - Perl, I have used it for 20 years now to do this and it is still one of the best languages for it.


Do you have any personal favorite examples? Maybe a recent from your history?


It is how regular expressions are built into the language itself in the same sense of how Go has goroutines.

For certain sets of problems, it makes it trivial. I remember cranking out a report in a few hours that took a Java team 2 weeks to re-implement.


I would add CPAN to the list of Perl's advantages.


Parsers and eDSLs: Haskell


Have you written parsers in any other languages? Can you contrast?


Front end web development. It's so ubiquitous I don't need to name it.


Yes, jQuery is amazing. Err, sorry, I meant Mustache. Err, no, Backbone. Whoops, Angular. Um, React? No, Vue! Crikey, you must mean Svelte!


Controlling hardware: C.


Cloud backend: goLang (docker friendly, built-in concurrency)


Moved to Go after being frustrated with Python and I couldn't be happier. I know there are complaints with the language but I'm not that picky, I can get in and hack features together really quickly. Deployment is awesome and easy. Edit: I'm specifically referring to cloud development.


Have you used other languages here? Can you give a code example where Go shines here?


Not the poster you're asking, but in my case, have used Python extensively for cloud-related programming, lots of AWS lambda. Currently in a special kind of hell trying to move our company's lambdas from Python 2 to Python 3. It should be easy but there's an internal Python 2 library that is in everything that is massive and almost impossible to excise without significant effort. Started writing lambdas in Go, you ship your compiled binary and the lambda environment will never care what version you're running. Shipping a binary means I'm no longer worried about my build environment and pip and shipping all my Python junk the right way. Also in other areas, simply transposing some code to Go has had huge performance benefits over Python and concurrency is just so easy to pull off.


> Shipping a binary means I'm no longer worried about my build environment and pip and shipping all my Python junk the right way.

I'm not sure it is that clear a win: for go, if you want to be able to reproduce a binary in future, you would still need to keep track of exact versions of all your build-time dependencies such as the compiler toolchain & all library dependencies, and version control or archive backup copies of these. You still may need to figure out exactly what version of each component you're running if serious security vulnerabilities are found in some component.

I agree it is much simpler and easier to ship a single statically linked self-contained go binary than a python app, but both languages arguably require a similar amount of effort to having a reproducible process to build and deploy.


Shipping is simpler. I'm using the Go module system right now and I haven't had any problems so far. I keep library usage to the minimum, mostly I've gotten by with only the standard library.


Modern javascript is pretty good for GUI development.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: