back to article Python still has the strongest grip on developers

Python is still a top choice for software developers, beating out other programming languages, according to a widely respected industry poll. CodeSignal's 2023 State of Engineer Hiring Survey report found that Python (specifically Python 3) dominated as the most frequently used language, and highest paying, among the more than …

  1. CowHorseFrog Silver badge

    I pity people who work on Python projects, the bigger they get the bigger the pile or shite they become. Sure other languages are bad like java and c-sharp but at least type safety does help, but for Python and Javascript you are in a hell to try and change anything especially with the tools that are basically just a glorified notepad.

    The truth is there might be a lot of Python jobs but they are for small minor things in the end compared to Java which is actually powers most of the world.

    1. A Non e-mouse Silver badge

      I've been working with Java since Java 1.3 and over the past couple of years have been making more use of Python. (All my new projects are in Python)

      I agree that type safety is an opt-in after thought in Python and I miss the strong type safety of Java, but I feel more productive in Python - especially for smaller projects. I also like the way packages are handled in Python by Pip & VirtualEnv.

      I use the Jetbrains tools for both Java & Python programming and I can assure you that Pycharm is not a glorified notepad.

      (NB - Not paid to promote Jetbrains, just a satisfied customer)

      1. Missing Semicolon Silver badge

        Python Typing

        Python now does have typing! Mypy will do code inspection based on type decorations in your code. Done properly, it makes it much easier to catch misuse of dynamic typing.

        It forces you to say "ok,l this parameter can be anything, what kind of everything do I mean" so that all of the callers are checked. And also, if you have handling a variety of types, to pull you up on "but *this* type doesn't implement 'foo'!".

        Having said that, "doing it right" can be a right mare. I both hate its baroqueness and "don't-you-have-a-CS-degree"-ness (the definitions required for generics and polymorphism can get mind-bending), but love the way that code ends up with far fewer hard-to-find bugs, particularly when refactoring.

    2. sarusa Silver badge

      Hahaha, I was kind of with you a little ways, because as someone who uses C#, Rust, and Python extensively, Python can get a bit unwieldy when the project gets too large, exactly because of the lack of compile time catching of type stuff.

      But then you invoked Java. Yes, Python might be mostly 'minor things' if you count substantially advancing the state of scientific knowledge as minor, and then maybe Java does 'actually power most of the world', but I would rather write 10,000 things in Python rather than a single bloated, hellish, corporate piece of crap in Java (yes, I've used it, never again - sane people use C# for that now). Java is for legions of nameless corporate drones to be able to write very large corporate apps (as you said) without stepping on each others' toes too much. Which is great. But for anyone who's good at programming that corporate codepigging is just hell.

    3. mpi Silver badge

      > the bigger they get the bigger the pile or shite they become

      That may be true, but I rather deal with a pile of shite than writing methods for ExcrementProductionInductionAdaptorFactoryFactoryWaterBuffaloOutputCollectorManagerObserver

    4. mpi Silver badge

      > compared to Java which is actually powers most of the world.

      *laughs in C*

      1. Michael Wojcik Silver badge

        Depends on the domain.

        A majority of OS code is still C source, despite the pockets of assembler, specialty-language holdouts like IBM's PL/M, and encroachment of C++ and newer languages.

        Back-end business logic is dominated by a mix of Java and COBOL, probably in roughly equal amounts (to an OOM or so), though none of the metrics (SLOC, function points, etc) are particularly meaningful and good numbers are hard to come by. There are others, of course; those are just at the top. C# has gained ground over the years, and if you want to count SQL (and you should), that's also very significant.

        Many languages are significantly represented in the end-user-application space; C++ may still be on top, but there are many contenders. Javascript holds the top position for front ends.

        Scientific computing is seeing steady erosion of a traditional Fortran and C base by Python, R, Julia, etc.

        What "powers the world", of course, are sources of kinetic energy, not any sort of software. This obnoxious misuse of "power" is marketing crap that sensible people should eschew. But in terms of what programming languages are important to modern industrialized economies, the answer is "a whole bunch of them", and anyone trying to make a case for a single one is spouting foolishness.

        1. Anonymous Coward
          Anonymous Coward

          > Scientific computing is seeing steady erosion of a traditional Fortran and C base by Python, R, Julia, etc.

          Where the Python, R, Julia etc are all bring used to call into the C (and probably Fortran) libraries to actually do all the heavy lifting and grunt work.

  2. beardman


    The heck is MySQL language?

    1. Michael Wojcik Silver badge

      Re: MySQL

      Well, there's a SQL dialect that's peculiar to MySQL which is not entirely conforming to standard SQL, much as you have T-SQL and other dialects.

      But, yeah, it's kind of a pointless distinction when discussing the popularity of programming languages. Just say "SQL" and include the standard language and all its dialects. It's not like they broke down other languages by dialect.

  3. andy 103

    PHP (8)

    You can criticise PHP all you want but I fail to see how Python is a better choice for web applications. Although I'd be interested in hearing a rational debate to the contrary. PHP can also be used for back end processes not just limited to running in a browser. We use it effectively for both.

    PHP 8 brought a lot of improvements including type safety which it was much criticised (rightly so) for not having back in the day.

    Everyone knocks it but then can't seem to suggest an alternative for rapidly building a half decent web application. "It's the programmer, not the language" to re-phrase a Top Gun quote!

    As for frontend I don't see any advantages of these trendy frameworks because at the end of the day rendering HTML is all that's necessary and there are a multitude of ways to do that. Yes you can do some nifty UI features with JavaScript but that's not restricted to using a framework either.

    1. A Non e-mouse Silver badge

      Re: PHP (8)

      PHP was designed for writing web applications, so finding it easier than languages that weren't designed from day one for witing web applications isn't surprising.

    2. mpi Silver badge

      Re: PHP (8)

      > Although I'd be interested in hearing a rational debate to the contrary.

      Some of that info may be outdated, but a lot of points still stand. Just as an example: PHPs error handling isn't consistant to this day. I still have to deal with exceptions, errors, fatal errors, libraries that somehow swallow errors, inbound error values, global error states...

      > PHP can also be used for back end processes

      And C can be used to write web applications. And we could do machine learning in perl. People have written entire accounting systems or webservers in awk. There is a reason it's called Turing-Complete.

      I can also use a screwdriver to hammer in a nail. For that matter, I could use a piece of 2by4 or a rock. But I'm not going to, because I like my fingers, and I'd rather not have a hole in the wall afterwards. For very similar reasons, I'm not going to write backend services in a language, where the default library command to open a child-process, won't even tell me that process's PID.

      > Everyone knocks it but then can't seem to suggest an alternative for rapidly building a half decent web application

      How about I suggest 11 instead?

      For Frontend: Vue, React, Angular, React Native, Plain 'ol JS, jquery,

      For backend: python with Django, python with Flask, python using werkzeug directly, golang, node

      > because at the end of the day rendering HTML is all that's necessary and there are a multitude of ways to do that.

      Absolutely, and thankfully, a lot of these don't include PHP.

      1. Anonymous Coward
        Anonymous Coward

        Re: PHP (8)

        I'd rather not have a hole in the wall afterwards

        If you want that nail in the wall you'll need that hole as it will surround the nail. Physics dictate it's not going into the wall otherwise.


      2. Baudwalk

        Speaking of Flask...

        ...I've been eyeing it for simple interactivity on a website, but also wondering about safety.

        Is Python + Flask (or Django) secure on their own? Would putting them behind an Apache proxy be better?

        1. katrinab Silver badge

          Re: Speaking of Flask...

          The usual practice seems to be to put them behind an nginx proxy, and use nginx directly to serve the static files.

        2. A Non e-mouse Silver badge

          Re: Speaking of Flask...

          It's not that Django or Flask are insecure, just that they're not designed for serving static content. You put your static content natively in Apache/Nginx and then also use Apache/Nginx to provide a proxy front end to the Python app. Apache/Nginx can then run multiple instances of the Python app to further improve performance for your end users.

        3. mpi Silver badge

          Re: Speaking of Flask...

          > Would putting them behind an Apache proxy be better?

          Yes. You should ALWAYS separate the application from the webserver. Security reasons, performance reasons, but most importantly: It makes your deployment much easier. Especially on unix servers, the webserver can be configured to talk to the application via pipes or unix sockets, so if I have to update the app, I can spin up a second App-Server with the new version on the same host, and then redirect the webserver to another unix-socket or pipe.

          => App update without downtime.

          And in a modern setting, you do the same thing, only with containers. There as well, the app runs it a separate container from the webserver.

    3. Michael Wojcik Silver badge

      Re: PHP (8)

      You can criticise PHP all you want

      No I can't. I tried, but I fell asleep before I could finish. Its sins are too many for me to feasibly enumerate.

  4. 45RPM

    I love Python (except the indentation which is horrible - formatting shouldn’t be confused with syntax). As I’ve said before, it’s like modern day Basic (great for teaching software development) with the added bonus that it’s also good for developing production software. Perhaps not all production software, but it definitely has its place.

    I’ve taught kids how to write code in Python - and most agree that it’s no harder than Scratch once you’re used to a keyboard, and it’s a good deal less infantile.

    So yes. Python FTW. Along with Java, Scala, Kotlin, Swift and whatever else you prefer. Pick the tool that works for you and your workplace.

    Me? I’m going back to C.

    1. Steve Button Silver badge

      If you like C, you should try Go. Made by some of the same people, and they have taken away some of the sharp edges.

      1. Plest Silver badge

        Up the Gophers!

  5. werdsmith Silver badge

    People are often very emotionally attached to the language the know best and are comfortable working with. It's quite natural if you've invested a lot of yourself getting up to a level of competence then staying in your comfort zone is an attractive option. So people get a bit spiky around these discussions. The criticism of RUST for example, I am sure has some component of people from a C background concerned about the employment landscape, and not inclined to go through the effort of learning all over again.

    One programmer is happy with PHP another sees it as hell on earth etc. Personally, I'll work with anything that is fits the job in hand, but then I've never achieved anything virtuoso level with any programming language. I can achieve what I want. but it probably takes me five times as long as a pro would need to do the same thing.

    I love a bit of C, because I enjoy the concept of working directly with memory and not leaving it to abstracted code. Sort of reminds me of the days when it was assembler or nothing.

    1. Steve Button Silver badge

      One programmer is happy with PHP

      "One programmer is happy with PHP..." yeah, it's andy 103 above. There may be others, but I'm not aware of them.

      1. andy 103

        Re: One programmer is happy with PHP

        Yeah that's right Steve Button. I'm the only person who likes PHP which is how things like Facebook, Twitter, Magento, Wordpress etc came into existence.

        Now, I'm not saying I like any of those necessarily. But they seem to have had more success than anything you'll ever have made. They all heavily relied - and in 2 cases still rely - on PHP. Or more specifically programmers who liked PHP enough to have bothered making them in PHP.

        Not that I had anything to do with making those of course. So

        There are others, and you're not aware of them...

        1. Steve Button Silver badge

          Re: One programmer is happy with PHP

          Sorry forgot the joke icon, as I thought it was obvious. Added it for you.

          1. Anonymous Coward
            Anonymous Coward

            Re: One programmer is happy with PHP

            For it to be a joke, it needs to be at least reasonably amusing (and relatively obviously a joke)…

            Yeah, PHP is not the greatest language of all time (and all languages have their faults), and, yes, it certainly needs quite a bit of tidying of some of the more gaffer-tape-like parts (and, to be fair, they have been gradually doing that since PHP 5), but it's easy to get started with, and, as other posters have noted, quite a lot of important web sites and services have been built on it. (Whether it makes good sense to start a new major project in PHP nowadays is a reasonable question, however.)

            1. Steve Button Silver badge

              Re: One programmer is happy with PHP

              The OP said "One programmer is happy with PHP another sees it as hell on earth etc"

              and I deliberately misinterpreted it as "One programmer is happy with PHP" (and added a callback to the one PHP fan in this comment page at the time)

              If you had read the whole thread it would have been obvious. Context matters.

              OK not my best joke, but still mildly amusing. By having to explain it, it's no longer even remotely funny. In fact, you are gradually sucking the fun out of the universe, by stamping on one crap joke at a time. Well done.

              1. andy 103

                Re: One programmer is happy with PHP

                *but still mildly amusing*


                Joke icon…although not sure

                1. Steve Button Silver badge

                  Re: One programmer is happy with PHP

                  Fair enough.

        2. mpi Silver badge

          Re: One programmer is happy with PHP

          > But they seem to have had more success than anything you'll ever have made

          And two of them have since ditched most of their PHP, and for good reason.

          And the other 2 are frameworks built in PHP, so they are pretty much stuck with it. And the language goes down the Tiobe-Drain year after year, and for good reason:

          PHP was at one point in time a very common language, not because it was good, but because there was barely anything else. Python was nowhere near mature enough, Javascript couldn't do backend, and show of hands, who wants to build large-scale webprojects in Perl?

          And from that time, there is a lot of code left over. I should know, because the place where I work has a lot of legacy PHP code. And quelle surprise, we are in the process of eliminating it.

          The time of PHP as the P in LAMP is simply over. I do alot of backend development. And I wouldn't start any new projects with it. Why? Because Python beats it in convenience, library support, maintainability and tooling. Because Golang makes it a breeze to write high performance backends and microservices. Because Javascript Frameworks actually stopped sucking years ago. The one and only advantage PHP had, being the only game in town, simply no longer exists.

          1. jake Silver badge

            Re: One programmer is happy with PHP

            "and show of hands, who wants to build large-scale webprojects in Perl?"

            Pace your definition of "large scale", me, for one.

            And last time I checked, much of ElReg was written in perl.

            It would seem that most people parse hy perl ink incorrectly ...

            1. mpi Silver badge

              Re: One programmer is happy with PHP

              Upvoted for the "hy perl ink", may I please use that from now on? :D

              1. jake Silver badge

                Re: One programmer is happy with PHP

                If you have a use for it, feel free. No need to credit me, I'm sure someone, somewhere used it before I did.

    2. mpi Silver badge

      > The criticism of RUST for example, I am sure has some component of people from a C background concerned about the employment landscape, and not inclined to go through the effort of learning all over again.

      Considering how many billions of lines of code of C exist, that will have to be maintained for decades to come, no matter how popular the-language-with-the-crab-logo, Golang, or <next-contender-to-C> becomes, I highly doubt that many C devs are worried about job security to an extend that they would bash other languages out of fear.

    3. A Non e-mouse Silver badge

      Sort of reminds me of the days when it was assembler or nothing.

      I used to do 8-bit assembler. I did look at x86 and ran away in horror at how awful the instruction set was. I'd like to find some time to play with ARM assembler as that looks a lot saner.

      1. werdsmith Silver badge

        RISC V too, is quite rational.

        I went up the 68000 16 bit path and then took a different (wrong) turn. Now I do it for fun only.

        1. A Non e-mouse Silver badge

          We looked at the 68000 when I was at Uni. Only a year or two after I'd left, it was clear the 68000 series was dying and x86 was winning. Yes, there were other processors such as SPARC, PA-RISC, Power but they were niche and very expensive so out of the reach of the hobbyist.

      2. vtcodger Silver badge

        Upvoted because x86 machine code is indeed absolutely appalling -- very strong evidence if any was needed -- that intelligent life has not yet evolved on Earth.

      3. david 12 Silver badge

        Downvoted because the x86 assembler language was really quite good -- the product of an experienced design team successfully trying to make a clear and productive natural language. It still gets a lot of hate from people who learned on other systems, and from people who define 'popular' as 'bad' and 'vulgar', but that really says something about the speaker, not about Intel.

        Now of course, it is a mess, because of the 64 bit stuff and the protected modes, but very very few people actually write 64 bit protected mode code in an assembler language: most assembler coding is still targeted at simple memory and code models.

        1. Michael Wojcik Silver badge

          I've written assembly for Z80, 6502, 68000, various x86 processors going back to the 8088, VAX, TI 34020, IBM ROMP, IBM 390, and POWER, and I've had to read and debug some others, including SPARC, PA-RISC, and (god help me) Itanium. Of those, x86 is almost at the bottom of my list of preferences, right above (GHM) Itanium.

          I don't know what you think qualifies it as "really quite good". I'm afraid to ask. Too few registers. Segmented addressing. Peculiar choices in opcodes like the let's-help-with-BCD ones (AAA and friends). The REP prefix is convenient but, hell, that's why we have macros; we don't need loops pushed into the instruction set. Widespread idioms like using XOR for clearing a register because it's faster than an immediate move, which just makes things more difficult for the newbie reading someone else's code.

          I mean, it's not terrible, and it avoids many of the pitfalls displayed by various others (like aligned addressing for RISC architectures such as SPARC and ROMP), but "good" I'm not seeing.

          1. jake Silver badge

            Every CPU has it's quirks, some are more quirky than others. They all suck, but we use 'em anyway.

          2. david 12 Silver badge

            I see that you have equated "assembly language" with "architecture" -- something I would not do, having spent too much time with machine code and abortions like gcc assembler.

            And I hardly see how the inclusion of BCD commands in the architecture and assembly language made it a "bad" assembly language and architecture: It's not like you needed to use Binary Coded Decimal for anything other than Binary Coded Decimal.

            Anyway, I'll spring to the defence of the architecture too:

            Your dislike of segmented and small-register-set architectures is noted, and not idiosyncratic, but I'm glad that the marketplace disagreed with you and your friends. Segmented architectures offer hardware as well as memory-management advantages, which is why they are still so widely used in all kinds of microprocessors. The Intel approach, and the Intel assembly language were part of the reason the architecture was so successful. My observation about Large Register Set architectures is that they were designed and sold for applications that used HLL compilers rather than assembly language, and that for mixed-language coding, the larger the large register set is, the better -- but that's an entire set of assembly-language coding problems that just goes away when using a stack-based design like the 8086.

  6. disgruntled yank


    In "The End of History and the Last Programming Language", collected in Patterns of Software (, Richard Gabriel proposed among other points that


    • Languages are accepted and evolve by a social process, not a technical or technological one.

    • Successful languages must have modest or minimal computer resource requirements.

    • Successful languages must have a simple performance model.

    • Successful languages must not require users have 'mathematical sophistication.'


    The essay was written about thirty years ago, when the "last programming language" was C. (As Francis Fukuyama has certainly noticed, and probably said, the End of History didn't end history.) It still is worth reading or re-reading.

    I have seen the social process working: for about twenty years, I wrote scripts in Perl when I had the choice; over the last almost ten I have seldom done so. This is chiefly because the young, who will get to take over maintenance of my code all seem to know Python, and never seem to know Perl.

    1. vtcodger Silver badge

      Re: Languages

      "if you look at it from 10km above, Python and Ruby and Perl are exactly the same language". Guido Van Rossum

      Python and Perl really are quite similar. Perl may be marginally easier to code, For some people anyway. But I think that most of us -- me for sure -- find Python a lot easier to read than Perl. I actually did learn Perl and used it for a while before I switched to Python.

      I think Python's real strength is that it seems to be the easiest full strength coding language for non programmers and beginning programmers to learn. So it tends to be what folks are taught when they start off. And unless they drift off into some specialized field, they never see much reason to change, Not that Python is perfect. Far from it. But it seems to be the least awful way to talk to a computer here in the early 21st century.

      1. werdsmith Silver badge

        Re: Languages

        Python does fill the role today that BASIC did in the 1980s.

        I calculators with Python and micropython made by Casio and TI. Things like micropython and circuitpython etc, the Jupyter thing, I think that it's more widespread than even this survey has found.

        1. Anonymous Coward
          Anonymous Coward

          Re: Languages

          Except in embedded'ish/IoT programmers are rushong away from python. The RPI Pico learned that you really can't keep people on your platform if all you offer them is python.

          I use Python for all sorts of stuff, but no F'n way am I putting it in embedded or close to embedded applications. 20 years ago people tried the same crap with VB.

          1. werdsmith Silver badge

            Re: Languages

            Raspberry Pi do offer C++ tool chain/sdk on the Pico. There’s even a quick setup script on the Pi.

            But I do understand that Python availability has attracted more people to the Pico who weren’t previously embeddedish, some of whom will progress.

            1. Anonymous Coward
              Anonymous Coward

              Re: Languages

              You're right it does, I'm wrong. Why did I think that? When the Pico was released I bought a few but I stopped using them for some reason related to no C/C++ support... I don't remember, maybe it was a library. I assume a lot incorrectly though, as I assumed the Pico at launch was a direct competitor to the ESP32. However, when I got them, no WiFi :-/ (I know the 'W' exists now)

    2. TheMaskedMan Silver badge

      Re: Languages

      I never really took to Perl, though in fairness my exposure was limited to a few CGI scripts I got landed with producing in the late 90s. At the time, if I was writing software at all it was Windows gui stuff, so I didn't have any reason to explore it further.

      I do recall that I posted a seemingly innocuous question in a Perl newsgroup, and got royally flamed for not looking whatever it was up. I wasn't offended in the least, but it's probably not the best way to encourage new users; certainly that's never happened in any other group, mailing list, subreddit etc. Far from it, in fact. I've always found users of other languages to be friendly and helpful.

      I did look at Perl again a few months ago, as I was toying with a little hobby project that might have benefited from its string interpolation / heredoc, but in the end I decided to stick with Python for convenience.

      1. Michael Wojcik Silver badge

        Re: Languages

        I tried to like Perl, really. I bought (and still have) the original O'Reilly book. I wrote a number of things in Perl, mostly CGI scripts and some utilities, such as an HTML-to-plain-text-with-Usenet-style-markup formatter. I wrote a small testing framework and tests using it. I read a lot of Perl articles in places like DDJ. I'd liked other things Wall had done, such as patch and rn. I like the languages Perl was originally meant to supersede, such as Bourne shell and awk. (I still frequently use awk for quick-and-dirty scripts to analyze things like trace output when chasing difficult bugs.)

        But I just couldn't develop any affection for it. Too many ways to do the same thing, with subtle differences. Too much code that resembles line noise; too much arbitrary punctuation. Trying to maintain other people's Perl code – which I still have to do occasionally for tests and the like – showed me that many people write Perl even worse than they write C: just a lot of nasty, undocumented, unreadable crap with terrible error handling.

        CPAN was handy at first but it arguably launched1 the dire era of public patch repositories and the attendant problems in bloat, software supply-chain security, and learned helplessness among developers. A good idea in 1995, but the revenge effects were terrible and are still growing worse.

        It has its place, sure. But I do not love it.

        1Yes, there were plenty of places to get source code and complete OSS "packages" of some sort before CPAN. I was using Archie and FTP and copying ShArs out of Usenet messages back in the day too, and downloading stuff from BBSes before that. CPAN was, to my knowledge, the first modern software package repository, though; certainly it was the first one I saw a lot of chatter about.

        1. that one in the corner Silver badge

          Re: Languages

          > CPAN was, to my knowledge, the first modern software package repository

          It was based upon the CTAN model for distributing TeX related materials, which started 2 or 3 years earlier than the Perl archive.

        2. jake Silver badge

          Re: Languages

          "CPAN was, to my knowledge, the first modern software package repository, though; certainly it was the first one I saw a lot of chatter about."

          The DECUS Software Library launched in roughly 1962 and arguably had none of the issues you discuss ("bloat, software supply-chain security, and learned helplessness among developers") through its long life. Yes, I know, it was largely a paper catalog and not generally available electronically[0] until around 1980, but still.

          Later came the whole BSD thing. You can see some of the archives at Lots has (probably) been lost to history, alas ... but people keep digging up old tapes and getting them cleared for inclusion.

          perl, while ancient to today's kids, came about quite a while later.

          [0] Although Stanford (for one) had electronically searchable, yet somewhat clandestine, bits of the DECUS archive by ~1970, and all of the current archive by 1977. Berkeley had a similar thing. I assume other universities also archived the code they received through the normal channels. Caching saves bandwidth, especially when it's USPS delivered tapes or card decks.

  7. bertkaye

    unique skills command high wages

    I have a unique market niche - I write AI in Cobol. For unknown reasons the world does not recognize my skills. Can you spare $2 for a cup of coffee, sir?

    1. jake Silver badge

      Re: unique skills command high wages

      Hardly unique. There are probably a dozenish ElReg commentards who wrote, and possibly still maintain ML code at least partially using COBOL.

      And of course ELIZA (one of the, if not the first modern chatbot) was written in an extension to Fortran called SLIP (Symmetric LIst Processor).

  8. Plest Silver badge

    Just like Marmite!

    I've tried multiple times to get into Python, seriously I have tried but something about how "hippy dippy" is all is just won't click nicely with me. I give it full props for getting more people, especially kids, into coding and it is a good language I'm sure but I no matter how hard I've tried it just comes down to me tolerating it when I'm forced to.

    I just found myself feeling way more comfortable with Go and Rust, I guess it's just like Marmite, some like it and some don't.

  9. Ashto5


    That’s my 2p worth

    I love it

    Then it’s vanilla JavaScript

    Have great day everyone

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like