Help me choose a second language

I have been learning stats, SQL and R fir past 2 years. R is the only language i know and I like it. Now I want to learn a language like golang, Julia or Scala that can compliment my R. I chose R in 2016 and that's the best decision. Now for 2018 I want to enhance my programming skills.

Can you help me understand which language is more beneficial if I just want to stay in data and analysis field for ever. But I want to build complex desktop and web apps which have a lot of data related things.

Please any suggestion would do. Not python because it has same power and flaws like R. I want to compliment our enhance my knowledge not repeat it.

Please reply

You can already find some existing discussion on this subject in the community. You may begin there.
These discussions are pretty long with a lot of info. Hope you'll find some guidance!

2 Likes

If you are interested in learning a popular language, then the TIOBE Index might be helpful to you.

1 Like

I am trying to find what most other people are learning and that go hand in hand with R. Which compliments R.

Python is off my list

I am trying to pick between Go, Julia, Scala, JavaScript or something similar.

While I don't know it, c++ seems like the most logical if you are trying to learn a language that compliments R given its easy integration with R via Rcpp

C++ will be my choice too. With Rcpp, it works with R nicely.

1 Like

This is a very tough answer because it must be clear the reason why you are learning that second language.
The examples you supplied are complimentary to R in different ways.

  • Julia is a scientific language, in my opinion, so this is pretty much like R, in the scientific branch, but I see that Julia has a different philosophy, so this might be educative and inspiring to learn.
  • Go and Scala are general purpose languages, don't have a strong scientific approach like R and Julia. You can build and deploy systems with the to easily deploy in the majority of cloud providers. For example, Go is extremely easy to build a RESTful service in Google AppEngine, for obvious reasons.
  • JavaScript is also a general purpose language, but it has one key advantage, it runs in the browsers and you can do a lot building dynamic and interactive interfaces. For example, using shinyjs you customize any shiny application.
  • Many suggested C++ that is awesome for integration and performance and this is for sure a way to go. I, personally, don't like to get my hands dirty, and C++ is for those who want to get their hands dirty. Despite the recent evolution of the standards.
  • You are discarding Python, but in my opinion, Python unites both approaches, scientific and general purpose. In this way Python is not complimentary, and learning a different language, would be better.

One thing, I would suggest is to think of learning a new paradigm, instead of focusing on a language. For example.

  • Java, C++, Python are good to learn Object Oriented Programming.
  • C++ is the way to go for integration and performance, but Rust is also an option, see hellorust and rustr.
  • JavaScript, Scala are good for functional programming, I would also add Python, Haskell, OCaml, Elixir
  • Go has builtin facilites for writing concurrent programs.
  • ...
4 Likes

what the logic here?

Thanks for such a broad answer. I Think I will stick to Golang.

  1. It can help me build bigger and better application on desktop or on web which in R you can not do at least easily.
  2. It is faster for sure.
  3. it has nothing to do with data analysis. so I can solely focus on R but at time when I need to build something I can go to GOLANG.
  4. Since it doesn't have Object oriented programming and is strictly functional. My existing knowledge of R is easily transferable.

Thanks for replying @jdlong.

I don't know anything about python I haven't learnt it ever. But being in community I have read many things about it. I needed a language in which I could create something from scratch in data domain. So my point is.

  1. Just like R it is dynamic and a little slower. I have heard ( I don't know for sure ) That when people need to scale then systems are not written in Python but they move to C or java or something static.
  2. I already know almost everything about tidyverse. I don't feel the need of learning pandas and scikit for doing the same reason. I believe ( and I could be wrong) that R is more than enough for my analysis needs.
1 Like

Yep, it really depends on your end goal. If your objective is to maximize employability, then it's hard to argue against learning R and Python both. If, however, your goal is to pick a language that is a pure complement to R with different strengths/weaknesses, then you're probably correct in looking beyond Python. Although, my experience with both R and Python over many years tells me that most people start thinking about changing language for performance LONG before they have a real performance issue. This is clearly a premature optimization.

Good luck!

3 Likes

Thanks for your suggestion @jdlong

I am not from programming background at all. So I don't understand these things much. My primary reason for learning R Instead of python was that it worked much like ms excel. Which was easier for me.

Now I like programming and want to learn it from scratch. You could be right I might never need a highly scaleable application. Yet I work in data domain so if there are more than 10 users trying to get a million rows each to me speed matters there. And we are just talking about 10 users. I know I could be wrong but I had issues in shiny app for speed and I had to hire people to fix it. I just could not do it. I don't want same thing to happen with python.

I could be overly thinking about it but I can write logic I can not re write codes for speed...

Thanks anyways for your suggestion I would keep that in mind that python has risen to world 4th most popular language for a reason.

1 Like

Ar last! A thread about languages and finally somebody knows complement is spelt with 2 'e's :slight_smile:

2 Likes

I literally spelled it wrong, wrinkled up my nose, googled it, then came back and fixed it. I didn't get it right at first, but I made it there in the end :wink:

2 Likes

You have my compliments

1 Like

I never Knew there were 2 compliment ( complement) to begin with. I always thought they are spelled the same.

:grinning::grinning::grinning:

Come for the R... stay for the spelling and grammar lessons :wink:

1 Like