15.3 C
New York
Wednesday, October 5, 2022

IEEE's Top Programming Languages of 2022: Python (and SQL) – Slashdot

Become a fan of Slashdot on Facebook




The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
I’ve worked with a lot of electrical engineers. They all love python because it’s easy to quickly learn enough to be able to hack useful little scripts together, without having to develop a deeper understanding of coding or operating systems. It’s a perfect language for that sort of purpose.

You could say the same of Matlab.

You could say the same of Matlab.
Matlab is proprietary, which is a big handicap. Many people won’t pay to run your code.

Or R certainly also has that “agile development” aspect for people in finance or in market research

Or R certainly also has that “agile development” aspect for people in finance or in market research
R is losing ground to Python in almost every area. R’s strong point is statistics, but Python’s statistics libraries are now just as good and improving faster. It is much easier to hire people with experience in Python.

Matlab is proprietary

Matlab is proprietary
I’ve used Octave, which is open source, but I only used it for simple graphs. I don’t know how compatible the two are.
https://wiki.octave.org/ [octave.org]
It’s been a number of years (and I am not an EE), but back when our faculty and students were looking at Octave – the big hurdle was they needed a number of Matlab toolboxes, which aren’t (or weren’t? no idea if that’s changed) compatible with Octave.
However, in the end most of our guys moved away from Matlab… but rather than to Octave, they just chucked the whole kit and caboodle over for python.
Several years ago, I used R specifically because it was the only thing to support the MANOVA (Multiple ANOVA) test.
That time is gone and R is dead to me.

Matlab is proprietary, which is a big handicap.

Matlab is proprietary, which is a big handicap.
The licensing is also onerous… lost many hours trying get their license manager to work.
I am an EE and I choose Python and C. Python gets the computer to do a lot of heavy lifting for me – big ints, big floats, dicts, everything dynamic etc. With C I get to tell the computer exactly how it’s going to do it. Most tasks fall into one camp or the other. I could choose to use other languages and C would be the first to get replaced by one of the nice alternatives (Jai and Zig are in the front running for me).
But I have a degree in Computer Science and I know more language theory than I need to use. I am seriously unimpressed with OO first and functional programming for getting work done outside of very specific cases. E.G. OO works with operator overloading nicely, but when taken way too far, you spend your time trying to grok the library, rather than the problem space. If was less effort to write my own matrix library in Python than it was to try and get Numpy to use GF(2^p) elements in its matrices. So I like a language like Python where the power is in the base language so you aren’t forced to use other people’s libraries.
Chips are designed in System Verilog, VHDL or some other less common variants. No HDL is a good imperative language (MyHDL excepted but it transpiles to Verilog). The irony is that digital hardware is essentially functional and functional HDLs work well and map nicely to the problem domain, but nobody uses them and the tools don’t support them. Python as a meta language works well with HDLs.
Python can be easy to use, but it also permits sophisticated expression of deeper programming concepts. That seems like a good thing to me. Both enabling people who are working on something other than crafting perfect code and bring the goods to programming literate people who want an efficient way to get a lot done.
There, I got through a complete language rant without complaining about Rust.
Well, I am a CS type with an engineering PhD in the IT field. I share most of your assessment. OO has its place, but it is a specialized tool and generally very overrated these days and there are lots of tasks where you do not want to use it or use it only for some parts. The CS/IT field is still not quite ready to admit they have mindlessly followed yet another hype and declared it superior to everything that came before. (There were a few of those hypes already.) Functional is nice to have as an embedded component but pure functional is not really good for most tasks except for very specialized scenarios as well. In Python, you can do imperative, OO, functional (with limits), just as needed. And C? Almost as powerful as Assembler, but a lot less painful and far more portable.
Bonus to the Python and C combination: C embeds very nicely into Python.
I find the problem with OO is that type hierarchy tends to back you into a corner when you least expect it to, and then before you know it you have a fuckton of refactoring to do. More annoying is how inflexible it tends to make whatever libraries you are working with.
Indeed. One of the many problems with the idea. Another one is that you get a lot of “bureaucracy” that is beneficial only in some case and stands in your way in many others.

I find the problem with OO is that type hierarchy tends to back you into a corner when you least expect it to….

