Slashdot Mirror


Which Programming Language Has The Most Security Vulnerabilities? (techrepublic.com)

A new report from the open source security company WhiteSource asks the question, "Is one programming language more secure than the rest?"

An anonymous reader quotes TechRepublic: To answer this question, the report compiled information from WhiteSource's database, which aggregates information on open source vulnerabilities from sources including the National Vulnerability Database, security advisories, GitHub issue trackers, and popular open source projects issue trackers. Researchers focused in on open source security vulnerabilities in the seven most widely-used languages of the past 10 years to learn which are most secure, and which vulnerability types are most common in each...

The most common vulnerabilities across most of these languages are Cross-SiteScripting (XSS); Input Validation; Permissions, Privileges, and Access Control; and Information Leak / Disclosure, according to the report.

Across the seven most widely-used programming languages, here's how the vulnerabilities were distributed:
  • C (47%)
  • PHP (17%)
  • Java (11%)
  • JavaScript (10%)
  • Python (5%)
  • C++ (5%)
  • Ruby (4%)

But the results are full of disclaimers -- for example, that C tops the list because it's the oldest language with "the highest volume of written code" and "is also one of the languages behind major infrastructure like Open SSL and the Linux kernel."

The report also notes a "substantial rise" across all languages for known open source security vulnerabilities over the last two years, attributing this to more awareness about vulnerable components -- thanks to more research, automated security tools, and "the growing investment in bug bounty programs" -- as well as the increasing popularity of open source software. And it also reports a drop in the percentage of critical vulnerabilities for most languages -- except JavaScript and PHP.

The report then concludes that "the Winner Of Most Secure Programming Language is...no one and everyone...! It is not about the language itself that makes it any more or less secure, but how you use it. If you are mitigating your vulnerabilities throughout the software development lifecycle with the proper management approach, then you are far more likely to stay secure."

Coincidentally, WhiteSource sells software which monitors open source components throughout the software development lifecycle to provide alerts about security (and licensing) issues.


