Stories
Slash Boxes
Comments

SoylentNews is people

posted by janrinok on Monday September 16 2019, @09:06AM   Printer-friendly
from the use-whatever-you-want dept.

Arthur T Knackerbracket has found the following story:

Python sits firmly in top place in the newest annual ranking of popular programming languages by IEEE Spectrum.   

The ranking and others like it are meant to help developers understand the popularity of languages in a world where no one really knows what programmers are using on their laptops. 

IEEE Spectrum has placed Python in first spot since 2017, and last year it was just ahead of C++. The top language is given a score of 100, and all languages with lower scores are scaled in relation to it. C++ last year scored 99.7, followed by Java at 97.5, and C with 96.7.

Today, in the IEEE Spectrum's sixth annual ranking, Python's 100 is a long way ahead of runner-up Java's 96.3 score, while C is in third place with 94.4. C++ has slipped to fourth with 87.5, while in fifth is specialist statistical computing language R with a score of 81.5. 

The magazine for engineering members of IEEE, the world's biggest engineering and applied-science organization, attributes Python's popularity to the vast number of specialized libraries it has, especially for developers building artificial-intelligence applications. 

[...] They go on to note that Facebook, which was originally built with PHP, launched its alternative to PHP, Hack, in 2014 and since then JavaScript, TypeScript and Python have become the most popular languages for web development. 


Original Submission