I find the problem with OO is that type hierarchy tends to back you into a corner when you least expect it to….
I find that this only happens to programmers who don’t understand OOP. The first letter in SOLID prevents this entirely. People coming from a procedural background tend to try shoehorning procedural skills into OOP, and it usually causes this very issue.
In non-OOP programming, you model your program around code. In OOP, you model your program around behavior. With that mindset, you almost automatically avoid the bad habits the result in the problem you describe. You have to try really hard to back yourself
That’s fine and all until a few libraries you need have abstract classes, then your behavior model tends to get fucked with in ways you can’t control. THAT is where inheritance loses its flexibility.
Game programming also suffers from this, particularly when using ECS where you might want to mix and match some behaviors while excluding others.
Rust’s trait system doesn’t allow libraries like that, while still giving you polymorphism anyways. If you need a specific behavior, just impl the trait. If you don’t n
The CS/IT field is still not quite ready to admit they have mindlessly followed yet another hype and declared it superior to everything that came before.
No one ever claimed that OOP is superior to anything else.
The hype is in the anti hypers and haters. Normal people just use stuff. I’m on the OO bandwagon since 1989, there never was anyone in my environment who hyped it or called it superior
OTOH, for many things, e.g. GUIs and compiler construction it is obviously superior. But no one is argueing about
Well, have a look at what is taugt. Some Students in CS/IT/Data Science/etc. probably do not even know that you can write non-OO code except for small scripts.
For teaching I still think Pascal is one of the best languages.
If you want to teach “Programming”. But then it starts getting a bit difficult to decide what is more important. E.g. Algorithms? Data structures? Databases? Internet (routing, IP, etc.), Concepts of programming languages (OO, functional, etc.), higher level languages versus assembly, slowly moving to design of chips and computers and systems, aka parallel computing, Computability theory etc. ? Big-O? Proving, aka Djikstra’s calculus or weakest

No one ever claimed that OOP is superior to anything else.

No one ever claimed that OOP is superior to anything else.
Then put me at the start of the list. Having spent years doing procedural, functional, and object oriented programming, I will readily proclaim OOP as superior to the others. The other are great for hacking together small programs, but they quickly become rather painful as the size and complexity of programs grow. OOP, on the other hand, is far less painful in larger system than the other two.
That is not the same as the parent meant.
He meant it was “sold” and “hyped” as superior.
Obviously in many niche cases it is superior, in a certain sense.
I personally do not see a big difference between OO and functional, but that might be because the paradigms are often merged, like in Scala/Java/Groovy/C++.
Before we had we had real lambdas or even closures, we had to use hand crafted Function objects with a call()-method. And obviously we could not free float combine new functions out of existing ones.
But
Out of curiosity, what is it you like more about Jai and Zig?
(I still like C a lot and I am very productively using it.)
OOP has nothing to do with operator overloading.

OOP has nothing to do with operator overloading.

OOP has nothing to do with operator overloading.
Yes. I was pointing out how overloading works nicely with OO. E.G. A class for some mathematical object with the various operations (add, sub, mult, div, power etc) can have the operations easily overloaded onto the +,-,*,/,^ operations with the local working state hidden away in the class object.
It can be done without OO of course, but I see it as one of the few areas where OO works well. The only time I use C++ is when I need to model unconventional mathematical objects in a cpu efficient way. Otherwise I
PHP is a better language than Python since PHP is roughly around three times faster than Python for the same non-trivial tasks. The only reason people use Python is because they don’t realize PHP runs just fine on the CLI.
PHP “arrays” are implemented as ordered hash tables. Simply put, they are the single most powerful data structure ever created. When you insert 1, 2, 3, 4, 5 in a dictionary and get back 3, 1, 2, 5, 4 when iterating over it, maintain order has to be done externally to the object. It’s
>PHP is a better language than Python
Not when you need to compute integer arithmetic modulo 2^255-19. Python will happily do that. PHP will not.
That and Python has OrderedDict.
from collections import OrderedDict
# now your dicts are ordered when iterating over them.
 
On the surface, yes. Python can be used as a quick, easy scripting language. But it does not end there at all (unlike Perl, for example)
If you have an actual clue you can do complex and advanced stuff with Python quite well. Also, C embeds nicely into it.
The problem I personally have with perl is that I forget how to use it every time. There’s so many little flags and shit to know that I can’t keep them all in my head. That’s not perl’s problem though, it’s mine. If I used it more often I’m sure I wouldn’t have this problem. On the flip side, every time I try to make perl do something, I succeed. Either someone has already done enough parts of it before that I can copy and paste my way to victory, or as you say, there’s a module for that.
However, that’s a t

There’s so many little flags and shit to know that I can’t keep them all in my head.

