What is the best programming language nowadays? | Coursera Community
Coursera Header

What is the best programming language nowadays?

  • 9 November 2018
  • 40 replies
  • 2589 views

Userlevel 7
Badge +12
Hello everyone,

Once upon a time I had learnt Pascal as a computer programming language at school! I remember being so excited after I completed my first homework, which was calculating something. I guess Pascal became a history now? I hear so many different programming languages nowadays from S Plus to R programming to Java to Python and many more.

What are your favorite programming language(s)? How are they in comparison to each other? Which one do you recommend for what purpose?

I would love to hear your opinions.

Thank you.

40 replies

Userlevel 7
Badge +12

Hi @Scarlett3000 ,

It sounds like you are off to a good start with Scratch, Snap and Python. I just came across this website that lists best 9 programming languages with their details: https://www.fullstackacademy.com/blog/nine-best-programming-languages-to-learn which might help.

In addition, if you review the earlier posts in this thread, some posters provided good details for additional languages. 

I hope these help. Wishing you all the very best.

If others have more to contribute on this, please feel to share. Thanks. 

Badge

Hi everyone!

I have been wondering about which is the best programming language to start learning to code.

I’m new to programming. I began with Scratch and Snap which are visual programming languages made out of blocks for teaching children how to program, without bothering about complex syntax.

Then I moved on to Python, which is very simple and straightforward.

Now I am approaching Java that is more difficult to grasp, due to its syntax and all those curly braces.

I’m still a beginner, but I like when I manage to give instructions to the computer, and as by magic it does what I intended, and what it was supposed to do.  I love when it appears on the screen some drawing, created by an algorithm that I can understand.

 

Userlevel 7
Badge +12

@helderc  , @HansLowell  , @sardarahmedkhan  : Thanks very much for your valuable input. I did not get notifications somehow, I only noticed them just now. I will ponder on your suggestions indeed. Thanks.

Badge +1
I also like java due to its OOP concepts and its framework like spring boot which is also useful in building highly scalable web apps and other android apps.
So What you will get in java path:
  1. Android apps
  2. Web apps
  3. Micro-services
  4. Web-services
  5. Cloud based development
  6. Desktop applications
  7. full-stack and much more.
Badge +1
I wouldn't say there is a best language in my case as all languages as their pro and cons.
Completely depend on what you want to do, and how for your knowledge is.

Some languages can't be compared to other languages.

Like you can't really compare Python and C/C++ : Python is an interpreted language so you can't work with memory but it is an extremely simple language. Coding graphics in python would be a huge waste of ressources.

In C you can work with memory and it is a lot more near assembly language.
Of course you can't compare assembly language to C though.

If you want to design and analyse new projects you should probably go OO and learn Java

I believe everyone in CS should chose to learn at least one interpreted language and one compiled language. And probably SQL since you can't really work without databases nowadays.

And probably a minimum of web languages too. As today a lot of app are done on the web.

Assembly and old languages like COBOL not really unless you want a job of someone who just do maintenance... (new projects are almost always done in the most recent languages)
Badge
This is a very difficult question to answer...
It totally depends of what are your plans.

If someone pretend to learn, deal with data science, machine learning... I would recommend: Python!
Userlevel 7
Badge +12
Thank you so much @BenRavin for your valuable input. I had not heard about Pharo yet. I will definitely check it out. Has anyone else used Pharo as well? How was your experience with it?

Thank you.
Badge
Pharo is very good programming language, it is from Smaltalk. You all should learn this language if you really want to understand how Object Oriented programming is
Userlevel 7
Badge +12
Thank you so much @Al.W for shedding more light into this topic. I was travelling over the Easter holidays, only getting a chance to look at this platform now. I love the quote you shared, agree with it too.

Kotlin is a very new language term for me. I must read more on it. Thank you for highlighting it here.

Yes, I was trying to highlight which programming language would be best for what purpose through this thread as you mentioned. From consulting a few friends around me as well, most of them prefer Python for many different things. Python is rather better developed version of C and C++ , which were derivatives of Fortran apparently. As you say, new programmers came and fixed what was missing in Fortran, leading to C and then to C++ and now Python. C and C++ are less tolerant for mistakes compared to Python as I understand.

I am told that the speed of Python can vary depending on how good the programmer is. A well skilled programmer could write a speedy functioning programs in Python for many different applications apparently.