This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
  • (Score: 2, Funny) by Anonymous Coward on Monday September 16 2019, @12:01PM

    by Anonymous Coward on Monday September 16 2019, @12:01PM (#894571)

    It's funny cos that's what pythons do.

  • (Score: 5, Insightful) by Snotnose on Monday September 16 2019, @12:03PM (14 children)

    by Snotnose (1623) on Monday September 16 2019, @12:03PM (#894572)

    Python, Java, C, C++. I know them all, and can live with them all even with their warts (Python's whitespace thing, C++ complexity).

    It's when utter crap like Javascript and PHP migrate to the top of these lists I worry for our future.

    --
    When the dust settled America realized it was saved by a porn star.
    • (Score: 4, Insightful) by Pino P on Monday September 16 2019, @12:48PM (7 children)

      by Pino P (4721) on Monday September 16 2019, @12:48PM (#894579) Journal

      JavaScript is high on the list because it's the only language that allows the client side of a web application to work without full page reload after every navigation or form submission. Web applications in turn are popular because many smaller shops cannot afford the cost of getting a native application ported to five or more client platforms,* approved for those platforms that require approval by the platform owner, and approved by the IT departments of the end users.

      * Windows, macOS, X11/Linux, iOS, Android

      • (Score: 4, Interesting) by DannyB on Monday September 16 2019, @02:56PM (5 children)

        by DannyB (5839) Subscriber Badge on Monday September 16 2019, @02:56PM (#894619) Journal

        And maintained on five different platforms. There is much more cost than simply initial development. Especially for a very large code base. But hipsters are never concerned about longevity of code. Or maintainability. Or even correctness if it can be swept under the rug to deal with in version 2.0.

        I do see WebAssembly as a possible replacement for JavaScript. Then multiple languages could be compiled to a common widely deployed "runtime" playback user interface.

        Web Applications have more advantages than just one code base that works everywhere. But that one alone is sufficient reason to develop Web Apps rather than native apps. Other advantages include:
        * Zero Maintenance -- you don't need to download "updates" to end user systems
        * Zero Install -- While a native app could be zero maintenance if it does self updates, it still requires initial installation, on each of however many thousands of PCs exist within your organization
        * All support issues start to be about the application problem domain rather than technology problems. Instead of support calls about "Jane Can't Print", or "Bob's application mysterious crashes when he clicks this certain button, but none of the other PCs do this"; you get support calls more like "Jane has a question about how to set up this particular payroll situation."

        Combined with the cross platform-ness, all of these advantages make web applications an obvious choice.

        This in turn gradually leads to devices like Chromebooks becoming attractive for certain use cases.

        --
        To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
        • (Score: 2) by Pino P on Monday September 16 2019, @04:02PM (4 children)

          by Pino P (4721) on Monday September 16 2019, @04:02PM (#894655) Journal

          I do see WebAssembly as a possible replacement for JavaScript. Then multiple languages could be compiled to a common widely deployed "runtime" playback user interface.

          You still need JavaScript to act as a proxy between the WebAssembly and the DOM. A web application that relies on WebAssembly won't load on Internet Explorer for Windows 7 and Windows 8.1, Safari and Safari wrappers for iOS before 11, and UC Browser.

          All support issues start to be about the application problem domain rather than technology problems.

          Not quite all. Sometimes you get "this web platform feature is broken or missing in Safari for macOS, browsers for iOS, or IE for Windows 7 and 8.1." Sometimes it's "this application breaks when the Internet connection drops." And sometimes it's the requirement for each user of a self-hosted web application to purchase a domain name in order for the server to be able to grab its HTTPS certificate from Let's Encrypt.

          • (Score: 2) by DannyB on Monday September 16 2019, @04:53PM (3 children)

            by DannyB (5839) Subscriber Badge on Monday September 16 2019, @04:53PM (#894678) Journal

            Yes, JavaScript glue still needed.

            Thank googleness goodness, IE is effectively dead. Even Edge will soon be a wrapper around Chrome / Webkit.

            Windows 7 and 8.1 are capable of running real web browsers with big boy pants. I suspect older iOS can also run standards compliant browsers. But in any case, some people, like myself, write software that is not used by the general public, but by people working in an organization getting business done. Those customers, who are organizations, are able to control and specify what browsers, OSes, PCs, etc that their employees use -- since they generally purchase them.

            --
            To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
            • (Score: 2) by Pino P on Monday September 16 2019, @05:41PM (1 child)

              by Pino P (4721) on Monday September 16 2019, @05:41PM (#894718) Journal

              Windows 7 and 8.1 are capable of running real web browsers with big boy pants.

              Provided that corporate IT allows installation thereof.

              I suspect older iOS can also run standards compliant browsers.

              Apple's App Store Review Guidelines require all* web browsers on iOS and iPadOS to wrap the system WebKit library. This means all other web browsers for iOS and iPadOS have the same level of web standards support as Safari for that version of iOS and iPadOS, no more, no less.

              Those customers, who are organizations, are able to control and specify what browsers, OSes, PCs, etc that their employees use -- since they generally purchase them.

              And many of these organizations have very conservative IT departments that don't want anything but IE installed on corporate workstations. They prefer to pay web application operators to maintain support for IE rather than pay to manage Chrome on their own workstations. This will diminish in January 2023 once Windows 8.1 leaves extended support.

              * I am aware of one exception: Opera Mini skirts the Guidelines by rendering web pages on a proxy server and sending the rendered page in a simplified form to the device. But people who choose Opera Mini probably do so because they don't need to run script-driven web applications but only view static or form-driven websites.

              • (Score: 3, Insightful) by DannyB on Monday September 16 2019, @06:23PM

                by DannyB (5839) Subscriber Badge on Monday September 16 2019, @06:23PM (#894746) Journal

                Provided that corporate IT allows installation thereof.

                The IT departments serve the needs of the corporation, not the other way around. Or heads need to roll.

                If the corporation is using an app that requires, let's say, FireFox, then it is IT's job to make that happen, or give the higher ups advice on why this is a bad idea, bad for business, not cost effective, or other very good reasons why.

                --
                To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
            • (Score: 2) by shortscreen on Tuesday September 17 2019, @01:32AM

              by shortscreen (2252) on Tuesday September 17 2019, @01:32AM (#894939) Journal

              So right after your post singing the praises of "one code base that works everywhere" you are now singing the praises of corporate customers that can force users to all run the same browser so that your web stuff works for real...

      • (Score: 2) by mobydisk on Monday September 16 2019, @05:36PM

        by mobydisk (5472) on Monday September 16 2019, @05:36PM (#894710)

        That *used* to be the case. WebAssembly and cross-compilation to Javascript has freed us from that limitation.

    • (Score: 2) by HiThere on Monday September 16 2019, @08:23PM (5 children)

      by HiThere (866) Subscriber Badge on Monday September 16 2019, @08:23PM (#894798) Journal

      Depends on what you're doing. Python has a lot of nice features, and a wide range of applicability, but it doesn't make byte aligned structures easy. (Well, C++ doesn't either by the language specs, but if you know your compiler it does...to which I say, ugh!, but OK.) And Python also doesn't make concurrent programming easy, though it's easier than in C. And you can't know how long a string is in bytes. And...

      So it depends on what you're doing. I need a language to support a lot of different features and to be relatively fast. After trying a huge number of languages (even Eiffel) I finally settled on go. Because of easy concurrency, easy handling of unicode, easy handling of byte aligned structures. Etc. I *could* have done it in C++, but every single step kept getting too complicated. I never managed to start thinking in Racket (Scheme), and Rust kept changing parts that I depended on (plus I also never started thinking in it, and I don't want to be dependent on remotely hosted code).

      But if you're doing something different, or need to interface with a different code base, then you'll end up choosing a different language. And Python can handle most cases, and if you're I/O bound you won't speed up by switching to something else.

      --
      Javascript is what you use to allow unknown third parties to run software you have no idea about on your computer.
      • (Score: 2) by Snotnose on Monday September 16 2019, @10:25PM (4 children)

        by Snotnose (1623) on Monday September 16 2019, @10:25PM (#894843)

        Python has a lot of nice features, and a wide range of applicability, but it doesn't make byte aligned structures easy.

        Um, Python is a scripted language. Of course it can't do byte aligned structures. Neither will Java, nor Perl, nor Javascript.

        Just because your only tool is a hammer doesn't mean every problem is a thumb.

        --
        When the dust settled America realized it was saved by a porn star.
        • (Score: 2) by Snotnose on Monday September 16 2019, @10:28PM (1 child)

          by Snotnose (1623) on Monday September 16 2019, @10:28PM (#894844)

          I have this sinking feeling Perl can do byte aligned structures. I've used it enough over the past few decades to realize "just write a perl script" covers pretty much everything outside of poor management, and I'm not sure it can't make up for that either.

          --
          When the dust settled America realized it was saved by a porn star.
          • (Score: 0) by Anonymous Coward on Wednesday September 18 2019, @02:43PM

            by Anonymous Coward on Wednesday September 18 2019, @02:43PM (#895667)

            I have this sinking feeling Perl can do byte aligned structures.

            But what would you plan to use those byte aligned structures for?

            In most cases wouldn't you be able to do all that stuff in the perl library? https://metacpan.org/pod/Net::DHCP::Packet#SERIALIZATION-METHODS [metacpan.org]

            e.g. leave the C/ASM style stuff in the library and do the other stuff in perl.

            Many years ago for work I wrote a DHCP server in Perl and it was better and more secure than existing crap like ISC DHCPD.

            Rules based, easily handled >1000 VLAN interfaces, support for regex interface matching etc (e.g. if a dhcp packet came in through a matching interface do X). The rules, state, etc were stored in postgresql.

            FWIW Python seems to have become crappier for some scenarios in recent times: https://www.reddit.com/r/learnpython/comments/cbqd5n/what_should_i_use_to_generate_a_single_exe_that/ [reddit.com]

            This used to "just work".

        • (Score: 2) by HiThere on Monday September 16 2019, @10:42PM (1 child)

          by HiThere (866) Subscriber Badge on Monday September 16 2019, @10:42PM (#894852) Journal

          You're missing the point. Every Turing complete language (i.e. all common computer languages) CAN do anything computable. I *can* do byte aligned structures in Python. It's just a real pain. Enough of a pain that I always contemplate doing them in C and handling the interface problem...but it's not quite that bad. I could also define a specialized type and have it handle strings (either of bytes or chars) of known byte length. But it's enough of a pain that I always find a different way to solve the problem.

          Now at this precise instant I've got a problem that may cause me to dive into the metaclass protocol of Python to figure out how to solve it...but I'm hoping I'll be able to find a solution that's less of a problem. This would be easier in Smalltalk, but Smalltalk has it's own problems, that would make other parts of the problem worse. The language that would actually be best for addressing this problem is Self, or perhaps Io, but those are so slow as to make Python seem as fast as optimized assembler (and neither is well-maintained...though I think that Io is still being developed).

          --
          Javascript is what you use to allow unknown third parties to run software you have no idea about on your computer.
          • (Score: 0) by Anonymous Coward on Wednesday September 18 2019, @03:45AM

            by Anonymous Coward on Wednesday September 18 2019, @03:45AM (#895482)

            I don't understand your issue with strings vs bytes. Strings don't have a byte length because that depends on your encoding. If you want to get the length of an encoded string in bytes, then encode it, a la len(my_string.encode('utf-16-le')) or len(my_string.encode('cp-1252')). Otherwise, when you know the internal encoding used by your system and the type of string you are expecting, you can just get the size of the internal object and subtract the size of an empty string object, something like:

            >>>sys.getsizeof("A") - sys.getsizeof(str())
            1
            >>>sys.getsizeof("ABC") - sys.getsizeof(str())
            3
            >>>sys.getsizeof("X" * 1_000_000) - sys.getsizeof(str())
            1000000
            >>>sys.getsizeof("☺") - sys.getsizeof(str())
            15

  • (Score: 3, Interesting) by Nuke on Monday September 16 2019, @12:17PM (1 child)

    by Nuke (3162) on Monday September 16 2019, @12:17PM (#894575)

    I take it that Python being 100 and C++ being 99.7 (last year) does not men that for every 1000 programers using Python, 997 were using C++. Even Assembly got 74.1 FFS.

    Sounds like the scores in a synchronised swimming contest - no-one gets less than 9 because that would be upsetting.

  • (Score: 2, Interesting) by Anonymous Coward on Monday September 16 2019, @12:57PM (6 children)

    by Anonymous Coward on Monday September 16 2019, @12:57PM (#894583)

    Remember when Visual Basic was the darling of the amateur class and the quick-and-dirty bunches? Python is starting to look a lot like those days. The Python 2 vs Python 3 fiasco even reminds me of the Visual Basic vs VB.Net idiocy too. How did that work out for Visual Basic's/VB.Net's longevity?

    • (Score: 2) by PiMuNu on Monday September 16 2019, @01:24PM (1 child)

      by PiMuNu (3823) on Monday September 16 2019, @01:24PM (#894591)

      I thought visual basic was some microsoft thing for putting pseudo code into spreadsheets?

      • (Score: 2) by DannyB on Monday September 16 2019, @03:02PM

        by DannyB (5839) Subscriber Badge on Monday September 16 2019, @03:02PM (#894621) Journal

        That was VBA -- Visual Basic for Applications.

        But VB was a stand alone programming language that could also interoperate with applications via COM. For example, you could build an entire program in VB, complete with a GUI, but it could use, say, Excel, as if it were nothing more than a programming library. Load a spreadsheet. Modify it. Save it back out as a file -- without any Excel user interface ever appearing on screen.

        Microsoft Access was a simple, easy to use database. A perfect match for VB. Thus a lot of business applications turned into VB + Access. Yuk! But like a lot of microsoft products offered a combination of "the first hit is free" plus "it is deliciously addictive and you just can't stop" plus "it's not too expensive".

        --
        To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
    • (Score: 4, Informative) by DeathMonkey on Monday September 16 2019, @03:34PM (1 child)

      by DeathMonkey (1380) on Monday September 16 2019, @03:34PM (#894645) Journal

      How did that work out for Visual Basic's/VB.Net's longevity?

      VB.Net is # 6 on this list, so, it worked out just fine.

      • (Score: 3, Interesting) by DannyB on Monday September 16 2019, @08:15PM

        by DannyB (5839) Subscriber Badge on Monday September 16 2019, @08:15PM (#894790) Journal

        That is interesting. In 2007, I went to one of our Canadian offices, because they had a couple extra seats available in a training. It was a different business unit in the company, one that dealt with city utility billing. They were converting some VB software to dot-NET. The trainers definitely knew their stuff. Presented both C# and VB.NET. It became clear that if you mostly need to rewrite, to VB.NET, then why not just go to C#. C# would probably be more widely used than VB.NET (as seen from 2007). VB.NET looks like VB in syntax only, but a lot of things must be changed.

        Another observation I made was how remarkably similar C# was to Java.

        --
        To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
    • (Score: 0) by Anonymous Coward on Monday September 16 2019, @06:01PM (1 child)

      by Anonymous Coward on Monday September 16 2019, @06:01PM (#894732)

      You may be right.

      From my personal experience, in many ways, Python is the new Perl.
      It attracts dabblers who say their language doesn't need all the features of other languages, then they find out they really do, so then they add them over the years as half-assed bolt-ons that don't integrate with the rest of the language.

      • (Score: 0) by Anonymous Coward on Monday September 16 2019, @06:59PM

        by Anonymous Coward on Monday September 16 2019, @06:59PM (#894767)

        I don't know about that, Python is being aggressively pushed around here to unsuspecting CS students that don't know any better. We do it because the local 4 year school decided to use it.

        There's a ton of rationalizations that go into it, but considering that the next language we teach is Java, I don't see much benefit in teaching such idiosyncratic syntax only to jump to Java. At least with Javascript, there had been a lot of Java stolen that allowed for a nicer transition.

        The whitespace thing just makes it worse.

  • (Score: 3, Insightful) by Anonymous Coward on Monday September 16 2019, @01:27PM (9 children)

    by Anonymous Coward on Monday September 16 2019, @01:27PM (#894593)

    Pythons popularity comes from two places:

    1. It looks like pseudocode, so you can use the surface features without understanding it much.

    2. Duck typing makes implementing API's in python easier from C++ than in other languages.

    Both of these apparent features, actually cause scalability problems IMHO.

    Perl was a non-OO language that was extended to have OO features, and today is almost universally written in an OO style. There are ten ways to do everything, five of which are documented, they are just never the same five twice.

    Python is an OO language that nobody writes using OO. Because in Python there is only one way to do anything, it is documented five different ways, and they are all wrong. "Everything is an object!". Actually no... Everything is two objects, at minimum.

    Python looks easy, until you realize that all that punctuation that looks gnarly in Perl actually means something, and that in python each of those single characters is represented by either a method or a class instead. Which is to say once you get past 1000 lines or so, Perl is often more economical than Python.

    Ruby is stylistically cleaner than both of them, but slower. Java should just die. If you are thinking about Java, learn RUST. Java was sold as a security enhanced language. (it really isn't) RUST is actually a security enhanced language.

    I've used Python for about 18 months now. I'm dropping it and focusing on C++ instead. Anything that has a Python API, has a C++ API, and C++ is easier to automate in the development cycle. I'd rather focus on RUST, but there are a few projects out there that probably should be written in RUST, but are in C++.

    Python is viewed as a winner mostly by managers who want programmers to be "human capital". IOW, to make it easier to fire you. Which they inevitably will, because Python doesn't scale.

    • (Score: 3, Interesting) by PiMuNu on Monday September 16 2019, @02:46PM

      by PiMuNu (3823) on Monday September 16 2019, @02:46PM (#894608)

      > Which they inevitably will, because Python doesn't scale.

      Python scales really well because you can prototype in python, find what works and sort out the API/UI, then optimise the slow stuff using C++ without changing the API/UI.

      > Python is an OO language that nobody writes using OO.

      I don't think this is true. But if you choose to use it that way, at least the language enforces some basic stuff like "module-is-a-namespace" to maintain scalability, which C++ does not enforce.

    • (Score: 3, Insightful) by DannyB on Monday September 16 2019, @03:07PM

      by DannyB (5839) Subscriber Badge on Monday September 16 2019, @03:07PM (#894625) Journal

      I'll give you an Insightful, but with one caveat.

      Java does have a place. It isn't so widely used and highly ranked for no reason. All languages have warts.

      RUST is no replacement for Java in the places where Java is widely used. Saying that indicates you don't really understand how and why Java is used, nor its true advantages. And yes, it does have some, despite its warts.

      If Java isn't right for you, then don't use it.

      --
      To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
    • (Score: 2) by tangomargarine on Monday September 16 2019, @03:21PM (2 children)

      by tangomargarine (667) on Monday September 16 2019, @03:21PM (#894635)

      Java was sold as a security enhanced language. (it really isn't)

      Was it? I mean, it's a strongly-typed language, but so is C++.

      I was under the impression the main selling point of Java was its cross-platform-ness, back in the days where that wasn't a thing anybody really did, short of writing compilers for every platform they wanted it on.

      --
      "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
      • (Score: 0) by Anonymous Coward on Wednesday September 18 2019, @02:55PM (1 child)

        by Anonymous Coward on Wednesday September 18 2019, @02:55PM (#895671)

        My perl program is more cross platform in practice than it would be if I wrote it in java.

        If I use perl for my program the end user/customer does not need to install anything else. Whereas if I used java they'd need to install a compatible java runtime.

        Perl comes built in on most platforms AND for Windows you can use stuff like PAR to pack it so the end user does not have to install perl.

        Unfortunately in recent times I think folks like Redhat and Apple are now removing it as a default, so I may eventually need to resort to PAR for those too...

        That'll increase my work a bit but even so in practice getting the end users/customers to install the correct java runtimes will still be more pain and/or work.

        • (Score: 2) by tangomargarine on Wednesday September 18 2019, @06:08PM

          by tangomargarine (667) on Wednesday September 18 2019, @06:08PM (#895756)

          Yes, now it's a lot easier. But back in the mid-90s it was a different ballgame.

          --
          "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
    • (Score: 2) by Pino P on Monday September 16 2019, @04:11PM

      by Pino P (4721) on Monday September 16 2019, @04:11PM (#894661) Journal

      I'd rather focus on RUST, but there are a few projects out there that probably should be written in RUST, but are in C++.

      To understand at least a small part of why this is the case, think about why there's a Game Boy Advance crate for Rust but no crate for Mega Drive (aka Sega Genesis) or Amiga. It turns out that anything that needs to run on m68k has to be in C, in C++, or in a mix of the two. This is because the only full implementation of Rust is an LLVM front end, and there isn't quite enough community support to maintain an m68k back end for LLVM. C and C++, by contrast, have GCC front ends, and GCC has an m68k back end.

    • (Score: 2) by loonycyborg on Monday September 16 2019, @07:59PM

      by loonycyborg (6905) on Monday September 16 2019, @07:59PM (#894783)

      C++ and Python are good in their niches. C++ is good due to compatibility with C and has a lot of features that lets you to catch many errors at compile time instead of runtime which makes it ideal for larger projects that don't need to be changed often. While python is easy to understand and modify for small pieces of code while maintaining large codebase becomes a pain due to python's relative lack of scalability and its interpreted nature. But the best thing to do is to make C++/python hybrid programs, ether via embedding or extending. That way you get best of two worlds: have often changing parts of program in python modules to avoid recompiles and do heavy lifting in C++ to have performant and maintainable core. But if you try to make language that can replace both python and C++ you'd end up with .. Java.

    • (Score: 1, Interesting) by Anonymous Coward on Monday September 16 2019, @08:15PM (1 child)

      by Anonymous Coward on Monday September 16 2019, @08:15PM (#894791)

      Why on Earth would anybody be using pseudo code? Even for beginning programmers still learning, you're better off just using comments for that purpose. That way you already have comments about what you intend for a given block of code to do, even before you actually type it.

      People citing it's resemblance to pseudo-code and the whitespace thing should really just keep quiet as neither are good features of the language.

      • (Score: 2) by tangomargarine on Wednesday September 18 2019, @06:11PM

        by tangomargarine (667) on Wednesday September 18 2019, @06:11PM (#895758)

        With a sufficiently elegant language, most of the time you shouldn't *need* comments because you can tell what the code is doing just by looking at it.

        And the problem with comments is making sure they actually match the code as changes are made. If the comment is from 4 years and 3 major overhauls of the component ago, it may not be very useful, if not actively misleading.

        --
        "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
  • (Score: 3, Insightful) by DannyB on Monday September 16 2019, @06:31PM (2 children)

    by DannyB (5839) Subscriber Badge on Monday September 16 2019, @06:31PM (#894751) Journal

    (reposted from the COBOL topic)

    I've got language bigotry myself. (eg, Perl) I've seen it here on SN.

    Here is a true thing: If there were one perfect programming language, everyone would be using it already.

    (Or at least migrating to it.)

    If there is a language you don't like, but it is among the top languages in use and top languages for high paying job offers, then there is probably a reason for that. Even if you are too dumb uninformed to realize why these languages have such high level placement.

    Different languages have a better fit for different porpoises.

    Would you write a device driver in PHP? Yet PHP seems to work great for creating small one-off pages or sites -- which then morph into Facebook. Which is one my problems with dynamic language. I love the quick one-off-ness of Lisp or Python. But I wouldn't write a gigantic system like I maintain at work in such a language. An earlier generation of software that I work on was in a "dynamic / duck type" language (specific to Microsoft) and as the code base grew I came to understand why such languages are inappropriate for this. Despite how appealing they are for small quick projects or one-off tasks.

    Clearly C and C++ have a place, but not in the software I write. But people who should know better, here on SN, just don't get it.

    If you're going to criticize a language because it has certain warts or artifacts of evolution, then I would point out the thing about throwing rocks and glass houses.

    --
    To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
    • (Score: 0) by Anonymous Coward on Monday September 16 2019, @08:20PM (1 child)

      by Anonymous Coward on Monday September 16 2019, @08:20PM (#894794)

      Here is a true thing: If there were one perfect programming language, everyone would be using it already.

      No they wouldn't for the same reasons you have both inches and centimeters: Vendor locking and backwards compatibility.

      • (Score: 2) by DannyB on Monday September 16 2019, @09:46PM

        by DannyB (5839) Subscriber Badge on Monday September 16 2019, @09:46PM (#894832) Journal

        If it were perfect (whatever that means, ideal for all uses, users, maybe other virtues), then there would be a huge incentive.

        Niether inches nor centimeters are "inherently" perfect -- although there might be various pros and cons to using them.

        I see programming languages as being in the pros and cons, rather than perfection category. If there were perfection, I think it would overcome vendor inertia and other factors.

        --
        To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
  • (Score: 1, Informative) by Anonymous Coward on Monday September 16 2019, @11:33PM

    by Anonymous Coward on Monday September 16 2019, @11:33PM (#894885)

    Article: "Python retains its top spot as the most popular language for electrical and electronics engineers." [Emphasis added]

    It's not talking about the general programming market, but a niche.

(1)