
In what niche does your favorite programming language surpass all competition? - codygman
And why? What makes them special? How do they make the job so much easier than everything else?<p>Some examples include but aren&#x27;t limited to (not necessarily my opinion):<p>- Web Programming: Python(Django), Ruby&#x2F;Rails<p>- REST Api&#x27;s: Haskell(Servant), Python<p>- Machine Learning: Python<p>- Embedded Software: C, Rust<p>- Domain-specific languages: Haskell, Ruby, Racket, Lisp<p>- Data Science: Scala (spark), Python, R, Julia<p>- Game Programming: C# (Unity), C++
======
eadan
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.

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

~~~
akg_67
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.

------
the__alchemist
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.

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

------
open-source-ux
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.

------
tmaly
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.

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

~~~
tmaly
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.

------
rurban
Compilers: Lisp

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

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

~~~
rurban
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.

------
arthur2
Parsers and eDSLs: Haskell

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

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

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

------
dyingkneepad
Controlling hardware: C.

------
speedgoose
Modern javascript is pretty good for GUI development.

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

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

~~~
potta_coffee
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.

~~~
shoo
> 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.

~~~
potta_coffee
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.