I wonder if others agree with that? 🙂
Badge
I've been learning Kotlin for a few months and I have to say I like it. Why Kotlin? Why not. I'm retired and have the luxury of exploring without worrying about some work environment. Besides, learning is fun, right? This is from a recent blog post I wrote:

"If you see something that peaks your curiosity, jump in and have a look. The key thing is you’ll be learning. It doesn’t matter if you actually use any of that new found knowledge. Learning is not always about the knowledge. What matters more is that you’re exercising your mind. It’s like a workout for the brain. The more you work your mind the more your mind works for you."

As far as what's the best, it depends on your environment. Personally, I don't think there's any one "best" language. Besides, almost all programming languages for probably the last forty or fifty years were created because some user didn't like the one they were using so they decided to hack the language. None of them really offer any new paradigms.

As far as the whole language agnostic argument goes, I'll just say this. Pseudo-code is language agnostic. And I might argue that it's the best way to teach programming logic and design. But note the keyword "design". You can't actually "make things" with pseudo-code. To do that, you need a language. And that's entirely dependent on your development environment. If it's job related, the job dictates the language. Or perhaps the final product dictates the language. For example, desktop, web services, mobile applications, etc. And honestly, I don't really understand the value of a "language agnostic" argument considering the actual topic is about languages.
Userlevel 7
Badge +12
I've just added Go, Erlang, Elixir, JSON, Smalltalk, Forth and C# to the key words too, many thanks to you @Gordon . Wow, so many new names to be aware of! 🙂 I had not heard of most of them. I remember many people being so fond of C and C++ for a long time around me. I guess all these languages have their prime time for a season until a better one comes along for a different purpose? It's great that you mentioned that C has been your favorite all these years. A language to learn for sure I suppose from some of the other responses here as well for a programmer since it serves many purposes?

If others have more comments on these languages shared here or discuss about new ones and their purposes, please feel free to contribute further. Thank you.
Userlevel 3
Badge +1
@hamster: When I submitted, I was hoping to get some discussion going, there had been little activity in the forum. Your "deliberately antagonistic" comment is likely to cause even less discussion, because nobody wants to be the recipient of such comments.

I'd welcome a constructive posting by you that will promote contribution.
Userlevel 6
Badge +4
Thank you for your comments @hamster but I don't like your tone, using the words"frat boys" and "pointless" which undermines everyone's valuable efforts and contributions here. If you read the original post of this thread, the idea was indeed to give room to discuss what language, for what purpose and what it depends in a comparative way. And everyone has been doing that with their contributions to a degree.

My tone was deliberately antagonistic. But, to be fair, it was more a reaction to the threads title than the content. Nonetheless, I also went on to answer your question.

Frankly, I think topics like these do need a good shaking up; academic argument about whether static or dynamic languages are better distract from the real purpose of code, which is making things.

For a professional developer "language agnosticism" is a valuable trait to have.
Userlevel 3
Badge +1
Those interested in this topic may like this article on programming paradigms and the underlying book chapter.

The link is to an entry in The Morning Paper, a blog by Adrian Colyer, where several days each week he reviews a paper he considers important. His blog is well worth attention.
Userlevel 7
Badge +12
Thank you for your comments @hamster but I don't like your tone, using the words"frat boys" and "pointless" which undermines everyone's valuable efforts and contributions here. If you read the original post of this thread, the idea was indeed to give room to discuss what language, for what purpose and what it depends in a comparative way. And everyone has been doing that with their contributions to a degree.
Userlevel 6
Badge +4
its a little disappointing that this thread doesn't seem to even mention the idea of "language agnosticism".

'Programmer frat boyz' argue about what the best language is. Meanwhile, actual engineers use the best tool for the job.

If you want fast (in terms of running speed) its hard to beat c/c++. If you want fast development of prototypes its hard to beat Python.

If you are trying to build a windows application then it is hard to beat C# and its .Net toolbox. Mobile App? Try Swift, objective C, etc.


In short, the question is somewhat pointless because the answer is always "it depends".
Userlevel 7
Badge +12
Thank you so much @Gordon . This is very helpful. It's wonderful to have such excellent comparative points of view across these languages from someone with your expertise as well. If others have more to add or comment, please feel free to so. Thank you.
Userlevel 3
Badge +1
Let's try to wake this topic up!

Over a half-century software career I used many languages; during one period I was using at least 10 languages every day.

Rather than specific languages, I'd encourage people to learn languages that are really different.

