Forum Moderators: open
those that have been around the block have wisdom and experience which can't be matched
graeme_p: Just because people are accustomed to using it does not mean they understand it, and its uses and how it work.Many times I got people telling me the solution is an API, or microservices, or just a set of rest implementations... I'm usually not afraid to ask them details from a "I have no idea what you are saying", and then they prove to be absolutely ignorant about what an API is, or microservices.
isitreal: I would however make one correction, SOAP and REST don't belong in your list, those are just secure data transfer protocols, that are actually a royal pain to use and setup. SOAP Is one of the hardest things I encountered to get working properly, so doesn't belong with the list of fad toys you gave.I agree with everything you said. Regarding this specifically, it's part of the picture I wanted to paint regarding the topic and why sometimes I feel like a dinosaur. Example ahead...
isitreal: I don't think it's a need to use 5 languages, I think it's simple total incompetence + But I would reiterate, Perl is too hard for today's script kiddiesI often get this perception, that today... lots of people do this because to them... it's a manifestation of skills (multiple skills) and much needed to impress others in the same world (knowing as little as they do, or ignoring as much as they do). It's like "I made this using just PHP, or just Perl, etc" doesn't seem to sound as powerful to them just like saying "I punched the guy so hard once, just once... he collapsed on the floor", but no, it seems they prefer "I hit him hard 20 times, then 20 kicks, you know, tae kwon do, and then 2 mortal jumps backwards landing on his belly, and finally finished him with a flying kick" <-- while this might look cool on films, such excess means the guy can barely punch, or does so like a weak kid.
regular expressionsI'm no expert, yes, I have used them, many times I need help with that, and sure find them incredibly useful in Perl. Tried REGEX using other languages and yes, it works, but naturally it's not the same, yet one can improve. Anyway, it's really something when you notice the difference in speed (using REGEX on other languages), and that brings lots of love back to Perl.
isitreal: explorador, I agree there's a certain amount of CV/resume packing going onyes, and with your post we get back to the origins of the thread.
I have never dealt with AWS so I could not fake it or pretend. If I'd played around with even a little bit, I could have easily faked it
Python is also a contender for making people far worse programmers, as are JS libraries and frameworks etc, though maybe also it's worth adding in IDEs to that.
like python believing that removing brackets or semicolons somehow makes you faster as a developer,
I view it more as failing to learn the basics at all, and relying on frameworks, toolkits, libraries, etc, all of which lock you into doing things the way they force you to do them, not the best way to do them.
it's far too difficult, too expensive, but those people who toss them together are considered IT workers. Which they are, in the sense that a mcdonald's line worker is a cook.
To me, what Graham is arguing for there in the essay is not Python, it's finding the current hip language or tech so you can hire the best young developers, that's certainly not Python today, but it does have a lot of users so your hiring base is certainly much larger.
The python guy I was collaborating back then worked in industry, some military thing, and what struck me was that his coding standards kind of highlighted how absurd removing brackets is, since he'd use comments to indicate where blocks end, and which block was ending, because it's so hard to actually see that with only tabs. or is it spaces? I forget.
I think was something like 50 lines in Perl (basically my first real Perl, so no skill on my part for sure) and about 200 in python (by someone who was doing it for a living at that point, for military applications), but I can't speak to the quality of the python code, but I can to the fact it broke in a minor version update, which is unacceptable to me.
I am increasingly a huge fan of incremental development, I do it on all my work stuff, all my own projects, and even when I did massive rewrite of an entire codebase into a new language, I made it be 100% feature complete with the old version before releasing it. Except for the bugs that were fixed, of course, and the new bugs introduced. Kids do not do this, they just break the stuff and go on, because not breaking things is a lot harder, and takes more discipline
f you follow FOSS, you know that these breakages are not a minor feature, it's the norm with Python version updates
To me, Perl remains the glue between C and core machine code and higher level
For me, the thing that totally soured me on Python is the ongoing reality you see in GNU/Linux, where there will be programs you grow to rely on, then a python major version upgrade hits, and they break, and nobody feels like fixing them since it's such a royal pain. So the programs go away.
Python if my fuzzy memory is right has a sort of workaround where something is compiled to a type of binary then run, Perl actually also had that, but it never caught on and was not native.
Frameworks, in particular javascript frameworks, to me are one of the very worst things to have happened to the internet, in terms of making pages out of them totally, not using them as useful tools. To me, using something like CSS frameworks or libaries or whatever they call them is really absurd, that's purely someone not wanting to learn CSS, but the javascript stuff can be useful.
While not fully typed, Perl is much more typed, a scalar is a scalar, an array is an array, a hash is a hash (ok ok, it's a special type of list, but it uses % so Perl doesn't have to guess), a function is a function (well, ok, it's a sub), and a class is a class (again, ok ok, it's a package). This means the compiler never has to guess what those things are as it executes and compiles. I don't think this is something you can fix because it's a core language feature, not a bug.
it comes down to what you want to see on your code editor, which is basically probably a reflection of how your brain basically works, which suggests to me that python attracts a type of brain fundamentally different from what the more classical approaches do, like C, Perl, PHP etc
I can think of nothing harder to debug than if I messed up an indentation level in python, since there would be no visual cues at all to help pinpoint the error.
However, the way tech works, almost nobody cares about the actual quality of the stuff anymore, they just want to see the results, for as cheap as possible, then when it breaks, or the AWS bill comes in
Write your own flat file CMS? Make code that endures and is maintainable? Care about performance and code quality at the same time? Spend hours to make code look better, cleaner, easier to read? Who has time for such nonsense!
Sometimes I am tempted to look at compiled stuff, but then I get instantly back to reality, and go, yeah, right, and have to worry about it compiling for any platform, anywhere, at any time, what fun!
While I haven't read it, I suspect Yanis Varoufakis new book TechnoFeudalism may cover some of the real problems with today's tech.
By the way, rereading the above, which I actually edited a lot to make it readable, it strikes me it's almost a farewell to this work and career, since what attracted me to this area initially is now largely gone
Someone who does that has not adjusted to Python. The whole point of using indentation is that it is easy to see where blocks end.Doesn't fortran also go by indentation? I'm pretty sure most dialects of basic (aka Fortran For Dummies) did, and it was a jolt when I first met javascript/php and had to remember all those braces { } and parentheses ( ).
Comparing the speed
$ time python examples/grep_speed.py a.txt 20
real 0m9.610s
user 0m9.590s
sys 0m0.020s
$ time perl examples/grep_speed.pl a.txt 20
real 0m1.275s
user 0m1.253s
sys 0m0.021s
Perl is about 8 times faster than Python.
Comparing the speed of the more complex examples
$ time python examples/grep_speed_oxo.py a.txt 20
real 0m24.472s
user 0m24.401s
sys 0m0.036s
$ time perl examples/grep_speed.pl a.txt 20
real 0m1.239s
user 0m1.227s
sys 0m0.012s
Version information
$ python -V
Python 3.8.2
$ perl -v
This is perl 5, version 30, subversion 1 (v5.30.1) built for x86_64-linux
Perl is the winner for text processing
Perl shines in text processing and report generation. Its speed in this respect is unmatched. Perl performs up to 20 times faster than Python for certain text manipulation actions.
One test shows Perl running eight times faster than Python for a moderately sized data set. Perl is an excellent option for companies that need to crunch gigabytes of text data.
Perl uses regular expressions (regexes) extensively. Regular expressions is a field of programming focused on string and text processing. By using predefined “metacharacters,” regular expression engines can easily extract and modify large amounts of text.
Virtually every major programming language today has support for regular expressions, whether inherently or as part of a regex library. Perl differentiates itself in that regular expressions are deeply integrated into the language itself, not requiring additional libraries.
Python’s regex functionality is also extensive but far more readable. Python is the better choice for small text-file operations from the standpoint of readability.
I've seen this self training in Mac users in particular because whenever I've approached a mac I hit the edge of the walled garden usually within a few minutes, if that long, because I'm trained on Linux and have expectations of how much you can toss at a system, how robust it is, etc, and what you can make it do. Part of that training is adapting to not having certain software solutions that you can get on commercial platforms, of course. Mac
Python’s popularity is fueled by an easy-to-read syntax and its user-friendliness as a web development language.
I don't buy that python is faster, so I googled it, and it's not, nothing has changed, at least not when these people tested it.
For text processing and report generation, use the tool that is designed to do that.
I find Perl user unfriendly, precisely because it is so close to bare metal that it makes you learn how the hardware works to do it well.
My very very strong suspicion is that ones coding style changes fundamentally to fit in with the most restrictive language one uses in terms of syntax and style
I don't know re fortran, my dad wrote a lot of it back in the day, millions of lines if I remember right, but I never looked at it. But I think that is right, but it was a super simplistic language, and could not do very much
[edited by: graeme_p at 10:49 am (utc) on Nov 9, 2023]
Doesn't fortran also go by indentation? I'm pretty sure most dialects of basic (aka Fortran For Dummies) did, and it was a jolt when I first met javascript/php and had to remember all those braces { } and parentheses ( ).