There’s so many little flags and shit to know that I can’t keep them all in my head.
You don’t have to: it’s the 80/20 rule. All of my scripts start with “-w; use strict; $| = 1;” If I need anything else, I’ll look it up, but that template covers almost all of my typical scenarios.
Many of us don’t consider wikipedia authoritative; all kinds of misconceptions, mutable social mores and religious beliefs are presented as fact in wikipedia.
SQL is a programming language, it can instruct a computer to process information. Your opinion and the opinion of the random who wrote the wikipedia definition are of no import.
It is not a requirement that a ‘Programming language” be Turing complete. Apples and kumquats.
an obedient puppy or toddler on a hopscotch grid can be Turing complete, might have to use food to get them to go to a square…

SQL is a programming language, it can instruct a computer to process information.

SQL is a programming language, it can instruct a computer to process information.
By that definition, any program is a programming language. Do we call WoW players now “programmers”?
The OP thinks that because SQL is domain specific instead of general, it should not count as a programming language. By that narrow definition, things like Matlab, Unix shell scripting, Emacs Lisp should not count as languages.
Also I think most people are only exposed to SQL to get simple queries therefore they do not know the complexity that DBAs often employ with things like Stored Procedures.
No, the OP pointed to wikipedia which states that SQL is a Domain Specific Language and not a Domain Specific PROGRAMMING Language.
The OP also pointed to a document explaining the difference between Domain Specific Languages and Domain Specific PROGRAMMING Languages.

No, the OP pointed to wikipedia which states that SQL is a Domain Specific Language and not a Domain Specific PROGRAMMING Language. The OP also pointed to a document explaining the difference between Domain Specific Languages and Domain Specific PROGRAMMING Languages.

No, the OP pointed to wikipedia which states that SQL is a Domain Specific Language and not a Domain Specific PROGRAMMING Language. The OP also pointed to a document explaining the difference between Domain Specific Languages and Domain Specific PROGRAMMING Languages.
*Sigh* Domain specific language [wikipedia.org]:

There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages (more generally, specification languages), and domain-specific programming languages.

There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages (more generally, specification languages), and domain-specific programming languages.
Domain Specific Languages include domain specific programming languages. As an analogy, I own a Honda sedan. Your and the OP’s point is arguing that I do not own an automobile because I own a sedan. Does that make any sense to you?
*sigh*
No, the point is that a DSL is not *by defintion* a DSPL.
So a Honda is a car, but it is not *by definition* a Honda Sedan.
Similarly, SQL is a DSL, but is NOT BY DEFINITION a DSPL.

No, the point is that a DSL is not *by defintion* a DSPL.

No, the point is that a DSL is not *by defintion* a DSPL.
What part of DSL includes DSPL is not clear to you? You seem to think that DSL and DSPL are binary and exclusive terms (false dichotomy argument).

So a Honda is a car, but it is not *by definition* a Honda Sedan.

So a Honda is a car, but it is not *by definition* a Honda Sedan.
And you are arguing that I do not own a car because I own a sedan. False dichotomy again.

Similarly, SQL is a DSL, but is NOT BY DEFINITION a DSPL.

Similarly, SQL is a DSL, but is NOT BY DEFINITION a DSPL.
Citation needed. Or are you going to cite one course at one university in 2010 again?
You are clearly too stupid to understand.
What part of “That DSL includes DSPL does not mean that all DSLs are DSPLs” is not clear to you?
HONDAS INCLUDE HONDA SEDANS BUT NOT ALL FUCKING HONDAS ARE HONDA SEDANS.
It’s time you got hit by the smart stick and changed your name to Knowingfool.

What part of “That DSL includes DSPL does not mean that all DSLs are DSPLs” is not clear to you?

What part of “That DSL includes DSPL does not mean that all DSLs are DSPLs” is not clear to you?
No one has said that but you. Is SQL domain specific? Yes. Is it used to program? Yes. But according to you it is not a DSPL because . . . you say so. How does that not defy logic.

It’s time you got hit by the smart stick and changed your name to Knowingfool.

It’s time you got hit by the smart stick and changed your name to Knowingfool.
Oh yes, an ad hominem attack instead of an actual point. Typical.

What part of “That DSL includes DSPL does not mean that all DSLs are DSPLs” is not clear to you?

No one has said that but you. Is SQL domain specific? Yes. Is it used to program? Yes. But according to you it is not a DSPL because . . . you say so. How does that not defy logic.

What part of “That DSL includes DSPL does not mean that all DSLs are DSPLs” is not clear to you?

What part of “That DSL includes DSPL does not mean that all DSLs are DSPLs” is not clear to you?
No one has said that but you. Is SQL domain specific? Yes. Is it used to program? Yes. But according to you it is not a DSPL because . . . you say so. How does that not defy logic.
No-one has to say it, it is a STATEMENT OF FACT.
SQL *MAY* BE A DSPL BUT THAT DOES NOT FOLLOW FROM SQL BEING A DSL !!!