Everyone will learn one of the languages like Java, C++, C#, the "class-oriented statically typed imperative language family".

Learning Haskell will improve the use of all other languages. The pure functional approach will change how you approach things for ever.

A dynamically typed language (Python is today's good example) makes you think differently about what types are in languages, and Python's flexibility in function definition really helps it excel at acting as a domain-specific language.

Implement in a language (Go, Erlang, Elixir) with built-in high-performance concurrency. Again it changes how you think about software solutions.

And every programmer should do something in a low-level language. You'll then appreciate what some of the high-level languages are doing for you.

As a practical matter, everyone touches JavaScript at some level (even if only seeing JSON data).

And then there's smalltalk, prolog, Forth, and other languages with different ideas.

The one language that stands out to me from a long career: C. I started using it in 1980 and it stayed useful until I retired.
Userlevel 7
Badge +12
No worries @Elmar , I never jump to conclusions from only one perspective, especially as a scientist! I collect my data first as mentioned in the other thread. ;)

I am assuming others will comment later on for C++ and Fortran too, which used to be my husband's favorite for a season. 🙂
Userlevel 3
Badge +1
I was wondering why nobody mentioned C++ yet, now, I guess I see why. 🙂

I am just a single person. I have my motifs, other people have theirs. It's statistically doubtable to infer from my single perspective.

In fact you depend on an infrastructure and the working environment gives the constraints. I guess it's not just an urban legend, that there are still environments depending on FORTRAN.
Userlevel 7
Badge +12
That's a really good demonstration of comparing the Python and C++ @Elmar . I was wondering why nobody mentioned C++ yet, now, I guess I see why. 🙂 I added C++ to the tags list too. Thank you once again.
Userlevel 3
Badge +1
A little story of Python. It is often accused to be slow.

I solved the following Bioinformatics challenge http://rosalind.info/problems/ksim/. Is has only been solved by 65 people so far, as it is difficult to get the runtime below five minutes.

I first tried Python and it was not fast enough. Then I put the main loop (actually two nested loops) into a Cython file, that is Python compiled to C. Just a few lines to migrate and I could solve the challenge within time.

I then wanted to experience the speed of C++ and implemented the whole challenge in it. That was a multiple amount of work to do. And the speed? Just the same!

Why? Because almost all the time was spent within a single loop and I compiled it into C. I didn't even have to code this loop as C.

Was Python slow? Yes and no. It was the language I coded and it became as fast as C++ by just applying this little trick upon one loop. You can argue it's C and not Python any more. None-the-less it is coded in Python and it runs as fast as C++.

Since this time, I don't value C++ any more for it's speed. It's a question of using Python intelligently and your programs become similar fast. In Bioinformatics it is far more important to find the right algorithm, than to choose a fast language. The language can only speed a by a factor below 100. The right algorithm does speed up a program by multiple dimensions of 10.

For me the productivity a language provides to me count's the most. This is currently Python.
Userlevel 7
Badge +12
Thank you very much @Elmar for your helpful comments as well. I like your comment "The best programming language is still not developed" which gives lots of incentive for programmers to develop one. 🙂 It's great to know that Python is among one of the best so far. I've just added Ruby, Kotlin and Groovy to the tags thanks to you and @Thassilo . 🙂
Userlevel 3
Badge +1

Android has native support for Java, so that's the way to go (at least it was until recently, but today you really should consider using Kotlin instead). And likewise you should use Swift for iOS.


I am not an enthusiastic supporter of Kotlin. It tries to fix some issues of Java at the cost of another layer. It doesn't go far enough. Groovy has been first and maybe has the better features. This on-top-layers of Java are quickly done and there is a lot of competition. I don't see this getting to a new standard currently. Maybe it drives Java to a faster pace of evolution.
Userlevel 3
Badge +1
The best programming language is still not developed. Python has a lot of it. It is very friendly to type and read for the human, as it does not require tons of parentheses to structure the code.

It still has some downsides. There is too much selfishness in it. Leading underscores to address the lack of encapsulation are also breaking the principle of human friendliness. Also the list comprehensions break the visible flow of the code. Object orientation still is not a first class citizen.

Ruby has a similar spirit, but gives too much freedom to drop some syntactical parts. If you can drop the parentheses in a method call, this saves a little burden of typing. The code becomes difficult to read, if you are always in doubt if its a method or a variable.

Reply