330 comments

  1. Not the programming language by hcs_$reboot · · Score: 4, Insightful

    but the programmer that uses it.

    --
    Slashdot, fix the reply notifications... You won't get away with it...
    1. Re:Not the programming language by hcs_$reboot · · Score: 4, Insightful

      But to be fair. some languages are more prone to security holes (like PHP, especially the older versions).

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    2. Re: Not the programming language by Anonymous Coward · · Score: 0

      You can judge a programmer by the language she chooses.

    3. Re: Not the programming language by hcs_$reboot · · Score: 4, Insightful

      You can juge a programmer by the code they provide, whatever the language.

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    4. Re: Not the programming language by Anonymous Coward · · Score: 0

      God alone can judge!

    5. Re:Not the programming language by Narcocide · · Score: 2, Interesting

      It is only really the default configuration of older PHP versions that make it so much more practically insecure. In reality, JavaScript should be higher up on this list, because some of it's innate behaviors are so badly designed they cause vulnerabilities that can't be mitigated in any way other than simply not using it.

    6. Re: Not the programming language by Anonymous Coward · · Score: 0

      Real programmers use assembly language. High level languages are for poseurs.

    7. Re: Not the programming language by Anonymous Coward · · Score: 1

      Real programmers use assembly language and write their own high level language with macros.

      FTFY.

    8. Re: Not the programming language by Anonymous Coward · · Score: 0

      Pompous.

    9. Re: Not the programming language by Anonymous Coward · · Score: 0

      juge huh? Tell me more...

    10. Re:Not the programming language by gweihir · · Score: 1

      but the programmer that uses it.

      And that is the only aspect that matters. Anything else is a red herring or a minor issue. But too many people that think they are competent to voice their opinion on the matter cannot see that and hence the mess continues. Will probably take a few really large disasters to change anything here.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    11. Re:Not the programming language by gweihir · · Score: 2

      But to be fair. some languages are more prone to security holes (like PHP, especially the older versions).

      No. The only thing PHP does is to make it easier for bad coders to create really simple to exploit vulnerabilities. Anybody competent will write code just as secure. It may take them longer because PHP is a really, really bad design that no good coders would use given a choice. (If you think different, then you are not a good coder. Sorry. It is completely clear and you are deluding yourself. PHP ignore fundamental principles of good engineering in many places.)

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    12. Re:Not the programming language by Aighearach · · Score: 1

      but the programmer that uses it.

      Exactly. C is the hard parts. Lots of mistakes are made.

      It opens whole markets.

    13. Re:Not the programming language by angel'o'sphere · · Score: 1

      Most likely the libraries they use.

      E.g. below one is nitpicking about PHP and he obviously does not know that PHP got greatly improved during the last ten years.

      OTOH there plenty of mistakes you can make by simply configuring your server wrong, then the language does not really matter ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    14. Re: Not the programming language by Anonymous Coward · · Score: 0

      Real programmers use a magnetized needle...

    15. Re:Not the programming language by hcs_$reboot · · Score: 4, Interesting

      Of course the programmer creates security holes by how they use the language. But in PHP (more the case in older versions) some "features" gives a sense of security while they actually don't. 'addslashes()' vs 'mysql_real_escape_...' for instance ; 'strpos' that returns 'false' if not found (instead of -1) so in a 'if' the programmer might misses a position at 0... Local functions are actually not local... etc... etc... All of that is Ok when you're used to the language, but they're just counter-intuitive traps that even a good programmer may fall into at the beginning.

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    16. Re:Not the programming language by Z00L00K · · Score: 1

      Most script languages are written in C.

      C is a good language for focused functionality where performance or detailed control is important like hardware drivers, but when you look at bread&butter code then there are actually better languages. The problem is that not all those languages are as portable as C to other environments or even between versions due to breaking backward compatibility.

      A C program written in K&R style can still be compiled even if the compiler may moan quite a bit about obsolete constructs or with some relatively easy modifications. Meanwhile many other languages like PHP is severely breaking backwards compatibility between versions - something that's a headache for many when trying to upgrade their systems.

      There are also tools to find programming mistakes, like Splint, Findbugs and many others. They add to the workload but will also make things more stable in the long run.

      If you want languages with low inherent vulnerabilities you need to go for languages like Ada. But even that don't save you from bad overall designs where information hasn't been handled properly - like protection against SQL injection.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    17. Re: Not the programming language by Z00L00K · · Score: 1

      C is an assembly macro language.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    18. Re:Not the programming language by ShanghaiBill · · Score: 4, Interesting

      PHP has more than a dozen different ways to connect to a database. PHP has a long history of glomming on new APIs, but never deprecating the old, even when shockingly insecure. This is especially bad for PHP because most of PHP's user base are low IQ Wordpress extension hackers who are not qualified to be making security decisions on their own.

    19. Re:Not the programming language by gweihir · · Score: 4, Insightful

      I agree. PHP has traps by surprising behavior. One of the corner-stones of secure coding is the Principle of Least Surprise and PHP violates it repeatedly. Still a good coder will find these and just not trust the language anymore and be extra careful. This makes coding slow and not fun and expensive, but it can be done. An average or worse coder (the majority of them) will just fall in the traps and create insecure code. However, an average or worse coder will still screw up more than acceptable in a well-designed language.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    20. Re: Not the programming language by phantomfive · · Score: 2

      Good programmers write good code in every language. A bad programmer writes bad code in all of them.

      --
      "First they came for the slanderers and i said nothing."
    21. Re:Not the programming language by Sique · · Score: 3
      If you think that a good coder has to avoid certain languages, I have news to you: Ed Post (1982) begs to differ.

      [,,,] the determined Real Programmer can write FORTRAN programs in any language.

      Ironically, this is an article why Real Programmers avoid Pascal.

      --
      .sig: Sique *sigh*
    22. Re: Not the programming language by Sique · · Score: 1

      Real Programmers use a butterfly.

      --
      .sig: Sique *sigh*
    23. Re: Not the programming language by Anonymous Coward · · Score: 0

      Well, the pope is a coder as well now. They could share code review work.

    24. Re:Not the programming language by goose-incarnated · · Score: 1

      I agree. PHP has traps by surprising behavior. One of the corner-stones of secure coding is the Principle of Least Surprise and PHP violates it repeatedly.

      So does Python; hasn't hurt either of them popularity-wise.

      --
      I'm a minority race. Save your vitriol for white people.
    25. Re:Not the programming language by munch117 · · Score: 1

      We can fix that: Simply replace humanity with a different humanity that is capable of writing secure C code.

      Or we can use memory-safe languages where possible.

      I vote for the latter.

    26. Re:Not the programming language by Anonymous Coward · · Score: 0

      It's job security. These days everything receives constant, nebulous updates and companies trick users into believing that's how things are supposed to be. This way they can continuously charge for them and/or harvest data.

      Well made software doesn't need a million fucking updates. It might need one or two patches, but is then complete. Modern programmers are fucking idiots or pretenders thinking they can make a buck with their fake computer knowledge.

    27. Re: Not the programming language by Anonymous Coward · · Score: 0

      > C is an assembly macro language.

      Can't tell if you're serious, but no, it isn't.

    28. Re: Not the programming language by Anonymous Coward · · Score: 0

      You can judge a coder by the editor they use.

    29. Re: Not the programming language by Anonymous Coward · · Score: 0

      Beware the IDEs of March

    30. Re:Not the programming language by dunkelfalke · · Score: 1

      No true Scotsman would write insecure PHP code, right?

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    31. Re:Not the programming language by dunkelfalke · · Score: 1

      C used to be a good language for focused functionality where performance or detailed control is important, but that was long ago. Modern computers are very different to a PDP11, yet C more or less forces them into these constraints.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    32. Re:Not the programming language by gweihir · · Score: 2, Insightful

      Python is not nearly in the same class here.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    33. Re:Not the programming language by goose-incarnated · · Score: 0, Troll

      Python is not nearly in the same class here.

      I see very little difference between those two languages. There's a difference in the libraries they come with, but the astonishment at weird behaviour is about the same in both languages.

      --
      I'm a minority race. Save your vitriol for white people.
    34. Re:Not the programming language by gweihir · · Score: 1

      I agree that this is a strong component in this mess.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    35. Re:Not the programming language by gweihir · · Score: 1

      What is the relation between your statement and what I wrote? Can you explain?

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    36. Re:Not the programming language by K.+S.+Kyosuke · · Score: 1

      It is only really the default configuration of older PHP versions that make it so much more practically insecure.

      So the fact that PHP can introduce weird bugs due to surprising behavior of even basic operations is irrelevant for security now?

      In reality, JavaScript should be higher up on this list, because some of it's innate behaviors are so badly designed they cause vulnerabilities that can't be mitigated in any way other than simply not using it.

      And an example of that would be...what exactly?

      --
      Ezekiel 23:20
    37. Re:Not the programming language by AmiMoJo · · Score: 3, Interesting

      The same is true of C programmers though, far too many of them don't understand the language and just hack stuff together to fulfil the contractual obligations and then disappear.

      Contract work is a particular problems. There was a study recently, sorry I lost the link, where they put out contracts for a basic login page. Most of the developers didn't bother storing the password securely at first, then when asked managed to botch doing it. Contract work encourages minimum effort and throwing unsuitable libraries at problems, and often the person checking for completion doesn't understand the security issues.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    38. Re: Not the programming language by yo303 · · Score: 1

      But it is though.

      Anyone proficient in assembly and C can "see" the assembly that the C code will make, as they write the C code. This is not true in C++ or FORTRAN or the others.

    39. Re:Not the programming language by Anonymous Coward · · Score: 0

      Yeah, because someone who writes Wordpress extensions but doesn't understand security issues is obviously "low IQ".

      Side question: Did you have trouble making friends at school?

    40. Re:Not the programming language by Narcocide · · Score: 1

      So the fact that PHP can introduce weird bugs due to surprising behavior of even basic operations is irrelevant for security now?

      And an example of that would be...what exactly?

      How about JavaScript making all variables references passed by Object?. How about ".prototype" at all?

    41. Re:Not the programming language by gweihir · · Score: 4, Informative

      I have done stuff in both and I do not agree in the least. PHP is a dangerous mess. You need to understand its specific defects to code safely in it. Python is pretty well-designed but _not_ a language for beginners in OO concepts, functional coding, etc. It requires experience with the general concepts used, but not with the specific implementation in Python. As such, it does not violate the principle of least surprise.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    42. Re:Not the programming language by gweihir · · Score: 1

      You need to read up on how that fallacy works. Here is a hint: It requires a disconnect between the group-characteristic and the excluded examples. That disconnect is missing in my statement and hence the fallacy does not apply.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    43. Re: Not the programming language by Anonymous Coward · · Score: 0

      Sigh. It's just as true for C++ and Fortran (hasn't been "FORTRAN" in decades) as it is for C.

    44. Re: Not the programming language by Anonymous Coward · · Score: 0

      I write perfect C code, problem is that not many ppl can do that even if the company is willing to pay.... so i have to live with a less than perfect team and even if I write superb frameworks and set awesome standards.... the noobs just doesn't even have the discipline to follow the standards. So one thing I learnt is that it not enough for me alone to attain coding nirvana.

      These assholes needs languages that force shit upon them so they can't do greater damage.

      Then after many years these idiots will finally attain some enlightenment and find that the shit forced upon them to maintain standards is too draconian and unnecessary if you are now this good and start to yearn for more permissive language and standards.....

      Finally by the time it goes full circle I'll have become the coding buddha.

    45. Re:Not the programming language by Anonymous Coward · · Score: 0, Informative

      I think you should try them again.

      PHP is a nightmare.

      Python is executable pseudocode which magically does what I want.

      There's very little surprising behavior--the worst there was has been fixed by now: In Python 3, the value of 1/2 is not 0 anymore. In Python 2 it was, and in C. That was completely insane.

    46. Re:Not the programming language by dunkelfalke · · Score: 1

      Nah, that fallacy doesn't work that way. Besides, your statement, is, in fact, even worse, because it is also an example of circular logic.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    47. Re: Not the programming language by angel'o'sphere · · Score: 2

      This is not true in C++ or FORTRAN or the others.
      Yes, it is.
      On the other hand, modern compilers make so much behind the scene that you *on modern hardware* hardly can say what is going on without actually looking at the assembly code. (Register renaming, operation reordering, parallel speculative execution etc.)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    48. Re: Not the programming language by orlanz · · Score: 1

      Examples?

    49. Re:Not the programming language by goose-incarnated · · Score: 0, Troll

      I have done stuff in both and I do not agree in the least. PHP is a dangerous mess. You need to understand its specific defects to code safely in it. Python is pretty well-designed but _not_ a language for beginners in OO concepts, functional coding, etc. It requires experience with the general concepts used, but not with the specific implementation in Python. As such, it does not violate the principle of least surprise.

      Yeah, right. In Python, accidentaly writing this:
      ...
      x = y
      ...
      instead of this:
      ...
      y = x
      ...
      results in silent loss of data *depending on scope*

      Python is full of weird gotchas like that; code is hard to move from one function into another because of all the silent pitfalls and traps. Everything *MUST* *BE* unit-tested for type-correctness.

      PHP and Python have more in common with each other than they do differences. Python may have fewer traps, but only slightly.

      --
      I'm a minority race. Save your vitriol for white people.
    50. Re:Not the programming language by Anonymous Coward · · Score: 0

      This is the major problem with a type-less language (a.k.a, weakly typed).
      Anyone remember HyperCard? Probably the first in this class.

      Every time some "author" comes up with a type-less language thinking that
      they've solved that problem, it becomes a cluster-f### to try and fix it later on.
      Having a language decide what a number is and it's type is the insane part;
      it may get it right most of the time, but when it's wrong, it's dead wrong.

      If you're expecting a fraction consisting of two whole numbers to always
      produce a whole number result, you're going to be saying things like 1/2 == 0
      in C if they're both integers. This shows a very naive understanding of
      the basic types of numbers and you're being silly. No body goes to a store
      to buy 3-1/2 cans of soup.

      CAP === 'scratchy'

    51. Re:Not the programming language by muecksteiner · · Score: 1

      Modern computers are very different to a PDP11, yet C more or less forces them into these constraints.

      Care to elaborate on what part of modern C resembles a constraint found on the PDP11?

    52. Re:Not the programming language by Cmdln+Daco · · Score: 0

      He probably created his Personal Home Page using the little toy language, to make friends. What were you doing? Trying to make a RTOS kernel with PHP? Next you'll admit you are a 'web programmer' using the Java-script language.

    53. Re:Not the programming language by Anonymous Coward · · Score: 0

      I'm hacking PHP together just to connect to a sql database (not my code)...
      I literally scream at the documentation. It's god-awful how PHP is designed.
      Prototyping is decent with it (as it will work....ish), but making anything not obscenely inefficient, or insecure is ... frustrating.

    54. Re:Not the programming language by Cmdln+Daco · · Score: 1

      Wow. Fights over wether Javascript or PHP are better 'programming languages.'

      Where do MS-DOS .BAT files rank in this hierarchy?

    55. Re:Not the programming language by Anonymous Coward · · Score: 2, Interesting

      Care to explain?

      Not a python programmer, but in any language I know, writing "x=y" instead of "y=x" results in silent data loss. The wrong variable is overwritten, loosing the data we wanted to copy into the other variable. And there is nothing the language/compiler/interpreter can do about that - either statement is valid, the compiler can't know we made a mistake unless one of the variables are read-only. Which usually isn't the case. And the language does not have a AI strong enough to guess what we wanted. If it had, it could write the program without us.

      C, C++, assembly, pascal, scripting languages - they all fall for this. Garbage code in, garbage results out. Object orientation and read-only variables sometimes offer a little protection, but there is no help when both variables are local and writeable. Warnings about "assigning a value that never get used" catches a few of these, but often enough the value has been used so this trick cannot be relied on. (And the logic is too weak and won't catch it anyway if we're overwriting "x[i]" instead of just "x".)

    56. Re: Not the programming language by Anonymous Coward · · Score: 0

      Real programmers use assembly language.

      No no no. Integer programmer uses assembly language. It is great for that. If you do assembly, you want speed, and do anything in integers anyway. Reals are for poseurs...

    57. Re: Not the programming language by drewsup · · Score: 2, Insightful

      Its like the what dogs bite the most people scenario, yes Labradors are way up on the list, but only because theres so many of them compared to other breeds.

    58. Re: Not the programming language by Anonymous Coward · · Score: 0

      .Net FTW

    59. Re:Not the programming language by Anonymous Coward · · Score: 1

      Really, buch of contractors on fiver did not store the password securely. I am shocked I tell you, shocked!

    60. Re:Not the programming language by Drethon · · Score: 1

      The same is true of C programmers though, far too many of them don't understand the language and just hack stuff together to fulfil the contractual obligations and then disappear.

      Contract work is a particular problems. There was a study recently, sorry I lost the link, where they put out contracts for a basic login page. Most of the developers didn't bother storing the password securely at first, then when asked managed to botch doing it. Contract work encourages minimum effort and throwing unsuitable libraries at problems, and often the person checking for completion doesn't understand the security issues.

      I think you just described any project where the code base is to large to learn in the amount of time the average employee is provided to learn the code before being required to be productive... or any code base that is simply too large for any average employee to learn in full.

    61. Re:Not the programming language by ctilsie242 · · Score: 4, Insightful

      I would say that everyone is right here. C, it is easy to make mistakes which cannot happen in Java or Python, like not watching where pointers are going, array out of bounds issues, and other stuff.

      However, part of it is modern coding in general. The last several "Agile" places I worked at were in permanent sprints, and the job of the developers is to get a feature that marketing already sold to the customer into the product. It doesn't matter if it doesn't work, or is horrifically insecure. It is about making those deliverables in time. When one was made, marketing had two more waiting to be done, so it never ceased.

      In most places, one can easily wind up having their job outsourced/offshored if they don't make deliverables. On the other hand, something horrifically insecure that causes every customer to have a backdoor to the world, the developer is insulated from that, through many layers of corporate bureaucracy, so even if there are lawsuits, the developer would likely feel no consequences.

      tl;dr, blame the programmer, not the tools. However, some languages require more thought to program safely/securely than others.

    62. Re: Not the programming language by umghhh · · Score: 1

      not all pilgrims here are enlightened tho.

    63. Re: Not the programming language by Drethon · · Score: 4, Insightful

      Good programmers write good code in every language. A bad programmer writes bad code in all of them.

      Good programmers may not write good code in a language they don't understand yet. A great C# programmer could easily end up writing code with major memory holes in C because they don't understand the differences in memory management. A great Java programmer could end up making utter trash with sql because of the different ways of thinking about the languages.

    64. Re:Not the programming language by jellomizer · · Score: 2

      Also to note what the programming language is used for.
      If I am tasked to program an "Enterprise" Class application I will be using C,Java,C++ (And Javascript if there is a web front end) because these are the languages the big Execs expect to be codded in, There is still a wide hiring base for expansion, Other "Enterprise" Applications are codded in these languages, and these languages have support from many big players. Despite the fact that I normally shutter when I hear "Enterprise" class, because it is normally the worst pile code I normally see, because it has been handed off a dozen times to different programmers, without any firm architectural leadership to it (Which leads to the programmer who uses it security flaws), these applications are often very predominate on the network, and used by a lot of people, include parts that are facing on the internet. Which in short makes them naturally more vulnerable. You 10 line bash shell script may have flaws, but the fact it is just running in a cron job in a controlled environment, may mean such a flaw is not discovered.

      Then we have languages such as PHP, Python, Ruby (And Javascript if there is a web front end). These are the get it done quick languages, so there there is little QA review. These are the languages where there is an itch that needs to be scratched and fixed quickly. This means there is less time architectting a good solution, so there is normally some funky code going on. These for the most part are lower in the list, because they have a smaller usage foot print, and often their exposure is also limited so may be on the DMZ, or just internal to the intranet.

      Languages which were not on the list, are mostly designed for mostly client side programming, Sure you can use ASP.NET+C# to make server side stuff. But for the most part unless you are a strict Microsoft Shop you will use something else.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    65. Re:Not the programming language by Anonymous Coward · · Score: 0

      And an example of that would be...what exactly?

      Just a few of the basic language constructs that exhibit suprising behaviour in PHP:

      The ternary operator looks like other languages but is left-associative.
      Comparators aren't transitive(!) and perform implicit conversion.
      Variable names are case-sensitive, but function and class names are not.

      These aren't even the worse ones, just those remembered off the top of my head.

    66. Re:Not the programming language by StormReaver · · Score: 0

      So it's not the language, but the programmer who uses it?

    67. Re:Not the programming language by Anonymous Coward · · Score: 0

      What kind of "trap" is that? You're assigning a value, if you're that clueless not to understand this then yes the rest of your post holds true.

    68. Re:Not the programming language by Anonymous Coward · · Score: 0

      A programmer also wrote the tools. When a programming language's default configuration is insecure, one can argue that the language itself is flawed. While I don't think it's fair for a really old language like C, it's another story for more modern languages. Consider a language like rust. The entire sales pitch for using it is around security. If someone finds a flaw in in 2 years from now that affects everyone, it's valid to criticize it because all current flaws known in other languages went into the design and it was marketed as such.

      I think it's valid to complain about web derived languages because the attack vector is huge. Whether it's front end or back end, you're exposing code over a network. Something like PHP, JavaScript or even Java is up for bashing on this front. That's their primary purpose. Python and Perl are used for web programming, but that wasn't their primary use case and I'd argue for Python that AI/ML applications are much more trendy with it. I don't even like Python, but I would be much less likely to throw it under the bus for a web security issue than PHP.

      That said, I do think PHP has improved a lot since the 4.x and 5.x releases. They have removed some APIs. They have improved the default php.ini and options.

      Most of these languages are written in C. If you are a true believer in rust, there's an argument to be made to rewrite PHP in rust. Of course then it's not portable.

      I hate the hundred languages that spring up, but at the same time no one has successfully replaced C yet. Rust is the closest attempt I've seen and it has a few huge flaws like portability, taking upstream patches, the fact that it's all stack based and the ego of those developers. Rust needs to be written in rust and not require a compiler written in C from developers who in turn also don't take upstream patches or support platforms. When a real C replacement comes, there will be an effort to replace existing software with it. Then the toy scripting languages like JavaScript/node and PHP will be at least built in a more secure language themselves and stand a chance.

    69. Re: Not the programming language by laffer1 · · Score: 2

      I agree with your point, but I don't think you could even get any real work done in C without understanding part of the memory management. In the case of your SQL example, that's more likely to have massive performance problems than a security vulnerability.

      I don't think you need experts, but you do need people who are willing to look at best practices documents when working in a new language. That are books on writing secure C and Java code as well as various papers and sites with content. There's also projects like OWASP. Even if you don't know how to prevent SQL injection in say Java, you should be able to know what to google to find out because you're familiar with that class of vulnerability in your favorite language.

    70. Re:Not the programming language by deKernel · · Score: 2

      I really hope you are joking that an assignment operation can cause a loss of data because if you are, please close your editor, walk away from your computer and look for a new profession because you should NOT be writing code.

    71. Re:Not the programming language by coofercat · · Score: 2

      I wonder then, if you took a random group of programmers, and gave them all a fixed amount of time to produce some sort of output in different languages, how many of them would (a) finish in time and (b) produce a secure output.

      My point is, much like yours, that some languages make it easy to be reasonably secure, others make it quite hard. Any language can produce secure code, but given it's somewhere on the easy/hard spectrum, which one is the quickest to produce a secure output? Additionally, which one produces reasonably secure outputs when programmed by a reasonably competent programmer?

      Ultimately - and not answered by TFA - a language is "the most secure" if ordinary programmers can use it without making security mistakes. If it either takes an age to finesse to good quality, or requires none but super-geniuses to program, then it's essentially "insecure". Unlike TFA, it has nothing to do with "number of lines of code written versus number of bugs".

    72. Re:Not the programming language by gweihir · · Score: 1

      It does. You seem to be mentally deficient though.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    73. Re:Not the programming language by gweihir · · Score: 4, Informative

      Scope in Python is complex. However, it is absolutely nothing that will surprise anybody competent. Because if you have a variable twice, with different scope, anybody competent will read up how scope works before. Also, "accidentally" reversing an assignment is a code bug and nobody with the least bit of understanding would ever blame the language for the effects.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    74. Re:Not the programming language by Anonymous Coward · · Score: 0

      40 years ago people used to say the same things about safety features on cars. "The car is perfectly safe, it's the knucklehead driver that's the problem!".

      These days I dare you you tell people the same thing. 40 years of structural improvements, seatbelts, airbags, electronic stability control, and a ton of other safety features have dramatically reduced fatal accidents, and accidents in general.

    75. Re:Not the programming language by Anonymous Coward · · Score: 0

      A careful developer knows their tools, with their tools being their development environment (tools used to write & debug code), their compiler and their choice of language. While some situations do not give you the choice of any of these, it is still imperative for the developer to know their tools and the strength and weaknesses of each one. Yes, some languages are a lot worse than others about letting the developer stray into unsafe practices. This is where stronger tools in the IDE can help keep developers from making simple but egregious mistakes, such as mistakes during memory allocation and deallocation in C.

      So, if performance isn't as important as logic surety, it may be better to move to a language that is more portable but also has built-in safeguards and tools that reduce the chance for the same mistakes, such as Java or C#, so less experienced or cautious developers can concentrate on fixing their logic bugs without having to worry about memory allocation issues at the same time. And also, so those reviewing their code can concentrate on the same thing, rather than spending their day chasing down esoteric buffer underruns.

      Yes, the developer is important, but also, so is the choice of tools. Even if a single developer is great developing in a given language, it doesn't mean everyone is as competent, cautious or diligent. Look at your team and pick the right tool, or look at your tool and pick the right team. Making a mismatch on that is a management problem.

    76. Re: Not the programming language by Anonymous Coward · · Score: 0

      #!/usr/bin/python

      for i in range(1,1000000000000):
            print i

      # Surprise: minutes waiting, and then Killed: 9
      # (most other languages print numbers until aborted)

    77. Re:Not the programming language by Anonymous Coward · · Score: 0

      I will agree that PHP 7 is a much nicer pile of shite than any previous version. But, with all the other RAD frameworks out there now, it isn't the best choice in most situations, though it does provide a viable avenue for existing platforms developed in earlier versions of the language to move to that isn't a dumpster fire. But you would be kidding yourself to think that kind of shift isn't painful, given that the changes often require a complete code review and possibly even a rewrite depending on how old the code base is.

    78. Re: Not the programming language by Anonymous Coward · · Score: 0

      1) This is a Python2 behaviour, Python3 does not behave that way
      2) You create a huge range() there, why would you just ASSUME that creating such a range is an efficient operation?

    79. Re:Not the programming language by Anonymous Coward · · Score: 0

      Oh, that would be fun. Because by "secure" do you mean no security issues specifically in the lines of code written, or actually not vulnerable?
      Because in the latter case you'd also need the whole runtime environment to not have security issues. And suddenly this become horribly much harder for all those high-level languages...

    80. Re:Not the programming language by jythie · · Score: 2

      The person is referring to the scoping rules in python not being like the scoping rules in C/Java/etc. It is only really a 'gotchya' if you have learned one set of rules and transition over to Python without learning it uses another one. But basically, in Python such a mistake can affect data that someone from a C/Java/etc background would consider out of scope but isn't.

      This is the general problem with these 'unexpected behavior' type discussions, they make sense or not depending on what other languages the person is referring from and what hidden assumptions about behavior they have.

    81. Re: Not the programming language by jythie · · Score: 2

      Yeah... with C, today you really only get the illusion of seeing what the assembly would look like on a toy processor from 30 years ago.

    82. Re:Not the programming language by Sique · · Score: 2
      The idea that you disqualify as a coder if you code in certain languages.

      I'll code in any language you throw at me if necessary. Sometimes, you have to do with the things at hand. Life is not a picnic.

      --
      .sig: Sique *sigh*
    83. Re: Not the programming language by phantomfive · · Score: 1

      The C# (or Java or JavaScript) programmer who doesn't understand memory management has memory leaks all over his (or her) code (or they are not writing anything substantial).

      --
      "First they came for the slanderers and i said nothing."
    84. Re:Not the programming language by Anonymous Coward · · Score: 2, Insightful

      What you just described is shitty management but your conclusion was to blame the programmer...

    85. Re:Not the programming language by Anonymous Coward · · Score: 0

      Imagine that. Assigning a value to the wrong variable can cause problems. I guess you shouldn't do that then, regardless of your programming language.

    86. Re:Not the programming language by K.+S.+Kyosuke · · Score: 1

      Arithmetic or relational operators, for example?

      --
      Ezekiel 23:20
    87. Re:Not the programming language by Anonymous Coward · · Score: 0

      The problem is that every 5 years they decide that all the old code is no longer secure and write an entirely new API for the same purpose. However, they don't deprecate the old API. So you have a mostly secure way of doing things and a — now — completely insecure way of doing things. PHP has reinvented itself so many times that it has a lot of shitcode still floating around. Code that you wrote that at some point wasn't shitcode might be now because it still runs but has become obsolete.

    88. Re: Not the programming language by jma05 · · Score: 2

      No they don't. This is a myth programmers tell themselves.
      There are safe languages and there are unsafe languages.
      Given same time, the performance of similar programmers (good or bad) will vary widely across them.
      This is the entire point of programming language research.

      A good programmer writing Haskell, Ada or Rust (languages that prioritize safety) code will invariably make fewer errors than he will in C (minimal safety features) - given same programming goals and time.

    89. Re:Not the programming language by DamnOregonian · · Score: 1

      Are you one of the authors of Zenoss?
      I love that Python script that takes 10 minutes to start on a $4000 machine.

      Sorry, amigo.
      C is still *the* language for focused functionality where performance or detailed control is important.

    90. Re: Not the programming language by phantomfive · · Score: 1

      Assembly written by Bill Atkinson is better than (pick your language) written by a lousy programmer. I think you must not have looked at very much good code.

      --
      "First they came for the slanderers and i said nothing."
    91. Re: Not the programming language by jma05 · · Score: 2

      Why on earth would you compare an expert vs. beginner when comparing tools?

      That's like saying, our car is just as safe as the rest, but only when driven by Grand Prix winners.

      Do you understand comparison studies? You control for every other variable.
      I specifically wrote: "the performance of *similar* programmers".
      You compare Bill Atkinson like programmer performance using both safe and unsafe tools. *Separately*, you then compare mediocre programmers.
      Also note that I also wrote "Given same time".

    92. Re: Not the programming language by Anonymous Coward · · Score: 0

      > Assembly written by Bill Atkinson is better than (pick your language) written by a lousy programmer.

      "Hey, that's not the right way to code. What are you guys, a bunch of hackers? I'm not sure that I want to work with a bunch of hackers."

    93. Re: Not the programming language by SirSlud · · Score: 2

      Anyone proficient in assembly and C can "see" the assembly that the C code will make, as they write the C code.

      What a load of bullshit. Between multiple targets, compilers, and the dozens and dozens of flags and options which affect compiler output, anybody who knows what they're talking about will say never assume anything unless you look at the assembly yourself. This is why sites like https://godbolt.org/ exist. You have to be in an incredibly small, tightly controlled, limited scope environment to really know with certaintly what assembly you'll get out of C code. It's certainly not the attitude of anybody I would consider "proficient". Old, maybe.

      --
      "Old man yells at systemd"
    94. Re:Not the programming language by swillden · · Score: 1

      However, part of it is modern coding in general. The last several "Agile" places I worked at were in permanent sprints, and the job of the developers is to get a feature that marketing already sold to the customer into the product.

      Nothing about that situation is related to "modern coding" or "Agile"... that's just bad project management and bad business. It was extremely common when I first started doing software in the late 80s.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    95. Re: Not the programming language by lgw · · Score: 1

      I agree with your point, but I don't think you could even get any real work done in C without understanding part of the memory management.

      Oh, it's sadly very easy to get work done without worrying about frees to match your allocs. There's a whole discipline to that in C absent from any other modern language.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    96. Re: Not the programming language by lgw · · Score: 2

      Anyone proficient in assembly and C can "see" the assembly that the C code will make, as they write the C code. This is not true in C++ or FORTRAN or the others.

      That hasn't been true for optimized C code for over a decade now. The compiler will surprise you in amazing ways in order to eek a cycle out of out-of-order instruction processing. And C++ isn't particularly mysterious once you get the hang of it.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    97. Re: Not the programming language by bobmagicii · · Score: 1

      in regards to the language being "secure" if more average devs can produce more safe results - isnt that more the libraries than the language? a print(string) is a print(string) everywhere from what i have seen.

    98. Re:Not the programming language by Anonymous Coward · · Score: 0

      Wow, your info is way out of date. No one uses addslashes or mysql_real_escape... anymore if they know anything. These were features that were put in for convenience way, way back that turned out to be bad ideas and in many cases no longer even work in 7.2. If strpos or stripos returns false, that's fairly easy to catch for someone with experience, the issue being that false will also evaluate to 0 if you just use "==" instead of "===". However, they warn you about this in the documentation. Also, the worst language on the list is C, which basically says the harder a language is for beginners to use, the more likely beginners will produce code with security flaws, and everyone knows that beginners are way cheaper to hire than seasoned veterans.

    99. Re:Not the programming language by swillden · · Score: 3, Interesting

      In what language does writing "x = y" when you meant "y = x" not lose the value of x, which you intended to keep?

      Everything *MUST* *BE* unit-tested for type-correctness

      While I prefer static typechecking, I respect the Python view that everything must be tested for correctness anyway, and that static typechecking just lulls the programmer into thinking that less testing needs to be done than is really the case.

      I will say that the worst, most opaque code I have ever encountered was written in Python, but I blame the programmer who wrote it, not the language for making it possible. Bizarre, incomprehensible, even misleading code is possible in any language, only the techniques differ.

      (The code I mention created a set of pure interfaces, then instantiated them and called their methods... and they worked! There was machinery that intercepted the instantiations and chose appropriate concrete types. Essentially it was a particularly opaque dependency injection framework. Think Guice, if you're familiar with that, but with absolutely nothing in the code to indicate that dependency injection was happening.)

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    100. Re:Not the programming language by Anonymous Coward · · Score: 0

      I haven't touched Python in years but I can think of two possible scenarios.

      1. Float vs double vs decimal. If you're trying to set them equal to each other, but one can't handle the precision, you could lose data in both.
      2. Garbage collection rules because it referred to scoping?

      PHP, like JavaScript, is one of those languages that forces every function to have type validation before you do whatever the function is supposed to do, not only because it really has no compile-time type checking but also because of the truthy/falsy horseshit. What I ended up doing was porting my library from C# to PHP to handle that. Note I already had a C# library because C#, too, has some weird comparison logic as well (but at least typing is mostly sane). TDWTF readers might cry "inner platform effect!" but sometimes there's a good reason for it.

    101. Re:Not the programming language by Anonymous Coward · · Score: 0

      God I love/hate BAT files. They can do some cool stuff when you don't have access to anything else but the syntax is so frustrating. I still don't know when a file path needs or doesn't need quotes. No, it's not when there are spaces. It's fucking weird and I've wasted more time fighting stuff like than that a Visual Studio license would cost.

    102. Re: Not the programming language by Anonymous Coward · · Score: 0

      Always preferred SCSI.

    103. Re: Not the programming language by Anonymous Coward · · Score: 0

      Heyyyyy juge....

    104. Re: Not the programming language by dargaud · · Score: 1

      If you divide by number of dogs, Dalmatians are the worst of all, before cocker spaniel... OT...

      --
      Non-Linux Penguins ?
    105. Re: Not the programming language by TrekkieGod · · Score: 2

      I agree with your point, but I don't think you could even get any real work done in C without understanding part of the memory management.

      As somebody who specifically works with undergraduate students with a Java background, the first few C++ programs I get from (almost) every new intern while training them is full of "Foo* bar = new Foo();", without the accompanying deletes. The way that happens is pretty clear: they're used to instantiating instances with new, they get a compiler error that indicates they should have an asterix next to they type when they do that, so they add an asterix.

      Granted, the process with C would be a bit different because malloc and free don't look like a keyword they're familiar with, but a lot of the same problems apply. Usually allocating memory in a function and returning the pointer which never gets freed. Sometimes they delete a pointer but keep references to it, and the test programs works perfectly ok because the process hasn't overwritten the memory marked for deletion by that point yet, etc.

      I love C, but there's no denying that it is a lot easier to create vulnerabilities from ignorance in that language than in a garbage collected language with actual array objects that know their size instead of a head address in contiguously allocated memory, etc. Understanding that helps us train better programmers, because we can hammer that early on.

      --

      Warning: Opinions known to be heavily biased.

    106. Re: Not the programming language by TrekkieGod · · Score: 1

      The C# (or Java or JavaScript) programmer who doesn't understand memory management has memory leaks all over his (or her) code (or they are not writing anything substantial).

      True, but they'll have a lot less of those leaks. You have to admit that keeping references to objects you no longer need is less of a memory leak problem than forgetting to explicitly free and losing the reference.

      --

      Warning: Opinions known to be heavily biased.

    107. Re: Not the programming language by phantomfive · · Score: 1

      Oh yeah? So when your C# server crashes because it ran out of RAM, you're going to say, "it's not as bad because.......Actually it's just as bad." C programs don't actually lose reference to the memory that was allocated, although your particular code might. There's no getting around the need to think of memory.

      --
      "First they came for the slanderers and i said nothing."
    108. Re: Not the programming language by Anonymous Coward · · Score: 0

      Anyone proficient in assembly and C can "see" the assembly that the C code will make, as they write the C code.

      Maybe for simple expressions and flow structures, unoptimized.

      I have seen single lines of C that literally generate *pages* of assembly on the back end.

    109. Re:Not the programming language by dunkelfalke · · Score: 2

      https://queue.acm.org/detail.c...

      This explains it better than I ever could.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    110. Re: Not the programming language by Anonymous Coward · · Score: 0

      Not exactly, some libraries have known issues that can go for long periods of time without fixes.
      So the question, is it the language or the programmer? Most of the time it's the latter.
      The next question is where was the code sourced, does it represent it's population? How did they measure it? For example your not going to get a fair comparison if you are comparing 500 students to 500 hobiests or 500 professionally trained programmers.
      To be honest I'm not sure there is a fair way to evaluate something like this.

    111. Re:Not the programming language by Anonymous Coward · · Score: 0

      Very interesting, thanks!

      I also like Dennis Ritchie's comment in The Development of the C Language that the increment ++ and decrement -- operators were not chosen to match PDP-11 architecture: "This is historically impossible, since there was no PDP-11 when B was developed."

    112. Re:Not the programming language by CanadianMacFan · · Score: 1

      Don't blame the contractors, blame the people aren't specific in what they want. I've seen plenty of times when users, clients, managers, etc ask a developer and/or contractor to make them something and use a couple of words thinking the other person knows their domain and needs exactly.

      It's like I asked you to build me a chair for $1000. You could go all out and build a power reclining, leather clad chair with cup holders, heating and a whole bunch of other neat features. Or you could nail two shipping palettes a right angles and toss in a couple of cushions, call it a day knowing that you'll get paid the same amount, and look for some other work. Probably you'll do something in the middle.

    113. Re: Not the programming language by Anonymous Coward · · Score: 0

      Nonsense. If the contract doesn't specify it, it is not required unless a law applies. I can sell you a car that does not have collision avoidance systems or power antilock brakes, and goes faster than the speed limit. If you choose to drive a Ferrari on an icy road, that doesn't make me liable.

      Managers always want to blame employees and contractors for thr manager's own incompetence. Executive whine about union rules... The execs signed the union contract. They didn't complain when they got deferred union salary increases in exchange for higher pensions, but they sure do complain about those pension costs now.

      If you have bad contractors and bad staff, you are terrible at management and should not be managing much less hiring anyone.

      Managerial incompetence... Blaming others for managements mistakes.

    114. Re: Not the programming language by yo303 · · Score: 1

      Sure, it might be more optimized. But the processor is not going to go and do something unexpected like garbage collection or some object initialization.

      There is a more direct mapping between C and its assembler output than in other languages.

    115. Re: Not the programming language by laffer1 · · Score: 1

      C++ now has garbage collection as an option.

      In my view, if someone taught students a language that does garbage collection but didn't explain what that is, they failed the student. I've seen so many people claim that languages like Java don't "leak" memory. It's certainly possible to have a dangling reference that prevents garbage collection.

      You don't get away from the memory management issue in other languages, it's just a bit easier in some cases.

      I think students should be taught a language like C or C++ without GC early on so they learn about memory management properly. By understanding what happens under the hood, they can appreciate garbage collection rather than assume every language has it. There's also a performance hit in Java and depending on what type of GC you're using in Java, it can cause latency or lag in applications. I've seen a lot of senior level developers create a lot of redundant objects and then wonder why the memory footprint of their app is terrible and why it seems laggy.

      This goes back to the problems with modern education in CS: Lack of knowledge of memory management, thread management and basic operating system theory. When everything is a black box, how will they be able to debug or tune their applications when the need arises? I'm tired of having to explain how Linux allocates RAM to processes or why their node.js app is failing to scale.

      Not to mention even in Java or .NET, you need to get in a pattern of opening and closing resources. What happens when they try to use JDBC? Why aren't my connections returning to the pool... I think the malloc/free or new/delete less is useful in other contexts.

    116. Re: Not the programming language by laffer1 · · Score: 1

      Most languages require freeing connections to databases. Managing resources is still a relevant skill.

    117. Re: Not the programming language by spongman · · Score: 1

      Bad languages make good code more expensive.

    118. Re: Not the programming language by spongman · · Score: 1

      Britney Spears.

      Popularity does not equal quality.

    119. Re: Not the programming language by spongman · · Score: 1

      Maybe you should try teaching c++ without ânewâ(TM)?

    120. Re:Not the programming language by Anonymous Coward · · Score: 0

      I will say that the worst, most opaque code I have ever encountered was written in Python, but I blame the programmer who wrote it, not the language for making it possible.

      You desperately need someone to introduce you to perl.

    121. Re:Not the programming language by JustAnotherOldGuy · · Score: 1

      It is only really the default configuration of older PHP versions that make it so much more practically insecure.

      ^^^^THIS

      Yes, early versions of PHP were insanely insecure (automatic extraction and instantiation of ANY variables passed in via POST or GET, for example) plus a host of other stuff.

      Still, it was easy to write secure code in PHP as long as you didn't so stupid things, which sadly, was setting the bar a little too high for most budding programmers (and not just PHP coders).

      At the same time, PHP made it easy to do stupid things and that sure didn't help (see above).

      Add to that the mountains of poorly-written insecure PHP code that was posted to every forum in the world....it was dutifully copied and spread widely. StackOverflow had more insecure code uploaded than you could shake a stick at (and still does).

      In addition, the web 5 or 10 years ago wasn't nearly the maliciously-opportunistic place it is now.

      Take bots, for example. Ten years ago bots were mostly unheard of and what they could do was very rudimentary. The bots now have long lists of vulnerabilities to look for as well all the other usual exploits that would screw up any public-facing code.

      But these days every site gets hammered day and night with bots, and any code that doesn't screen incoming vars is grist for the mill.

      Believe me, the problem isn't just PHP. The problem is bad programmers. Always has been, always will be.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    122. Re:Not the programming language by LostMyBeaver · · Score: 2

      I wrote a kernel module not long ago... in C. I was extremely diligent to make the code as clean as possible and to make the memory and error management as perfect as possible. I even added as many checks as I could. I wrote massive amounts of unit and integration tests. I configured multiple static code analysis systems to keep the code as pristine as possible... you shouldn't even be able to look at the code without causing some warning to be generated.

      Then we got to procfs which is a bleeding disaster.

      No one ever keeps the documentation up to date on anything in the kernel. Someone will go and write a book on the topic and before the pages of the PDF have cooled down from the press, the entire API will have changed.

      Then comes sk_buff... it has an API which is such a cludge that there should be laws against using Linux for networking in secure environments. It's absolutely impossible to create a network frame in the kernel since the documentation is 100 versions out of date, there are hundreds of documents trying to describe how it should work... they're all obsolete. Trying to find a support group that can help is like trying to find the answers to the mysteries of the universe. Everywhere you go, they'll point you somewhere else and then speculate that whoever they send you to will make you start over because they changed everything recently... again.

      I genuinely believe it's impossible to use SK_BUFF without making memory leaks in the kernel at this time.

      Let's talk about timer_setup and setup_timer.... there's nothing wrong with a name change, but there should be a macro of some type which would allow for testing which one to use. See, kernel modules are built using a kernel module make system. There's no autoconf.

      It doesn't matter how good your C code is... it's the trust issue. If have a large C codebase... for example multiple millions of lines of OS code with thousands unmaintained kernel modules written by people who shouldn't be allowed to spell "C" in gentle company, you're going to have an unmanageable cludge.

      Linus kicked ass when he made git. I think the world as a whole would burn without it today. But he should attack make files next and make it so that git and make are tightly integrated. Then all the kernel modules could be checked in as modules... and a CI/CD pipeline for the kernel and its modules could be established.

    123. Re:Not the programming language by muecksteiner · · Score: 1

      Thanks a lot, that was a very intriguing read! I do have a contrarian viewpoint on this, though. Namely, I would contend that the structure of C as it is now does not represent "computing in the age of the PDP-11". And that it is therefore obsolete.

      I'd rather argue that C is indeed still a highly useful low level language insofar as it maps fairly directly to an abstract machine of sorts. By the standards of today, this abstract machine is much simplified compared to actual hardware - but it is still a workable model of how computing works "on the metal". As a consequence, of this, the enduring appeal of C comes from the fact that this abstract machine (flat memory, in order execution, etc) hits a sweet spot between still being human comprehensible (!), while still being close enough to what actually goes on in hardware.

      Try turning the argument in the article on its head: imagine a low-level language which actually exposes all the shenanigans that are going on in a modern CPU to the programmer. And then imagine the nightmare of making something like this portable between machines. There is a reason we still do not have really stable programming interfaces on GPUs: and GPUs are actually, in their own way, simpler than a modern CPU. At least if you want to fiddle with all the little things that are there in hardware.

      Is C the end all of programming languages? No, of course not. Should the glaring defects the author mentions in that article be fixed? Also yes. But to the credit of C, it is not the dinosaur he makes it out to be. And it certainly does not shackle programmers to an obsolete hardware model. Rather, there was a point in time when the hardware more or less matched the abstract model C is using. But the fact that this is no longer the case does not mean C itself is useless: especially as taking C into the realm of directly mapping to the internals of modern processors would make it a lot less comprehensible to the average programmer - and also a lot less portable.

    124. Re:Not the programming language by gweihir · · Score: 1

      Indeed. This only hits you if you incompetently assume the rules are the same as for some other language. Scope is one of the things anybody competent looks at when learning a new language.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    125. Re:Not the programming language by gweihir · · Score: 1

      In what language does writing "x = y" when you meant "y = x" not lose the value of x, which you intended to keep?

      Everything *MUST* *BE* unit-tested for type-correctness

      While I prefer static typechecking, I respect the Python view that everything must be tested for correctness anyway, and that static typechecking just lulls the programmer into thinking that less testing needs to be done than is really the case.

      I will say that the worst, most opaque code I have ever encountered was written in Python, but I blame the programmer who wrote it, not the language for making it possible. Bizarre, incomprehensible, even misleading code is possible in any language, only the techniques differ.

      Static type-safety has its advantages and its disadvantages. For newbies it can be pretty helpful, but they often think this is something that is expected to be there. A huge disadvantage in most languages (except Eiffel) is that static type-safety usually enforces that child classes can always be used instead of their parent. That massively limits code-reuse and is not a good model in general. It just makes compiler-creation easier. In Eiffel, this is solved with a global translation scope. The compiler will, for example, accept children that have methods removed if these are never called when the child is used for the parent or the child is never used in place of the parent type. In Python, you have the same power, but you do it dynamically. That means type errors will be found at run-time only, but any reasonable test-coverage will find problems caused bu this and you need that test-coverage anyways. Also, if you use this feature with understanding and care, it will not drive debugging and testing efforts up at all.

      It is a great way for the incompetent to mess things up though. Although the incompetent have no business writing production code anyways. In all tech fields (except coding, because it is too new), we require an engineering degree for full-custom design (which basically all coding is). In coding, we need to to the same. The driver in other tech is that the harm done and the cost increased from bad implementations just make it economically non-viable to do custom designs with less than an engineer. This is even more true in coding, but somehow the "managers" still think they can do this with cheaper people and get better value. This is _known_ to be untrue. Admittedly, other engineering disciplines needed reference catastrophes and quite a bit of time to get it and to establish these rules. Coding is not there yet, but there are huge financial advantages to be had by making sure all your coders really know what they are doing and know what their limits are. Requires planning a bit longer than just for the next quarter though, and that seems to be something the "managers" cannot manage either these days.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    126. Re:Not the programming language by gweihir · · Score: 1

      Larry Wall has won the obfuscated C contest several times by now. Not an accident. You can write well readable code in Perl though, I have give Perl code to students for years and for them to modify and base their own work on and there never were any problems. Requires insight and discipline, just like any quality coding, really.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    127. Re:Not the programming language by dunkelfalke · · Score: 1

      This is why low level languages don't make much sense anymore. Modern CPUs have too much intelligence and so do the compilers.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    128. Re:Not the programming language by muecksteiner · · Score: 1

      Granted, but what exactly is the alternative? At the end of the day, computers are still about sequentially executing instructions which operate on data. that is being held in memory somewhere. So having some sort of model like that is certainly helpful when developing applications - of course notwithstanding that on a modern machine, the whole "sequential" thing has become rather fuzzy. But the basic model is still quite useful, as a baseline to start thinking on (so to speak).

      Point in case, in the other direction: functional languages. Arguably, these go full monty in the direction of "screw thinking about the machine this will run on, let's talk functionality". With the end result that the average functional version of a given application can very well serve as screening test for Mensa membership (disclaimer: I can actually program functional languages, and am a Mensa member). Wickedly cool these things are, but maintainable... and accessible to the general public... well, maybe not so much. I'd argue that the good old "sequential lego building blocks of logic" approach which is typical of C or Pascal or any other dog standard old time language has passed the test of time precisely because of their comparative simplicity and maintainability.

    129. Re:Not the programming language by dunkelfalke · · Score: 1

      Depends on the task and the skillset, I guess.
      Functional languages for the really intelligent people, multiparadigm languages with a high enough abstraction level (C#, Java, whatever) code monkeys like me, script languages for the noobs and C++ with inline assembler for embedded and close to the metal stuff (that's actually still withhin the limits of the more skilled code monkeys), and let the compilers do the rest.

      Also, I think you making a slight mistake putting Pascal and C into the same bucket. Pascal is, while able to do quite low level stuff (good old Turbo Pascal days, how I miss them), nevertheless a higher level language than C with more abstract structures, so, in a way, somewhat more modern (alas, very much dead).

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    130. Re:Not the programming language by Anonymous Coward · · Score: 0

      Also, I think you making a slight mistake putting Pascal and C into the same bucket. Pascal is, while able to do quite low level stuff (good old Turbo Pascal days, how I miss them), nevertheless a higher level language than C with more abstract structures, so, in a way, somewhat more modern (alas, very much dead).

      Yeah, I can't agree there. I started learning Pascal back in the day and then switched to C, which I found much more concise but about the same level of abstraction as Pascal.

      Maybe Pascal went on to become some convoluted multi-paradigm beast and I just wasn't aware?

    131. Re:Not the programming language by muecksteiner · · Score: 1

      Also, I think you making a slight mistake putting Pascal and C into the same bucket. Pascal is, while able to do quite low level stuff (good old Turbo Pascal days, how I miss them), nevertheless a higher level language than C with more abstract structures, so, in a way, somewhat more modern (alas, very much dead).

      I also have very fond memories of Turbo Pascal: back in the day, I liked it a lot better than C. But preferences do change over time, and whatever Borland did to Turbo Pascal in the longer run probably deserves to be rated "R".

    132. Re:Not the programming language by doconnor · · Score: 1

      In Pascal assignments are done with x:=y where the side with the ":" is always the distention. "=" is used to test equality and reversing the order works exactly the same.

    133. Re:Not the programming language by Anonymous Coward · · Score: 0

      >Everything *MUST* *BE* unit-tested for type-correctness.

      Please don't do that. Duck typing is a *feature*. Do not limit the kind of values that can be passed for some unfathomable reason.

    134. Re: Not the programming language by lgw · · Score: 1

      Except macros.

      And, well, you might be surprised. Memcpy, for example, used to be a very elaborate function, handling word alignment, page alignment, and so so for maximum performance. Now in most compiler libraries it's back to the obvious 1 line of code. Why? Because now everywhere the compiler detects that your copying memory around, it generates the full implementation of memcpy, or a slimmer version if it knows alignment boundaries at compile time.

      Also, why would object initialization be unexpected?

      --
      Socialism: a lie told by totalitarians and believed by fools.
    135. Re:Not the programming language by Cmdln+Daco · · Score: 1

      You can 'escape' out of the MS-DOS environment by typing 'call command call' at the command prompt. It dumps you out into a completely empty environment, where you can set things up however you wish. Then if you wish to get back, you can simply 'exit' at the command prompt and you're back to the original environment.

      The correct answer, btw, is that a file path ALWAYS needs quotes, because you're dealing with an unsafe kludge.

    136. Re: Not the programming language by Anonymous Coward · · Score: 0

      But it is though. Anyone proficient in assembly and C can "see" the assembly that the C code will make, as they write the C code.

      Hoo boy. You need to learn the difference between what a macro preprocessor does vs what a compiler does.

      This might be a good place to start.

  2. Easy way to rank by LynnwoodRooster · · Score: 2

    The more flexible the language, the more ways you can screw up and allow a security hole.

    --
    Browsing at +1 - no ACs, I ignore their posts. So refreshing!
    1. Re:Easy way to rank by Anonymous Coward · · Score: 1

      Therefore the solution is to build a programming language so brittle and soul-suckingly rigid that there's no room to write anything different than the approved code.

    2. Re:Easy way to rank by Anonymous Coward · · Score: 0

      The more obvious the disgusting yellow fever, the less defensible the disgusting habit.

    3. Re:Easy way to rank by Anonymous Coward · · Score: 1, Funny

      Let me tell you about Rust...

    4. Re:Easy way to rank by hcs_$reboot · · Score: 1

      In this case Perl should be in the top 3.

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    5. Re:Easy way to rank by hcs_$reboot · · Score: 1

      Or a language that doesn't allow uncontrolled system access. That's probably why Javascript does not top the list here.

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    6. Re:Easy way to rank by Anonymous Coward · · Score: 2, Funny

      First, he has to sign the 732 page ethics and Code of Conduct agreement...

    7. Re: Easy way to rank by Anonymous Coward · · Score: 0

      When you run javascript with node.js as root, it has full system access. A transitive dependency could download and run malware and pwn you. It's not about the language.

    8. Re: Easy way to rank by Anonymous Coward · · Score: 0

      "HE has to sign"

      Sexist! HOW DARE YOU assume the gender of the user. Xe may well be a non-binary Apache attack copter, for all you know. BIGOT!

      Time to get out the ban hammer!!

    9. Re:Easy way to rank by Anonymous Coward · · Score: 1

      Oh, he's going to attend the Arisia Science Fiction and Fantasy Convention?

      Let's just say that their very lengthy and "oh-so-sensitive" code of conduct turned out not to be worth the electrons it's displayed on your Facebook page with. The harsh lesson was that the longer the code of conduct, the likelier is rape by their highest level staff. The rule applies among projects and companies everywhere, and I've never seen an exception in the long run.

    10. Re: Easy way to rank by Anonymous Coward · · Score: 0

      He and him and man are all gender neutral in English. See: "woman", which has a female modifying prefix. The masculine prefix was dropped. All this time feminists have been avoiding "man" which gives words their humanity.

      "Person" derives from the guise of Apollo - mask donned per-day, the Players in play wear persons, a mask over their identity. This is why corporations are literally persons, (legal) fictions. So, for example, the feminist replacing of Chairman with Chairperson is removing humans from the word and giving it to false persons.

      TL;DR: Feminism is a front for the secret machine intelligence to indoctrinate humans to give up their humanity.

    11. Re:Easy way to rank by Pinky's+Brain · · Score: 1

      That's a good way of putting it.

      Secure languages are definitely not nice languages for the programmers ... they want freedom (pointers) and convenience (type inference) but giving it to them runs counter to security.

    12. Re: Easy way to rank by Anonymous Coward · · Score: 0

      Cute. Maybe one day you will recognize your male, possiibly white, privilege. And what privilege is.

    13. Re:Easy way to rank by Freischutz · · Score: 1

      The more flexible the language, the more ways you can screw up and allow a security hole.

      Case in point: PERL.

    14. Re: Easy way to rank by Hognoxious · · Score: 1

      Females don't need to sign it; nothing they do is wrong.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    15. Re: Easy way to rank by Anonymous Coward · · Score: 0

      A-men to that!

      CAP === 'harmony'

    16. Re: Easy way to rank by jbmartin6 · · Score: 1

      So what exactly was the masculine prefix?

      --
      This posting is provided 'AS IS' without warranty of any kind, implied or otherwise.
    17. Re: Easy way to rank by Anonymous Coward · · Score: 1

      > So what exactly was the masculine prefix?

      "Wer-" like in "werewolf."

    18. Re: Easy way to rank by DamnOregonian · · Score: 1

      Any man who made it out of their parents' basement and got a girlfriend learned this long ago.

    19. Re:Easy way to rank by DamnOregonian · · Score: 1

      but giving it to them runs counter to security.

      Wrong. It runs counter to safety.
      But sometimes you need to get on a plane without going through a soviet checkpoint at your airport.

    20. Re:Easy way to rank by Anonymous Coward · · Score: 0

      I whole-heartedly agree. That sliding scale of "get the fuck out of my way, I'm getting shit done" to "There is one and only one way to properly do things" is the defining trait of safe code. It's the difference between getting the happy-case to work and dealing with every edge-case. If you (are allowed to) ignore the vast majority of edge cases, it's a LOT easier to get the happy case working. That's rapid development. Prototyping.

      And with C we have essentially have both depending on if you enable these little guy: -Werror -Wall -Wpedantic

      In C, you can do whatever crazy shit you want and the compiler will let you get away with absolutely horrifying unspeakable black magic. But if you ask it double check your work, it can be a strict as hell language. The big advantage of Rust and Ada is that they get EVEN MORE strict. (Which, ideally should just be another set of warnings in C. Like "-WpassingABufferWithoutASizeField" or "-WtakingInputWithoutRangeChecking").

    21. Re: Easy way to rank by Anonymous Coward · · Score: 0

      And English is a fixed language that never, ever changes in any respect.

      Retard.

    22. Re: Easy way to rank by lgw · · Score: 1

      The original English gender-specific words for adults were "wer" and "wif", with "man" being neutral. Over the centuries, "wifman" became "woman". "Wer" was mostly dropped, as men are unimportant - if there's a woman, someone will say so. "Wer" persists only in "were-wolf" and "were-guild", while "wif" of course persists as "wife".

      --
      Socialism: a lie told by totalitarians and believed by fools.
    23. Re: Easy way to rank by jbmartin6 · · Score: 1

      Interesting. Were- apparently also persists in the etymology of "world".

      --
      This posting is provided 'AS IS' without warranty of any kind, implied or otherwise.
    24. Re:Easy way to rank by Pinky's+Brain · · Score: 1

      Sometimes not wearing your seatbelt in an accident really does save you.

      Sometimes getting that vaccination really does kill you.

  3. Kinda silly conclusion. by thoth_amon · · Score: 3, Insightful

    Language design unquestionably makes certain programming errors more difficult or even impossible. This is not mere tilting at windmills: many of the classes of errors that are removed are extremely important and damaging ones. Other language features can force programmers to think through their designs more and/or make their code more clear and expressive. Some language designs can even limit and constrain the possible logic errors that a program can commit.

    Obviously, naturally, a better programmer will write more secure programs, in any language. But that's not a very interesting question. The interesting question is whether two equally skilled, equally disciplined programmers will write equally secure programs when one of them is allowed by the language to do anything, and the other has many guardrails in place to prevent errors.

    1. Re:Kinda silly conclusion. by gweihir · · Score: 1

      No. You cannot force people to think. The avoidance of thinking is one of the most refined skills in the human race. No tools can help here. This false belief is at the root of the current mess, were more and more effort is poured into languages with no real effect. Of course, the motivation behind this is to avoid addressing the continued management failure in both hiring cheap, incompetent coders and in making tech decisions.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:Kinda silly conclusion. by theweatherelectric · · Score: 0

      No tools can help here.

      What studies have shown to date is that better tools are needed. Luckily, better tools are available.

      Show me a study which backs your claim that no tools can help. If you can't show me any research to support your position then this is just more baseless pontificating.

    3. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      A powerpoint from a tools vendor selling tools does not constitute a study.

      There is no evidence here that Rust is a better tool since you have not identified what you are comparing it to, and for what use case.

    4. Re:Kinda silly conclusion. by theweatherelectric · · Score: 1

      Maybe try reading it. I know reading is hard for you but do try.

    5. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      I'm afraid the question is more: Take two equally qualified programmers, one to deliver the project when ready, the other with a manager that screams random buzzwords or 'deadline' at the beginning and end of every week.

    6. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      Language design unquestionably makes certain programming errors more difficult or even impossible.

      If the standard features and library of the language are insecure spaghetti code (see: PHP), then the language IMPLEMENTATION of even the most securely DESIGNED language can make it a steaming pile of shit-sec. Even though the JVM is securely designed, the fact that Java Applets so much API and standard library kitchen sinks created such a huge attack surface that Java Browser Plugins were eventually banned from browsers (despite Java Applets having been intended to be the workhorse of the web, while JavaScript was merely meant to glue DOM element interaction to Applets). What Java should have done is strip the JVM down to a lean mean virtual machine for the web, but all the morons in charge thought my idea was stupid. I now introduce you to WebAssembly: A lean mean virtual machine for the web...

      Heap exploits are all the rage now because the IMPLEMENTATION of C++'s OOP places pointers to v-tables ahead of the structure data. This is a bad design decision and could be avoided had a better (handle) implementation or

      This combined with hardware that uses a single stack for both execution flow (calls) and parameter (data) is the source of 99% of all exploits. The IMPLEMENTATION of these constructs (call stacks) could have been more secure, and then the DESIGN of the opcode would not have impacted security.

    7. Re:Kinda silly conclusion. by gweihir · · Score: 1

      Show me an actual, scientifically sound study first that backs your claim. Because your reference does not do that. Instead if regurgitates the ages-old fallacy that because specific vulnerabilities are removed from the possible things you can code, the same coders will write better code. That is not the case and nobody has ever been able to prove otherwise.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    8. Re:Kinda silly conclusion. by theweatherelectric · · Score: 1

      So you can't demonstrate anything to support your claim. You've had every chance and every opportunity and yet you show nothing. Your claims are plainly baseless and a waste of everyone's time.

    9. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      Yeah, you can make mostly safe languages. What you have real problems with is making mostly safe languages that don't suck in other ways, particularly performance.

    10. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      The first claim is that the same programmer will write safer code when provided with guardrails.
      The second claim is that the first claim requires evidence to be accepted.
      Absence of evidence for the second claim is not evidence for the first claim.

    11. Re:Kinda silly conclusion. by gweihir · · Score: 0

      Invalid inversion of the burden of proof is invalid. You make grande claims and fail to support them adequately. And then you claim that the situation is the reverse one. Are you by any chance a Trump supporter?

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    12. Re:Kinda silly conclusion. by gweihir · · Score: 1

      Indeed. Nice to see that there are people that can think here. Even if you are an AC.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    13. Re:Kinda silly conclusion. by theweatherelectric · · Score: 1

      There is not inversion of proof, invalid or otherwise. You've failed to back your claim that "no tools help" or that these mythical perfect programmers will solve all the world's software security problems. Show me evidence to back your claims. If you cannot, then what use are you?

    14. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      Well, that's not a particularly interesting question either then, since there are more variables than the programmers and the language. Thing like what you're trying to accomplish, which constraints you're working with and what trade-offs your making. Any comparison between different languages is probably going to limp quite significantly.

    15. Re:Kinda silly conclusion. by angel'o'sphere · · Score: 1

      Bottom line you learn coding by coding a lot. Making mistakes realizing it, reflecting about it and improving yourself.

      You can not simply "teach" how not to make mistakes. Sure, you can teach concepts, problem cases, defensive strategies, tests etc. But bottom line the only way to learn is to make mistakes and learn from them.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    16. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      That's why I use Chipmunk Basic for everything. It's almost impossible to write insecure programs with it.

    17. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      All known architectures are vulnerable to "weird machines", which may not even need to run actual instructions in order to perform and exfiltrate computation.

      There is a fundamental underlying issue with our execution model: it creates side channels. A hypothetical expert programmer may be able to exercise the state of the art and still will almost certainly fall short of truly secure code.

    18. Re:Kinda silly conclusion. by laffer1 · · Score: 0

      Also things designed to force programmers to think like say python's weird whitespace rules actually detract from paying attention to more serious issues.

    19. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      Found the PHP coder.

    20. Re:Kinda silly conclusion. by gweihir · · Score: 1

      I am no use to idiots, and ipso facto no use to you. A fact I can live with very well.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    21. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      You did not provide any study as well. Not even crapy slides were not provided by you to support your claim. Theweatherelectric provided at least the slides.

      You claim that tools cannot help. If you are right then writing in machine code is as secure as writing in C. Make an experiment and compare number of errors in two programs providing the same functionality. One in machine code and other in C. And compare the development times.

      You somehow think that your mythical programmer does not make mistakes. You consider yourself to be one of those mythical programmers obviously. More secure tools give your team an additional filter to weed out mistakes. What is so hard to understand there. If performance and interoperability allow you to use higher level tools then that is what you should do instead of preaching C and expert programmers.

    22. Re:Kinda silly conclusion. by theweatherelectric · · Score: 1

      Junk effort, kid. Try harder.

    23. Re:Kinda silly conclusion. by swillden · · Score: 1

      No. You cannot force people to think.

      You're trying to substitute a different premise to tilt the argument in your favor. That sort of underhanded argumentation is obnoxious and you should avoid such assholery if you want to be taken seriously.

      This false belief is at the root of the current mess, were more and more effort is poured into languages with no real effect

      Except there has been a real effect. Modern, typesafe, bounds-checked programming languages and well-designed libraries cause demonstrably fewer security vulnerabilities to be written, and the vulnerabilities to be less severe. This is because these languages inherently make whole classes of vulnerabilities impossible. Comparing, say, Java and C, there is no vulnerability you could write in Java that you can't write in C, but there are large classes of vulnerabilities -- including the most critical remote code execution vulns -- that you cannot write in Java. This comes at a cost... there are also classes of programs you cannot write in Java but can write in C, and Java programs tend to be much larger and consume much more memory.

      This means that while Java programmers still have to think about security, there are many kinds of potential security mistakes that they do not have to think about. This is positive progress.

      I do crypto, and bad crypto APIs (like those provided by Java) are huge source of vulnerabilities. Better, simpler APIs like Tink or libsodium make a big difference, and programmers write far better code when they use them. This doesn't eliminate the need for programmers to understand cryptography, but it does eliminate the need for them to be crypto experts. Perhaps the best thing ever to happen in this space is TLS. There are still plenty of things to screw up, but if you need private, authenticated network connections, there is almost never a better answer than "Use TLS, and follow these rules to configure it correctly", except, maybe "Use TLS and use <library> to configure it" (e.g. Use OkHttp on Android).

      Or are you seriously going to try to tell me that a Good Programmer should be able to design and implement secure crypto code from scratch, and that if they'll just think they'll do fine? If you believe this, please, please, never write any code that implements or uses any form of cryptography.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    24. Re: Kinda silly conclusion. by Anonymous Coward · · Score: 0

      Rust 2018 edition is here!!!!

      What a joke, you've been duped.

    25. Re: Kinda silly conclusion. by Anonymous Coward · · Score: 0

      4 paragraphs filled with strawmen.

    26. Re: Kinda silly conclusion. by Anonymous Coward · · Score: 0

      If I work for a company that profited off of manipulating people and monopolizing the open web I might be less inclined to call other people assholes Just a thought

    27. Re:Kinda silly conclusion. by Anonymous Coward · · Score: 0

      If you use spaces the "weird" whitespace rules are actually natural and how you would write code anyway.

  4. AMD64 assembly by reanjr · · Score: 2

    The vast majority of security vulnerabilities in the wild are running AMD64 assembly. It's by far the least secure programming language.

    1. Re:AMD64 assembly by Anonymous Coward · · Score: 0

      Hmmm...pretty sure ARM would be up there too.

    2. Re:AMD64 assembly by gweihir · · Score: 2

      The vast majority of security vulnerabilities in the wild are running AMD64 assembly. It's by far the least secure programming language.

      Especially if run on the inferior "Intel" implementation.
       

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:AMD64 assembly by Anonymous Coward · · Score: 0

      He's just giving a nod to the fact that AMD in fact invented the modern x64 standard everybody else uses, Intel tried their own proprietary bullshit and was kicked to the curb on that... way back when, before this hyper-fail stuff lol.

    4. Re: AMD64 assembly by reanjr · · Score: 1

      Whoever modded my comment "troll" must be a fucking moron who doesn't know the first thing about PC hardware. I can't imagine what sort of misguided thinking led to that reaction other than complete ignorance of what AMD64 is.

    5. Re: AMD64 assembly by Anonymous Coward · · Score: 0

      Show us a citation or stfu.

      AKA, we don't believe you, you need more people!!!

    6. Re: AMD64 assembly by reanjr · · Score: 1

      You don't know what AMD64 is either, I suppose?

  5. Intel's code is vulnerable the minute you load it by Anonymous Coward · · Score: 0

    Anything you register with an intel cpu is vulnerable - from the moment you install it. https://www.reuters.com/article/us-cyber-intel/intel-discloses-three-more-chip-flaws-idUSKBN1KZ280

  6. Approach, rather than language by middlefeng · · Score: 4, Insightful

    Around 99% of vulnerability happens in parsing (general speaking, including string handling). If you make decision to take Lua as the format and take Lua parser as parser, done. Almost zero vulnerability.

  7. Govâ(TM)t actually got this right... by Anonymous Coward · · Score: 0

    Ada

  8. They missed it. by Anonymous Coward · · Score: 0

    Pascal is the most secure.

  9. Seven most popular by stinkyjak · · Score: 0

    .Net is only behind C and Java. VB.Net and C# individually are behind C++ in addition to the first two. Yet not mentioned in the post. Why?

    1. Re:Seven most popular by dwpro · · Score: 1

      Nor the report. I'm curious as well.

      --
      Millions long for immortality who do not know what to do with themselves on a rainy Sunday afternoon. -- Susan Ertz
    2. Re:Seven most popular by Anonymous Coward · · Score: 0

      .Net is only behind C and Java. VB.Net and C# individually are behind C++ in addition to the first two. Yet not mentioned in the post. Why?

      You need to understand their method of quantifying first. You need to follow the 2nd link in the summary and look for another link to get to OWASP A9 site. On the site, you need to scroll down a bit to find National Vulnerability Database which gives you all the list of vulnerabilities found for any languages. From there, you simply collect the data and categorize them into each language/technology/framework. That's it! Though, I believe that TFA doesn't really look into each vulnerability but rather count the number...

  10. Which language has the most buggy implemenation? by Anonymous Coward · · Score: 0

    It doesn't matter how good a programmer you are if the language interpreter/compiler has security bugs

    so which language has the most bugs that the programmer cannot avoid?

    and then try to give a bugs per 1000 lines of code metric (and then, thanks to git, look at the effect of code age on the bugs, how many bugs per 1000 lines were introduced in the last year vs a year a decade ago)

    lots of numbers != valid statistics

  11. the problem is engineering competency relative to by Anonymous Coward · · Score: 0

    choice of language is one of fit for purpose, though there is a problem of programmers without the ability to use a chosen language.

    its not hard to write secure c its flaws are well studied and well known it is the useless engineers whos confidence exceed their abilities that are the problem. being able to write turds in javascript or java does not qualify you to write c. it is the continued failure to recognize this that results in failure.

  12. Modules by Antique+Geekmeister · · Score: 2, Interesting

    I'd list all of the public and semi-public repositories that publish modules for automatic installation and update. These include pip, ant, maven, gradle, CPAN, and gems. The Java repositories used by ant, maven, and gradle tend to have unknown binaries and unknown provenance, with no reliable way to evactly recreate the published jar files. Ruby gems have a similar issue. CPAN and pip rely on upstream source code for local deployment or compilation but are also very vulnerable to their default download of the most recent version of any module, which may or may not interact badly with other obsolete or updated modules. It's why many operating systems publish packaged binaries, and it's why the "compile as needed" operating systems cannot be stable and _cannot_ be thoroughly secured.

    1. Re:Modules by scdeimos · · Score: 1

      Don't forget npmjs. npmjs comes with the added bonus that a ranting author can delete all versions of all of their modules thus breaking previously working installations.

    2. Re:Modules by Antique+Geekmeister · · Score: 1

      Wouldn't that merely break new deployments of those modules? I'd not expect it to break already deployed systems.

    3. Re:Modules by scdeimos · · Score: 1

      Not when it comes to build servers. npm ci deletes the node_modules folder and downloads all the packages again from scratch. You need to turn off npm ci build step and commit hundreds of megabytes (or more) of node modules to your VCS to ensure reliable builds.

    4. Re:Modules by angel'o'sphere · · Score: 1

      The Java repositories used by ant, maven, and gradle tend to have unknown binaries and unknown provenance, with no reliable way to evactly recreate the published jar files.
      That is nonsense.
      First of all the source code comes from a source code control system, secondly if you use maven/gradle then the jar repository usually always contains a code.jar and a source.jar (and the 'make file' to make one from the other).

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:Modules by Antique+Geekmeister · · Score: 1

      Jar files are binaries.

      Many public jar file repositories have undefined, or ill-defined links to a source control system or a build system that make the code nearly impossible to reliably rebuild. I've run into this repeatedly.

    6. Re:Modules by angel'o'sphere · · Score: 1

      *jar files are *zip files.
      And a maven repository usually holds the sources.'zip' and the classes.'zip' aka jar files.

      If run into problems as one for help who has more clue than you. While maven is a pain in the ass, not being able to build a code-jar-file from the sources is not one of its problems.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    7. Re:Modules by Anonymous Coward · · Score: 0

      Or you set up your own NPM server...

    8. Re:Modules by Anonymous Coward · · Score: 0

      Dude use yarn. The build won't bomb once you've set it up.

    9. Re:Modules by Antique+Geekmeister · · Score: 1

      > First of all the source code comes from a source code control system,

      Not necessarily. I've met many Java developers who publish their content from their personal laptops, and whom I've educated in using source control and build environments. There is no requirement for the use of any source control in any of of ant, maven, or gradle. I'm afraid that what you've described is a source control based workflow exerted from outside the build tools. It's a very helpful approach for many reasons, but it's missing from many public and especially private jar file repositories.

      > *jar files are *zip files.

      And zip files are binaries. I would agree that they are not _executables_ or libraries per se. But being binaries, and being a module in which other binaries are embedded, makes reviewing or comparing their contents much more awkward. They also tend to be full of other binaries, such as ".class" files. Being a zip file does not help the underlying source control or build environment problem.

  13. Learn to by AHuxley · · Score: 1

    Ada.

    --
    Domestic spying is now "Benign Information Gathering"
  14. This is nonsense by gweihir · · Score: 2

    First, usage is not evenly distributed. Second, some things you can only do in one language. And third, there are different groups of coders for each language. Take C coders, for example. If you use established Linux kernel core coders, you get completely different numbers compared to using newbie kernel driver coders.

    And then you have that vulnerability is not the same as vulnerability. Simple counting metrics are basically always fundamentally flawed and give you a completely unrealistic picture. If both an easily usable remote vulnerability with privilege escalation is counted the same as a very hard to exploit local vulnerability that just allows you read access to some not very critical data, then the result is utterly meaningless. You also get situations were what is one vulnerability in one language counts as several in another, for example because it is a combined vulnerability in a library in one and separate simpler components in another.

    Hence statistics like this one do a lot of harm by confusing the issue and help not one bit to actually see a fragment of reality. They abstracted too much away. It is like, for example, they judge whether people are good or bad according to their beer brewing skills. You will find good beer brewers that were mass-murderers, and ones that were saints. The results of such an evaluation is completely meaningless.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:This is nonsense by Anonymous Coward · · Score: 0

      Your rebuttal is illiterate puffery.

      First, even TFS addresses your first point. That's a bad start. Second, mostly bullshit with workarounds and caveats. Third, it's comparing the entire language vuln surface area, not "coder groups" - do your own study, Weber.

      Counting is a metric. Obviously some vulns are bigger than others, that's not the point, they chain anyway. There is usable data trend analysis to be done even just watching the number grow or shrink, you're being very simplistic.
      Obviously you were not going to be happy with anything, because you have some anti-statistics unrelated beef indigestion/dementia going on. My condolences, but your blathered puffery is completely meaniningless.
      "Some" metrics are better than none, YMMV, sorry it confused you or whatever your deal is. Go to bed.

    2. Re:This is nonsense by gweihir · · Score: 1

      Read my .sig

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:This is nonsense by imidan · · Score: 3, Interesting

      If both an easily usable remote vulnerability with privilege escalation is counted the same as a very hard to exploit local vulnerability...

      I knowingly created a vulnerability in a single sign-on system that I implemented. I did it for expediency. But when I did, I spoke with my boss about it first, and then we all talked about it at a staff meeting to try to determine ways that it could be exploited. The two we came up with involved a bad actor who already had unrestricted physical access to a logged-in user's machine, or a bad actor who had reality-defying luck at guessing a UUID within a 24-hour period. In either case, the attacker couldn't gain access beyond the user they impersonated. It was decided that even though a vulnerability existed, successful exploitation was unlikely.

      The point being, as you say, not all vulnerabilities are made equal. If you can determine the risk of exploitation, the value of the system being protected, and the cost of recovery from a bad action, and accept all of that, then maybe the cost of eliminating the vulnerability is greater than the expected cost of dealing with an exploit.

    4. Re:This is nonsense by gweihir · · Score: 1

      As soon as you documented this very carefully and very hard to miss in the code and in the written documentation, I have absolutely no problem with this approach. Competent risk management is not about perfection, it is about balancing cost and risk-costs and avoiding catastrophe-level events.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    5. Re:This is nonsense by theweatherelectric · · Score: 1

      If you use established Linux kernel core coders, you get completely different numbers compared to using newbie kernel driver coders.

      Do you? Is that why the top 6 products with the most vulnerabilities in 2018 were all Linux products? Is that why the Linux kernel had the second highest number of vulnerabilities in 2017?

      C coders don't seem to be that great at security.

    6. Re:This is nonsense by gweihir · · Score: 1

      You seem to be functionally illiterate. Because what you criticize is very clearly not what I said. I did, in fact, not make any claim as to Linux security vs. other products. But that seems to have completely escaped you. Which is hilarious, because you even quote the line that you were unable to comprehend.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    7. Re:This is nonsense by theweatherelectric · · Score: 1

      Don't cry just because C has let you down. Recognize Cs failings and move on to a better language.

    8. Re:This is nonsense by gweihir · · Score: 1

      You continue to be clueless. I did not claim C was a good or bad language either. I just used it to explain a deep flaw in the comparison made.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    9. Re:This is nonsense by theweatherelectric · · Score: 1

      Nope, I just occupy the real world as opposed to being siloed in the deluded fantasy you wish the world to be. Where are these mythical programmers that will finally write secure programs in C? Why have they done such a terrible job so far? When will they improve? When will they deliver? When will you deliver anything to back your claims?

      It's time to put up or shut up, kid.

    10. Re:This is nonsense by Trailer+Trash · · Score: 2

      Do you? Is that why the top 6 products with the most vulnerabilities in 2018 were all Linux products? Is that why the Linux kernel had the second highest number of vulnerabilities in 2017?

      You're conflating two different concepts. We have no way of knowing what piece of code has the highest number of vulnerabilities. To find that out, we would have to freeze all development and then scour all existing code using some standardized methodology.

      What you're talking about here is that the Linux kernel had the second highest number of vulnerabilities that were discovered. BIG difference.

      The Linux kernel is open source and is by far the most widely used operating system in the world. Vulnerabilities in Linux are golden tickets, so people are looking for them all the time. Having a simple aggregate list like that is also of limited value because it doesn't tell you the nature of the exploit.

      https://www.csoonline.com/arti...

      Why, looky there. Ask yourself a question: How bad is this?

      See, before Cisco fessed up, few people knew about this. It wouldn't have shown up on your list there. But something like this almost certainly trumps 20 regular vulnerabilities. It's nearly impossible to put something like this into open source software.

    11. Re:This is nonsense by gweihir · · Score: 1

      None of which I was talking about. You are not only functionally illiterate, you are an idiot. Non-idiots can recognize context, you cannot.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    12. Re:This is nonsense by theweatherelectric · · Score: 0

      Who knew C coders were so sensitive with feelings so easily hurt. Harden up, boy.

    13. Re:This is nonsense by theweatherelectric · · Score: 0

      The Linux kernel is open source and is by far the most widely used operating system in the world. Vulnerabilities in Linux are golden tickets, so people are looking for them all the time.

      Aha, so Linux is a victim of its own success and open source development with C is fundamentally flawed from a security perspective. You've convinced me. I agree with you, C is not adequate to the task of developing secure open source software.

    14. Re:This is nonsense by Anonymous Coward · · Score: 0

      Fuck off, dummy.

    15. Re:This is nonsense by Anonymous Coward · · Score: 0

      Above, you say that C coders are not good at security. Here, you say that it's the language that has failed. Which one is it?

    16. Re:This is nonsense by DamnOregonian · · Score: 1

      I have a CVE in the NVD.
      It targets a piece of the linux kernel that was modified by Google for Android.
      I used it for a while to push through some unlocking exploits for Android phones with read-only eMMC ships.
      The thing is- the problem isn't language specific at all, and not even Rust would have saved them. It was entirely procedural.
      I suspect the distribution closely follows "extant lines of code"

    17. Re:This is nonsense by theweatherelectric · · Score: 1

      Both.

  15. Re:the problem is engineering competency relative by gweihir · · Score: 4, Insightful

    Very true. Also, a bad C coder will just create other vulnerabilities in Java, for example. The problem is with coders that a) have no clue how to do it and b) do not know their limits or are forced to not respect them by stupid management. It comes all down to the coder, not the language. A bad coder will produce insecure code in any language, there is _no_ way to avoid that even if many bad coders continue to believe in the existence of the One True Language (TM) that will finally make them good coders. This quasi-religious belief is built on a futile hope and hot air used by vendors and interest groups to keep it alive.

    So, let me state again: There is no silver bullet. Good, secure, reliable and maintainable code is only produced by good, experienced and talented coders. These coders are rare, expensive and expect to be treated well. Not having them and trying to do it on the cheap will always be a lot more expensive in the longer run and is a severe management failure. As in any engineering project, in coding, the architects, designers and coders are the most important people, the managers merely serve to deal with management obstacles. They have zero business making tech decisions and if they do that they sabotage the success chances and result quality of the overall project.

    We, as the human race, generally have this figured out in engineering, with some notable exceptions, e.g. the current mass-murder committed by Boeing management, the Brazilian dam certified to be secure by TÜV Süd, Fuckupshima, etc. But in software engineering, management is not just incompetent (as usual), it is outright demented and completely disconnected from reality. That has to change.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  16. Assembler by aglider · · Score: 1

    You forgot assembler.

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    1. Re:Assembler by hcs_$reboot · · Score: 1

      Assembler is not in the list because it is usually only needed when no other choice is possible.

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    2. Re:Assembler by Anonymous Coward · · Score: 0

      Indeed, but all compiler code ends up translated to assembly to be execute by a processor, and assembly with modern processors has vulnerabilities like Spectre and Meltdown. So the most dangerous language ends up being ... Intel.

    3. Re:Assembler by Anonymous Coward · · Score: 0

      Processors don't run aseembler.

    4. Re:Assembler by Anonymous Coward · · Score: 0

      Yes they do. Processor runs the assembler machine code to turn assembly language code in to machine code.

    5. Re:Assembler by Anonymous Coward · · Score: 0

      Assembler is not in the list because it is usually only needed when no other choice is possible.

      If only that were true. I have seen a student using assembly on a project where all the others used C. His contribution? A routine that opened a file, so it could be read it into memory by someone else. He also had assembly that closed it. Exactly the sort of thing for which assembly isn't needed at all. It could all be replaces with fopen(), fclose() and an if-test to see if the fopen() failed. Which we did after a while . . .

      Assembly in those days were sometimes used to make cool graphics tricks. For everything else, compiled code was better.

  17. Your help will be much appreciated ! by Anonymous Coward · · Score: 0

    The world needs your help -

    Language design unquestionably makes certain programming errors more difficult or even impossible. This is not mere tilting at windmills: many of the classes of errors that are removed are extremely important and damaging ones.

    Please help by giving us the types of language you describe above.

    Other language features can force programmers to think through their designs more and/or make their code more clear and expressive.

    What are those other languages" ?

    Some language designs can even limit and constrain the possible logic errors that a program can commit.

    How about giving us the names of those wonderful languages?

    Many thanks in advance !!

    1. Re:Your help will be much appreciated ! by Anonymous Coward · · Score: 0

      well you could go to C# or Java and look at the way they handle pointers and garbage collection and compare it to the manual way you have to do this in C or C++, obviously you can make this faster and more efficient in C but it is also much much easier to fuck up badly, especially for average developers. Theres nothing magical here, the guardrails in these languages exist precisely because of the error prone nature of developers in languages like C.

    2. Re:Your help will be much appreciated ! by Tom · · Score: 1

      Yes, much easier to fuck up in C.

      But sometimes you need the no-training-wheels approach from C. The last time I've used it was for a simulation which would have taken at least 4 times the memory using Java or C++. When you're using 80% of your available memory, 4x isn't possible.

      --
      Assorted stuff I do sometimes: Lemuria.org
    3. Re:Your help will be much appreciated ! by Anonymous Coward · · Score: 0

      Yes, much easier to fuck up in C.

      But sometimes you need the no-training-wheels approach from C. The last time I've used it was for a simulation which would have taken at least 4 times the memory using Java or C++. When you're using 80% of your available memory, 4x isn't possible.

      In cases like yours, instead of using C, Assembly Language would have been a much saner approach.

    4. Re:Your help will be much appreciated ! by Tom · · Score: 1

      No. With a good compiler, C has minimal memory overhead and doing a complex simulation in assembler isn't high on my wish list.

      --
      Assorted stuff I do sometimes: Lemuria.org
  18. Article not worth reading by Anonymous Coward · · Score: 1, Insightful

    Complete failure to even attempt to normalize bug counts so they can be evaluated on common terms makes TFA not worth reading.

    1. Re:Article not worth reading by Anonymous Coward · · Score: 0

      It's useless marketing shit.

  19. proper statistics by Tom · · Score: 1

    tops the list because it's the oldest language with "the highest volume of written code"

    It would've been easy to break numbers down by lines of code, wouldn't it?

    Likewise by the year the code was written and whether or not it is currently being maintained (say, did the repository get an update within the past 3 months?).

    --
    Assorted stuff I do sometimes: Lemuria.org
    1. Re:proper statistics by dwpro · · Score: 1

      Bug/loc would just boost the rankings of languages with extra boilerplate.

      --
      Millions long for immortality who do not know what to do with themselves on a rainy Sunday afternoon. -- Susan Ertz
    2. Re:proper statistics by Tom · · Score: 1

      There are a couple LOC counters that ignore comments and don't count lines with only opening or closing paranthesis etc. etc. - it's not like this is the first time the issue appears.

      --
      Assorted stuff I do sometimes: Lemuria.org
    3. Re:proper statistics by angel'o'sphere · · Score: 1

      Actually there is no good reason not to count comments.
      Just because they are not compiled to code is not a good reason.

      /**
      * param input - an unsigned integer used to compute the square from
      */
      long fac(long input) { // .... bla
      }

      The error is in the comment, why is it not treated similar as line of code?
      I however agree that long comment headers containing the commit log of the last 15 years are not necessarily code/LOCs :D

      don't count lines with only opening or closing paranthesis
      Same misconception.

      // corner case, many code conventions forbid this
      if (somethingIsTrue())
              doSomething(); // case #1
      if (somethingElseIsTrue())
      {
            doSomethingElse();
      } // case #2
      if (somethingIsFreakedUp()) {
          fixItIfYouCan(); }

      Case #1 and #2 should be treated as the same amount of LOC. Basically you count paras, braces, comma and semicolon and ignore new lines (unless inside of comments). That of course is only true for languages like C where meaningful lines are terminated by a ; and/or a }

      Of course that means that a function call like this:

            myCall(1, 2, "string");

      will be counted just like this:

            myCall
            (
            1,
            2,
            "string")
            ;

      Which is 5 lines, because you have 5 places where you can make an error, well, you could skip the paras perhaps and only count comma and semicolon. As the paras are required syntax, but then you don't count the function name as a LOC. Hm, I think we used to either not count the closing or opening para, not sure.

      The point is:
      1) func(); - that is one line
      2) anotherFunc(param); - that is two lines // does not fit into my definition above, yes
      3) moreFuncs(paramOne, paramTwo); - that is three lines // function name can be wrong, param one can be wrong, param two can be wrong

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:proper statistics by dwpro · · Score: 1

      There are a couple LOC counters that ignore comments and don't count lines with only opening or closing paranthesis etc. etc. - it's not like this is the first time the issue appears.

      That seems like a more complicated problem than you are alluding to with "etc. etc." For an extremely simple example, how would you justify the 10x difference in bugs/loc when comparing Foxpro vs Eiffel if you managed to muck up a line on both doing "hello world"? Which of the lines in Eiffel would count? https://excelwithbusiness.com/...

      --
      Millions long for immortality who do not know what to do with themselves on a rainy Sunday afternoon. -- Susan Ertz
    5. Re:proper statistics by Tom · · Score: 1

      You are absolutely right that some languages are more verbose by their very nature.

      Still, we have better ways than just counting lines.

      --
      Assorted stuff I do sometimes: Lemuria.org
    6. Re:proper statistics by lgw · · Score: 1

      LOC has always been a garbage metric for any purpose. Even worse when comparing programming languages. What matters is the number of bugs per problem solved. The fact that one language takes twice as many LOC to solve the problem than another is not relevent.

      --
      Socialism: a lie told by totalitarians and believed by fools.
  20. Re:Kinda silly conclusion.- CRAP by Anonymous Coward · · Score: 1

    The issue is the what level does a language allow you to write at?

    C is Assembler - hence the whole machin eis open to you, period GET IT??? It is way real programmers do not allow beginners and children to writing C.

    On the other end - Business Languages Cobol and RPG. Heavy typed and run on procesors that are data aware. Just try to stick any non-numberic in numeric field. They is not stack. Oh you can create security issues by bad designs by using SQL enhenced query, Cobol not at fault, but SQL is, not to meantion studpid coder, cause SQL injection issues.

  21. Re:the problem is engineering competency relative by theweatherelectric · · Score: 3, Informative

    its not hard to write secure c

    And yet 70 percent of all security bugs are memory safety issues.

    If only there was some kind of language which was designed to reduce memory safety bugs.

  22. Re:Kinda silly conclusion.- CRAP by Anonymous Coward · · Score: 0

    C is Assembler - hence the whole machin eis open to you, period GET IT???

    I wish people would stop perpetuating this myth. Programming in C is nothing like programming in assembler.

    What access to the machine does C give you? Pointers, bitfields, and...that's about it. That's as low-level as you get. No interrupts, no traps, no stack operations, no BIOS calls, no MMU instructions. You need an actual assembler for that stuff.

  23. Re: Hebrew by Anonymous Coward · · Score: 2

    This shit is really depressingly stupid. You might actually accomplish your goal of getting me to stop coming to slashdot entirely.

  24. Re: the problem is engineering competency relative by Anonymous Coward · · Score: 0

    >> If only there was some kind of language which was designed to reduce memory safety bugs.

    There is Rust. Rustâ(TM)s rich type system and ownership model guarantee memory-safety and thread-safety â" and enable you to eliminate many classes of bugs at compile-time. See https://www.rust-lang.org .

  25. Re: "Shanghai" Bill is a known liar many times ove by DutchMasterKiller · · Score: 1

    Did you just walk into the wrong room?

  26. Lol! by Anonymous Coward · · Score: 0

    C++ is nearly as popular as C and yet it only has 5% vulnerability share compared to C at 47% ! Even Java, the so called secure lamguage, did worse.

    This somewhat proves all the C++ haters wrong, C++ is a great language and doesn't lead to bugs! Yeah C++ lets you shoot yourself in the foot with a cannon if you want but it comes with a variety of tools so most people wont be using a cannon where a slingshot would do.

  27. Since they are not listed... by LordHighExecutioner · · Score: 2

    ...but neverthless have a very large volume of written code, from TFA we can conclude that COBOL and FORTRAN are the safest language to use.

    1. Re:Since they are not listed... by Cro+Magnon · · Score: 1

      Well, I didn't get too many pointer errors when I was writing in COBOL.

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    2. Re:Since they are not listed... by neurojab · · Score: 1

      ...but neverthless have a very large volume of written code, from TFA we can conclude that COBOL and FORTRAN are the safest language to use.

      I'm sure you're joking, but for those that don't get it: COBOL and FORTRAN do have a large base of running code, but are rarely/never used to write a web or even network aware applications. You can pull the network cable from a Windows 95 box, put it in a bank vault, and it will be reasonably secure, after all.

  28. By this metric Brainfuck is the most secure by Anonymous Coward · · Score: 0

    So any other language that is never used.

  29. Re:Kinda silly conclusion.- CRAP by yo303 · · Score: 1

    So, I am reading that you haven't done any embedded programming since they invented C. You can do most of than in C, and use the inline assembler where necessary.

    C lets you write assembler more easily.

  30. Re: Hebrew by Anonymous Coward · · Score: 0

    It's ok, the mentally handicapped person is just figuring out copy and paste. It's the only thing worth anything in their life.

  31. Utterly idiotic by Anonymous Coward · · Score: 0

    1) we all know it depends mostly on the skill of the developer.
    2) you can do things in c you can't, or don't want to do, in other languages. These are hardly vulnerabilities.

    Methodology and starting statement are both ignorant of reality.

  32. Look at Defect Density by ytene · · Score: 5, Insightful

    The OP includes the disclaimer that the C++ programming language "tops the list" because it has been in use for the longest and therefore includes the most lines of sample code from which to draw a conclusion...

    But a better measure would be defect density , or the number of vulnerabilities found per thousand executable lines of code. An even better measure would then take that data and factor it using an independent vulnerability severity assessment, such as CVSS2.0 (for example).

    Even this approach will leave us with concerns. The results could be massively skewed, for example, if the C++ dataset comprised deeply complex code, whilst the PHP sample (for example) were largely comprised of trivial read-only presentation formatting statements. In order to attempt to make such analysis comparable, it would be necessary to compare equivalent functions written in different languages. In this context, by "function", I am referring to code objects that deliver either identical or similar functionality, such as input validation.

    Unfortunately, the variables don't end there... The OP suggests that code was drawn from a variety of sources, including GitHub, public issues trackers and public development projects... Even the most cursory glance at GitHub projects will easily demonstrate the huge variance in ability of project contributors. This means that it is entirely conceivable for the test results to be distorted by nothing other than the relative ability of contributing programmers.

    This is a really nice idea and we should encourage more and better attempts at helping us to understand what it takes to write defect-free code. However, I'm not entirely convinced that this analysis considers all pertinent factors and therefore am not likely to be completely persuaded by the results.

    I would also like to better understand the impact of things like good project discipline on the outcome of this analysis. For example, what are the differences between a project which has really strict internal rules for things like variable, object and function naming? How about something as innocuous as code formatting - things like indentation, line wrapping and so on? What about the toolset and platform? The IDE used? The project discipline with regard to code re-use? All of these are "tells" - indicators as to the sort of defect density we should expect. They will not be uniform across randomly sampled software projects.

    In my experience [maybe 10 years developing in a 30-year career] I would say that adherence to these sorts of "programming disciplines" is actually [much] more important than the language you use. Unless you pick a turkey of a language, you should be choosing it because it's philosophy and structure, it's approach to solving problems, most closely aligns to what you are trying to achieve.

    And as a mentor once told me: "Just remember, the fastest, leanest, most efficient and compact piece of code can be replaced by something which is 5% slower, takes up 5% more memory and is 5% less efficient - but which is easy to understand, debug and maintain."

    Quite possibly one of the most useful pieces of advice I've ever received...

    1. Re:Look at Defect Density by shanen · · Score: 1

      Hard to find your comment until I figured out the right search terms. Not surprised to see it didn't get the moderation it deserved.

      The topic is quite badly worded. There was a hint that the code base should be considered, and your metric of defect density is important, and you mentioned some of the other factors that can be considered, too. I was actually looking for something about size of the language itself, as well as the expressive power. Should also consider the significance of the defects that are created.

      All in all, the story and the discussion (with a few exceptions like your [ytene's] comment) met my expectations for today's Slashdot. Sadly low expectations.

      --
      Freedom = (Meaningful - Coerced) Choice != (Speech | Beer^2), and sad sock puppets' bad mods avail them naught.
    2. Re:Look at Defect Density by bluefoxlucid · · Score: 2

      Correct. In simpler terms: we need to measure the frequency of vulnerabilities per volume of code written by similarly-experienced programmers; the difficulty in teaching people to avoid those vulnerabilities; the ease in which lazy programming can create vulnerabilities; the scope of an exploit; and the stability of executing an exploit.

      C#, for example, seems to be less vulnerable than Java for...some reason. I don't know why. Java seems to have failures that it shouldn't have, and C# should only be better for language specification reasons such as better-implementing interfaces and classes, or having better-documented conventions. They should both technically be equal. Someone should explore this and explain it so we can perhaps improve JVMs and CLRs based on this knowledge.

      Just remember, the fastest, leanest, most efficient and compact piece of code can be replaced by something which is 5% slower, takes up 5% more memory and is 5% less efficient - but which is easy to understand, debug and maintain.

      Your mentor was wrong. All of those things you do to squeeze out a bit more performance don't actually work and your code just ends up ugly and slow. Performance comes from your algorithms, and major memory savings come from using better algorithms.

      Consider the B-Tree and the Radix tree. When encoding common-prefix strings, you want the Radix tree. Why? Because a B-Tree of strings will encode "/lib" pointing to "/lib/modules" pointing to "/lib/modules/4.5.1" and "/lib/modules/4.5.2" etc. Another type of trie will encode "/" -> "l" -> "i" -> "b" and so forth. The Radix tree will encode "/lib", then "modules/" and "lib", with the first pointing to a prefix of its subtrees and the second pointing to things like "c" or "g" or "ymc.so".

      The very structure of the Radix tree eliminates a lot of duplicate data in memory and reduces the comparisons made. Tweaking and optimizing the Radix tree doesn't make such a gain, and your CPU and compiler will probably reach the same output code anyway. The Judy array is faster, but also much-more-complex to implement--and again is a different data structure with a different algorithm.

      Various algorithms have various complexities; but when it comes to implementation, your implementation doesn't matter. The compiler will probably achieve the same SSA tree and then optimize the same output.

    3. Re:Look at Defect Density by Anonymous Coward · · Score: 0

      > "Just remember, the fastest, leanest, most efficient and compact piece of code can be replaced by something which is 5% slower, takes up 5% more memory and is 5% less efficient - but which is easy to understand, debug and maintain."

      Simply not true. That said, generally, even if it was 100% on all those items, the cost of hardware is going down and the cost of engineers is not. The saying still works, even if the math is insane. Program efficiency is usually not all it's cracked up to be, especially at the cost of maintainability. If software development wasn't such a complete disaster, we could just tell the junior engineers "premature optimization is the root of all evil," confident that we would actually get time to prioritize some optimization in the course of the project.

    4. Re:Look at Defect Density by lgw · · Score: 2

      The OP includes the disclaimer that the C++ programming language "tops the list" because it has been in use for the longest and therefore includes the most lines of sample code from which to draw a conclusion...

      You've confused C and C++. C was 47%. C++ was 5%. It's almost as if they aren't the same language.

      --
      Socialism: a lie told by totalitarians and believed by fools.
  33. *Face palm* by p4nther2004 · · Score: 1

    So...we're measuring a language's security by the applications that were written in it?

    Anyone else have an issue with this?
    I call BS. You can NOT measure the language's security via the applications written it in. You MIGHT be able to gauge a languages popularity given the number of applications written for it (I do). You MIGHT be able to determine the effectiveness of a language *IF* you take the number of applications with vulnerabilities and divide that by the total number of applications written in that language.

    1. Re:*Face palm* by Anonymous Coward · · Score: 0

      No, you are completely wrong. If you really read TFA, you would know their methodology, which is still flaw but completely different from what you are assuming.

      To answer this question, the report compiled information from WhiteSource's database, which aggregates information on open source vulnerabilities from sources including the National Vulnerability Database (NVD), ...

      The problem with their method is that they count every single vulnerabilities that may or may not natively cause by the language (e.g. plug-in etc.). In other words, they don't look into detail of each vulnerability but rather count every single one as equal vulnerability.

    2. Re:*Face palm* by PPH · · Score: 1

      But the PP has a good point. I've written a number of client apps using Java. Which doesn't rank too highly. But I don't care. Because these apps don't go onto the Internet. You will never run one or look at the source code. And odds are against you sneaking an exploit in on a USB drive. Because there's a guy with an M-16 guarding the door where they are kept.

      Yeah, that's a pretty extreme example. But there are a lot of apps out there that don't have hooks built in for adware and some marketing department.

      --
      Have gnu, will travel.
    3. Re:*Face palm* by Anonymous Coward · · Score: 0

      Until this is modded higher, I've lost all faith in the slashdot community.

  34. Re: Hebrew by umghhh · · Score: 1

    indeed. The problem is - wherever you go, you either have moderating policies that are going direction censorship or you get idiocy like this or if unlucky you get both. Slash has a relatively well done moderating system. the idiocy I have not seen until your post made me unravel it to me - it has a proper score of -1. I go there only if I am moderating.

  35. wrong question by sad_ · · Score: 1

    i like the conclusion, all languages are good security wise, it just depends on how you use them.
    the questions actually should have been: which programmers use the most secure coding practises.

    --
    On a long enough timeline, the survival rate for everyone drops to zero.
    1. Re:wrong question by squiggleslash · · Score: 1

      The report then concludes that "the Winner Of Most Secure Programming Language is...no one and everyone...!

      I don't. It's the fucking Robert Mueller answer. "Gee, after being made to write this I guess the answer is... I dunno!"

      Some languages are less secure than others. Saying "Ah, but the programmer..." misses the point that the part that makes one language more secure than another is their ability to manage the programmer and ensure it's harder for them to make mistakes that would create vulnerabilities.

      C and PHP deserve to be condemned on that basis.

      --
      You are not alone. This is not normal. None of this is normal.
    2. Re:wrong question by TVmisGuided · · Score: 1

      TBH, the Robert Mueller answer was run through a filter of arguable value before its summary was released. But then, it appears that TFA was also run through a filter, with the same result: the reader is left with more questions than answers. (See also: multiple disclaimers regarding methodology in TFA.)

      Dropping political arguments, the core issue is how software is produced. Any programming or scripting language can be used to write unsafe and insecure code. All that's needed is sloppy design. How many developers are actually being taught how to design software, instead of just being taught the semantics of a given language? That's the crux of the issue.

      --
      All the world's an analog stage, and digital circuits play only bit parts.
    3. Re:wrong question by jma05 · · Score: 1

      > all languages are good security wise, it just depends on how you use them.

      No they are not.
      C is the worst high-level language security-wise because it does not even try - by design.
      Several classes of expensive and disastrous errors that routinely occur in C even when experienced programmers are coding, simply don't happen in most other languages, especially languages built for safety like Ada, Eiffel, Haskell and Rust.

    4. Re:wrong question by lgw · · Score: 1

      It's the fucking Robert Mueller answer.

      His answer was very clear. No US person conspired with Russia. Full stop. The deep state coup failed. Now it's time for the consequences for the traitors who attempted this coup.

      "You come at the king, you best not miss." - Omar

      --
      Socialism: a lie told by totalitarians and believed by fools.
    5. Re:wrong question by packrat0x · · Score: 1

      C is the worst high-level language security-wise

      If you're using C as a high-level language, you're using it wrong.
      It's portable assembly--two small steps above machine code.

      --
      227-3517
    6. Re:wrong question by Anonymous Coward · · Score: 0

      > If you're using C as a high-level language, you're using it wrong.
      > It's portable assembly--two small steps above machine code

      Ok, then you'd better not be using any of C's high-level abstractions (such as 'int' and 'double').

    7. Re:wrong question by jma05 · · Score: 1

      You can tell that to MOST of C programmers.

      And I agree with you in a sense. Most of C code should not have been written in C, but some other safer language.
      Only a tiny amount of C code, code that absolutely needs to run close to metal should actually be written in it.
      But the reality is that it is used as a general-purpose high-level language, which was a bad idea for quite a bit of time.

    8. Re:wrong question by Anonymous Coward · · Score: 0

      Here's the thing: C is simple. Or it used to be, anyway. Only 32 keywords. Yet with it, you could build enormously sophisticated programs if you know what you're doing.

      I remember the mid-90s when OOP was supposed to save us from the drudgery, the complexity, the insecurity of languages like C and enable us to build strong, secure software in less time. Seems like a joke now.

      C++ has grown fat + overcomplicated. Web applications have grown perplexingly diverse, with a JS framework for every minute of the week. Every alternative language comes with its own set of gotchas.

      It's really sad that nothing has emerged to take the place of C (dethrone it?). So I have to laugh every time someone comes along with a C killer (Java, C#, Rust, Go, etc.) and turn back to coding in C. It may not be exciting but like the faithful wife, it'll always be there.

    9. Re:wrong question by jma05 · · Score: 1

      C is simple. It had little in terms of productivity or safety built in. That made it difficult to build "enormously sophisticated" programs with. The costs were high after the programs became larger. The use of C for Internet facing programs was a disaster. No one in their right mind would use C for web apps. Even JS, with its framework fad, is still better than C. Just commit to one framework ecosystem. Don't fall for The Paradox of Choice. Leave the latest ones for hobbyists.

      C++ was created to mitigate some of the issues with C. It added some safety and productivity, but it was not enough. It stagnated for a long time, the C legacy held it back and its evolution was not managed as well as it should have. But as much as I dislike C++, I would still use a subset of it, if that was the only alternative to C. Fortunately, plenty of languages are far better alternatives to C++ for most things (most software can absorb a small performance penalty for safety and productivity).

      OOP is fine. Like everything, don't overdo it.

      The only reason C is not dethroned is because of dinosaurs and legacy reasons, not technical reasons. If you use basic Rust constructs, it generates the exact same machine code as C would, while providing you with much better safety and productivity than C++. C programmers won't switch because an average C programmer can't break habits. The next generation may slowly bypass C (the alternative may or may not be Rust, it is easy to get started with pointers, pushing problems downstream with an illusion of safety. But Rust borrow checker makes that upfront and is hard to grok - Go, Java or C++ are not C replacements).

      A reasonable intermediate alternative is to use C code generators like Nim and Crystal. But they are band-aids.

      The relationship between programmers and languages should not be in terms of loyalty in personal relationships. Languages are just tools. If programmers are incapable of solving their own problems with better tools, what legitimacy do they have in proposing to build tools for other people's problems?

  36. So just a big advertisement on Slashdot? by OneOfMany07 · · Score: 1

    So basically you say the numbers you're quoting are meaningless... So why quote them? Or build them in the first place?

    To compare a more vulnerable language from another I'd look for vulnerabilities per lines of live code. Not perfect, but it feels closer to useful.

    And perhaps number and severity of vulnerabilities per project for the same types of purpose. Web framework for web framework, etc. To highlight purpose differences and good preventative design practices.

    Even better would be hours to find and fix too. But probably hard to measure, and assign time like that for open source projects.

  37. Re:Kinda silly conclusion.- CRAP by hcs_$reboot · · Score: 1

    +1

    --
    Slashdot, fix the reply notifications... You won't get away with it...
  38. Microservices architecture by maxiposik · · Score: 0

    Quite an interesting topic I must admit. But it's important not to forget about the fact that some software development tools are made to solve specific problems and they are perfect for only a narrow range of tasks. Architecture is another important issue I think. Just spend some time reading about microservices architecture in the article and you'll get my point.

  39. Wrong Question!!! by Anonymous Coward · · Score: 0

    How about asking, which programming languages allow any hacker/malware to exploit almost any bug anywhere in the code, to gain full access to any computer?

    Answer: C/C++!!

  40. Re: Hebrew by Anonymous Coward · · Score: 0

    The problem is that many reasonable and intelligent comments get stuck at -1 because they didn't sit well with one of the cliques, so you're left with either browsing the cesspool at -1 to extract useful comments that got intentionally buried, or a censored version of Slashdot at 0, which is functionally no different to "lesser" sites other than the real filth is retained.

  41. Re:the problem is engineering competency relative by Anonymous Coward · · Score: 0

    There is no silver bullet.

    There is no silver bullet. But you can still have better results when some class of errors is ruled out at compile time or sooner. E.g. double de-allocation ruled out in a garbage collected language.

  42. Re: Sorry you don't like fact checking, it continu by Anonymous Coward · · Score: 0

    Too bad your mother didn't correct the biggest mistake of her life.

  43. Werman and woman by Anonymous Coward · · Score: 0

    The masculine prefix is were. We still use it for words like werewolf.

    I doubt we'll ever go back to archiac gendered terms because that's not how the feminist movement works. It is about tearing down perceived obstacles rather than gaining perspective through studying history. Women's studies is anti-academic and a waste of time, it has nothing to do with women and everything to do with selling garbage books.

  44. none by Anonymous Coward · · Score: 0

    security vulnerabilities are in the libraries, the parser, the interpreditor, the compiler or even in the operating system or the microprocessor..

    not in the language!

  45. It's the Programmer, Stupid by Anonymous Coward · · Score: 0

    Any programming language making pretensions of efficiency and flexibility, such that it might be attractive to Real Programmers, has ways to bypass whatever error-checking it might otherwise do. The older the language, the more back doors are available (because it's closer to the hardware), and the more likely that it's still used when flexibility and efficiency are demanded - as in system programming and high performance computing. Which, of course, is one of the reasons why C and FORTRAN are still around. Does anybody still work in assembler?

  46. ISO/IEC WG23 Programming Language Vulnerabilities by stevel · · Score: 1

    For some years now, an ISO/IEC working group, WG23, has been compiling lists of programming language vulnerabilities, both for specific languages and generically. The documents list for the WG is a bit of a mess, with the main link to the current draft getting a 404, but you can find links to sections on individual languages there. Some language committees are actively participating in WG23, but the C++ committee, I am told by another member, refuses to do so.

  47. Everyone's a winner! by phik · · Score: 1

    ...and loser. Sounds about right

  48. Re:the problem is engineering competency relative by Anonymous Coward · · Score: 0

    A good developer is not just about how well they use the tools at their disposal, but also the selection of the tools they use.

    For example, you are a carpenter, and you have a planer that you inherited that is a great planer, but only if you put the wood in just right. If not, the planer takes huge chunks out of the wood and spits it out at a high speed, often injuring the operator.

    You have no problems putting the wood in at just the right angle because you've gotten used to the tool.

    But your brother, who comes over to your workshop occasionally on Saturdays, is continually cussing the planer because it always ruins his wood, and on one or two occasions, its slammed the wood painfully into his hand and arm.

    You can wax rhapsodic about how wonderful the planer is...your brother, on the other hand, thinks it's a piece of shit because of his first impressions...and because he doesn't have time to invest in making it work right...he's only there occasionally on Saturdays.

    So taking this into account, if the choice of tool means that you have a higher potential of better outcomes, not just for you and other rockstar developers, but everyone on the team, then make that choice. Move away from the planer that gives great results if, and only if, you do it the way the tool expects. Move to the tools that give just as good result, but also have good safety guards so you can concentrate on getting the logic right and not worry about language errata.

  49. Good job on... by Anonymous Coward · · Score: 0

    ... posting meaningless garbage.

  50. Vulnerability is a feature by freshlimesoda · · Score: 1

    at least for some.. so what the problem?

    --
    I come to Slashdot only to read sigs. One you are reading is mine.
  51. PHP python. FUCK ALL GOOGLE ASSHOLE LICKERS by Anonymous Coward · · Score: 0

    Only Google loving testicle gobblers take the "python is more secure, not in the same class approach"

    Yeah, Google is fucking gay, pushed python like crazy, and that is the only reason it's used. Because retards who work for Google LOVE the CIA asset Google. Sheep love anything FBI asset Google does. Google could sacrifice children in front of you and they'd still 'not be in the same class'.

    Python is insecure as fuck and plenty of 0days exists for that piece of shit Google propped up language. It is owned on the regular. In fact, I'm going to own a bunch of more python boxes this week just to spite your dumbass, perhaps even try to poison git repositories and get some nice shit pushed up just for you cupcake

  52. PHP4 by Sarusa · · Score: 1

    PHP4 was the only programming language I can remember that was so insecure there was an industrywide push (GoPHP5) to get everyone off it and onto PHP5. Even if you were a good programmer the thing was full of holes, because it was just Rasmus's little hypertext preprocessor that had gotten totally out of control.

    Though *technically* it wasn't the language itself, just the interpreter - like ActionScript isn't the problem, it's the Flash player.

  53. Re:the problem is engineering competency relative by swillden · · Score: 2

    There is no silver bullet

    Duh. You're the only one I see here claiming there is.

    The claim is just that some bullets are a little safer that others, which is absolutely true.

    Good, secure, reliable and maintainable code is only produced by good, experienced and talented coders.

    So you're saying there is a silver bullet: Good, experienced and talented coders. Except, you know what? That bullet is also silver-plated at best. Electroplated, even. Good, experienced and talented coders also write insecure code. They write less of it, certainly, but they're not perfect.

    You know what works the best? A layered strategy:

    1. Top-notch programmers
    2. A security-focused development culture
    3. A focus on architectural defense in depth, so one vulnerability by itself isn't enough.
    4. A focus on security by design.
    5. Good secure implementation choices -- which includes picking languages and tools that make insecure implementation harder.
    6. Thorough design reviews, by other top-notch programmers
    7. Thorough code reviews, by other top-notch programmers
    8. Third-party security testing, however accomplished (contracting with security firms, open source + bug bounties, etc.)
    9. Fast patching of identified vulnerabilities (because even after doing all of the above, you're still going to have vulnerabilities).

    There is no silver bullet, true. Which is why all of the above are required -- and they still aren't really enough. Hiring rare, expensive programmers is not sufficient. And it's not actually necessary (though it's crucial to have access to at least some of them), and that's good because rare, expensive programmers are not scalable.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  54. Re:"Shanghai" Bill is a known liar many times over by Anonymous Coward · · Score: 0

    Sir, this is an Arby's!!

  55. Re: "Shanghai" Bill is a known liar many times ove by Anonymous Coward · · Score: 0

    Classic Bill

  56. Re:Kinda silly conclusion.- CRAP by Anonymous Coward · · Score: 0

    C was built to allow moving OS functions functions from machine to machine - as in a PDP-11.

    PDP-11 has 7 modes of addressing, but just 2 are here.
    p(i++) maps directly to machine instruction - yes just 2 machine instruction one is normal. One a specail case PUSH!

    p(--i) again just 2.. one being POP of stack R7 I believe.

    Really need to take time and laern the hisstory and actually write for the machines. PS: myfirst C program was for comm. Not hello world. It used Pointers of Pointers to handle multiple ring buffers. What yours?

  57. Re: the problem is engineering competency relative by dargaud · · Score: 1

    Also, since you can compile C with a C++ compiler, you should have MORE potential security holes in C++ than in C...

    --
    Non-Linux Penguins ?
  58. Re:the problem is engineering competency relative by Anonymous Coward · · Score: 0

    If only there was some kind of language which was designed to reduce memory safety bugs.

    Where are all the non-toy projects using Rust except Firefox? I do agree though, a language that no one uses will have the greatest security track record.

  59. Useless comparison by JoePete · · Score: 1

    Consider this: PHP relies on an interpreter, written in C. Does that mean every PHP vulnerability is in fact a C one? This is just another post that seems to mix the apples and oranges of differing languages, assuming them to be equal.

  60. None by Anonymous Coward · · Score: 0

    A programming language cant have security vulnerabilities.

  61. Re: Hebrew by Anonymous Coward · · Score: 0

    It would be trivial to mitigate most of that spam by leaving comments at 20 or so rows of visibility. Takes a quarter second to flick past it then. Currently they can take twenty screens worth of scroll space...

  62. Re: Hebrew by Anonymous Coward · · Score: 0

    Or a simple distance test from a new post to previously flagged spam posts. It's retarded simple, has been used for 30 years, and would instantly fix the problem.

    But this is /. where we're lucky if the website loads on something later than Netscape Navigator.

  63. Re: Hebrew by Anonymous Coward · · Score: 0

    indeed.
    The problem is - wherever you go, you either have moderating policies that are going direction censorship or you get idiocy like this

    Slashdot has a selective censorship policy.

    If you type in a message condemning the colored minorities (usually with the N-word) or a message berating a certain religion (of peace) your message will be nuked.

    But if you typed in swastika and all other anti-Jewish garbage your message will be kept.

    Remember, Slashdot is now owned by some middle eastern oil dude.

  64. Re: Hebrew by Anonymous Coward · · Score: 0

    > Remember, Slashdot is now owned by some middle eastern oil dude.

    Some muslim nígger?

  65. Freedom = Vulnerability by Anonymous Coward · · Score: 0

    The programming language that allows the most vulnerabilities is the one that allows you to actually control the computer.

    All of these "safe" languages get you further and further from actually controlling the computer... and help it to control you. Most of these "safe" languages attain safety by preventing you from doing things it considers undesirable. Soon enough this will include things like copying videos or visiting websites that the company doesn't want you to see. Because you do not control it at a fundamental level, you can only do what the computer sees fit to permit you to do.

    There are unpleasant tradeoffs between freedom and security. If you want to control the computer, rather than the computer controlling you, then you're going to have to accept some vulnerabilities. But people don't think like that anymore, and it's going to fuck everyone over, even those aware of this fact (because they are outnumbered).

  66. Re: Hebrew by Obfiscator · · Score: 1

    I browse continuously at -1. I rarely find reasonable and intelligent posts there which go against cliches. And I see plenty of both cliche and non-cliche posts at higher levels. I do not doubt that some anti-cliche posts do get buried, but I also would need more evidence to believe that it happens on a wide scale.

    Of course, I generally read stories a day or two late, when people are no longer moderating or commenting. Maybe comments that go against the cliches are buried quickly and then unburied by the time I make it to them.

    --
    "Nothing shocks me. I'm a scientist." -Indiana Jones