It’s time you got hit by the smart stick and changed your name to Knowingfool.

Oh yes, an ad hominem attack instead of an actual point. Typical.

It’s time you got hit by the smart stick and changed your name to Knowingfool.

It’s time you got hit by the smart stick and changed your name to Knowingfool.
Oh yes, an ad hominem attack instead of an actual point. Typical.
Says the *sigh*er.
More explicitly then:
You are being unbelievably dense and appear unable to follow logical statements.
SQL is a programming language because it is turing-complete. Being able to “instruct a computer to process information” makes it a query language, which is what it was designed to be from the beginning.
Being a programming language, however, doesn’t make it a good programming language. Many argue that it’s not a particularly good query language, but it’s still here and has probably outlived many such claimants, so it clearly does its job.
Well, with some understanding of semantics, you can find out that your quote actually says SQL is a domain specific programming language…
-1, strawman
Gweihir does not claim that “a DSL is the same as a DSPL”. The phrase in question is that a specific language is “a domain-specific language *used in programming*” (Emphasis added.)
From the very page you linked to “If the computer is a “participant,” that is, we can use some subset of the DSL to tell the computer what to do — we can program the computer in a domain-specific programming language (DSPL).”
I see you cannot admit being wrong. Well, no point in continuing this.
SQL is a programming language. Being a domain-specific language does not exclude it from being a programming language. You are confusing programming languages to exclusively be general purpose programming languages. That’s just your personal definition. Someone else may exclude scripting languages. But those aren’t broadly accepted definitions of a programming languages.
SQL is a domain-specific programming language.
SQL is both a Domain Specific Language and a Domain Specific PROGRAMMING Language. The later is a subset of the former.
Your link states the first, but does not exclude the later.
From the same link
“SQL is a set-based, declarative programming language”. It may not be “an imperative programming language like C or BASIC”, but it is a PROGRAMMING LANGUAGE nonetheless.
You seem to not think of declarative programming languages as programming languages. That might be the source of your confusion.
I agree with this sentiment. SQL isn’t a programming language at least in the traditional sense of compiling to bytecode or assembly opcodes. It could be viewed as a scripting language of sorts though since it has syntax and the database engine will interpret valid syntax as instructions to run some code. But if all you do with SQL is simple SELECT/INSERT/UPDATE/DELETE, then it’s not really even that since your application has to run a bunch of logic outside of the database. I’d wager 95% of all SQL is
SQL is a programming language? I guess, only for lack of there being nothing else to call it .. but man that is stretching it.
Better than calling HTML a programming language, I guess.
HTML is not a programming language. Although it can be misused as such by exploiting security vulnerabilities in anything that processes HTML.

HTML is not a programming language.

HTML is not a programming language.
Correct. Apparently CSS3 is turing-complete, however, and that’s HTML-adjacent…
Interesting. I never looked at CSS at all. My own small web-page runs well without it.
I haven’t done anything at all with CSS3. I last did some stuff with CSS2, but just for normal theming. CSS3 is pretty neat from a user perspective because it allows one to do a lot of things normally done with Javascript, which means in turn that sites using it tend to mostly function even with scripts disabled.
This sounds like a pretty bad idea. Oh well, I am in the IT security space, so no lack of work also because things like this…
SQL is Turing complete, which for me settles the issue.

SQL is Turing complete, which for me settles the issue.

SQL is Turing complete, which for me settles the issue.
Settles it which way? 🙂

SQL is a programming language? I guess, only for lack of there being nothing else to call it .. but man that is stretching it.

SQL is a programming language? I guess, only for lack of there being nothing else to call it .. but man that is stretching it.
Yes, even if you ignore vendor specific procedural dialects (TSQL, PLSQL, PGSQL) which are almost always implied when referring to “SQL” the standard itself is a language.
https://en.wikipedia.org/wiki/… [wikipedia.org]
It’s a functional programming language, like APL, and LISP.
SQL is domain specific, but still a programming language.
Why is C# listed as “C-like” but not Java? C# is basically Microsoft’s second attempt at their own version of Java, following the legal problems they had with J#.
I have no idea how anyone who claims to know about programming languages could miss this.
Not really. Java is C without all the advantages and a lot of problems instead.
In August, with just over 4 months left in the year
There may be more comments in this discussion. Without JavaScript enabled, you might want to turn on Classic Discussion System in your preferences instead.
Are More Than Half of All Bitcoin Trades Fake?
Walmart Lists a 30TB Portable SSD for Just $39. It’s a Scam
Neutrinos have bad breadth.

source

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles