back to article Python wraps its coils around the enterprise

The enterprise, long the stodgy bastion of mainframes, Oracle databases, and Windows servers, is starting to look a lot more like the consumer technology companies that eschew it. As enterprises embrace the web as a way to conduct business and manage employees, they're embracing the very technology stacks originally made …

COMMENTS

This topic is closed for new posts.

Page:

    1. Anonymous Coward
      Anonymous Coward

      Re: wait wut?

      You're not the first to mention the age of PHP.

      You all seem to have forgotten how mind-bogglingly awful it was back then. PHP4 didn't come out til 2000, and PHP5 wasn't about tl 2004. Which of those (if either) you consider to be a reasonable development platform I'll leave to your personal taste (or lack thereof).

      So yes, a choice between Perl/CGI and Java would have been a more sensible thing totalk about.

  1. Anonymous Coward
    Anonymous Coward

    I can only think that the author has never used C++ in anger

    1. Anonymous Coward
      Anonymous Coward

      All use of C++ eventually ends in anger.

      1. Vanir
        Holmes

        Re: All use of C++ eventually ends in anger

        Well, Linus did say 'a lot of substandard programmers use it'.

        They do create a lot of anger I asume.

        Hang on, I know they create a lot of anger.

        C++, VB, or any other coding language is not immune from this charge. They are everywhere and being created everywhere.

        I would just like to know what 'standard' he had in mind when he said this.

    2. Anonymous Coward
      Anonymous Coward

      C++ is a thrilling, astounding and amazing language

      Haven't found the edge of it yet, still looking

      1. python

        What if Ptython could generate a clean and efficiente executable?

        Today, I use C++ to execute very fast integration tasks between disparate systems, where administrators of these systems do not want to know about dependencies or Web Applications, only one executable file. I think this kind of work is still useful even in mobile devices, when acces to Internet is not possible all the time.

        For doing this job in python, regardless of speed, you need to install the python package including all batteries, you eventually need to include another software (database clients, LDAP, etc) If you accidentally delete some component, your application does not work. Also, you must install the same software in every machine you want your python program to execute.

        Would you use python if it could generate single executable files that run on machines or devices that do not need the python installed? I do not know if PyPy helps in this endeavor although I think it needs a framework, the same as .net.

  2. Tom 7

    If you think your favourite language is better than someone elses

    you understand neither and will waste your life telling people how much better yours is stopping both of you getting any fucking coding done.

    Doh!

    1. Anonymous Coward
      Anonymous Coward

      Re: If you think your favourite language is better than someone elses

      This isn't primary school where everyone is a delicate little snowflake, and its mean to say bad things about the other kiddies because they're special too. Some languages and development platforms are objectively downright bad, wrong and stupid. The hurt productivity, they hamper maintainability and they can easily damage employee morale, too.

      You disagree? So, if raw performance is not the primary requirement, why would you choose C++ over Java or C#? Given access to coders of equal competence, why would you choose perl over python or ruby? How about using ASP classic instead of, uh, anything else?

      Of course, when you get to the point where you're comparing two mature languages with a decent number of competent devs available in the world and a moderately comprehensive library and a good set of dev, build, test and deployment tools, all that's left is personal preference and dick-waving.

      If you think all languages in the world fit that mould, you're very badly mistaken.

  3. Stevie

    Bah!

    "Python". "PHP". "Perl". Pah! Eschew all these faddy "in" languages and program all your important stuff in Cobol.

    The reason Cobol drives the youngsters into a fury is that no matter how many years C and its look-alikes have in the enterprise, Cobol has twice that long in service. They could build 'em in the old days, eh? Takes a licking and keeps on ticking.

    Plus, you can knock off Cobol programming for 20 years and still read the stuff if you need to (which you hardly ever do since the nature of a payroll or general ledger doesn't change much over the decades). Knock off Perl for three weeks and it reads like Linear B.

    No-doubt someone will bring up Y2K, but the only software I personally witnessed failing due to y2k issues were my local ATM door locks that were filled with C that wouldn't open the doors because it was yesterday. This in turn was because the C team was so busy being smug they forgot to actually check on their awesome.

    Cobol is the way forward for the important stuff: the bit where you count your money and charge people for your services.

    Why would you want to write financial software in a C-like language anyway, with its two types of equals, daft rules when it comes to where you need or don't need a semi-colon and no built-in datatype for manipulating money (leading in at least one embarrassing case to deployment of banking software that used floating point arithmetic)?

    One more thing. Steampunk is retro. Steampunk is very "in". Cobol is about as retro as they come and some of the equipment it used to run on was a steampunker's delight. Program in Cobol, and attract the keen attention of young women in tight corsetry! All you'll get with "Python" and its ilk are spotty young guys who don't bathe often enough. Nobody wants that.

    Cobol, the language that opens a world of infinite crumpet possibility.

    1. proto-robbie
      Pirate

      Re: Bah!

      Dude, have you checked out the Three Wolves T-shirt?

    2. Anonymous Dutch Coward
      Coat

      Re: Bah!

      Is that some punched cards in your trousers or are you just glad to be saying this?

      Still, I get your point... apparently being a COBOL maintenance programmer can be quite profitable, too. As for COBOL and Perl: I can't program in either, but understand one much better than the other ;)

      All hail COBOL, the Visual Basic of all ages!

  4. Sandtreader
    Stop

    ASSERT_FALSE("C++" == "C#");

    (and I shall go to my grave saying C-hash, so there!)

  5. Ye Gads
    Meh

    Innumerate

    Right, so Python has exploded 600% while Java/.Net have grown by 25% over the same 4 year period. As "any fule no" it's easy to generate large growth rates from small numbers. if I go from 10 to 60 that is 600% growth, and 600% growth sounds much better than 50...

    Lets look at some real numbers, taken from www.ITJobsWatch.co.uk

    In the last 3 months:

    .Net 23381 (.Net Developer 8184)

    Java 18322 (6110 Java Developer)

    3295 Python (273 Python Developer)

    Looking at this, I'd suggest that business are mentioning Python in their job adverts a lot more but are

    still not really looking for people with Python as a primary skill in large numbers (notice the difference between Python and Python Developer).

    1. Anonymous Coward
      Anonymous Coward

      Re: Innumerate

      From 10 to 60, isn't that 500% growth or 600% of the original amount?

  6. Stephen Channell
    Thumb Down

    PHP , Python : legacy languages

    You gotta love statistics, take a look at the query for {PHP; Python; Scala;F#} from the same site at PHP, Python, Scala, f#

    When you take Scala & F# into the picture PHP and Python start to look like the legacy stuff.

    All these recruitment statistics hide some of the fundamentals, like the need to constantly recruit script developers for those “oh, it never did that before.. better get someone in” scenarios where inadequately tested code falls over. Systematically tested C#/Java code with high code-coverage during functional & performance testing is less likely to fall-over and need constant maintenance.

    Functional programming on the other hand has the productivity of a scripting shell, the performance of C#/Java and the architecture for parallel programming on all those cores to rival C++ for raw throughput.

    1. Charlie Clark Silver badge

      Re: PHP , Python : legacy languages

      Systematically tested C#/Java code with high code-coverage during functional & performance testing is less likely to fall-over and need constant maintenance.

      A good testing strategy will save many a project and should be independent of the programming language; assuming the language provides nice access to testing tools. I'm not sure what you mean by "functional testing", i.e. whether this is a synonym for unit-testing (terminology may be indicate language bias) also also includes more user-side testing, which unfortunately breaks very easily. A key side-effect of testing is that the premises and hypothesis behind the code become exposed. When it comes to maintenance, and I think the metrics show that more time is devoted to software maintenance than to development, readability counts.

      1. Stephen Channell

        Re: PHP , Python : legacy languages

        ‘nice access to testing tools’ kinda hits the nail on the head for systematic code-coverage because the language needs to provide rich metadata and a reflection interface for code-coverage analysis. You can’t do code coverage with a dynamic scripting code (C++ code-coverage tools are pretty woeful too). When you can’t even see what other scripts are dependent on the one you’ve just changed.. you’re bound to hit the occasional “it didn’t do that before”. JVM/CLR provided the metadata and reflection interfaces.

        Functional testing covers the full range of test scenarios from unit-testing to end-to-end acceptance testing (does what it is functionally required to do)

        1. Charlie Clark Silver badge

          Re: coverage

          You can’t do code coverage with a dynamic scripting code

          Python does have a coverage module for use with one of the testing frameworks. I don't know how that compares with Java and .NET equivalents but I do think it is wrong to categorically assert that coverage can't be obtained for dynamic languages but 100% is possible for unit tests.

          Sure, there are cases where the code can be mutated in runtime but these are minimal and should only come from people who are happy to shoot themselves in the foot or prepared to use PyPy to create a statically compiled version of their code.

          I thought that the debate had moved on from simple static vs. dynamic into horses for courses. Statically compiling does not remove all sources of errors, which is why we have testing. It does allow for much better memory allocation which is one of the main reasons that compiled code runs faster.

    2. Roo
      Pint

      Re: PHP , Python : legacy languages

      Functional <= C++ on || code (IMHO). Ubiquity && Maturity.

  7. Bruno Girin

    Python vs PHP in the enterprise

    To understand why Python is making headways into the enterprise more than PHP is, you need to understand where and how python is used.

    First things first, when it comes to internet facing mission critical systems, rightly or wrongly there are only two games in town as far as enterprises are concerned: Java/JEE and .NET. When it comes to mission critical back-end systems, it's the same story with the addition of mainframes. Python and PHP are not displacing those and will probably not do so for several more years.

    Python and PHP are being used in other areas that are not mission critical for the enterprise and certainly nothing that is internet facing. And this is where python has an advantage over PHP: PHP is seen primarilly as a language to build web sites so if it's not going to displace the incumbents in that space, it doesn't have many more places to go. On the other hand, python is seen more as shell scripting on steroids than as a web language and it comes pre-installed on the hundreds of Unix / Linux boxes that live in a typical large enterprise network. As a result, I see python used extensively to automate sys admin / operational tasks, such as building deployment scripts for JEE applications, parsing logs, etc. Once it's being used within a company, it's a small step to use it more extensively.

  8. MIc

    When looking at a new language

    When I see articles about how cool a language is it rarely contains any treatment on how easy it is to ensure quality with that language. I think this is a critical attribute of a language that should be one of the first questions asked. With C# and Java you have a very robust set of design patterns and capabilities that enable quality. How does one pull of separation of concerns with Python? How do I design a Python component so I can isolate the system under test at various levels? Code Coverage?

    1. Paddy

      Re: When looking at a new language

      What is a design pattern in one language becomes embedded in a more powerful language. Take using fict keys as a set: a design pattern once - now built in to the language . Take the decorate-sort-undecorate pattern, or the Schwartzian transform: that too is now built-in to the Python sort function.

      Sometimes having a wealth of design patterns to learn just highlights the inadequaces of a language.

  9. Charlie Clark Silver badge

    Apples and Oranges

    These languages are "breaking into the enterprise" partly because some of the startups that used them are becoming enterprise. There have been some early successes in certain domains: banks like Python because one of the popular backend systems (I forget the name) exposes the C++ via Python; ILM and Disney were early adopters, because like many others, they discovered its advantage for plumbing other bits together and helping move lots of data around, NumPy and SciPy are moving from the scientific community to enterprise - NASA and ESA are now modelling jet engines in Python.

    The jobs fair at this year's PyCon was a veritable who's who of "large" companies: Google, Facebook but also Cisco and Morgan Stanley.

  10. Jean-Luc
    Thumb Up

    Django wasn't always the obvious choice

    >And while PHP's multitudinous choices for frameworks, with Python your primary choice is Django.

    Funny thing is that it was such a change for the Python community to "standardize" on a web framework.

    I've been working with Python since 98. A typical newbie question might have gone something like:

    Noob: "what is the best Python GUI library to use ".

    A1: "define best"

    A2: "there are many GUI libraries. TCL/WxPython/Boa/.... take a look and evaluate which one best fits your needs"

    A3: "Best is TCL. No, Boa. No, win32"

    A4 "GUI libraries are 3rd party modules, not part of the core distribution. as such we don't feel there is case for the Python distributions to recommend one over the other".

    At this point the sad noob would either leave. Or roll his own GUI library ;-)

    Web frameworks started that way too, with massive fragmentation. But the Python community finally figured out the boost given to Ruby by Rails.

    Also, Django rocks!

  11. Anonymous Coward
    FAIL

    Failed at the First Paragraph

    The enterprise, long the stodgy bastion of mainframes, Oracle databases, and Windows servers

    Here is someone who fancies himself as an executive type, and one with a chunk of Linux in his history, who can't even remember the contribution Unix made, and probably still makes, in the server room.

  12. Dave 3
    Megaphone

    Tiobe

    Tiobe has:

    1. C

    2. Java

    3. C++

    4. Objective C

    5. C#

    6. Visual Basic

    7. PHP

    8. Python

    9. Perl

    10. Ruby

    11. Javascript

    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

  13. Anonymous Coward
    Anonymous Coward

    HipHop anyone?

    @Reportard: "As enterprises embrace the web as a way to conduct business and manage employees, they're embracing the very technology stacks originally made popular at Facebook, Google, and other consumer-facing web properties. On the programming language front, while Java and C++ aren't going away anytime soon, PHP and Python have established themselves as first-class citizens in the enterprise..."

    Hmmm...interesting!

    Facebook:

    https://github.com/facebook/folly

    https://github.com/facebook/hiphop-php

    Google:

    http://code.google.com/p/nativeclient/

    http://code.google.com/p/v8/

    http://golang.org/doc/go_faq.html#creating_a_new_language

    Yours sincerely,

    Commentard (who uses language depending on the problem domain rather than hype)

  14. toadwarrior

    python coding is awesome

    Obviously there is no such language that can be all things to all people but the does indeed lend itself to dynamic languages and python is the best of the lot. Perl is good too but try getting people to use it and PHP is a joke. PHP is a mess and I think its maintainers must hate it.

    Using C++ is a non-event unless you're serving like half the internet population at any given time and .Net and Java make everything take more time (development, deployment, etc). Imo, they're languages PHBs pick.

    Even if PHP looked nice it's too focuses on the web. That's what's nice about python. You can use it for nearly anything so you can quickly write non web code to help with your web development.

    And tbh if you find python to be too slow or too problematic then you probably shouldn't be coding at all. You're either using the completely wrong tool or write poor code.

  15. This post has been deleted by its author

  16. Sentient
    Pint

    All hype anyway

    This statement 'it's clear why PHP and Python are generally preferred to older languages like Java and .Net' is wrong.

    Python is much older than java & .NET.

    All languages are continuously improved anyway.

    What you're seeing is that less performant languages take over jobs from more difficult high performance languages.

    That's because

    * we have to deliver more features faster.

    * Processing power is continuing to become cheaper

    * Management is all on twitter and facebook eductating itself on technologies.

    A good developer chooses the right tool for the job. This taking into account technological facts but also company strategy. (Who will have to support this code after me.)

  17. John H Woods Silver badge
    Happy

    In other news ...

    ... Smalltalk has yet to be bettered ...

  18. XiaoMai

    Python? MySQL? PHP? Security?

    Tou have to be kidding, haven't you? If you spent as much time looking at the apache logs of compromised websites, as I have, you wouldn't advocate such an irresponsible approach.

    80% of all attacks on websites are via PHP or MySQL. Almost all XSS and SQL injection attacks are through one or other of the above mnetioned 'languages'. Any company with serious data to protect wouldn't dream of using them to build an application - however 'cool' or convenient it might be for the programmer. The truth of the matter is, that the number of so-called 'web programmers' couldn't write a decent compiled language to save their lives.

    Yes, that's the solution, if you're at all interested in securing your site: write all of your backend code in something that produces machine code - which doesn't try to interpret fake commands, injected by a malicious hacker. Pro*C may not be as easy to write as these kiddy languages, but it has never been the point of entry of something nasty.

Page:

This topic is closed for new posts.

Other stories you might like