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

What is the best programming language nowadays?

  • 9 November 2018
  • 38 replies
  • 2410 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.

38 replies

Userlevel 2
Badge +1
While Python, Java, Pascal etc. are syntactically quiet different, offering different features and beeing used in different industries for different cases, they all follow (more or less) the same imperative programming paradigm, and it's more a matter of the environment:
Python is popular among Data Scientists and there are many DS and ML packages ready to use.
Javascript is popular among Web Developers because they can use it for frontend and backend (Node.js) and only need one language.
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.

But there are cool languages which are not heavily used in industrie but offer a completely different type of programming:
Haskell offers a purely functional programming language which requires you to think completely different. Nowadays, Java and other languages are adding more and more functional paradigms like lambda expressions, but it is really helpful to learn one purely functional language (and there is a Coursera Course for it called "Programming Languages" 😉 ).
Prolog is a logical programming language, also a completely different way of programming, making some problems fairly simple to program (but it is really limited in use).

Choosing the right language should always be a matter of the environment first and only a matter of taste second. I really like Haskell, but I would not use it for most "real use cases". I'm not a big fan of JavaScript, but if I had to code a website, I would still use it.
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 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.
Great topic! One of the popular languages these days is Python. I became familiar with it initially in the context of web development while reading a book on developing websites a few years ago. Python courses are offered on various platforms nowadays. I know that software developers also use it.
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 2
Badge
@Denise
Hello I know java using for this:
1) Android Apps
2) Server Apps at Financial Services Industry
3) Java Web applications
4) Software Tools
5) Trading Application
6) J2ME Apps
7) Embedded Space
8) Big Data technologies
9) High Frequency Trading Space
10) Scientific Applications

11)Financial Services

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 @Maryam and @king.aloush for your suggestions and explanations for Phyton and Java languages. I guess website developing might interest many of us who use online applications regularly. Do you know if these languages could be used for other things than what you mentioned?
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 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.
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.
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
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 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".
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 Phyton 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.


You are welcome,@Denise. Please edit your post and the tag if you, too, are referring to Python. Or maybe Phyton is a different language that I am not aware of?
Thank you @Maryam for letting me know. That was a typo, I just edited. You never know they might create phyton too some day soon with all these varieties. 😉 There’s cython now already! I have no idea what that’s for at the moment. :)
Why not? Someone might create such a language, too. 🙂
Thank you @Maryam and @king.aloush for your suggestions and explanations for Phyton and Java languages. I guess website developing might interest many of us who use online applications regularly. Do you know if these languages could be used for other things than what you mentioned?

@Denise, Python is being used in various fields/industries. This article briefly sheds light on some of them:

  • Python in Artificial Intelligence (AI)
  • Python in Big Data
  • Python in Data Science
  • Python in Testing Frameworks
  • Python in Web Development
I hope you find it useful.
Userlevel 7
Badge +12
Thank you @Maryam for letting me know. That was a typo, I just edited. You never know they might create phyton too some day soon with all these varieties. 😉 There’s Cython now already! I have no idea what that’s for at the moment. 🙂
Userlevel 7
Badge +12
Thanks so much @king.aloush for such a comprehensive list on java. That’s very helpful indeed. I wonder if all the programming languages have such a big variety of applications? Or just a select few? If there are more languages with a wide application capacity, then how does one decide which one to select?
Userlevel 7
Badge +12
Thanks so much @Maryam for that article and further details on Python. I really enjoyed reading it.
Userlevel 7
Badge +12
Thank you @king.aloush for further insight. Yes, I guess being able to afford certain programming language might also make a difference to the selection decision. 😉
Userlevel 7
Badge +12
Thanks so much @Thassilo for all these details. This is very helpful too. Incidentally, I have just added "Haskell," "Swift," "Prolog" to the thanks to you as well as "android" and "web development" thanks to @king.aloush and @Maryam . 🙂

If others have more to comment on these and/or talk about more programs, please feel free to contribute further. Thank you.
Userlevel 2
Badge
I like java it very common and Android apps based on it
Userlevel 2
Badge
@Denise
There is some reasons to choose first size of published apps, common use, conflicts, open source, updates, support and I think some economics purposes too.

Reply