Could Python Overtake C and Java as the Most Popular Programming Language? (zdnet.com) 170
The TIOBE index of programming language popularity celebrates 20 years of continuous publishing this month. Started as a hobbyist project back in 2001, the site estimates each programming language's popularity by counting search engine results for the phrase <language> programming (indirectly counting each listing for developers, courses, and third-party vendors).
When it was started 20 years ago, the top languages were Java, C, and C++.
20 years later, the top languages are now C, Java, Python, and C++
And "The difference between position 1 and position 3 is only 0.67%." This means that the next few months will be exciting. What language is going to win this battle? Python seems to have the best chances to become number 1, thanks to its market leadership in the booming field of data mining and artificial intelligence.
ZDNet also noted the trends: Searches for C were down 4.83 percentage points compared to last July. Java searches were down 3.93% over the period, while Python gained 1.86%.
The top 10 languages behind C, Java and Python are C++, C#, Visual Basic, Javascript, PHP, Assembly Language, and SQL.
But they also have this to say about TIOBE's calculations: It's a different methodology to developer analyst RedMonk, which looks at language usage on software projects hosted on GitHub and discussions on the developer Q&A site, Stack Overflow.
RedMonk's Q1 2021 rankings place JavaScript in top place, followed by Python and Java.
Other interesting moves this month:
When it was started 20 years ago, the top languages were Java, C, and C++.
20 years later, the top languages are now C, Java, Python, and C++
And "The difference between position 1 and position 3 is only 0.67%." This means that the next few months will be exciting. What language is going to win this battle? Python seems to have the best chances to become number 1, thanks to its market leadership in the booming field of data mining and artificial intelligence.
ZDNet also noted the trends: Searches for C were down 4.83 percentage points compared to last July. Java searches were down 3.93% over the period, while Python gained 1.86%.
The top 10 languages behind C, Java and Python are C++, C#, Visual Basic, Javascript, PHP, Assembly Language, and SQL.
But they also have this to say about TIOBE's calculations: It's a different methodology to developer analyst RedMonk, which looks at language usage on software projects hosted on GitHub and discussions on the developer Q&A site, Stack Overflow.
RedMonk's Q1 2021 rankings place JavaScript in top place, followed by Python and Java.
Other interesting moves this month:
- C++ gained more than 0.5% getting closer to the top 3
- Rust rose from #30 to #27
- Go rose from #20 to #13
- TypeScript rose from #45 to #37
- Haskellrose rose from #49 to #39
Betteridge's law of headlines (Score:5, Funny)
Could vs will: need corollary (Score:3)
Clearly we need a corollary that Betteridge does not apply when the headline is written in such a way that the answer really cannot be "no".
Re: Could vs will: need corollary (Score:2)
That's why the headline is worded as it is. The answer is "Yes" so in a subsequent article, that can be spun as a ground swell of support for something.
Re: (Score:3)
Popular is such a weird metric (Score:5, Insightful)
Re:Popular is such a weird metric (Score:5, Insightful)
The right tool for the right job.
Indeed. TFA is basically saying that hammers are popular and may replace shovels.
Re: (Score:3)
Well, nail guns and plows are available to licensed users... those are replacements so we never need things as violent as hammers and shovels..
Re: Popular is such a weird metric (Score:2)
Can you find a single construction site anywhere in the world that doesn't have a hammer on it?
Re: (Score:2)
Re: Popular is such a weird metric (Score:2)
It's obvious that you have never had to adjust sensitive equipment.
Re: (Score:2)
If you can't hammer in a screw then you need a bigger hammer!
Re:Popular is such a weird metric (Score:5, Informative)
The right tool for the right job.
Indeed. TFA is basically saying that hammers are popular and may replace shovels.
And it's saying that in a weird way. It's saying that people are asking more questions about hammers than shovels. Maybe hammers are poorly designed and require a lot of questions.
The TIOBE methodology [tiobe.com] is problematic in multiple ways:
It is a count of search queries about a language. Certainly, fewer people will query about a language they don't care about. However, among the set of popular languages, there are many factors contributing to more queries, including languages that are complex, have poor documentation, are assigned for school projects, etc. It's not clear how significant the "popularity" factor is relative to other factors.
The questions have to include +" programming". I don't know about you, but I have never including "programming" ever in any of my programming search queries.
Many query sites are excluded, notably basically the Chinese ones. So, this methodology excludes a significant portion of global programmers.
If I'm evil, how easy would it be to rig a bot to spit out queries for my preferred language? If I'm not evil, maybe I'm just a bad programmer who needs to ask 10 questions compared to an experienced programmer who only needs to ask once. My lack of ability makes the language appear to be more popular.
Why are the 25 search engines weighted the way they are? Does the weighting matter? Some transparency would be help to show that the rankings are not an arbitrary artifact of the mathematics.
Re: (Score:2)
The questions have to include +" programming". I don't know about you, but I have never including "programming" ever in any of my programming search queries.
You should, if you google about "go" or "rust", just a hint.
Re:Popular is such a weird metric (Score:5, Interesting)
Rght. Thats the odd thing about the "python overtake c" thing. They really aren't for the same thing. I mean you *COULD* write your web framework in C and once upon a very very long time ago people would actually do that (I stll remember converting C language CGIs to Perl back in the 90s. Still not convinced the replacement was an improvement lol) and in theory you can write embedded code in python (There are acually products for that). But is it the right tool for the job? Nope.
My suspicion is if theres a decline in C it wont be from Python, but Rust, or other system programming but safe type languages (Go is imho more likely to be replacing JAVA, its garbage management precludes it as a good choice for systems coding. Swift is a fantastic language, but its impact is mostly limited to apple platforms. As a reference counter rather than garbage collector though its in *theory* capable of doing Rust style low level stuff.)
Theres also a small pool of lesser known but frankly more interesting languages, namely Crystal and Nim who have yet to make much of an impact. The future is unclear as to whether they'll ever replace much, though I suspect they are best suited for tasks that might otherwise use Python or Ruby (or I guess JS) but could use some C type performance. The long term impact of those languages are unclear particularly up against efforts at squeezing performance out of existing dynamic languages (ie Oracles GRAAL, PyPyl, faster JS runtimes, ec)
Re: (Score:2)
I recently wrote a web framework in C.
Your concept of "once upon a very very long time ago" is pretty weak.
While it would be true to say that the embedded platform we're using can run python, and that "it would probably work" if we had chosen python, it is also true that python doesn't provide a good, concise way to limit memory use. So it would be a "cross your fingers and hope" situation. Whereas, using C it was quick and easy and we know exactly how much memory it uses.
Re: (Score:2)
Your concept of "once upon a very very long time ago" is pretty weak.
No it is not. As that is what he did once upon a very very long time ago".
Learn to comprehend what you read.
I recently wrote a web framework in C.
Poor sod. I pity you.
Whereas, using C it was quick and easy and we know exactly how much memory it uses.
Because your profiler/debugger shows you. Just the same as with Python. (* facepalm *)
Re: (Score:2)
you *COULD* write your web framework in C and once upon a very very long time ago people would actually do that
People still do it today. With a few libraries (like new string libraries and memory allocation libraries) it's a reasonable language.
Memory allocation isn't really a problem because you can allocate memory in a pool, and then free the entire pool once the request completes. Objects have clear lifecycles based on single requests.
Re: (Score:2)
The right tool for the right job.
Indeed. TFA is basically saying that hammers are popular and may replace shovels.
I did an algorithm optimisation class at Uni. We used C for everything for obvious reasons. This guy asks the teacher if we can hand our assignments written in Python rather than C. The teacher looks at him as if he'd asked if we can use a saw to drive in the nails rather than a hammer, says '...no ..." and resumes his lecture. Guy sits there, still not understanding why.
Re: (Score:2)
Exactly. I don't have mod points (not sure why they are so few these days), but you're right. This is a silly metric. C and Java comparison makes sense to a certain extend, although you don't get (any?) Java in embedded, but Python is it's own beast.
Re:Popular is such a weird metric (Score:5, Insightful)
Java has been in embedded devices too. Once upon a time there were even devices that had the JVM in hardware. Not sure if you can buy them anymore.
The worst problem for Java is named Oracle.
The beast of Python is that it's an interpreting language and that there's no built-in checks/compilations of the source code to be able to detect breaking changes of the code. The backward compatibility is also horrible and is at par with the compatibility between various dialects of Basic. For me Python is to programming what Basic was to programming in the 80's - for a major system that shall be maintainable over a long time you'd need to evolve as a programmer to more strict languages.
The only thing that Python has for it is the indentation constraints, but there were dialects of Basic that also had that. There were even Basic dialects with bytecode similar to what Java has.
Re: (Score:3)
Re: (Score:2)
Java has been in embedded devices too. Once upon a time there were even devices that had the JVM in hardware. Not sure if you can buy them anymore.
Java based embedded devices were always tortuous to watch in action, and I don't think that's a "thing" any more. I always had this sneaking suspicion that Sun was paying developers to choose Java. Yet, Jazelle lives on. https://en.wikipedia.org/wiki/Jazelle [wikipedia.org]
Re: (Score:2)
The backward compatibility is also horrible and is at par with the compatibility between various dialects of Basic.
Such as? I don't remember any backwards-incompatible changes between minor versions. The only frequently-used change from Python 2 to Python 3 that I remember is needing to put parentheses in print statements, and the automatic conversion tool will fix that for you.
Re: (Score:2)
Earlier this year I dusted down and reused a script for migrating storage from one platform to another. It does it on a "per user" basis and well I have used it several times. The dusting down was minor modifications for this specific migration. No point in making it too generic.
It's written in Perl. It just works (once you have installed the necessary modules but they are just a yum/apt away). Had it originally been written in Python 20 years ago it would have needed several rewrites now. Screw that for a
Re: (Score:2)
There is plenty of embedded donw with Java.
E.g. Car entertaining/navigation systems.
Or the backends (not really embedded) for cars fleet management
Re:Popular is such a weird metric (Score:4, Insightful)
The right tool is always going to be C. Not C++. C.
C++ or Rust might have it's uses, but these don't belong in high-performance processes.
Python, Ruby and Java, do not belong anywhere near performance processes. They are for gluing things together.
Re: (Score:2)
How about Fortran?
There are now Fortran that allows for parallelization. Also consider OpenMP [openmp.org] with Fortran.
Of course - when you want full control over memory management you'd end up with C or assembly. But when you want it portable then C is the only good hope.
Re: (Score:2)
But when you want it portable then C is the only good hope.
If you want it portable you use: (in decreasing order of my favourite and my hate languages)
Java
C#
C++
Python
Lisp
PHP
Prolog - Haskell - Ocaml
Hint: C is not on that list, for a reason.
Re: (Score:3)
Much of this depends on what type of software you make. Speaking as a game developer, I'd put C and C++ at the top of the list. They're generally interchangeable in difficulty as you'll use the same compiler for both.
Java and C# are usually a legal nightmare to use that greatly limits their use.
The rest of the stuff isn't bad, but far less commonly used.
I'm sure developers in other niches would give very different rankings as well.
Re: (Score:2)
Re: (Score:2)
Neither Java nor C#/.Net is a legal night mare.
Your parent is just an idiot.
Re: (Score:3)
If you want it portable, you use C.
Java is portable between supported platforms, but it includes tons of ASM for each of those platforms. It is not easily portable to new platforms, and doesn't run at all on smaller platforms. And never will.
C# hasn't even been tested anywhere, so we know it isn't portable.
C++? What? That's specious.
Hint: C is not on that list, for a reason.
Because it is a list written by a moron.
Re: (Score:3)
Fortran had always supported multithreading and parallelization as much as C. Object files from Fortran and C have been compatible for a long long time. Very common to write intensive parts in fortran and slap a C control flow main program on top.
Re:Popular is such a weird metric (Score:5, Informative)
Native parallel functionality is a pretty recent feature of Fortran (for that language), and it's based on Fortran 90. With "now" I mean the 21st century with general availability.
There were of course multi-CPU machines before that and special variants of the language in high performance computing environments, but not for general use.
And I don't disagree that the object files for C and Fortran are compatible. But the runtime libraries of Fortran can contain implementation specific memory management (when and how memory is allocated) so that it behaves differently depending on compiler/runtime. Something that matters for operating system kernel behavior, but not really much for the behavior of runtime Fortran programs. The devil is often in the details.
Re: (Score:2)
There were of course multi-CPU machines before that and special variants of the language in high performance computing environments, but not for general use.
Classically, multi processor was not an issue.
Fortran - like any other language, if it was supported - compiled to so called SIMD or vector instructions.
So: (in C speak)
// leaving out initialization etc.
int manyInts[];
int manyMoreInts[];
int result[] = manyInts + manyMoreInts;
Would result into a single vector instruction.
Obviously you would write the ab
Re: Popular is such a weird metric (Score:2)
But the runtime libraries of Fortran can contain implementation specific memory management (when and how memory is allocated) so that it behaves differently depending on compiler/runtime. Something that matters for operating system kernel behavior, but not really much for the behavior of runtime Fortran programs. The devil is often in the details.
I'm totally ignorant about Fortran, and willing to learn, but is that much different from how malloc is implemented differently in every C runtime?
For example, in a glibc update a while back it started creating a bunch of per-thread pools to minimize syscalls, improving performance and wasting tons of memory.
That drastically changed how a process interacted with the kernel between versions of one C runtime, and I'm sure it's again very different between other C runtimes.
Re: (Score:2)
I guess people who actually have a degree in CS: disagree.
C++ is compiled to faster code than C since > 20 years.
Probably longer than you do your mediocre C programming ...
Re:Popular is such a weird metric (Score:5, Insightful)
Compilation and linking might be much slower than C, but at run time, a dynamically bound function is just one lookup on the vtable, no matter how horrendous the class hierarchy is.
Re: (Score:3)
I guess people who actually have a degree in CS: disagree.
C++ is compiled to faster code than C since > 20 years.
Probably longer than you do your mediocre C programming ...
How would you know, did you ask somebody?
You're being a moron, while trying to wave credentials in the air. Give me a fucking break. C++ may be great, you clearly like it, but it _can't_ be faster than C. That you believe it somehow magically is shows that you're an idiot. That you blather about "degrees in CS" at the same time suggests you don't have one.
Re: (Score:3)
C++ may be great, you clearly like it, but it _can't_ be faster than C.
But it is.
Just read a bit about it.
Hint: const correctness - for starters. Plenty of more examples.
That you blather about "degrees in CS" at the same time suggests you don't have one. depends how you define it :P but in German legal system: you are correct :P
Re: (Score:3)
C++ is generally going to be faster than C because C++ compilers are way better at inlining code. Especially stuff that heavily uses STL or templates. Templates and classes tend to make it much easier to inline the simple functions, as they're present in the .h files, which leads to big performance wins.
Re: (Score:2)
To keep this from sounding as moronic as it sounds, you should name the compilers that you think this is true for.
I suspect they won't be a combination that most developers on slashdot are using.
As a general statement, though, it is just stupid-sauce.
Re: (Score:2)
To keep this from sounding as moronic as it sounds, you should name the compilers that you think this is true for.
Basically every compiler based on CLang. And most commercial compilers of "insert known CPU vendor" or "known OS vendor".
Re: (Score:3)
C++ is generally going to be faster than C because C++ compilers are way better at inlining code.
I come to the same conclusion, but by a different line of reasoning: C++ is generally going to be faster than C because C++ allows the programmer to hand off a lot of tedious-yet-critical coding details (such as resource managment via RAII, or templated containers) to the compiler instead of having to hand-code it all. Because of that, the programmer can spend less time debugging and more time optimizing, and thereby end up with faster code for any given development schedule.
Re: (Score:2)
... Rust might have it's uses, but these don't belong in high-performance processes.
That would seem to be a hard statement to justify. Rust performance is right on par with C and it actually allows a compiler to make some major optimizations that C doesn't allow, due to no-aliasing guarantees. Apparently, these optimizations are currently disabled (when compiling Rust with LLVM), because bugs have been found that have existed for years, but were never exercised when compiling C or C++.
Re: (Score:3)
The right tool for the right job.
There are many cases where any modern programming language would be a perfectly reasonable choice.
Re: (Score:2)
I'd argue that, in most cases, languages have strengths and weaknesses which recommend them for specific types of applications. For example, it would be sort of stupid to use C++, with all its sharp edges, in a situation where performance is not a primary concern. If you want to do scientific work, choosing Java instead of Python would be a sub-optimal choice. If you want performance and memory safety, Rust would be the choice instead of C++. But if you need to integrate into an existing ecosystem of C/
Re: (Score:2)
Indeed. We should ignore it completely. Nothing has ever gone wrong with picking some esoteric programing language no one has ever heard of and you can't find any qualified staff for, and no trends exist for how much longer it will still be around.
After all we *love* paying a premium for experts and *love* even more ground up re-writing software in todays newest announced programing language.
Sarcasm aside, if you're not considering the popularity and trend of your programming languages as part of whether it
Re: (Score:2)
If you use modules written by others in C, FORTRAN, etc. but wrap them in Python scripts, you are programming in Python. Yet most of the what is executed is *not* Python. Trying to say that Python is "overtaking" another language is silly.
Re: (Score:3)
Will screwdrivers overtake hammers as the most popular tool of all time? Login now to find out so that we can track you with cookies!
Re: (Score:2)
"...the next few months will be exciting" (Score:4, Insightful)
The people at TIOBE need to get out more unless they have money riding on what's the most popular programming language.
And, if they have money riding on what's the most popular programming language, then they need to get out more.
Re:"...the next few months will be exciting" (Score:4, Insightful)
The people at TIOBE need to get out more unless they have money riding on what's the most popular programming language.
Their money is riding on people clicking on their ranking and people paying attention and commenting on it to generate more clicks. They appreciate your contribution.
Sure (Score:2)
But wait. .
At this rate, by version 3.14 or so, relaxing the whole GIL thing should be easy as pi.
Popularity isn't everything (Score:5, Insightful)
Maybe when Python is more popular than C, the interpreter can be written in Python instead of C -- oh wait ...
[The right tool for the job is more important than popularity.]
Re: (Score:3)
Re: (Score:2)
I give you Jython [jython.org].
Re: (Score:2)
Popularity and it's long term trend is a factor as to whether the tool is the right one for the job.
Don't standardise on a short term meme if you expect long term support.
Re: (Score:2)
Maybe when Python is more popular than C, the interpreter can be written in Python instead of C -- oh wait ...
I agree with you that "[t]he right tool for the job is more important than popularity" and I agree with your implication that Python is not the right tool for every job.
However I simply had to point out to you that there is a successful project to rewrite Python in Python, called "PyPy". And PyPy can build itself.
https://www.pypy.org/ [pypy.org]
For many applications PyPy is faster than CPython, the default an
Re: (Score:2)
Thanks for the implementation info -- I learned something.
Smug Algol 60 weenie (Score:2)
responds to a smug C weenie, and the post gets down modded.
You kids on Slashdot!
Visual Basic has been forked (Score:2)
There's several shops that use "VB7" proprietary tools built after a release of the VB6 source code to these chosen friends of Microsoft. VB6 is falling in numbers, but there's nobody counting that's where VB went.
stackoverflow stats tell me .... (Score:5, Insightful)
stackoverflow stats tell me which language people are having the most trouble with.
Re: (Score:2)
Maybe, maybe not. It could be telling you which language is being abandoned because it's too much of a pain to work with. Look at C# for example. Which of the following fits its downward trend:
o People figured out how it works and are getting more and more competent and thus asking fewer questions.
o People figured out the language is too complicated and stopped getting help in favour of shitty self designed workarounds.
o The language is getting less popular.
TIOBE: The Tiger Beat of the world of programming (Score:3)
Who the hell cares what TIOBE's predictions are? Do a little research and pick the programming languages that fits your needs and just use it. Do people actually worry about crap like which programming language is more "popular" than another?
Re: (Score:2)
Do people actually worry about crap like which programming language is more "popular" than another?
Yes. Brainfuck may be the most suitable language for a specific task you have, but that doesn't mean it's a good idea to pick it. Based on TIOBE's predictions finding someone who can program it may be difficult.
Industry trends like this relate to both cost and support, it's worth paying attention.
Let's get real. (Score:2)
Yeah, but Visual Basic is #11 and Fortran is number #14. So, if you're not in the top 10, Visual Basic is still more popular than you are, and if you're not in the top 15, you got beat by Fortran!
Typescript and Haskellrose? Yeah, COBOL has both of you beat by a mile.
More seriously, if Fortran can jump from #50 to #14 in a single year, you really have to question the value of any language tha
'Popular' doesn't really mean anything here (Score:2)
Re: (Score:2)
You can.
You can code anything in any language. (That is basically the "Turing complete" meme)
Hint: learn something about programming.
Yes. Obviously. (Score:5, Interesting)
System languages are for systems. Python is for regular people. There are way more regular people than system experts. And since C will sometime in the future most likely be replaced by Rust and Java either by Kotlin or perhaps the Jamstack is really likely that their use will decline and thus python will see more usage, relatively speaking.
AFAICT Python is a good example for a language that has long-life potential since it's so easy to pick up and isn't domain-specific like other easy platforms. Python is the only programming language that is used professionally in every industry in existence, from bioengineering over e-commerce to game development, media production and embedded stuff.
There is no other PL that even comes close to that true diversity, so that Python might lead the pack in the future in terms of usage ist quite likely.
Re: (Score:2)
Jamstack is a JavaScript web app development "framework?" - has nothing to do with Java.
I don't know EditorDavid (Score:2)
Maybe you should read your Story posted immediately after this one which answer the question as "no" right in TFS.
Python is taking over (Score:3)
Python is so ubiquitous, it's even taking over the Florida Everglades [cnn.com]. There are bounties for python [miamiherald.com] it's so invasive. One thing is for sure, training is mandatory [youtube.com] if one is master the art of killing python.
Re: (Score:2)
Here [bash.org]'s your joke.
No, Because HTML is way more popular than both (Score:2)
Re: (Score:2)
First of all, HTLM isn't on the list because it's neither a programming language nor turing complete. But that aside...
There has never been anything like "loyalty" to a programming language. At least with people who understand what programming is. There are essentially two different kinds of languages: Imperative languages and declarative languages. That's it.
And then there's abominations like Javascript. But I'm not talking about toys today.
The point is that for someone who understands programming, the dif
Is this like school now? (Score:2)
Your success depending on how much the teacher likes you rather than what you can accomplish?
Popularity isn't really a useful metric to determine what can, should or even must be used for a job. The most popular language will of course be the one that gets you some results the quickest. Python surely fits that bill perfectly. No need to learn anything past the most basic ideas of programming, there's a library for any fart you may want to pass and it will "just work" without the hassle of compiling, hell, y
Re: (Score:2)
No need to learn anything past the most basic ideas of programming, there's a library for any fart you may want to pass
That is basically true for every language in our days, except for C/C++
And that is why not many people are using them anymore. Hu? Can not write a UI with the standard library, but need an OS specific one or Qt? Can not access files in a platform independent way? ( / versus \ )The only improvement seems to be: now we can handle multi threading concurrent programming with the STL.
Sorry, I li
Python is not a ML execution language (Score:2)
No (Score:2)
I find Python to be too constricting.
Search results are a poor proxy for whatever (Score:2)
I'm fed up with saying it, but popularity, search result or questions on stackoverflow are a poor proxy for making decision on the most appropriate language to learn or use for your projects.
Well establish languages, used by professional programmers will not show up as much because they are used by experienced developer that already know them. We don't need to constantly search for answers or ask questions.
These results are in essence a measure of fanboyism and nothing more.
No, because C is closer to the metal. (Score:3)
Nobody is writing in C because they love the syntax. They're writing in C because they want to be nearer to the hardware without having to jump through hoops.
Popularity is relative (Score:2)
You don't write web apps in C unless you're a masochist. Most of the "batteries included" in Python is written in lower level languages like C or C++.
The fact of the matter is, we NEED C/C++/Rust programmers in order to have the 'nice' languages like Python, Javascript, etc.
Programming language chess board (Score:2)
This X will replace Y as Z is getting quite old. I wonder if people are placing wagers on all this? :/
Re: (Score:2)
Perhaps you want to look into the SQL speccs, before you make an even more fool out of your self.
So, for SQL being called "tenth" makes me wonder where this top 10 came from... ...
Hint: then read the f***ing summary again. Oh, you did not read it at the first place? Never mind
Re: (Score:3)
SQL is a way of requesting a recordset from a database
It's language for retrieving, storing, transforming, validating, and defining data in a database. You might as well argue LISP isn't a programming language because its just for processing lists.
I don't even know under what criteria you could possibly make a cogent argument that SQL is not a programming language.
Re: (Score:3)
I don't even know under what criteria you could possibly make a cogent argument that SQL is not a programming language.
Up until recently, it wasn't Turing complete. I believe it technically is now, but you have to be at least half insane to want to use it for control flow. SQL is great for relational database queries, but it's not a general purpose programming language.
Re: (Score:2)
Up until recently, it wasn't Turing complete. ...
If you mean with recently: 1990, you are perhaps right
but it's not a general purpose programming language.
If all your programming is happening and manipulating the database: it is.
Hint: there is a reason why a competent DBA farms in 3x the money a standard C/C++/Java programer does: because he knows all the cases you are wrong in and navigates them with ease.
Re: (Score:2)
SQL is great for relational database queries, but
It's also great for database updates, and defining databases (tables, columns, constraints, triggers , access permissions...)
it's not a general purpose programming language.
Yes, its specialized for a particular domain, aka 'domain specific'.
Of course, SQL dialects/extensions like T-SQL and PL/SQL exist to make it easy to use for procedural programming, but even with those its STILL not a general purpose programming language.
But so what? The fact you wouldn't choose SQL to write a device driver or mobile game hardly means its not a programming language.
Re: (Score:2)
Very simple you cant write an application of any kind in SQL.
You can, and I've seen classic text RPGs written entirely in SQL Each command is invoked via a stored procedure. EXEC look, EXEC North, EXEC South, EXEC Pickup(Axe); etc that queries and updates and the database based on your action and the state.
Very doable, and has been done.
Can you point to a single application or library of any kind written in *ONLY* SQL
Lots of systems have all the business logic in stored procedures written in SQL; those are literally libraries of functions written in SQL.
I've never seen a SQL app in either the apple or android stores.
So what? SQL is a domain programming specific language. I expect you haven't seen any mobile a
Re: (Score:3)
Not all of it, but it's a good rule of thumb to manipulate data where it already is. So many clueless "developers" wear out perfectly good ethernet switches calling "SELECT * FROM foo JOIN bar JOIN baz" then doing calculations on the data in their toy scripting language, and wonder why the processing is so darn slow.
It'd be stupid to code a file server in SQL, but it'd also be stupid to write a comp
Re:SQL was never a language to itself. (Score:5, Informative)
> SQL is a way of requesting a recordset from a database... you're not supposed to do all your computing there.
Pure SQL is not turing complete, but with few extensions it is. Example: https://wiki.postgresql.org/wi... [postgresql.org]
Whether you are supposed to use it for programming or not, is not important.
Re:And fusion will work, too (Score:5, Interesting)
I do remember when python was first sold to the masses... "Unlike perl, code is readable as there's only one right way to do such or such". They just forgot to mention "The right way to do it changes with every dot-release".
I wonder if python's the language with the greatest amount of deprecated code attached to now-unsupported versions. 1978 C code from K&R still compiles; python 3.5 code from 2015 is unsupported and may not work with today's python. I wouldn't dare code anything remotely supposed to work in five years in python.
Re: (Score:2)
python 3.5 code from 2015 is unsupported
That is nonsense. It works perfectly well in an 2015 Python environment. Set your $PATH correctly. It is not that hard.
1978 C code from K&R still compiles
That is nonsense, too. A modern compiler won't compile K&R code. Unless you cherry pick one, which I'm not aware about. (Not even 25 years ago a "modern at that time" compiler would compile K&R C)
Re: (Score:3)
python 3.5 is unsupported as of 2020/09/30 [wikipedia.org]. If you want to run an unsupported interpreter full of security holes [cvedetails.com] that have not been backported from later versions, that's your business, but not exactly great advice.
From K&R's 1978 C Programming Language manual [archive.org]:
main()
{
int lower, upper, step;
float fahr, celsi
Re: (Score:2)
They just forgot to mention "The right way to do it changes with every dot-release".
They don't mention it because it's not true.
python 3.5 code from 2015 is unsupported and may not work with today's python.
If you are going to make an extreme claim like this, you need to produce an example. "Today's Python" is Python 3.9. Please produce an example of Python 3.5 code that is unsupported by Python 3.9.
I predict you can't find anything. You might be able to find a library function that was supported during t
Re: (Score:2)
Note that I wrote may, not will. PEP 528 [python.org] and PEP 529 [python.org] give two examples of valid 3.5 code that breaks when running under 3.6.
For python 3.7, the official documentation even has a porting guide [python.org]; same for python 3.8 [python.org] and python 3.9 [python.org]. Not all of those changes apply to 3.5-era syntax, but the existence of porting guides pretty much hint that every dot
Re: (Score:2)
Note that I wrote may, not will. PEP 528 and PEP 529 give two examples of valid 3.5 code that breaks when running under 3.6.
You found two changes that make Windows switch to using UTF-8 for Unicode during I/O, like every other platform already did. This is not a fundamental language change. Relying on the encoding being 'mbcs' on Windows is what I would call an "implementation-specific detail" and C code also is not portable in the face of implementation details.
And, note that this change had the effect o
Re: (Score:2)
As I run gentoo, that supports multiple python versions and compiles everything, many times I see programs and libraries break when python-3.n+1 is introduced, and a new version in the next weeks that fixes the issue. Maybe the differences between versions appear trivial to you, but a search for "breaks with python 3.7" (and variations) on GitHub shows many people get bitten by backward-compatibility issues. It is a real-world issue.
And those are jus
Re: (Score:2)
Seriously, I just went 3 rounds trying to get ansible 4 to work. It requires python 3.8 or later, which is available only via SCL on CentOs 7. Red Hat juat threw CentOS 8 under the bus, and you can't compile the "python38" tools from CentOS 8 without python38 already dinstalled, and the default python for CentOs 8 is python 3.6. And you can't build ansible on Windows python, even if it's python 3.9
Those aren't problems with Python, they're problems with Red Hat and CentOS. The Python developers don't control Red Hat.