News for hackers. Stuff that matters.
Re:FFmpeg and a thousand fixes by pjmlp on Friday January 10, 2014 @02:50PM (#7038896)
The wonders of C:

- NULL pointer dereferences,

- Invalid pointer arithmetic leading to SIGSEGV due to unmapped memory access,

- Out-of-bounds reads and writes to stack, heap and static-based arrays,

- Invalid free() calls,

- Double free() calls over the same pointer,

- Division errors,

- Assertion failures,

- Use of uninitialized memory.

But hey, any good programmer always writes perfect C code.

Re:FFmpeg and a thousand fixes by haberman on Friday January 10, 2014 @04:37PM (#7039651)
Yeah, and you know, the Rust guys are actually doing some great work on making a language that solves some of these problems without giving up the advantages that make C programmers choose C.

Meanwhile, you are just being snarky on a message board while using a whole stack of software that was built by the programmers whose work you are criticizing.

Re:FFmpeg and a thousand fixes by ajross on Friday January 10, 2014 @07:11PM (#7040627)
Notably, and relevant to this post, the number of media codecs implemented is Rust is, I believe, zero. So perhaps the "some of these problems" is perhaps a bit spun.

Rust looks great for apps and middleware. I don't see ffmpeg or x264 (both of which are implemented with significant amounts of architecture-specific machine code -- an environment where neither C nor Rust is going to be able to help avoid the kind of bugs we're talking about) jumping ship any time this decade.

Re:FFmpeg and a thousand fixes by pcwalton on Friday January 10, 2014 @07:36PM (#7040757)
> Notably, and relevant to this post, the number of media codecs implemented is Rust is, I believe, zero.

I'm not claiming it's production quality, but I did write an MP2 decoder in an early version of Rust: https://github.com/pcwalton/fempeg

> Rust looks great for apps and middleware. I don't see ffmpeg or x264 (both of which are implemented with significant amounts of architecture-specific machine code -- an environment where neither C nor Rust is going to be able to help avoid the kind of bugs we're talking about) jumping ship any time this decade.

I grepped through the commit log for bugs marked "j00ru", as suggested in the post, and the first 20 I found were all mostly-architecture-independent, straightforward C code (often bitstream parsing code). This is the kind of problem that Rust is generally good at securing and making performant. None of the 20 patches I looked at touched any assembly code at all.

Re:FFmpeg and a thousand fixes by ajross on Friday January 10, 2014 @07:46PM (#7040804)
My (micro-) point was more that memory bugs are going to be inherent in a codec implementation because of the nature of hte problem, obviously not that all of the bugs are going to come from the assembly.

But the macro point is just empirical: the proof that Rust is an appropriate tool for codec development needs to come in the form of a production-quality codec implementation of some non-trivial standard (VP9, say), not a HN post.

Re:FFmpeg and a thousand fixes by pcwalton on Friday January 10, 2014 @07:49PM (#7040826)
> My (micro-) point was more that memory bugs are going to be inherent in a codec implementation because of the nature of hte problem, obviously not that all of the bugs are going to come from the assembly.

I don't understand this. If you write in a safe language, the compiler rules out the memory safety bugs, regardless of the problem.

> But the macro point is just empirical: the proof that Rust is an appropriate tool for codec development needs to come in the form of a production-quality codec implementation of some non-trivial standard (VP9, say), not a HN post.

Of course, no argument there. I am reasonably confident that we can get there with tuning though, based on our benchmarks so far. :)

Re:FFmpeg and a thousand fixes by hrjet on Friday January 10, 2014 @10:12PM (#7041339)
> I don't understand this. If you write in a safe language, the compiler rules out the memory safety bugs, regardless of the problem.

For performance sensitive code, you sometimes need to deliberately step out of the strongholds of the compiler.

Re:FFmpeg and a thousand fixes by dbaupp on Friday January 10, 2014 @10:28PM (#7041399)
Rust allows this via `unsafe` blocks, which essentially have C semantics (and allow the use of inline assembly too).
Re:FFmpeg and a thousand fixes by lhgaghl on Friday January 10, 2014 @10:21PM (#7041379)
> For performance sensitive code, you sometimes need to deliberately step out of the strongholds of the compiler.

...or just add more primitives to the language.

Re:FFmpeg and a thousand fixes by dbaupp on Friday January 10, 2014 @10:28PM (#7041401)
Why make the language larger when you can write identical things in libraries? (For Rust, you can use `unsafe` blocks to write very low-level primitives in normal user code and then expose a safe interface above them.)
Re:FFmpeg and a thousand fixes by fzltrp on Friday January 10, 2014 @11:35PM (#7041603)
It depends on what you guys are talking about.

If you mean "constant" primitives, i.e. things which don't require to expand the language grammar or type system, then it's a question of future prevalence of usage of said primitives. If they become almost ubiquitous to any project, then they obviously need to be included in the standard libs. If you're talking about a new language feature, that depends on how much that new feature may help design and write future libraries, and also what are the aims of said language. I understand that rust aims to become a safer system language, so any feature helping the design of low level, performance critical code should be welcome.

Re:FFmpeg and a thousand fixes by haberman on Friday January 10, 2014 @07:36PM (#7040751)
Yeah I don't think it's likely either. But it's a lot more likely than Modula-2, Ada, or any of the other languages that the OP would be arguing of in favor of C.

OP is criticizing without a plausible alternative; Rust is at least more plausible of an alternative. But I also suspect that C+ASM will continue to rule the day here, especially now that these fuzzing techniques are become more widespread and industrial-strength.

Re:FFmpeg and a thousand fixes by pcwalton on Friday January 10, 2014 @07:43PM (#7040790)
Fuzzing has found plenty of security vulnerabilities, to be sure, but I'm skeptical that it makes static analysis obsolete. Even if it were possible to write a theoretical fuzzer that would find every possible security vulnerability, it'd still be a whole lot cheaper, and easier, to just have a tool that enforces that you write the code correctly in the first place than to spend time writing it in an unsafe language and then developing a world-class fuzzer to find all the vulnerabilities.
Re:FFmpeg and a thousand fixes by haberman on Friday January 10, 2014 @07:59PM (#7040874)
Totally agree that static analysis is better than fuzzing for preventing memory-safety vulnerabilities. If ffmpeg can be written in Rust without any disadvantages compared to C, then that's an easier way to ensure memory safety than fuzzing. I would be surprised if Rust can compete against C anytime soon for writing codecs, but will be pleasantly surprised if it can!
Re:FFmpeg and a thousand fixes by gcr on Friday January 10, 2014 @06:52PM (#7040525)
This list of criticism is copied verbatim from the article's list of fixed bugs, not composed directly by the OP.
Re:FFmpeg and a thousand fixes by scott_s on Friday January 10, 2014 @07:03PM (#7040589)
The snark, however, is wholly original.
Re:FFmpeg and a thousand fixes by npsimons on Saturday January 11, 2014 @11:51AM (#7042987)
Considering it's entirely predictable and I've seen ones just like it a million times before, no, it's not. Relevant xkcd, esp. panel 2: https://xkcd.com/568/

"You will never find a programming language that frees you from the burden of clarifying your ideas."

Re:FFmpeg and a thousand fixes by Nitramp on Friday January 10, 2014 @07:41PM (#7040780)
Criticism is good if valid, and it is in this case.
Re:FFmpeg and a thousand fixes by yetanotherphd on Saturday January 11, 2014 @02:36AM (#7041955)
I don't think the poster was being snarkey, they were merely pointing out how hard it is to write correct C code. And there was no criticism of the developers, in fact the post implied that the bugs were the fault of C and not the developers.
Re:FFmpeg and a thousand fixes by vinkelhake on Friday January 10, 2014 @02:55PM (#7038939)
Really breaking new ground here. What should FFmpeg have been written in? I can think of a few candidates, but I think they share a number of those "wonders".
Re:FFmpeg and a thousand fixes by Perseids on Friday January 10, 2014 @04:01PM (#7039350)
On the 30C3 there was a talk about a C Compiler (actually an llvm optimization plugin) that can eliminate nearly every memory management related vulnerability by adding memory checks. The penalty is only a 100% increase in runtime.

> If you're a C programmer and somebody says like: I've that optimization that makes your program 3% faster you go: wow! Then you come and say: well, now I make it half as fast you go: w00t?! But then you remember that people actually use ruby to serve web pages.

I'd say this would be actually worth it for a far more secure FFmpeg.

https://www.youtube.com/watch?v=2ybcByjNlq8

Re:FFmpeg and a thousand fixes by StavrosK on Friday January 10, 2014 @04:19PM (#7039483)
The difference is that FFMpeg is very, very CPU-bound, taking four hours instead of two to encode a movie is a big hassle. On the other hand, not many people use a world-facing FFmpeg instance to submit jobs to. I don't see why security should trump speed here.
Re:FFmpeg and a thousand fixes by Perseids on Friday January 10, 2014 @04:25PM (#7039539)
Re:FFmpeg and a thousand fixes by Crito on Friday January 10, 2014 @04:34PM (#7039618)
For realtime playback locally sure. I don't think there are many/any public-facing systems backed by VLC. Presumably VLC prioritizes speed over security.
Re:FFmpeg and a thousand fixes by Perseids on Friday January 10, 2014 @04:52PM (#7039755)
Oh, that was the point being made. My view is that VLC essentially is a public facing system, in the same sense that my browser is a public facing system. Sure, it is not as easy to do a targeted attack against my VLC as against my mail client (or against the nginx on my server). But it is fed a lot of untrusted data. The same goes for Chrome, which also uses FFmpeg according to the article.
Re:FFmpeg and a thousand fixes by bane on Friday January 10, 2014 @10:01PM (#7041304)
or plex, which i believe is ffmpeg based for real-time transcoding
Re:FFmpeg and a thousand fixes by vezzy-fnord on Friday January 10, 2014 @04:40PM (#7039667)
There's also AT&T Labs' memory-safe dialect of C called Cyclone: http://cyclone.thelanguage.org/

It's been around since 2006, but I haven't really heard of anyone using it. I wonder why.

Re:FFmpeg and a thousand fixes by berdario on Friday January 10, 2014 @06:35PM (#7040434)
Cyclone has been dead since years (the last release is dated 5 May 2006)

It never compiled on 64bit architectures, and to get it to compile with 4.0 or 4.1 (newer versions of gcc won't work) you need to fetch it from SVN (last commit is dated May 2009)... and obviously: no distribution still ship such an old version of the build tools... you'd need something like debian lenny, which does not even receive security updates anymore

Re:FFmpeg and a thousand fixes by al2o3cr on Friday January 10, 2014 @07:39PM (#7040768)
"that can eliminate nearly every memory management related vulnerability"

This is like saying "my bulletproof vest will stop nearly every round fired at it". Too bad it only takes ONE...

Re:FFmpeg and a thousand fixes by fzltrp on Friday January 10, 2014 @11:47PM (#7041627)
So I suppose you'd rather not wear any bulletproof vest?
Re:FFmpeg and a thousand fixes by pjmlp on Friday January 10, 2014 @03:06PM (#7039018)
Before C escaped UNIX, there used to be safer system programming languages like Modula-2, just to cite an example.

But Modula-2 had Lilith to offer, while C had UNIX.

Re:FFmpeg and a thousand fixes by vinkelhake on Friday January 10, 2014 @03:28PM (#7039141)
There are other things to consider as well.

Compiler support across various platforms: are there compilers available and do they generate good code?

Mindshare: how big is the intersection of people who know the language and have the domain knowledge to contribute to the project?

Re:FFmpeg and a thousand fixes by pjmlp on Friday January 10, 2014 @03:33PM (#7039177)
When C was UNIX only, the generated code quality also had a lot to be desired.
Re:FFmpeg and a thousand fixes by vinkelhake on Friday January 10, 2014 @04:21PM (#7039505)
Sorry, I don't get what you're arguing here. Are you saying the C-compilers generated poor code when the FFmpeg project was started back in 2000? Are you arguing that if the FFmpeg project had used Modula-2, this would have sparked more work on Modula-2 compilers?

Or are you perhaps just wishing that history had taken a different turn?

Re:FFmpeg and a thousand fixes by Crito on Friday January 10, 2014 @04:24PM (#7039527)
The initial release of FFmpeg was in 2000, well after that stage in C's life.
Re:FFmpeg and a thousand fixes by dgesang on Friday January 10, 2014 @09:04PM (#7041108)
> What should FFmpeg have been written in?

There'll be a HN topic A FFmpeg reimplementation in JavaScript soon enough ...

Re:FFmpeg and a thousand fixes by morsch on Friday January 10, 2014 @09:40PM (#7041236)
Process videos in browser using FFmpeg compiled to JavaScript (56 days ago) https://news.ycombinator.com/item?id=6739582
Re:FFmpeg and a thousand fixes by lmm on Friday January 10, 2014 @03:03PM (#7038989)
The only options I could think of that're mature enough are OCaml and Haskell. I'm aware of video transcoders in both, though nothing with anything like the format support of ffmpeg.
Re:FFmpeg and a thousand fixes by colanderman on Friday January 10, 2014 @03:57PM (#7039322)
OCaml I know doesn't support SIMD acceleration. Not sure about Haskell. You need SIMD support to get anything decently fast in the field of video/audio manipulation.
Re:FFmpeg and a thousand fixes by trobertson on Friday January 10, 2014 @04:32PM (#7039603)
Haskell's GHC is working on it [1]. It's not primetime (not even close, really), but it does work with modified libraries and compiling to llvm.

There is also Intel Lab's HRC (Haskell Research Compiler) that does have SIMD capabilities [2]. Unfortunately, there isn't a public release of HRC yet.

---

[1]: https://ghc.haskell.org/trac/ghc/wiki/SIMD

[2]: http://dorchard.wordpress.com/2013/10/14/automatic-simd-vect...

Re:FFmpeg and a thousand fixes by pjmlp on Friday January 10, 2014 @04:08PM (#7039402)
That is a compiler issue, not language.

ISO/ANSI C also don't support SIMD, you have to go down to Assembly when writing portable code across C compilers.

Re:FFmpeg and a thousand fixes by x0x0 on Friday January 10, 2014 @04:16PM (#7039462)
if we're willing to posit the existence of unwritten software that makes simd work from ocaml or haskell, we could also just assume the existence of C that checks memory accesses for zero cost

also, I think you may be able to do reasonably well with icc and not much assembly

Re:FFmpeg and a thousand fixes by colanderman on Friday January 10, 2014 @04:35PM (#7039630)
Ya, it's definitely a language issue; barring super-intelligent compilers that can vectorize things on their own (which GCC does for certain cases), you need a means to express vectorizable operations.

You don't need to work at the assembly level for this; you just need a language that can express vector operations in a way that doesn't require a compiler to solve the halting problem, and you need a compiler that knows how to compile such operations to SIMD.

Yes, ANSI C doesn't have such a construct, but GNU C (which I'd bet 95% of open-source code uses anyway) does.

Re:FFmpeg and a thousand fixes by astrange on Saturday January 11, 2014 @01:28AM (#7041826)
Nearly all SIMD in ffmpeg/libav/x264 is just written in assembly. Back in the day, gcc's code generation for even x86 SIMD intrinsic functions was too poor to consider using it.

(Plus x86's intrinsics are just plain ugly. It's easier to read asm.)

As for the architecture-independent SIMD in GNU C, it's something, but not quite flexible enough. Even C is really not a good enough language to consider implementing this in, because it has an overly-conservative memory model when it comes to char *, which aliases all other memory. For a library dedicated to parsing things which come in the form of bytestreams and 8-bit pixels, this means that most compiler optimizations are defeated right in the inner loops where you'd need them.

Re:FFmpeg and a thousand fixes by nitrogen on Saturday January 11, 2014 @02:10AM (#7041907)
Isn't that what the restrict keyword is for?
Re:FFmpeg and a thousand fixes by astrange on Saturday January 11, 2014 @02:46PM (#7043511)
gcc mostly ignores restrict, though it's got a little better in recent versions. icc uses it a little more.

But restrict is only good in specific situations - if you have three pointers, and #2 can alias #1 but not #3, there's no way to express that.

It also tends to be used on function arguments, not at some higher up point of declaration. So when compilers inline the function and can see more global info about it, the restrict gets lost and optimization gets worse.

I think some kind of stronger 'typedef' would be better.

Re:FFmpeg and a thousand fixes by panzi on Saturday January 11, 2014 @08:47AM (#7042560)
Yes, but how long does this exist? My guess would be that it isn't really used (yet) in ffmpeg.
Re:FFmpeg and a thousand fixes by anon1385 on Saturday January 11, 2014 @12:11PM (#7043038)
Since C99 so 15 years, which is older than ffmpeg.
Re:FFmpeg and a thousand fixes by panzi on Saturday January 11, 2014 @12:50PM (#7043153)
What I meant is how long is it supported by compilers. I know its by GCC, but I think it's not by MSCV. Is it possible to compile ffmpeg with MSVC? But ok, one could use it and just #define it away for crappy compilers.
Re:FFmpeg and a thousand fixes by jasomill on Saturday January 11, 2014 @07:20PM (#7044493)
According to MSDN, Visual C++ has supported the equivalent __restrict keyword since at least 2005 [1], and according to the ffmpeg documentation [2], "FFmpeg can be built with MSVC 2012 or earlier using a C99-to-C89 conversion utility and wrapper, or with MSVC 2013 and ICL natively."

[1] http://msdn.microsoft.com/en-us/library/5ft82fed(v=vs.80).as...

[2] http://www.ffmpeg.org/platform.html

Re:FFmpeg and a thousand fixes by panzi on Saturday January 11, 2014 @08:50AM (#7042567)
Well, expressions like these look to me very clearly like a pattern that can be implemented using SIMD instructions:

    map (uncurry (+)) (zip [1,2,3] [4,5,6])
I guess because of these standard functions and the fact that everything in Haskell is immutable and side effect free it should be comparably easy to do SIMD optimizations. It's only a guess, though.
Re:FFmpeg and a thousand fixes by colanderman on Saturday January 11, 2014 @04:54PM (#7043924)
Not if [1,2,3] and [4,5,6] are actually lists, or aren't aligned properly, or aren't the correct bitwidth, or the expression can't saturate/wrap, etc.

The compiler needs to be able to see that the data conforms to all those restrictions (possibly more), and that's not a trivial thing to do.

Re:FFmpeg and a thousand fixes by panzi on Saturday January 11, 2014 @08:49PM (#7044767)
Shouldn't the compiler be able to see this? After all, Haskell is statically typed. Ok, maybe the compiler (optimizer) needs to look across function boundaries, but it should be possible, shouldn't it?
Re:FFmpeg and a thousand fixes by colanderman on Saturday January 11, 2014 @11:26PM (#7045142)
In the simplest cases, sure. But inferring that amount of information in general programs is very much an open problem. Even with GCC, which incorporates what is roughly (at least within an order of magnitude) state-of-the-art autovectorization, you have to be careful how you write your loops and structure your arrays or the compiler won't pick up on it.

Here's an example in Haskell: consider the case that the list of numbers was generated from a list of some other structure; something like "map x coordinates" to get all the X values from a list of X-Y-Z coordinates. For vectorization to work, those values need to be packed together in memory; however the structure isn't organized as such (at best, you'd have XYZXYZXYZ). That means a nontrivial memory copy, which will cost much more than the vectorization will gain you. So the structure needs to be reorganized, but then that might cause other pessimizations.

Re:FFmpeg and a thousand fixes by panzi on Sunday January 12, 2014 @08:27AM (#7045936)
I see.
Re:FFmpeg and a thousand fixes by sliverstorm on Friday January 10, 2014 @03:06PM (#7039021)
Clearly the whole project should be scrapped and rewritten in Ruby ;)
Re:FFmpeg and a thousand fixes by Raphael_Amiard on Friday January 10, 2014 @06:11PM (#7040306)
Ada would have been a good one, and mature enough. :)
Re:FFmpeg and a thousand fixes by lhgaghl on Friday January 10, 2014 @07:43PM (#7040791)
A) Ada isn't sexy and unproven B) Most people who do mad algorithmz don't give a fuck if they introduce security vulns (even if they do, they don't know that other languages exist other than C), nor do they care about other languages (probably are put off by the facts that 1. other mainstream languages don't support mad algorithmz (Ada isn't mainstream) 2. if you look up any mainstream programming language you get nothing but dogma)
Re:FFmpeg and a thousand fixes by rossy on Friday January 10, 2014 @08:24PM (#7040982)
And yet, FFmpeg couldn't really have been written in anything else. A 5% difference in performance could be the difference between a 1080p video decoding in real time on a low powered device like a phone or a netbook and the video decoding slightly slower than real time. Improvements to FFmpeg made my old netbook work as a video player. I don't think I would have been able to use an FFmpeg-based player at all if it had the overhead of being written in a more memory safe language.
Re:FFmpeg and a thousand fixes by pjmlp on Saturday January 11, 2014 @04:17AM (#7042121)
Those 5% are written in Assembly anyway. C does not expose SIMD, non portable compiler specific extensions do.

For the remaining 95% of the code, since 1978 one could use Modula-2, Ada, Pascal dialects, SafeC and many other system programming languages.

Back in the early 80's, C compilers were as crap as any other system programming languages when generating code for home computers.

Re:FFmpeg and a thousand fixes by taeric on Friday January 10, 2014 @02:51PM (#7038907)
You forgot:

- One hell of an awesome encoder/decoder library that can hit more formats than I knew existed.

:)

Re:FFmpeg and a thousand fixes by atmosx on Friday January 10, 2014 @03:06PM (#7039019)
That's not a bug, that's a feature (people just don't realize the POTENTIAL LOL).
Re:FFmpeg and a thousand fixes by userbinator on Saturday January 11, 2014 @07:25AM (#7042414)
From one of the linked blogs containing details:

> There were lots of dynamic allocations

This surprises me; a lot of codecs are specified in such as way as to not require dynamic allocation at all.

I hypothesise that if it was written in another language, we would just see bugs appear in a different form.

Re:FFmpeg and a thousand fixes by npsimons on Saturday January 11, 2014 @11:59AM (#7043005)
I hypothesise that if it was written in another language, we would just see bugs appear in a different form.

Exactly! Programming is hard to get right, no matter what the language. I hate these people who come along saying "hurr, durr, C sucks, project X should have been written in language Y!" All the while ignoring the facts that a) they can go and rewrite X in Y any time they like, and b) if it was written in Y, people would be bitching about issues with Y (eg, speed). Shortsightedness and lack of will to put your code where your mouth is are two of the most despicable traits a programmer can have.

Re:FFmpeg and a thousand fixes by joosters on Friday January 10, 2014 @03:28PM (#7039144)
Troll.
Re:FFmpeg and a thousand fixes by gcr on Friday January 10, 2014 @06:47PM (#7040485)
Would you really want to try and write a high-quality video encoder in any other language? Now surely you aren't recommending switching to hand-tuned assembly! :)
Re:FFmpeg and a thousand fixes by mkramlich on Friday January 10, 2014 @04:31PM (#7039598)
this is why Java exploded in the enterprise backend niche
Re:FFmpeg and a thousand fixes by verroq on Friday January 10, 2014 @09:32PM (#7041203)
C++11
Re:FFmpeg and a thousand fixes by gregcrv on Friday January 10, 2014 @03:08PM (#7039042)
programmers are people
Re:FFmpeg and a thousand fixes by Crito on Friday January 10, 2014 @04:34PM (#7039625)
Programmers are people, but how many python programmers run into double-free bugs?

Language has a lot to do with what sort of issues programmers will have to tackle.

Re:FFmpeg and a thousand fixes by kbenson on Friday January 10, 2014 @06:23PM (#7040368)
At the same time, how many video players have been written in pure python? Assuming the number is non-zero, how many get any use?

Using python as an example here makes little sense, since the constraints of the problem domain make it a particularly poor choice. Try choosing a language that doesn't suffer as much in performance (future Rust, maybe?).

Re:FFmpeg and a thousand fixes by Crito on Friday January 10, 2014 @07:17PM (#7040654)
Oh, I agree. I think that C was the right choice for FFmpeg, at least at the time, and I do not think that python would be the right choice for it today.

I'm just making a point that language is relevant when discussing the type and frequency of errors that are surfacing in a project.

Re:FFmpeg and a thousand fixes by ID_HOME on Friday January 10, 2014 @03:04PM (#7038997)
I guess the correct solution is to use Java? Then we can bitch about run away garbage collection. How about Python then? It's really "fast". Or we can program it in snide remarks on forums, then we don't even have to write any working code to feel superior.
Re:FFmpeg and a thousand fixes by pjmlp on Friday January 10, 2014 @03:07PM (#7039026)
Modula-2, Ada just to cite two possible examples.
Re:FFmpeg and a thousand fixes by vezzy-fnord on Friday January 10, 2014 @04:39PM (#7039658)
This is the first time I've ever seen anyone (seriously?) recommend Ada for a project like this.
Re:FFmpeg and a thousand fixes by lhgaghl on Friday January 10, 2014 @07:38PM (#7040764)
If Java is somehow a problem, you can simply make a language without stack smashing but also without GC. Nobody has done this so far because nobody gives a shit about the fact that every program we use is full of remote code vulns and will never be fixed.
Re:FFmpeg and a thousand fixes by thristian on Friday January 10, 2014 @09:23PM (#7041173)
You haven't been reading all the Rust release announcement threads, have you?
Re:FFmpeg and a thousand fixes by pjmlp on Saturday January 11, 2014 @04:09AM (#7042107)
The thing is, those languages do exist since C does.

But the OSs created with them weren't as fancy as UNIX was at the time, or used hardware more costly than the PDP-11.

Re:FFmpeg and a thousand fixes by lhgaghl on Friday January 10, 2014 @10:19PM (#7041371)
I wasn't even taking Rust into consideration. One could make a language the way I said with no problem in a small amount of time. I'm talking no novel stuff. Arrays bound checked at runtime. No attempt at code correctness even has to be offered, get rid of remote code execution vulns, and suddenly you watch HD videos without fearing for your life. It simply isn't done because nobody cares. It's not sexy enough. It's been 30 years now.