Why popularity of programming languages keep changing?

hajime

macrumors 603
Original poster
Jul 23, 2007
5,383
750
Hello, in the past C was the main language. If one knew C, one could get a job. Then, the main language became C++. Next, Java. Now, Python. Why so man languages and popularity keeps changing? Can C/C++ do all the things we need?
 

Tomorrow

macrumors 604
Mar 2, 2008
7,114
1,245
Always a day away
I'm no programmer, but...

If C and C++ had the same capabilities, costs, learning curve, etc., then there would have been no need to develop C++, or have anybody learn it. Same with all the other languages.

Each new language either adds utility, decreases costs, or lowers boundaries to entry. Otherwise, it doesn't catch on.
 
  • Like
Reactions: D.T.

Tech198

macrumors G5
Mar 21, 2011
13,944
1,636
Australia, Perth
Visual Basic and .NET? leaning curve is not even comparable if u want a true optimized experience... While the two can co-exsist, the lessor will sacrifice on performance or native speed. I don't believe any mixed code can be just as fast as 'native' code programmed.

And the learning curve of VB.NET is not exactly easy if you've been living with VB all your life.

Once you get the hang of it, it 'seems' easy, but any programming or moving to new language will be "This is too hard"
 

hawkeye_a

macrumors 65816
Jun 27, 2016
1,254
3,216
In college all I did was C/C++, in the real world every other job advertized at the time was for .Net or Java, and now, everything is Javascript/HTML5 with whatever the flavor-of-the-month-library might be (Backbone/React/Angular/etc).

Why has it changed? C/C++ was for locally compiled binaries(least 'portable'), .Net came about roughly when client-server apps were gaining popularity. And now, HTML5 seems to be catering to "heavy" client side apps(most 'portable').

I got into this profession to create productive/great apps. CS teaches you the "paradigms" and "patterns", but it was/is frustrating to have to reset to square 1 every few years, in order to write a great/productive app. Imagine a writer having to learn a new language every few years just so they could write their next book! And now with HTML5 it's worse, as every few MONTHS there's a new library which promises to be the best thing since sliced-white-bread.
 
Last edited:

Tech198

macrumors G5
Mar 21, 2011
13,944
1,636
Australia, Perth
True,,,you can't keep the same language your whole life if you wanna keep a job...

My mate (for the most past) his website is still using ASP, with a bit of .NET thrown in.

its really all about "use this call, because u have better performance and can do much more> then three separate one u need to troubleshoot when things go wrong...

That alone could be much similar from a programming perspective.., but its always "What you don't know what is really going on, is where the trouble starts" with programming. since if u have no idea what something is doing, even at the cost of migrating things down to make it faster, then it will be a nail in you for longer till u get it fixed.

The two kinda go together. Cost of development changes, but no one wants to keep pushing out old code,, at one stage your gonna have to move if the language gets better, since usually 99% of the time it will be the old code which will be dragging it down. API calls or what may depend on something is is now, "no longer there", so u'r not solving anything by keeping it, your just making it worse on yourself.

The other alternative is go to open source... or don't move. at the cost of security or any other issues u will be faced with
 

hajime

macrumors 603
Original poster
Jul 23, 2007
5,383
750
What is with this Python thing? Can things that can be done by Python be done by C/C++/Java?
 

maflynn

Moderator
Staff member
May 3, 2009
63,830
30,337
Boston
What is with this Python thing? Can things that can be done by Python be done by C/C++/Java?
Python's strength leads it to be able to produce web based applications, which you cannot do with C/C++. As for Java, its fallen out of favor to some degree.

As computers change, and how people use those computers change, so hasn't how programmers code. What worked in 1978, may not work as well in 2017, just like trying to use a computer from 1978. I used 1978, because that's when The C Programming Language by Brian Kernighan and Dennis Ritchie published their seminal book.
 
  • Like
Reactions: D.T.

D.T.

macrumors G3
Sep 15, 2011
8,917
6,693
Vilano Beach, FL
A few points, then I'll clear up a few things :)

