Help me choose a second language

teaching
shiny

#1

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


#2

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!


#3

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


#4

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


#5

Python is off my list

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


#6

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


#7

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


#8

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

#9

what the logic here?


#10

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.

#11

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.

#12

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!


#13

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.


#14

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


#15

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:


#16

You have my compliments


#17

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

:grinning::grinning::grinning:


#18

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