ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Shell Speeds, Bash and PowerShell

    IT Discussion
    bash shell powershell
    5
    91
    6.1k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ObsolesceO
      Obsolesce @scottalanmiller
      last edited by

      @scottalanmiller said in Shell Speeds, Bash and PowerShell:

      @Obsolesce said in Shell Speeds, Bash and PowerShell:

      @scottalanmiller said in Shell Speeds, Bash and PowerShell:

      @Obsolesce said in Shell Speeds, Bash and PowerShell:

      @scottalanmiller said in Shell Speeds, Bash and PowerShell:

      @Obsolesce said in Shell Speeds, Bash and PowerShell:

      Just wait until .NET Core 3 and PS7! You will see the light.

      What's new in 7 of interest?

      https://redmondmag.com/articles/2019/04/05/powershell-7-coming.aspx?m=1

      Sounds like basically nothing. Striving for 90% compatibility, but that's a far cry from "able to replace." Other than cleaning up some branding and normal invisible updates, nothing of note coming as you'll still be running PS and PSC side by side with PSC indefinitely "not ready yet" to take over 😞

      Getting better, exciting changes! I'm looking forward to everything. It's all good stuff IMO.

      Better, yes. Just seems to move like molasses. Such tiny changes, they have a gap to breach and they need to just bite the bullet and do it.

      I wouldn't call them tiny, it also depends on .NET Core 7.

      It's still moving faster than some software 😜

      1 Reply Last reply Reply Quote 0
      • D
        dyasny
        last edited by

        I skipped the discussion, but I see two main points here:

        1. Plenty of DSLs support both Windows and Linux, they are made for automation, use them.
        2. For anything more complex, where you actually have to script and a DSL gets too clunky, bash/powershell also tend to get too clunky and hacky to be useful. I simply revert to Python - it runs on both platforms and is much more powerful than either bash or powershell.
        scottalanmillerS 1 Reply Last reply Reply Quote 2
        • scottalanmillerS
          scottalanmiller @dyasny
          last edited by

          @dyasny said in Shell Speeds, Bash and PowerShell:

          bash/powershell also tend to get too clunky and hacky to be useful. I simply revert to Python - it runs on both platforms and is much more powerful than either bash or powershell.

          Absolutely, I never use BASH for any serious automation. Nor PowerShell. Neither is a good tool once you go beyond "shell" functionality.

          ObsolesceO 1 Reply Last reply Reply Quote 0
          • ObsolesceO
            Obsolesce @scottalanmiller
            last edited by

            @scottalanmiller said in Shell Speeds, Bash and PowerShell:

            @dyasny said in Shell Speeds, Bash and PowerShell:

            bash/powershell also tend to get too clunky and hacky to be useful. I simply revert to Python - it runs on both platforms and is much more powerful than either bash or powershell.

            Absolutely, I never use BASH for any serious automation. Nor PowerShell. Neither is a good tool once you go beyond "shell" functionality.

            What's beyond shell functionality? I don't think I've come to that point or had a need to?

            scottalanmillerS D 2 Replies Last reply Reply Quote 0
            • ObsolesceO
              Obsolesce
              last edited by

              I think if rather use node for things past Bash or powershell. By design I think it would be a better performer than Python.

              scottalanmillerS 1 Reply Last reply Reply Quote 0
              • scottalanmillerS
                scottalanmiller @Obsolesce
                last edited by

                @Obsolesce said in Shell Speeds, Bash and PowerShell:

                What's beyond shell functionality? I don't think I've come to that point or had a need to?

                Once you are writing anything extensive. Long scripts where you'd want to move past vi and whipping it up in an hour or two. Once you move from "quick couple things strung together" to "writing software to manage automation".

                The ability to be a good shell basically guarantees you can't be good at automation. BASH and PS are both good examples of this. They try to do too much, and it encourages people to use them for too much. PS especially.

                1 Reply Last reply Reply Quote 0
                • scottalanmillerS
                  scottalanmiller @Obsolesce
                  last edited by

                  @Obsolesce said in Shell Speeds, Bash and PowerShell:

                  I think if rather use node for things past Bash or powershell. By design I think it would be a better performer than Python.

                  Not at all. First, Node seems fast because it's not a language, but a large framework. Python isn't really slower than Node, it might be faster in fact. But Node has a singular design purpose and that's not system automation. And if you use it for system automation, none of those performance perceptions apply and I think you'd be sad with how slow it is. In fact, Node can't thread last I knew, making it way, way slower than Python. One of the reasons we like Python for automation is that it has great performance. Plus it is easier to write and maintain. So layers of advantages.

                  Node is purpose built for making websites and basically nothing else. that doesn't mean it can't do other things, but it's designed totally around that use case. And scalling horizontally.

                  Python is already a shell when its REPL is enabled (IDLE) and has a higher performance core, doesn't use Prototyping, doesn't require objects, and is mostly focused on scripting as its core function making it basically the ideal automation language.

                  1 Reply Last reply Reply Quote 0
                  • scottalanmillerS
                    scottalanmiller
                    last edited by

                    Python speed varies a lot by how you use it. Python has the ability to call C libraries, giving it a lot of performance in that way. Python can also run on .NET or Java, both of which are extremely fast.

                    1 Reply Last reply Reply Quote 0
                    • ObsolesceO
                      Obsolesce
                      last edited by Obsolesce

                      I was basing that off of these points, which makes Node seem like the VERY clear winner.

                      https://da-14.com/blog/python-vs-nodejs-which-better-your-project

                      scottalanmillerS 1 2 Replies Last reply Reply Quote 0
                      • scottalanmillerS
                        scottalanmiller @Obsolesce
                        last edited by

                        @Obsolesce said in Shell Speeds, Bash and PowerShell:

                        I was basing that off of these points, which makes Node seem like the VERY clear winner.

                        https://da-14.com/blog/python-vs-nodejs-which-better-your-project

                        Simple way to tell if something is meaningful... do they mention Node (not a language) or JavaScript (language.) If the mention Node, then they are talking about one specific huge framework on top of JavaScript - and just talking about building web apps. So their talk of scaling and performance doesn't apply to our conversation of automation here.

                        It's not apples to apples. JS and Python would be a direct comparison. You'll notice in the article that they mention how Python doesn't do some things natively but Node does... that's because Node IS the extension for those things for JS. JS doesn't do them either. So the are cheating by selecting a specific setup of JS to compete against a generic setup of Python.

                        1 Reply Last reply Reply Quote 0
                        • scottalanmillerS
                          scottalanmiller
                          last edited by

                          If you are making a website, expect that Node will be way faster. If you are automating, assume Python will be.

                          1 Reply Last reply Reply Quote 0
                          • scottalanmillerS
                            scottalanmiller
                            last edited by

                            If we look at the Python vs Node article and flip it on its head, we'd see the opposite.

                            Instead of assuming we want async calls (something automation can't use) for performance and scalability, we should assume that we want threading. Async is designed for server performance (something listening), threading is designed for processing and "calling out" from a client. Python threads easily, Node doesn't support it at all. Python can do async, it's just not native. Node is an async platform for JS.

                            So if we look at it from our purpose, Python has the huge advantage out of the gate whereas Node is missing a lot of the basics.

                            ObsolesceO 1 Reply Last reply Reply Quote 1
                            • ObsolesceO
                              Obsolesce @scottalanmiller
                              last edited by

                              @scottalanmiller said in Shell Speeds, Bash and PowerShell:

                              If we look at the Python vs Node article and flip it on its head, we'd see the opposite.

                              Instead of assuming we want async calls (something automation can't use) for performance and scalability, we should assume that we want threading. Async is designed for server performance (something listening), threading is designed for processing and "calling out" from a client. Python threads easily, Node doesn't support it at all. Python can do async, it's just not native. Node is an async platform for JS.

                              So if we look at it from our purpose, Python has the huge advantage out of the gate whereas Node is missing a lot of the basics.

                              Ah ha, I see exactly what you mean. Yeah that clears it up.

                              1 Reply Last reply Reply Quote 0
                              • scottalanmillerS
                                scottalanmiller
                                last edited by

                                In reality, neither is a screaming fast language. It's just that they are both excellent at specific tasks. Python rocks at automation and scientific programming (but nothing beats R or Fortran for science.) Node rocks at stateless web apps. If speed alone were the concern, C would win, with Java right behind. And languages like Go being pretty high. But those types of languages tend to be very poor for automation writing.

                                D 1 Reply Last reply Reply Quote 1
                                • 1
                                  1337 @Obsolesce
                                  last edited by

                                  @Obsolesce said in Shell Speeds, Bash and PowerShell:

                                  I was basing that off of these points, which makes Node seem like the VERY clear winner.

                                  https://da-14.com/blog/python-vs-nodejs-which-better-your-project

                                  Written by javascripts developers - what do you expect?

                                  I stopped reading right here "The main thing we want from a programming tool is performance."
                                  If the main objective would be performance, developers would still work with assembler.

                                  The main thing you want is to cut the cost (time) of development, while having adequate performance.

                                  scottalanmillerS 1 Reply Last reply Reply Quote 2
                                  • scottalanmillerS
                                    scottalanmiller @1337
                                    last edited by

                                    @Pete-S said in Shell Speeds, Bash and PowerShell:

                                    If the main objective would be performance, developers would still work with assembler.
                                    The main thing you want is to cut the cost (time) of development, while having adequate performance.

                                    This is very true. In most cases, it is developer time, not code time, that we want to save. This is how Ruby rose to prominence while being dog slow (better now.) PHP as well.

                                    1 ObsolesceO 2 Replies Last reply Reply Quote 0
                                    • 1
                                      1337 @scottalanmiller
                                      last edited by

                                      @scottalanmiller said in Shell Speeds, Bash and PowerShell:

                                      @Pete-S said in Shell Speeds, Bash and PowerShell:

                                      If the main objective would be performance, developers would still work with assembler.
                                      The main thing you want is to cut the cost (time) of development, while having adequate performance.

                                      This is very true. In most cases, it is developer time, not code time, that we want to save. This is how Ruby rose to prominence while being dog slow (better now.) PHP as well.

                                      Yes, it has been so from the beginning of time. This goes for almost every language under the sun.

                                      C was for lazy guys who could accept the slow performance and huge memory overhead compared to assembler.

                                      1 Reply Last reply Reply Quote 1
                                      • ObsolesceO
                                        Obsolesce @scottalanmiller
                                        last edited by

                                        @scottalanmiller said in Shell Speeds, Bash and PowerShell:

                                        @Pete-S said in Shell Speeds, Bash and PowerShell:

                                        If the main objective would be performance, developers would still work with assembler.
                                        The main thing you want is to cut the cost (time) of development, while having adequate performance.

                                        This is very true. In most cases, it is developer time, not code time, that we want to save. This is how Ruby rose to prominence while being dog slow (better now.) PHP as well.

                                        I enjoy PHP a lot.

                                        scottalanmillerS 1 Reply Last reply Reply Quote 0
                                        • scottalanmillerS
                                          scottalanmiller @Obsolesce
                                          last edited by

                                          @Obsolesce said in Shell Speeds, Bash and PowerShell:

                                          @scottalanmiller said in Shell Speeds, Bash and PowerShell:

                                          @Pete-S said in Shell Speeds, Bash and PowerShell:

                                          If the main objective would be performance, developers would still work with assembler.
                                          The main thing you want is to cut the cost (time) of development, while having adequate performance.

                                          This is very true. In most cases, it is developer time, not code time, that we want to save. This is how Ruby rose to prominence while being dog slow (better now.) PHP as well.

                                          I enjoy PHP a lot.

                                          PHP is nice, and not too bad for automation. But I'd generally prefer Python or Ruby.

                                          1 Reply Last reply Reply Quote 1
                                          • D
                                            dyasny @Obsolesce
                                            last edited by

                                            @Obsolesce said in Shell Speeds, Bash and PowerShell:

                                            What's beyond shell functionality? I don't think I've come to that point or had a need to?

                                            even simple stuff you can probably solve, to a point with awk and jq, are way easier to do in Python, and the more you need to do, the harder it gets to implement in simple scripting languages. These days, if there's something simple to do, I just use ansible, and for anything complex, I just go for python. Even if the task looks simple enough for bash, once you start getting into it, you find yourself wasting time on unneeded bashisms that are totally avoidable with a proper programming language.

                                            And yes, I confess to even writing deep recursion scripts using bash when I was younger and less experienced.

                                            scottalanmillerS 1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 4 / 5
                                            • First post
                                              Last post