|
In my opinion Python is not a toy language (and even BASIC wasn't).
That said, Python is far better than BASIC (and Lua is even better than Pyhton ).
Scripting languages have their usage.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
CPallini wrote: Scripting languages have their usage. Let us limit them to that.
The thing is that lots of people live with the misconception that Python is suitable for general problem solving, of arbitrarily complex problems. Scripting languages are meant for scripts, for managing a process (such as the building of a software system). It startet with Job Control Languages, developed into Unix sh and all its derivatives, or .bat files developed into PowerShell. You may see scripting languages such as Python as a further developments of shell concepts.
You would never try to solve a complex problem as neither a bash nor PowerShell script. Even with further development of those concepts into Python (and its functional relatives), scripting languages are not suitable for complex problem solving.
|
|
|
|
|
Quote: scripting languages are not suitable for complex problem solving. It depends...
I wrote a fairly complex application (at least from my point of view) using Lua .
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
Yeah, there are project groups in our organization that make similar claims.
Still, I beg to disagree. Although it may be "possible" to use a given tool, doesn't mean it is suitable.
Disclaimer: I know nothing about Lua. From skimming trhough the Wikipedia description, I am sort of curious to hear the reasons for choosing Lua for complex problem solutions over other alternatives.
|
|
|
|
|
Lua is easily embedded in a C/C++ application, and that works also in the opposite direction, it is easily extensible using C/C++ libraries.
So, my first plan was to embed Lua in a C++ application (and write numerous C libraries for low level tasks). Eventually, I found no real need for the C++ code.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
Reminds me a fairly significant program I wrote in DCL (Digital Command Language) once -- it was an accomplishment, not to be repeated.
|
|
|
|
|
You are possibly right.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
> Python (and its functional relatives), scripting languages are not suitable for complex problem solving.
what a ridiculous remark
python is used all the time for statistics and machine learning
of course it can be used for general problem solving
and it can be used for much more that just scripts
Blender uses python
Django and Flask are python frameworks for web development
just read how netflix uses python
https://netflixtechblog.com/python-at-netflix-bba45dae649e
and they aren't the only big company using python for more than just scripting
|
|
|
|
|
CPallini wrote: Python is not a toy language
Agreed, its not, and it is very powerful and versatile language, etc.
I personally have no need for it in my personal software projects or work projects.
I hear it is a great language for data analysis, etc.
|
|
|
|
|
Slacker007 wrote: I hear it is a great language for data analysis, etc. I know a couple of people using it for big data and similars and they just say it is the best, I have never used it though so I can only say what I was told.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
For a starter, Python is advocaded for sci and eco. But it has no fixed point datatype.
So sci and eco learned what takes eons for prog, still delivering bugs months after using the delivered software.
0.5 + 0.5 = x is a hard to solve equation.
|
|
|
|
|
I completely agree...
I grew up on a PDP-11 running RSTS/E using Basic-Plus (The Predecessor to VAX Basic).
Most of the OS Tools were written in Basic-Plus. I could do anything in BASIC. It was pseudo-compiled (Bytecoded), and was the technology Microsoft "borrowed" to get instant compiling of BASIC for Visual BASIC.
Was it perfect? No!
Was it extensible? YES! In fact, we had MEMORY MAPPED Files that Worked like arrays, you index the file as File[X] to get a fixed block read of block X. You declared the block size when you opened the file. We used this for lightning fast Hash Lookups.
Extensible? We had to modify the OS to add "sys" calls to a jump table. But we could do it.
Now, BASIC allowed DLL calling in windows. And Python allows wrappers of compiled code.
Finally, to me the MOST POWERFUL piece of an interpreted language is the ability to EMBED it as a scripting language inside of an Application to let the end users extend it.
I wrote applications inside of Word and Excel for people. It broke my heart when I went to embed VBA inside of my application, and ran into MSFT Licensing (OMG Draconian). So we used a different scripting engine that was free and based on Pascal. It worked... But I would have loved for the product to have the Power and Libraries of Python!
|
|
|
|
|
The Monty variant will never lose its charm!
|
|
|
|
|
There are so many 'articles' these days predicting the rise/fall of pretty much anything. Most are just 'click bait' and I think this is one of them.
I don't use Python, (and I'm not a big fan), but I seriously doubt that it's in decline.
|
|
|
|
|
The article doesn't predict Python's downfall either. Just being a bit critical about unhindered further proliferation as prophesied by python fans.
|
|
|
|
|
What does charm have to do with anything? We used to argue if using a scripting language was really programming. Python has its uses, it is like any other tool. If it does the job for you, use it. Example: While troubleshooting a network issue, I wrote a quick syslog server script that sorted through all the crap going through our firewall. When done, deleted. Was that charming? I think not. Was it useful? For me it was. It is also good for doing POC on IoT stuff. Then rewrite in Object Oriented Assembler.
If you can keep your head while those about you are losing theirs, perhaps you don't understand the situation.
|
|
|
|
|
Why I Start Python then always Stop
I like a lot of programming languages.
C# is my favorite, but I like C++, Pascal, C, Java, Kotlin (more & more all the time), even Swift (very Kotlin-like), TypeScript and I also like JavaScript -- even though it has a lot of annoying things like === etc.
I try to like Python, I really do. But there are a number of reasons that every time I start using it again I stop.
3) whitespace dependent. I've hurt myself with this where code fails due to having a tab where I should have 3 spaces or vice-versa. It's annoying. Just use some friggin' brackets.
2) global variables in file. If you define a variable in a file it is global to every function in that file. What!?! Yep. It's painful and confusing and a bad idea.
1) But the number one, knock-down, all-time biggest reason I just can't get past it is the use of double-underscores.
Yes, I'm a syntax snob.
It's just the ugliest syntax ever and I don't want to type underscores all the time!
It's so ugly to look at Python code. Here's a sample from official documentation:
class Mapping:
def __init__(self, iterable):
self.items_list = []
self.__update(iterable)
def update(self, iterable):
for item in iterable:
self.items_list.append(item)
__update = update
It's so ugly, so I just stop Python as soon as possible and go back to one of the good languages.
I was also wondering why Van Rossum (creator of Python) used underscores so much and there are some good explanations in this post. But there is no excuse, because other modern languages have not had to use characters like that.
Why does python use two underscores for certain things? - Stack Overflow[^]
|
|
|
|
|
On global variables in Python: it is misleading to say, without qualification: "If you define a variable in a file it is global to every function in that file." It is true that if you define and/or use a variable outside a function, it becomes globally visible to 'subsequent' code within the file. It is, however, treated as read-only outside its original scope unless it is specifically declared as global within a function definition. I can see that even the read-only visibility of such variables may be offensive to those to whom the thought of global variables is anathema, but I do not find it so.
|
|
|
|
|
So, in short, it is the Python way of the singleton pattern?
|
|
|
|
|
I think it issss sssstill a charming language.
|
|
|
|
|
Pythons have no shoulders ... so we know the loss of charm is not due to it's tee shirt needing a change, right?
(sorry, walked by a corner selling designer-pattern-printed neck/chin tubes yesterday and couldn't resist)
|
|
|
|
|
I see many people out there having little idea about python and saying that they know it's good for data science. Here's my 5 cent as a data scientist.
Python has some well-developed libraries for data science. Those libraries, like pytorch, are written in C++, and are indeed easy to use via pyton.
That being said, I started developing in pyton for a single reason that my younger colleagues didn't know other languages, and I needed to both have common ground with them and also to show that I am at least just as capable as they are on this ground. Those colleagues were at odds with understanding strongly typed language syntax, btw.
This, in my opinion, creates a vicious cycle. With more and more - and, hence, less and less qualified - human resources being pumped in the hot field of AI, those need to be trained fast on the most entry-level language possible, allowing for neural networks and stuff. For now it's python here. As more and more people in AI are now python exclusive, qualified developers focus more at delivering AI libraries for python.
Remember, those people often have trouble understanding the difference between a class and an object, so strong typization is a burden for them. Whereas I, used to work with demanding projects and trained in pure math, ended up strongly typing in python (which it allows for), otherwise loosing track.
On top of that, Microsoft screwed up with its C#-compatible CNTK library, dispersed its effort to include python support again, lost miserably to other libraries, and that's the last I've heard of it.
In Java, there is a pretty neat and viable alternative library Deeplearning4j that does all - well, most - things python libraries do, has neat syntax, uses Java 8, and is overall pretty satisfying. I prefer workig in it even though in general I despise Java for multiple reasons. I actually believe Deeplearning4j is one of the few reasons to like Java for.
|
|
|
|
|
when compared to Julia any language does have its share of disadvantages
|
|
|
|
|
I prefer Haskell, but I haven't been able to use it much lately.
|
|
|
|
|
Unity used to have boo a python scripting language. No one used it though as Unity also had C#. Me personally I prefer C#.
|
|
|
|
|