The popularity of languages doesn't always correlate to when it's released, i.e., some languages fall out, then back into popularity over time. Why? The "language-of-the-moment" falls out of favor, or new uses come into popular use, where some existing language shines. Also, there are more objective merits of various languages: performance, threading models / concurrency, footprint, support, etc.

Language development also continues, even with the large number of options available. There's quite a bit of personality in languages, so people are always looking for a good match to their style, aesthetic flavor, or even the general design philosophy behind the language (you might be surprised how subjective language choices can be).


Visual Basic and .NET? leaning curve is not even comparable if u want a true optimized experience... While the two can co-exsist, the lessor will sacrifice on performance or native speed. I don't believe any mixed code can be just as fast as 'native' code programmed.

And the learning curve of VB.NET is not exactly easy if you've been living with VB all your life.

Once you get the hang of it, it 'seems' easy, but any programming or moving to new language will be "This is too hard"
I'm not sure what you're saying here, i.e., VB vs. .NET - the latter is a managed framework, it's language neutral, it provides a VM, and languages like VB or C#, are developed to compile and run on the provided CLI, for .NET, the MS CLR. The two _always_ coexist, VB.NET runs on the .NET framework, you don't really "program in .NET", that's like saying "I program in the Java VM".


Python's strength leads it to be able to produce web based applications, which you cannot do with C/C++. As for Java, its fallen out of favor to some degree.
Python is a GPPL, like C++ (or Ruby, or GO or ...), and while there are some outstanding web frameworks (DJango, Flask), it's strength is in the language design, portability, huge open source library and how easy it is to consume high performance C/C++ libraries. It's currently seeing a bit of a resurgence because of its use in science sectors, most importantly Machine Learning and Data Viz (for which there are fantastic libs both in native Python and C++).

Also, there are a number of high performance web / API SDKs for C++.
 

D.T.

macrumors G3
Sep 15, 2011
8,917
6,693
Vilano Beach, FL
Just adding a few more thoughts :)


I'm no programmer, but...

If C and C++ had the same capabilities, costs, learning curve, etc., then there would have been no need to develop C++, or have anybody learn it. Same with all the other languages.

Each new language either adds utility, decreases costs, or lowers boundaries to entry. Otherwise, it doesn't catch on.
This is probably the best response, it's non technical, and addresses much of the motivation behind [continued] language design.


What is with this Python thing? Can things that can be done by Python be done by C/C++/Java?
Short version, yes, they're all General Purpose Programming Languages. With any of those languages you could do, as some basic examples: read or write a text file, take user input of dates and calculate the difference in days, etc. Languages have functions available as part of the language (and have different standard libraries so that the out-of-the-box language can do more / less).

Take a language like Java, add some libraries (basically bundles of additional code) from the Android Software Development Kit (SDK), and you can make an app for a Pixel phone. Take a language like Python and add a framework like Flask and you can build a web application - a framework is a domain specific language "extension", it adds code to do something very specific, like generate a web page from data.

The above is important because it also shows you why various languages exist: some have been adopted for domain specific use (like Android development), in addition to their more general use (and/or other domain specific uses). Some languages have even cross interesting domain boundaries: for example, C# a language used with the .NET framework for client/services/web development, is also used inside of game engines, that's also the foundation for some AR/VR development.
 
  • Like
Reactions: Tomorrow

hajime

macrumors 603
Original poster
Jul 23, 2007
5,383
750
Python's strength leads it to be able to produce web based applications, which you cannot do with C/C++. As for Java, its fallen out of favor to some degree.

As computers change, and how people use those computers change, so hasn't how programmers code. What worked in 1978, may not work as well in 2017, just like trying to use a computer from 1978. I used 1978, because that's when The C Programming Language by Brian Kernighan and Dennis Ritchie published their seminal book.
I remember that thin white book!

I also learned Basic, Ada, Pascal. Seem to be useless these days.
 
Last edited: