Slashdot Mirror


Microsoft Previews Compiler-as-a-Service Software

angry tapir writes "Microsoft will release a Community Technology Preview of a new type of compiler its researchers have been building — code-named Project Roslyn — a company executive announced Thursday. Roslyn is a compiler for C# and Visual Basic with a set of APIs that developers can use to fine-tune their code. It resembles a model developed by the Mono Project, in which the information the compiler generates about a program can be reused as a library."

171 comments

  1. I thought VisualBASIC was dead... by Compaqt · · Score: 1

    Didn't NetCraft confirm it?

    --
    I'm not a lawyer, but I play one on the Internet. Blog
    1. Re:I thought VisualBASIC was dead... by dririan · · Score: 1

      No no, you're thinking C#. Which is not in any way to be confused with C3. Which is not at all a typo that completely slipped through... Nothing to see here. Move along. /s VB6 is dead, but VB.NET is still alive and kicking (sadly) both as a transitional language from VB6 and as a language for new projects, but IIRC Microsoft suggested C# and avoiding VB.NET where possible.

    2. Re:I thought VisualBASIC was dead... by Pino+Grigio · · Score: 1

      Why "sadly" with visual basic .NET? I haven't used it for a good few years, but it's only superficially different from C#.

    3. Re:I thought VisualBASIC was dead... by cbhacking · · Score: 1

      There are some who claim that its somewhat verbose syntax ('dim varname as vartype' instead of 'vartype varname;' for example) and Basic-like loop and code structure make it an inherently worse language. It looks kind of ugly to an experienced developer in C-style languages, but I honestly don't see much basis for disliking it beyond a degree of elitism that drives one to scorn a highly readable "easy to learn" language.

      Under the covers, aside from a few assemblies specificlaly to aid compatibility with legacy VB code, VB.NET is just another .NET language. It's a little less powerful than C# in some ways - for example, I don't think it allows unsafe code bloacks (direct pointer access) - but it's not any slower, or less efficient, or less compatible (it works in Mono, incidentally), or anything of that nature.

      --
      There's no place I could be, since I've found Serenity...
    4. Re:I thought VisualBASIC was dead... by Anonymous Coward · · Score: 1

      ...I honestly don't see much basis for disliking it beyond a degree of elitism that drives one to scorn a highly readable "easy to learn" language.

      I know someone, a Perl programmer who thinks Python is too "childish" - IIRC is how he put it.

      I think it's a bit ironic that many programmers and other CS types have this elitism towards easy to learn language when the whole point of computer languages was to make it easier for the programmer. No one seems to remember their CS history and how human readable languages were developed because assembly and machine code was just too cumbersome.

    5. Re:I thought VisualBASIC was dead... by julesh · · Score: 1

      The problem is that producing a programming language with verbose keywords and so on doesn't actually make it any easier to work with, at least once you get beyond trivial levels. The easiness is superficial. Once you get beyond the surface level (which most people can do in a matter of just a few weeks working with a language) the verbosity just gets in the way of seeing the truly important things. And the consistency of c-like syntax means there's actually less stuff to remember. How do you end the block of instructions for a while loop? Oh, yes, '}'. The same as every other block. In BASIC, however, I have to stop and think, is it 'END WHILE'? 'NEXT'? Ah, no, it's 'WEND'. 'NEXT' is for 'FOR' loops, and 'END (keyword)' is for 'IF'.

      If verbosity were the key to making programming languages understandable, COBOL would have been the last language we ever needed.

    6. Re:I thought VisualBASIC was dead... by ashkante · · Score: 1

      Those wimps don't know the meaning of the world "elitism"! Real programmers use butterflies!

    7. Re:I thought VisualBASIC was dead... by Anonymous Coward · · Score: 0

      This meme hasn't been funny for a long while now, but if you won't let it die, please use it properly. Netcraft cannot confirm VB dead, because VB is not an online service and the IIS does not announce supported languages in the http headers.

    8. Re:I thought VisualBASIC was dead... by Dr_Barnowl · · Score: 2

      My main reason for disliking VB.NET is I don't want to wreck my VB6 skills.

      While I wouldn't voluntarily want to go back to VB6 development ... well, it's something to fall back on. There's so much VB6 software out there, that it's the COBOL of the future - people are likely to be wanting skilled VB6 developers and they are probably going to have to pay through the nose for them. A nice little pension plan.

      VB.NET is close enough to VB6 in syntax, but different enough to ruin my memory of VB6. So I have avoided it as much as possible. As another poster points out, it's essentially C# with some different syntax sugar.

    9. Re:I thought VisualBASIC was dead... by mangu · · Score: 2

      the whole point of computer languages was to make it easier for the programmer

      That's very true and that's why I use Python a lot, despite having learned to write software in the 1970s, in FORTRAN in an IBM/370.

      However, there's a moment when ease of use limits the programmer if he needs to go to the limits of performance. We are used to think that we have CPU enough, so it's not necessary to optimize for performance anymore.

      That might be true for business software, under some circumstances. Scientific and engineering software, OTOH, could still use a lot more CPU than what we have right now. This means you may need to reorganize your data structures in some non-obvious way.

      When you need to invert a matrix, for instance, which is one of the most common operations you do in number crunching, you have to keep your data carefully aligned, you need to take advantage of what vector operations your hardware does and consider how the cache is handled. You cannot do this with object oriented programming, you need to define memory allocation and use pointers to manipulate data. Object oriented programming will not work in this case.

      I may use Python to develop algorithms, but for doing real jobs only C or Fortran will do.

    10. Re:I thought VisualBASIC was dead... by WrongSizeGlass · · Score: 1

      While I wouldn't voluntarily want to go back to VB6 development ... well, it's something to fall back on. There's so much VB6 software out there, that it's the COBOL of the future - people are likely to be wanting skilled VB6 developers and they are probably going to have to pay through the nose for them. A nice little pension plan.

      There will be a market for VB6 programmers for a while. I'd be willing to bet there will be a nice market niche for individuals or small firms that do nothing but VB6 to <insert new language> conversions for years to come.

      I've finally convinced one of my clients to port their code over from VB6 to *something else* (I've been trying to get them to switch since 2006). Their VB6 programmer/Access person is retiring next July and they've finally seen the light that their VB6/Access solution needs to be upgraded (their DB is 1.6GB, which is large for an Access DB). We still need to have several meetings to discuss what direction they're going to go (what language, what DB platform, if they're going to simply recreate their existing app or add long overdue features, etc), but they have no sense of urgency (our next meeting is tentatively scheduled for Nov but may be moved to Dec or Jan).

      All their computers are running XP & Office 2003 (lots of VBA macros). Their server is SBS 2003. Their code isn't documented and there is no DB map (or data normalization). I bought them VS 2005, an assortment of .NET & MS SQL books and a new development machine in 2006 but they didn't take advantage of it. I did the same thing with VS 2008 in 2009, but they still sat on their hands. Now they are curious about Win 8 but have "heard things" that development may be different for it and want to be sure they don't rush into anything.

      Based on my client's track record of taking years to make any kind of decision I'm betting they don't settle on a solution until well after their programmer retires. By then they'll have to contract a company to convert everything over for them and hire a new programmer that hopefully can function as a DB admin. This whole mess may be over in 2 - 3 years (if they make a decision soon).

    11. Re:I thought VisualBASIC was dead... by Anonymous Coward · · Score: 0

      their DB is 1.6GB, which is large for an Access DB

      I think I vaguely remember something about a hard 2GB for Access databases. Assuming my subconscious didn't just make that up, sounds like you got them to switch just in time.

    12. Re:I thought VisualBASIC was dead... by aix+tom · · Score: 1

      C3 is a typo? Aww, man, I though it might be the next thing, the thing between C# and the beautiful new C4 which completely blows up your computer.

    13. Re:I thought VisualBASIC was dead... by larry+bagina · · Score: 1
      VB6 (and Pascal) are like an overbearing mom that make you eat your vegetables, doesn't let you drink caffeine, and makes you go to bed by 9'o-clock. Also, you're locked in a padded room so you don't hurt yourself. C is like the cool dad. He gives you money and lets you decide how to spend it. If you want to spend it on peas and carrots, fine. If you want to spend it on coke and whores, even better.

      Some people are incapable of making choices for themselves.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    14. Re:I thought VisualBASIC was dead... by Anonymous Coward · · Score: 0

      Nope, still alive & well in the business world. And while I still have a tendency to scoff at it and think of it as a "plastic" language, I work with it 8 hours a day and it pays my bills.

    15. Re:I thought VisualBASIC was dead... by Fnord666 · · Score: 1

      No no, you're thinking C#. Which is not in any way to be confused with C3. Which is not at all a typo that completely slipped through... Nothing to see here.

      That's a bit harsh, don't you think? I mean I could see the criticism if this were a professional news outlet rather than someone's personal blog...

      --
      'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    16. Re:I thought VisualBASIC was dead... by LateArthurDent · · Score: 1

      There's so much VB6 software out there, that it's the COBOL of the future

      Most COBOL software is extremely complex stuff running on mainframes of banks and insurance companies.

      Most VB6 software is something that was coded in 15 minutes to fill a need in a lab computer, or a frontend to some command-line program that isn't written in VB. This is not me looking down upon VB6, that's just what VB6 was designed to do: it's easy to learn and you could get something running on it fast, so that's what people did when they just needed something quick. The result of it is that if somebody needs to fix a VB6 app, it's going to be cheaper to hire a common C# developer to recreate it than to pay COBOL money to VB6 developers. They're not complex beasts that need to be extremely well-understood, zero errors, on a machine that can't afford downtime.

    17. Re:I thought VisualBASIC was dead... by dririan · · Score: 1

      That's like saying that Python and Perl are only superficially different. (Both can run on the Parrot VM, too.) They have wildly different syntaxes. The only thing they really have in common is the .NET stuff, which only means they interoperate easily and share the same pros/cons that are inherited from .NET. C# looks nothing like VB6, VB.NET (quite intentionally) looks damn near identical to VB6.

    18. Re:I thought VisualBASIC was dead... by WorBlux · · Score: 1

      (does? (lisp (take it)) too-far)

    19. Re:I thought VisualBASIC was dead... by Anonymous Coward · · Score: 0

      I think they meant it's a CLR compiler. So C#.NET & VB.NET. VB.NET is not dead, it's just an oldschool skin around a new system.

    20. Re:I thought VisualBASIC was dead... by StormReaver · · Score: 1

      You cannot do this with object oriented programming

      This is done all the time with object oriented programming. Perhaps what you meant to say is that you can't do this with object oriented languages that hide pointer arithmetic. That would be true. It would also be true that you can't do it with procedural languages that hide pointer arithmetic.

    21. Re:I thought VisualBASIC was dead... by mangu · · Score: 1

      Perhaps what you meant to say is that you can't do this with object oriented languages that hide pointer arithmetic

      Yes, that was what I meant. You could do it with objects in C++.

      Problem is C++ has so many quirks that what I often do is to think in objects but implement in plain C. Object orientation is a principle that you can apply even if your programming language doesn't support objects.

    22. Re:I thought VisualBASIC was dead... by rev0lt · · Score: 1

      You know, COBOL still is the COBOL of the future... There is a ton of COBOL code being run as middleware for Java servlets. The COBOL OOP revamps are a niche (and thank god, because object oriented COBOL is like watching a terror movie), but there is a lot of investment on legacy conversion to Linux and .NET, and middleware interfacing and/or graphical revamps. You'll still have plenty of COBOL when the last VB6 application exits.

    23. Re:I thought VisualBASIC was dead... by Pino+Grigio · · Score: 1

      The most important aspect of .NET is the libraries, and they're the same across both languages. I mean literally the same. The syntax is a bit different, but that's all. A C# to VB.NET source code converter is pretty trivial to construct. I don't think you could say the same for Python and Perl. And VB6 and VB.NET are totally different animals. VB.NET is much closer to C# than it is to VB6.

    24. Re:I thought VisualBASIC was dead... by Pino+Grigio · · Score: 1

      Intellisense usually takes care of that for you.

    25. Re:I thought VisualBASIC was dead... by dririan · · Score: 1

      That's true, but sharing the same libraries doesn't mean too much. You could make the argument that Python and Perl can share libraries (so long as they're written in C, they could be exactly the same for both as well; interfaces could be written the same for both easily so that utilizing the library would be the same for both, although that's not always the case for C# and VB.NET). My point was more towards the syntax differences, not the libraries. Also, VB.NET has its own runtime library that runs on .NET as well (see http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.aspx), which is certainly not shared with C#.

      Also, there's no way that VB.NET is closer to C# than VB6, except for automagically working with everything .NET. And even then, the syntax differences are too big to ignore. Look at all the code snippets on MSDN; they're wildly different between VB.NET and C# quite a few times. Look at the VB6 to VB.NET migrator, it's extremely trivial (only really converting everything to use .NET).

    26. Re:I thought VisualBASIC was dead... by Pino+Grigio · · Score: 0

      Oh come on! Just admitting that I'm right would be enough. I promise not to rub it in.

      I must assume you've never used one of the three language of which we speak, because I have at work and there's absolutely no essential difference between VB.NET and C#, but there are huge differences between VB.NET and VB 6, so much so that no tool is able to convert from VB 6 to VB.NET with any kind-of maintainable (and working) result.

      So please, don't argue just for the hell of it. Speak of what you know, not what you assume.

    27. Re:I thought VisualBASIC was dead... by dririan · · Score: 1

      Ah, yes, I must not know what I'm talking about. Except that's not the case here. I've directly migrated quite a few moderate sized projects from VB6 to VB.NET. Bullshit on no tool converting properly. Granted, the code needs a decent amount of touch up after the fact, but it could be much worse. Moreover, just because you can convert X to Y doesn't make X the same as Y. I've worked with C# 1.2, 2.0, and 3.0. (Alright, you caught me. I've never worked with LINQ. My bad...) I've only slightly worked with VB.NET past aforementioned conversions. I sure as hell don't know everything about them, but I sure as hell know enough to know that C# and VB.NET are not more similar than VB6 and VB.NET. Just because something's running on the same underlying framework doesn't make them the same. I don't hear you arguing that C and C++ are the same, because they both (can) run on the same systems (pick your favorite).

      So please, don't make straw man arguments and make a real argument besides "YOU HAVE NO EXPERIENCE LOL", and certainly not if you really have no idea how much experience someone has.

    28. Re:I thought VisualBASIC was dead... by Pino+Grigio · · Score: 0

      VB.NET is running on the same underlying framework (1), it's using the same CLR (2), it has the same libraries (3), it has the same designers (4), it has the same project properties (mostly) (5) as C#. The only difference is language syntax. For Visual Basic 6, none of the above are true.

      Don't accuse me of one fallacy (straw man), whilst setting up another of your own (false dichotomy). Point of fact: C and C++ aren't the same at all. There are no classes in C. There's no inheritance. There's no polymorphism. There's no generics. VB.NET has all of those, as does C#. Visual Basic 6 doesn't (ok, it has a vague class concept). VB.NET is not some stripped down version of the CLR. It has access to exactly the same features are C# does.

    29. Re:I thought VisualBASIC was dead... by liquidweaver · · Score: 1

      I've been following your threads on this topic - an I felt I have to chime in, because I think you have an honest misunderstanding of the technology. I have written rather large projects in both VB .NET and C#. I currently work on a MSIL decompiler. The language syntax is very different, and VB. NET is similiar to vb6 in syntax. I believe your misunderstanding comes from the behavior of the languages, which the people arguing with you are pointing out. You can take _any_ program written in C# or VB .NET, and _directly_ convert them to the other language. The only difference will be syntax. That's it. There are a few corner cases currently where C# makes some pretty squirrely VB code, yes - but they make equivalent programs. You can profile them the same way, they have the same API available to them, etc.

      --
      mov ah, 4ch
      int 21h
    30. Re:I thought VisualBASIC was dead... by badkarmadayaccount · · Score: 1

      With color coded syntax highlighting - no.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    31. Re:I thought VisualBASIC was dead... by badkarmadayaccount · · Score: 1

      Matrix operations aren't uncommon - if the compiler can't optimize all that - well, get a better one.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  2. So, why not use Mono? by Anonymous Coward · · Score: 0

    "It resembles a model developed by the Mono Project"

    I new it was better. Please kill .Net.

    1. Re:So, why not use Mono? by eexaa · · Score: 1

      I would actually bet they just took mono and dotNETized it a little.

    2. Re:So, why not use Mono? by Robert+Zenz · · Score: 1

      I wonder where all the trolls are which are always shouting "Mono is a cheap clone of .NET"...

    3. Re:So, why not use Mono? by ByOhTek · · Score: 4, Informative

      You "new" it was better? I believe the word you are looking for is "knew".

      Also, Mono is an implementation/compiler for .NET, not a replacement. So, if mono is better than (Visual Studios, and the MS .NET run time, I'm guessing you are referring to?) Then I'm guessing you don't want to kill .NET because that would also kill Mono, which is .NET.

      To emphasize this point, I compile programs on both Mono and Visual Studios 2010/MS Runtime. I then run programs compiled on either system to run on the other.

      Both are AMAZING pieces of work.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    4. Re:So, why not use Mono? by Anonymous Coward · · Score: 0

      You "new" it was better? I believe the word you are looking for is "knew".

      So you knew what he meant yet you still found it necessary to correct a typo. I don't think anyone was taking his comment in the context of 'new' over 'knew'.

  3. Threat to Computing by improfane · · Score: 0

    There is something about this concept that I find very threatening. Service Orientated Architecture is no doubt a good thing and Software as a Service can save costs. However with something as simple as a compiler being outsourced to the platform vendor, this returns control over software creation that can be produced squarely with the vendor.

    Imagine a vendor that could suppress the compilation of software that it deems unfavourable. A company would never refuse to provide a compiling contract to a business that makes products that compete with the vendor, would they? They would not create a terms of service that deems what software is appropriate to be compiled?

    If this is operated as a service that you deploy within your company, I think it's a great idea. Centralized compiling may have benefits in the same way centralized building does. It may even be easier to scale if the architecture on the server is all similar. If it's a way of controlling the software ecosystem I think we should be extra careful about compilation as a service. It's dangerous.

    --
    Slashdot needs Geekcode | Can anyone recommend any good SCIFI? My tastes: Foundation, Startide Rising, CITY, Ringworld,
    1. Re:Threat to Computing by dririan · · Score: 1

      I agree 100%. I'm a huge distcc fanboi, but outsourcing compiling of code scares the shit out of me. I'd expect to see a security vulnerability where faulty code was somehow delivered to you. It's a backdoor that you run yourself, as you expect the compiler to return, you know, a compiled version of what you gave it. Nasty things in 3... 2... 1...

    2. Re:Threat to Computing by aztracker1 · · Score: 3, Insightful

      I don't think you even really read the summary... it essentially comes down to offering more compile abilities into an application. This can work for extensible plugins, and scripting. It is not the compiler offered via a SaaS (Software as a Service) model.

      --
      Michael J. Ryan - tracker1.info
    3. Re:Threat to Computing by erik+umenhofer · · Score: 1

      It will play into the Azure platform if it's a pure service. You can run an application on Azure with a SQL backend, and have this new compiler service build it for you.

      Although from the article, I didn't even get a sense of that being the purpose. From what i was seeing, it's just a service you can run while developing that will give you more insight into the compiler's workings. You access it via VS2010 like you normally do.

      I'm curious how this would play into TFS as well, if you could get more information to be pumped out from MSBuild to some sort of report.

    4. Re:Threat to Computing by davepermen · · Score: 1

      it means nothing like this (and i hate the name of it because of it). it means you have much more ways to use the compiler. it still is on your desktop, still 100% in your control. but it's not a blackbox anymore, it's now something you can plug in own stuff, extend, reuse, etc.

    5. Re:Threat to Computing by c0lo · · Score: 1

      I don't think you even really read the summary...

      I don't think you read the (already classic?) Ken Thompson's Reflections on Trusting Trust
      "You can't trust code that you did not totally create yourself." - if your binary compiler injects a backdoor in the object code, then even recompiling the compiler from source may not get you out of the woods.

      Otherwise, let point to you the (in my opinion) relevant phrases in TFA:

      Today's commercial compilers are black boxes, Hejlsberg said.

      While Hejlsberg is probably right, fortunately in this world there are such things as non-blackbox-compilers.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    6. Re:Threat to Computing by johanatan · · Score: 1

      It's actually more about exposing the internal compiler metadata to the outside world. MS' very own LLVM essentially.

    7. Re:Threat to Computing by bennett000 · · Score: 1

      There is something about this concept that I find very threatening. Service Orientated Architecture is no doubt a good thing and Software as a Service can save costs. However with something as simple as a compiler being outsourced to the platform vendor, this returns control over software creation that can be produced squarely with the vendor.

      Imagine a vendor that could suppress the compilation of software that it deems unfavourable. A company would never refuse to provide a compiling contract to a business that makes products that compete with the vendor, would they? They would not create a terms of service that deems what software is appropriate to be compiled?

      Have you ever heard of Apple's App Store? It's this crazy store which is the only place you can get applications for your phone or tablet, and Apple controls every piece of software published on it. Apple also imposes arbitrary bans on applications whenever Apple sees fit. Apple is also trying to push this model to their laptops and personal computers. Furthermore if you want to make your own applications run on your iDevice you have to pay apple $100, or violate the TOS to unlock your phone. That's right, imagine that, you outright own a device, but you don't have the right to administer it.

    8. Re:Threat to Computing by Superken7 · · Score: 1

      What is preventing anyone from doing just that with local compilers? I mean, its not like you can't switch from one compiler to another if one provider decides to be a douchebag and ban specific use. That will be their problem, and that's what competition is for. But I don't really see why that should be worse for 'services', at least in practice.

    9. Re:Threat to Computing by Imbrondir · · Score: 1

      Cross compiling is currently a bit of a bitch though. I would like a cloud compiler helping with building for different platforms at once. Provided you could freely download the compilers yourself of course.

    10. Re:Threat to Computing by Anonymous Coward · · Score: 0

      I do not think they mean a network or web service. The things they describe can already be done by for example llvm or some java compilers open-source has a enormous lead on proprietary compiler technology. Almost all new compilers are open source and most proprietary compiler vendors are long gone only Microsoft is stubbornly and stupidly holding on.

    11. Re:Threat to Computing by Anonymous Coward · · Score: 0

      How funny, as also a huge distcc fanboi also, outsourcing compiling of code just scary. Reflections of Ken Thompson's work:

      http://cm.bell-labs.com/who/ken/trust.html

    12. Re:Threat to Computing by Noughmad · · Score: 1

      I would like a cloud compiler helping with building for different platforms at once. Provided you could freely download the compilers yourself of course.

      Something like the OpenSuse build service?

      --
      PlusFive Slashdot reader for Android. Can post comments.
    13. Re:Threat to Computing by Anonymous Coward · · Score: 0

      If this is operated as a service that you deploy within your company, I think it's a great idea.

      For what type of company? Because I cannot see a single company that would benefit from this. Software companies already employ centralized build farms, and other companies usually do not need a compiler.

      The only possible target I see is JIT'ing for thin clients or portable devices, and even in those cases I do not think the compiler speedup can offset the network latency. Is this the new Microsoft computing model? Instead of the desktop running its own applications or a server running the apps, we now get clients that run the code locally, but receive the code from a server? Do we even have a network fast enough to keep the processor's icache filled?

    14. Re:Threat to Computing by maxwell+demon · · Score: 2

      However, even if you get a free compiler like gcc, you either get the source (which you then have to compile yourself, shifting the problem to the compiler you use to compile it) or you get a precompiled version where you have to trust that whoever compiled it did not insert a backdoor.

      Actually the only way to be completely sure without trusting anyone is to actually study the generated machine code (that's assuming you can trust your computer to faithfully execute that, of course). Of course in practice nobody would go that far (and few would even have the resources to do so), but instead there's one point where you put trust in (possibly the compiler+linker), and from there on you just go on.

      Of course, another way would be to bootstrap by writing yourself an assembler in machine code, then a compiler for the source language of that compiler in assembly (using your self-written assembler), and then use that to compile the compiler you got in source (and to get an optimized compiler, compile the compiler with that compiler again). But again, few people have the resources to do so.

      Well, one way to increase trust would be to build the source-provided compiler with two different compilers, then use both of these generated compilers to re-compile the compiler, and then compare the generated executables. If only one starting compiler has been compromised, or if both have been compromised independently, then the compiler executables thus generated will differ. Thus if the compiler executables generated that way are the same, they are very likely not compromised, or else there's a conspiracy and both original compilers contain the same malicious modification. The more separate compilers you add to the mix, the less likely a conspiracy becomes (and moreover if some compiler is really compromised, you'll also learn which one -- although you cannot exclude the possibility that the difference is just due to a "self-propagating bug" instead of due to malicious code, but then, neither is desired).

      --
      The Tao of math: The numbers you can count are not the real numbers.
    15. Re:Threat to Computing by mangu · · Score: 1

      If you took the care to let your mouse hover on the link you'd see that the article's title was "Microsoft previews Compiler-as-a-Service software". The article's author used a very bad analogy-of-an-analogy and that's what's causing this confusion.

    16. Re:Threat to Computing by DrgnDancer · · Score: 1

      You also can't trust food you didn't grow yourself. Doors and locks you didn't build yourself. People whom you haven't given birth to and watched from infancy. The level of paranoia represented by that quote is borderline hysteria. If you applied that mantra to any other area of your life you'd have to live in a sealed commune, by yourself or maybe with with a single (well vetted and not allowed to leave) life partner. Of course you can't trust any software you didn't create yourself... Like anything else in life you take some level of risk with nearly every decision you make. I'm not going to personally code review everything I put on my system on the off chance that Microsoft has inserted malware into it. Just like I'm not going to grow my own food on the off chance that Kraft suddenly decides to start poisoning every 20th bag of chips.

      Indeed, were I to decide to do either of those things, I probably wouldn't have time to do the other, or much of anything else.

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    17. Re:Threat to Computing by ByOhTek · · Score: 1

      I don't think you even really read the summary...

      I don't think you read the (already classic?) Ken Thompson's Reflections on Trusting Trust

      "You can't trust code that you did not totally create yourself." - if your binary compiler injects a backdoor in the object code, then even recompiling the compiler from source may not get you out of the woods.

      Otherwise, let point to you the (in my opinion) relevant phrases in TFA:

      Have you read all the code of your OS? Your compiler? Have your read the code of each compiler that was used in the chain, back to the very first one written in assembly/hex?

      If not, then you are really not in much of a better position than you would be using a closed source compiler.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    18. Re:Threat to Computing by c0lo · · Score: 2

      You also can't trust food you didn't grow yourself. Doors and locks you didn't build yourself. People whom you haven't given birth to and watched from infancy. The level of paranoia represented by that quote is borderline hysteria. [a.s.o.]

      If you'd stop to think a moment instead of rambling...

      Speaking hypothetically, say I'd be a hacker... wouldn't it be nice to successfully attack "an always running compiler service", inject a little DLL there, and make all the applications you'd build and deploy in your organisation spy for me? Still think is hysterical paranoid? Or do you trust Microsoft to make this "compiler service" impervious?

      --
      Questions raise, answers kill. Raise questions to stay alive.
    19. Re:Threat to Computing by c0lo · · Score: 1

      If not, then you are really not in much of a better position than you would be using a closed source compiler.

      Well, even if I didn't, I'd argue I'm in a better position when using open source compilers... granted, not 100%.
      And certainly more secure if using a compiler as a tool than a compiler as a service always running... on a Windows box.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    20. Re:Threat to Computing by DrgnDancer · · Score: 1

      There's at least two points of failure in your counter here. First, what Microsoft is proposing here isn't a "software as a service" compiler, the title of the article is simply wrong. It's simply a compiler that provides a lot more access to the internals than current compilers (at least current MS compilers). Anything that a hacker could do to this compiler, he could do to a normal MS compiler. He'd have to have the same level of access to your box to modify this as he would to insert new code into your current copy of VS. Second, that's not what you said. What you said was that any compiler that you haven't coded and built yourself is untrustworthy. Which is completely true, but also completely paranoid.

      It's always the case that you can only completely trust things which you have done yourself (assuming you made no errors, which is a whole nother ball of wax), but it's equally true that you can't live your life not trusting anything done by anyone else. Not if you want to live in society and participate in in human interaction in any case.

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    21. Re:Threat to Computing by ByOhTek · · Score: 1

      I'd be more concerned with
        (1) who is administrating the computer
        (2) who is administrating the local network
        (3) who is administrating the other computers on the local network

      and the skills of this person/people, than if the computer is running windows and a compiler as OS service, or not.

      On my home network, where I control everything, I'd run it.

      On my work network, which is a bit too relaxed for my tastes, I probably wouldn't.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    22. Re:Threat to Computing by c0lo · · Score: 1

      On my work network, which is a bit too relaxed for my tastes, I probably wouldn't.

      Exactly my point

      --
      Questions raise, answers kill. Raise questions to stay alive.
    23. Re:Threat to Computing by plover · · Score: 1

      You're assuming that two different compilers would output identical binary images, but why would they? Different authors would implement different instructions in different ways. I'd expect that behavior only from a simple assembler.

        From there maybe you could go on to compile a fairly simple reference compiler to compile your higher level languages, as you were discussing. But I doubt you could do a meaningful binary diff of the output of the Intel C compiler and gcc.

      --
      John
    24. Re:Threat to Computing by UnknowingFool · · Score: 1

      Have you read all the code of your OS? Your compiler? Have your read the code of each compiler that was used in the chain, back to the very first one written in assembly/hex?

      You act as if limiting the number of vulnerabilities is a bad thing. Are we ever 100% secure? No. But that doesn't mean we should allow more vulnerabilities if we can help it. Will installing a good lock on my house protect it against all thieves? No. But if my current lock has a defect that allows it to be easily bypassed, I can replace it if I want.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    25. Re:Threat to Computing by c0lo · · Score: 1

      There's at least two points of failure in your counter here. First, what Microsoft is proposing here isn't a "software as a service" compiler, the title of the article is simply wrong.

      Nope, this one is not: I didn't assume this service in the SaaS meaning (not this time anyway).

      Anything that a hacker could do to this compiler, he could do to a normal MS compiler.

      Not quite... lately it became easier to attack a running process than to "infect a file" (signed executables and whatnot), especially if that process is a server accepting request from other processes running under user privileges.

      Second, that's not what you said. What you said was that any compiler that you haven't coded and built yourself is untrustworthy.

      I didn't intend to say this, but to point the extra weakness: not only a file (the compiler executable image) but now an always running process as well (even if I admit, my intention wasn't clear).

      Other than that, Ken's "thought experiment" is extremely paranoid, I agree... but one can choose to pick something that may be less extreme (and possibly valid, don't know yet how probably valid) from something paranoid-to-extreme.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    26. Re:Threat to Computing by maxwell+demon · · Score: 3, Insightful

      You're assuming that two different compilers would output identical binary images, but why would they?

      No, I'm not. I only assumed that two correctly working compilers would output functionally equivalent code (what I tacitly did assume was that the source-provided compiler doesn't invoke undefined behaviour, though). Note that I did not propose to compare the output of the two different compilers, but to compare the output of the one source provided compiler compiled with two different binary-provided compilers.

      So say you have the source of gcc, and binary versions of Microsoft C and Borland C.

      Step 1: You compile the gcc source code with Microsoft C (let's call the resulting binary vgcc).
      Step 2: You compile the gcc source code with vgcc (let's call the resulting binaty gvgcc).
      Step 3: You compile the gcc source code with Borland C (resulting in bgcc).
      Step 4: You compile the gcc source code with bgcc (resulting in gbgcc).
      Step 5: You compare gvgcc with gbgcc.

      If both Microsoft C and Borland C correctly translate the gcc source code (and the gcc source code contains no undefined behaviour), then vgcc and bgcc, while not the same, have equivalent behaviour. Especially they both translate the gcc source code into the same executable. In other words, gvgcc and gbgcc must be binary identical.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    27. Re:Threat to Computing by ByOhTek · · Score: 1

      Doesn't mean this is a bad idea, it just means, like every other piece of computer tech, use with caution. On a Linux or BSD box, it's pretty damn easy to mimic a service if you don't need access to ports below 1024, and screen is installed, for example. With just those two caveats, there's a lot you can do that is really unpleasant. You don't even need a "service" to patch into.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    28. Re:Threat to Computing by ByOhTek · · Score: 1

      come to think of it, if it doesn't offer any network ports, I'm not sure I would mind running that service in my work environment either.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    29. Re:Threat to Computing by ByOhTek · · Score: 1

      I don't see the alternatives as a reduction of vulnerabilities in this case, unless you actually bother to look at and parse the code of the entire chain, or at some point hand recompile the binaries. I will never do this, and therefore, I gain no advantage.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    30. Re:Threat to Computing by UnknowingFool · · Score: 1

      What part of adding another point of vulnerability isn't clear? Do you have to trust MS if you have Windows? Yes. But any code you write yourself is assumed not to have backdoors if you compiled it yourself. Having another party compile it for you adds a another layer of checks. Does the benefits outweigh the risks? Not in my book.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    31. Re:Threat to Computing by ByOhTek · · Score: 1

      I don't trust MS any more or less than I trust the developers of Linux and it's associated tools. So, swapping one for another doesn't really bother me. The question is - is the benefit from the tool worth the extra layer.

      So, no, nothing about the statement is lacking in clarity.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    32. Re:Threat to Computing by ByOhTek · · Score: 1

      And assuming code you write/compile yourself has no back doors is idiotic. People doing that, and then selling it, is how many security issues come about..

      And the compiler would still run on your machine, not a remote machine, so... You'd still be compiling it on your machine. Yes, it's a closed source compiler, but I don't want to waste years trying to comprehend the code clusterfuck that is GCC, so GCC is just as closed source for my purposes - I don't see an added risk.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    33. Re:Threat to Computing by Jaqenn · · Score: 1

      Of course, another way would be to bootstrap by writing yourself an assembler in machine code, then a compiler for the source language of that compiler in assembly (using your self-written assembler), and then use that to compile the compiler you got in source (and to get an optimized compiler, compile the compiler with that compiler again). But again, few people have the resources to do so.

      I challenge that this is as hard as it sounds. The bootstrapping homebrew compiler doesn't have to be fast or efficient, and doesn't have to produce fast or efficient code, it only has to be *correct* the one time you use it. You'd then use it to compile gcc, which to my understanding is implemented using only C (not c++) features.

      So time to bootstrap a correct C-compliant compiler? In my arrogance, I bet it could be done in 6 months by a few dudes in a garage. Which if you're in a field that needs bulletproof compiler trust, is a small investment.

      --
      You are awash in a sea of fiercely stated opinions. Obvious exits are: 'File->Quit', 'Reply', and 'Page Down'.
    34. Re:Threat to Computing by dririan · · Score: 1

      The brilliant part is that you don't even need a Trusting Trust attack for this. Since no one has access to anything except what the compiler spits out, you can't verify the compiler in any way. Granted, when you disassemble it (.NET makes it too easy), you should be able to notice the nasty things. Unless you compiled your disassembler with said compiler... But my point is that the compiler doesn't have to silently sabotage itself, because no one can get to it. It could, of course, silently sabotage other compilers and debugging tools.

    35. Re:Threat to Computing by UnknowingFool · · Score: 1

      And assuming code you write/compile yourself has no back doors is idiotic. People doing that, and then selling it, is how many security issues come about..

      What? I am assuming that unless I have some sort of split personality like in Fight Club, I am not going to program a backdoor without my knowledge. Now I may not know the existence of every conceivable vulnerability but if you don't know the difference between the two, you should brush up on basic computer literacy.

      And the compiler would still run on your machine, not a remote machine, so... You'd still be compiling it on your machine. Yes, it's a closed source compiler, but I don't want to waste years trying to comprehend the code clusterfuck that is GCC, so GCC is just as closed source for my purposes - I don't see an added risk.

      Again, brush up on computers and read the article. Running compiler as a service may allow for execution of code that you do not intend. As an example, take the simple door lock which can be picked. Some door locks have numeric keypads that bypass the requirement of a physical key. That however opens up the lock to another point of attack.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    36. Re:Threat to Computing by c2me2 · · Score: 1

      CHRIST, read the FUCKING article. By "service" it just means "library," not a network service. Do us all a favor and stay the fuck away from computers.

    37. Re:Threat to Computing by rev0lt · · Score: 1

      Two different compilers will obviously give you a different binary output. Even the same compiler will give you a different binary output, with different optimization flags or diffrerent architecture flags. Even with the same platform and optimization flags, a compiler might give you a different assembly for the same algorithm depending on specified alignments and/or instruction optimization.
      And yeah, your post also assumes that the cpu itself where you run the compilers isn't flawed or tampered in any way.

    38. Re:Threat to Computing by rev0lt · · Score: 1

      You think it isn't very secure using a compiler as a service that is always running, but is it ok when you grab a binary of your open source compiler of preference from a mirror that is always running? And if you download it from source, do you check all the source code and related dependencies? and how about using a compiler on a operating system that is always running? (eg. a server?) How do you decide what is more trustable?

    39. Re:Threat to Computing by spongman · · Score: 1

      wait, I don't get your logic.

      I think Microsoft understands the risks involved with allowing self-concealing malware to be released in its compiler - corporate death to the tune of >$230B. Nothing could possibly drive developers and customers from their platform faster than if such a thing were to happen. Indeed, it's in their vested interested to ensure that such a thing doesn't happen.

      Does GCC have such a risk? Even if the project were to die because of such a thing what would anyone lose beyond a little pride?

    40. Re:Threat to Computing by spongman · · Score: 1

      wait, the java compiler API will give you data-flow analysis on the code you give it?

      no, the java compiler API is a thin wrapper around the compiler driver. little more than popen() with some support for file redirection.

      Roslyn is a whole new beast.

      just watch the video and learn.

    41. Re:Threat to Computing by maxwell+demon · · Score: 1

      Two different compilers will obviously give you a different binary output.

      To not repeat myself, I just refer you to my previous answer.

      Even the same compiler will give you a different binary output, with different optimization flags or diffrerent architecture flags.

      If you intend to compare the generated binaries, you of course use the same flags.

      Even with the same platform and optimization flags, a compiler might give you a different assembly for the same algorithm depending on specified alignments and/or instruction optimization.

      This is about comparing output from compiling the same source code.

      And yeah, your post also assumes that the cpu itself where you run the compilers isn't flawed or tampered in any way.

      Sure. However there you can do the same: Run the thing on several CPUs and compare. You could even go to a different platform and cross-compile to your destination platform.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    42. Re:Threat to Computing by rev0lt · · Score: 1

      To not repeat myself, I just refer you to my previous answer. [slashdot.org]

      That clarifies the subject but you assume that compilers are perfect pieces of immutable software - they aren't. In the example you gave, it is expectable for gcc to have specific defines or makefile rules for each compiler, resulting on a different binary. Also, there is the problem of external dependencies - the libc implementation of Microsoft and Borland are different, even when the api is the same.

      If you intend to compare the generated binaries, you of course use the same flags.

      It is usual for different compilers to have different flags, that do not translate for the same optimization.

      This is about comparing output from compiling the same source code.

      The same source code (the same algorithm) can/will give you different binary results on different compilers, due to instruction alignment, code branching and optimization.

      Sure. However there you can do the same: Run the thing on several CPUs and compare. You could even go to a different platform and cross-compile to your destination platform.

      Yeah, and when the results don't match, you don't know which version is tampered, so you're left at where you started.

    43. Re:Threat to Computing by badkarmadayaccount · · Score: 1

      Hell, it could be an interpreter.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    44. Re:Threat to Computing by maxwell+demon · · Score: 1

      That clarifies the subject but you assume that compilers are perfect pieces of immutable software - they aren't. In the example you gave, it is expectable for gcc to have specific defines or makefile rules for each compiler, resulting on a different binary. Also, there is the problem of external dependencies - the libc implementation of Microsoft and Borland are different, even when the api is the same.

      While gcc may have compiler-specific defines, that hopefully doesn't modify the code generation part. But yes, this could in principle give a persistent difference (but it's very unlikely that this difference would be self-propagating, unless it was inserted intentionally, in which case it would make gcc not trustworthy anyway).

      The library dependence is irrelevant, because the libc gcc-compiled programs (including gcc-compiled gcc) use is completely independent from the libc used by the compiler used to bootstrap gcc.

      It is usual for different compilers to have different flags, that do not translate for the same optimization.

      The options gcc accepts don't depend on the compiler used to bootstrap it, especially not on the options that compiler supports. Again, the compare is not of binaries generated by those compilers.

      The same source code (the same algorithm) can/will give you different binary results on different compilers, due to instruction alignment, code branching and optimization.

      To the n-th time: I did not propose to compare binaries produced by the bootstrap compilers. Is this now clear?

      Yeah, and when the results don't match, you don't know which version is tampered, so you're left at where you started.

      I don't know which one was tampered with, right. But I know that most probably one was tampered with (or, less likely, one of them has a bug which propagates), which I wouldn't have known otherwise. So I know I should do more work to find out which one (e.g. by bootstrapping with a third compiler, and testing which of the now three final binaries agree). In other words, I'm not left at where I started (which is not knowing at all whether one of the compilers was tampered with).

      --
      The Tao of math: The numbers you can count are not the real numbers.
    45. Re:Threat to Computing by rev0lt · · Score: 1

      The library dependence is irrelevant, because the libc gcc-compiled programs (including gcc-compiled gcc) use is completely independent from the libc used by the compiler used to bootstrap gcc.

      The library dependence is not relevant, not only because you can build static binaries, but also because different compilers can/usually have completely different runtime implementations - the scanf() you program potentially uses is completely different if compiled with gcc and with a borland compiler.

      To the n-th time: I did not propose to compare binaries produced by the bootstrap compilers. Is this now clear?

      Well, one way to increase trust would be to build the source-provided compiler with two different compilers, then use both of these generated compilers to re-compile the compiler, and then compare the generated executables.

      So, you have gcc source, you compile it with visual studio and c++ builder, and then use the generated compilers to re-compile gcc and then compare the resulting binaries. You build gcc on visual studio with depencies of microsoft libc equivalent runtime, and with c++ builder, with borland's library. Now you have two somewhat different versions of the same compiler, but with completely different code paths (since each vendor implements their version of the C runtime). Also, because visual studio and c++ builder are different compilers, significant optimization differences (and subsequent bugs) may occur between the two builded binaries. And you propose that it is expected that both versions of gcc generate exactly the same binary, without any difference or glitch? You do have a lot of faith in software.

  4. Imagine a world where... by improfane · · Score: 0

    You buy a new computer but there are no OSS compilers available for it, because they have not yet been written. To develop for this processor you must buy a development licence. Ring any bells?

    Your licence can be revoked at any point.

    It would be like the Sony's Playstation or Xbox or Wii or Apple IDevice licence.

    --
    Slashdot needs Geekcode | Can anyone recommend any good SCIFI? My tastes: Foundation, Startide Rising, CITY, Ringworld,
    1. Re:Imagine a world where... by Tomato42 · · Score: 1

      Doesn't change the fact, that a). you have the compiler "in your hands" for all of those platforms, and b). those were closed platforms since their beginning.

    2. Re:Imagine a world where... by DrgnDancer · · Score: 1

      IIRC Apple's compiler is or was gcc, I seem to recall them moving to another (also open source?) compiler a while back. Regardless, Apple compilers are more or less standard C/C++/ObjC. The trick with iDevices is getting the compiled code onto the device. You can write, compile, and test IPhone apps all day with free tools on any Mac, or even a (questionably legal) Mac VM. Getting your code onto an iPhone requires either a license or cracking the device.

      (It's a fine point I'll agree, but somewhat important. If Apple disappeared tomorrow you could still write and compile software for iDevices, and after jailbreaking them, get it onto the devices.)

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    3. Re:Imagine a world where... by UnknowingFool · · Score: 1

      I think Apple developed Clang as the frontend with LLVM as the backend instead of GCC. It is mostly GCC compatible but the main reason probably had to do with the licensing. Clang and LLVM are BSD style while GCC is GPL.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
  5. After your personal info... by c0lo · · Score: 0, Redundant
    TFA

    Internally, a compiler generates a lot of information about the program it is building, he explained, although typically the developer doesn't have access to that data.

    Roslyn can offer access to this data, Hejlsberg said. The data can then be used by Visual Studio to generate more options for programmers

    Hmm... am I getting it right?
    1. personal data on social networks (to be used by markedroids and other spammers)
    2. your daily travel available to your mobile services provider
    3. your documents in the fog of a cloud
    4. and now... your source-code and binaries available to the entity that provides you "compilation services"?

    Oh, dear, where will it stop...
    Thanks but no thanks, I think I'll be sticking with offline compilers, the open-source ones in particular.

    --
    Questions raise, answers kill. Raise questions to stay alive.
    1. Re:After your personal info... by Anonymous Coward · · Score: 0

      Are you a troll, or just dim? If you don't understand anything the article speaks about, it might be a good idea to just not comment.

      This is just using the compiler as less of a black box, so that programs (visual studio) which compile code can see the internals of what is going on, extract that data, and use it. It should also allow another utility, say AOP, to grab the intermediary results and further transform them, with compiling continuing as normal and removing IL rewriting for lots of cases. I'm sure they will be using this with CodeContracts and so on. A different way of looking at the compiler is what this is, which is clearly stated in the section you quoted. It's not even particularly radical, just a opening up the tool-chain.

    2. Re:After your personal info... by gutnor · · Score: 1

      Thanks but no thanks, I think I'll be sticking with offline compilers

      Will nobody ever think of the NSA ? You must be a terrorist.

    3. Re:After your personal info... by Anonymous Coward · · Score: 0

      Is everyone else commenting here high?

      They're not talking about compiler as a cloud service. They're talking about compiler as a service.

    4. Re:After your personal info... by pyrbrand · · Score: 5, Informative

      No, you're not getting it right, this is a service as in a process always running on your computer, not as in a cloud based compiler. The point is your program can dynamically call the compiler with additional source code to be compiled so your program can modify itself even though it's in a relatively static language like C#.

    5. Re:After your personal info... by c0lo · · Score: 1

      No, you're not getting it right, this is a service as in a process always running on your computer, not as in a cloud based compiler. The point is your program can dynamically call the compiler with additional source code to be compiled so your program can modify itself even though it's in a relatively static language like C#.

      I'd mod your post +(Insightful/Informative)... my fault, thanks for pointing it out.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    6. Re:After your personal info... by c0lo · · Score: 1

      Are you a troll, or just dim? If you don't understand anything the article speaks about, it might be a good idea to just not comment.

      If I'd follow your advice:
      1. I'd lose the chance to stand corrected - I'm not afraid to be in such a position, I'd suggest you to try sometime.
      2. life may become a bit boring for you. I mean, you wouldn't have too many occasions to call someone a "troll or dim-witted". How would you like "good manner and menuet dancing" all the day everyday?

      --
      Questions raise, answers kill. Raise questions to stay alive.
    7. Re:After your personal info... by Asic+Eng · · Score: 1

      I don't think that's your fault, the summary is bad. Also I don't think it should be "C3", they are referring to C#. That mistake is in the article though, the summary just repeats it.

    8. Re:After your personal info... by monopolarbear · · Score: 1

      C3 might be a typo using a non US keyboard. For example, in order to type # in my keyboard layout ( http://img853.imageshack.us/img853/6585/kbdb.png ) , you should press AltGr + 3. If you miss AltGr you would type C3 instead of C#..

    9. Re:After your personal info... by pixy11 · · Score: 1
      You're not getting it right either though that's most likely the summary's fault. Unless to read the entire article I don't think one would get what this is about.

      Today's commercial compilers are black boxes, Hejlsberg said. A compiler is a program that converts source code into binary executable program. Internally, a compiler generates a lot of information about the program it is building, he explained, although typically the developer doesn't have access to that data. Roslyn can offer access to this data, Hejlsberg said. The data can then be used by Visual Studio to generate more options for programmers.

      It is a service to you, the developper, by providing you with information that normally only lives in the compiler. You can then you this data to have a better understanding of your code, how it is going to compile and various other operations.

      Developers could also use the output of such software to do tasks like refactor, or reorganize, their code more easily, to add C# and Visual Basic functionality to programs written in other languages. It also adds dynamic typing to the statically typed C# and Visual Basic, allowing developers to add objects and new variables to a program on the fly. [...] He also demonstrated how Roslyn could convert Visual Basic code to C# code, and vice versa, much to the delight of the audience.

    10. Re:After your personal info... by Anonymous Coward · · Score: 0

      The point is your program can dynamically call the compiler with additional source code to be compiled so your program can modify itself even though it's in a relatively static language like C#.

      Sounds like they kludged a re-invention of LISP onto an unsuitable language.

    11. Re:After your personal info... by wellwellwelloh · · Score: 1

      Jeez, these modern languages get more like xbase/Firefox every day.

    12. Re:After your personal info... by Rockoon · · Score: 1

      VC6 (and even VB6) spit out data consumed by Microsofts stage-2 compiler (C2.exe)

      Although I dont think such a thing exists yet, C3 could indicate another stage. Compiler research has been an ongoing thing at Microsoft, and the in-development Phoenix Framework continues to use a stage-2 compiler (still named c2.exe)

      I believe the stage-2 compiler directly consumes abstract syntax tree's, performs optimizations (constant folding, etc..), generates 3AC intermediate code and performs more optimizations (peephole) and then (of course) generates object code.

      --
      "His name was James Damore."
    13. Re:After your personal info... by Anonymous Coward · · Score: 0

      But the summary as written is so much more exciting and inflammatory... why not just go with it and vent against the imaginary evil so everyone knows how we would feel about such a thing if it were ever created?

      Last night, I had to sign a revised terms and conditions on the PlayStation Network just to get access to the Netflix app so my kids could watch an episode of WordWorld on-demand. I hope Sony knows that thanks to: a) crappy hardware quality (PS3 #1 YLOD'ed after 2 years with broken solder joints under the chips, PS3 #2 bought the day of the price drop to $249 already has a broken BluRay drive), and b) PITA online access experience (download the app, now install it, now download the update, wait! now you need a firmware upgrade, aforementioned license update hassle, hold it now there's a problem with your credit card - please call customer service... oh, and that Linux machine you spent dozens of hours setting up - well....) all future spending on Sony products with any kind of network access is completely frozen in my household.

      "The Cloud" holds wonderful promises of efficient ongoing customer support and upgrades, but Sony has clearly demonstrated how to screw it up, and I doubt Microsoft will do it much better. Give me optional downloads of patches and upgrades fully under my control, and a system that works when "the net" is down. Any network dependent systems have to demonstrate clear, significant value add as compared to their non-network dependent predecessors.

      Any relevance to TFA is purely coincidental.

    14. Re:After your personal info... by marcosdumay · · Score: 1

      Thanks, I'm in the comments just so I can avoid RTFA.

      Wouldn't it be easier to just do what other languages do, and include an compiler in the runtime interpreter (the VM here)? Or Microsoft is too cool to imitate Lisp?

    15. Re:After your personal info... by Tasha26 · · Score: 1

      Compile once, next thing you know, MS is launching a new app bearing great similarity to your program.

    16. Re:After your personal info... by c0lo · · Score: 1
      I was wrong this time... it's not a SaaS type of compile service, it's rather like a daemon running on your local machine.

      ...for the moment at least.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    17. Re:After your personal info... by Nyder · · Score: 1

      I don't know, in the 90's I used Universities computers to compile stuff all the time. Granted the software ran on their mainframes, and wasn't produced to run on the PC's of the time.

      But other then making that point, i agree with you.

      --
      Be seeing you...
  6. I'll just leave this here by reashlin · · Score: 2

    http://cm.bell-labs.com/who/ken/trust.html

    It is left as a exercise to the reader to see the point I'm trying to make.

    1. Re:I'll just leave this here by scribblej · · Score: 1

      That's a brilliant article and should be required reading. It's good enough reason to not use Microsoft's present compilers.

      Just for the record, though, the article doesn't seem to suggest anything about actual compilers as a service; it still seems to discuss a normal compiler that runs on your local machine. Very confusingly titled.

    2. Re:I'll just leave this here by Jonner · · Score: 1

      http://cm.bell-labs.com/who/ken/trust.html

      It is left as a exercise to the reader to see the point I'm trying to make.

      I don't think that's any more relevant now than it has been for decades when using proprietary, binary-only development tools from MS and others. Thompson's point was that even having source, which was always assumed on Unix systems, is not sufficient to prevent trojans for being inserted into code.

      The description "Compiler-as-a-Service" is misleading. It doesn't mean that people will ship their source to MS and get back object code. It simply means that the compiler exposes an API for introspecting code. Though it may be interesting, it's not a new idea by any stretch of the imagination. I think a far more relevant reference is to Greenspun's tenth rule.

  7. So it's like LLVM? by Anonymous Coward · · Score: 0

    What sets this apart from LLVM and clang except for the languages it supports?

    1. Re:So it's like LLVM? by underqualified · · Score: 1

      It's going to have a GUI?

  8. Slashdot groupthink ... again by Anonymous Coward · · Score: 0

    Seriously, this is why I have never signed up with an account to Slashdot. If anyone reads TFA, they will notice that the only words that suggest "cloud compilation" are the words in the title i.e. 'Compiler-As-A-Service'.

    Read TFA. It basically says that the compiler generates a bunch of useful metadata while compiling but it never exposes this metadata as its primary function is to build a binary. The article suggests that this new compiler will expose this useful metadata back to Visual Studio, making things like autocomplete and refactoring tools more powerful.

    Anyone who got voted up for crying 'zomg I will use my free open source compiler and not submit to the MAN who will steal all my privacyz and sellz it to all the FBIz and shit' - you are the main reason that people leave Slashdot.

    1. Re:Slashdot groupthink ... again by nurb432 · · Score: 1

      It wasn't this bad in the old days. But i agree, its past time to jump ship.. But where to go next?

      --
      ---- Booth was a patriot ----
  9. Try reading the article by msobkow · · Score: 2

    It's not about software-as-a-service compilers, it's about exposing the internal data structures and information a compiler produces to the programmer. This lets you go a level beyond introspection and into some interesting possibilities.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:Try reading the article by klingens · · Score: 2

      Of course it's about software-as-a-service compilers. The only way MSFT can give you this ability to look what the compiler does is by keeping the compiler binary from you (compiling as a service by MSFT) or giving you much more insight on how the compiler works, basically open sourcing it. The latter is obviously anathema, so they provide it as a service. And if it catches on, it's another awesome lock-in capability by MSFT. Awesome!

    2. Re:Try reading the article by msobkow · · Score: 1

      What? Did computers mysteriously lose the ability to save information to the hard drive?

      --
      I do not fail; I succeed at finding out what does not work.
    3. Re:Try reading the article by dkleinsc · · Score: 1

      Oh, you mean like gcc has been doing since basically forever?

      I'm not saying this isn't good, it clearly is, but it highlights a difference between open source tooling and closed tooling: Both gcc and Microsoft's compilers need to be able to show their own developers the internals in order for them to write good compilers. Because gcc was open source, though, they could build this in a way that made it available to their user base, whereas Microsoft had to hide or remove theirs before shipping.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
  10. Business Skewl by Anonymous Coward · · Score: 0

    Did all the business school majors invade this post? I only see one comment that isn't completely wrong about what is going on.

    It's just a more open compiler, the likes of LLVM, and probably quite a bit better actually. Not better compiling, I mean better for those of us who have actually compiled something to hack around on, write plugins for, etc.

  11. Bad Title by improfane · · Score: 1, Insightful

    I'm sorry. The title of this article is bad. SaaS has an established meaning and it does not necessary mean the services running in the background (as a service) on your PC, it means using remote services.

    The article makes no mention where the actual compiler runs. If it runs remotely, are our fears are not unqualified.

    --
    Slashdot needs Geekcode | Can anyone recommend any good SCIFI? My tastes: Foundation, Startide Rising, CITY, Ringworld,
    1. Re:Bad Title by Tacvek · · Score: 1

      The compilers do not run remotely. They will continue to be local applications installed with every copy of the .NET framework.

      The Compiler as a Service concept mostly just exposing the the compiler's AST to the calling program. It has no relation to SaaS.

      This is of great benefit to authors of tools that read and manipulate source code, since they no longer need to implement their own AST and parser, and can instead use the one of the compiler, which ensures that they never reject code that the compiler will accept.

      This also opens up new possibilities for extending the languages. For example, one could write a wrapper that compiles code to AST, locates all instances of some new attribute, and modifies the AST in some way, before letting the compiler convert the AST to an assembly. There are tools for Aspect Oriented Programing that utilize attributes, but they currently need to rewrite the IL after the code is compiled, which is suboptimal compared to doing that as part of the compilation process itself.

      What exactly will become possible depends on just what parts of the compiler get exposed, but at least until now that has not been revealed.

      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
    2. Re:Bad Title by St.Creed · · Score: 1

      I think you hit the nail on the head. It's about time Aspect Oriented Computing was integrated into the compilers. If this works as advertised (*) I'm all for it.

      (*) no need for cynical remarks here, I can think of them well enough myself, thanks :)

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
  12. Have they not heard of System.CodeDom.* ? by oPless · · Score: 1

    Wait what?

    I thought I was already using System.CodeDom.Compiler to dynamically create assemblies?

    Also, converting code from one language to another isn't new in the slightest. Redgate's Reflector has been disassembling IL and displaying it in C#, and VB for ages. I'm sure there are open source equivalents too.

    I fail to see what all the excitement is ... Unless they're able to give me an AST to mess with? Even then I might not be terribly interested.

    It's quite possibly a terrible article. I mean C3! WTH?!

    1. Re:Have they not heard of System.CodeDom.* ? by Tacvek · · Score: 1

      The Compiler as a Service system should give us some form of AST. This should be exactly the same AST as Microsoft uses for Intellisense, since one of the goals of this project internally was to allow Intelisense and the compiler share as much code as possible, since they previously had separate implementations of some analysis passes, and other complicated code, with the Intellisense version not full matching the version in the compiler.

      I suspect we may also have the capability of manipulating the AST, and then handing back the altered AST to the compiler to finish the work. In this way we could potentially extend the compiler.

      This should also be interesting to creators of tools like ReSharper, which currently write their own lexer, parser, and AST, and analysis passes. It would be nice for them to have the option of using the compiler's as well.

      Until the CTP is released, the exact extent of what can be done will not be certain.

      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
    2. Re:Have they not heard of System.CodeDom.* ? by Anonymous Coward · · Score: 0

      The Compiler as a Service system should give us some form of AST. This should be exactly the same AST as Microsoft uses for Intellisense, since one of the goals of this project internally was to allow Intelisense and the compiler share as much code as possible, since they previously had separate implementations of some analysis passes, and other complicated code, with the Intellisense version not full matching the version in the compiler.

      You've nailed it, pretty much. It's not just AST, though - it's also full resolved type information for all nodes (including inferred types, resolved overloads etc), symbol lookup (binding) in a given context by name, and the ability to actually compile those syntax trees.

      A more accurate name would actually be "compiler as a library", by the way, since all these services are provided as normal libraries.

      This should also be interesting to creators of tools like ReSharper, which currently write their own lexer, parser, and AST, and analysis passes. It would be nice for them to have the option of using the compiler's as well.

      True. In fact it's better than that - the IDE language service in Roslyn is implemented using these services, but it also provides hooks so that you can e.g. write a plugin that extends code completion, or implements a custom refactoring, or a new bad code pattern detector. You don't need to throw away the entire VS refactoring service and replace it with your own for this, like ReSharper does today.

  13. 'Service' as in 'daemon' by 2phar · · Score: 2

    not 'service' as in 'zuckerberg/NSA world domination'

    1. Re:'Service' as in 'daemon' by Marc+Madness · · Score: 1

      Thanks, I feel better now: +1. I was getting a bit confused with all this talk about privacy and what not when I could find no indication in TFA that this was meant to be a service available on the internet (or in modern buzz-speak: the cloud), and I thought I was the only person not getting it. When I read the headline, I thought we were going back to the days of time-share computing. It seemed like a giant leap backward to me and it made me think that Microsoft Research must have either taken leave of their senses or found some other way to exploit developers or both. This is a much more interesting idea. However, the expression "give 'em enough rope..." comes to mind.

    2. Re:'Service' as in 'daemon' by Anonymous Coward · · Score: 0

      No, not service as in "daemon" either. It's a service as in a function you can interact with. It used to be that you could provide source code, it would get saved as a file, the compiler would get invoked as a separate process, and the results would be compiled binary code or error messages.

      With "compiler as a service", you can create an object, give it some source code, it runs the compiler in your process, and returns what you request. Do you need a token stream to do syntax highlighting? Do you need an AST so that you can do refactoring? Do you want to create your own AST and get back a class you can call methods on? That's the "services" that the compiler would provide.

      dom

  14. first they AASed the... by 10am-bedtime · · Score: 0

    First they "As-A-Service"ed the search and I did not speak out,
    for I was not a search specialist.

    Then they AASed the aggregation and I did not speak out,
    for I was not an aggregation specialist.

    Then they AASed the compiler, ...

    Then they AASed the debugger, ...

    Then they AASed the programmer, ...

    They they AASed the algorithmist, ...

    Then they AASed the thinker, ...

    Then they AASed the lover, ...

    Then they programmed us remaining robots to never speak out again.

    1. Re:first they AASed the... by Anonymous Coward · · Score: 0

      First they "as-a-service"d the search and I did not speak out,
      for web searching wasn't really possible before.

      Then they AASed the aggregation and I did not speak out,
      for my free and open source RSS reader continued to work perfectly well.

      Then they AASed the compiler and debugger, and I did not speak out,
      because GCC, binutils and gdb didn't stop working because of it.

      I could go on.

    2. Re:first they AASed the... by Tasha26 · · Score: 1

      Deep!

  15. Schmit's "Optimizing Assembler" by MichaelCrawford · · Score: 1

    Pentium Processor Optimization Tools by Michael L. Schmit comes with a floppy that contains an "Optimizing Assembler". It doesn't actually optimize your code, but produces a formatted listing that gives the timing of each instruction, as well as pipeline stalls and the like. One can then use the listing to refactor the assembly source to be more efficient.

    The book is long out of print but can easily be had used. It's also a good book for learning x86 assembly in general.

    --
    Request your free CD of my piano music.
  16. C3 is not a new language by fynfuqbg · · Score: 1

    If you Read The Fine Article (I know,.. you are not supposed to do this on Slashdot) you will see that it mentions C#. This is just the author who didn't push hard enough on the Shift-key and the submitter and the poster who didn't care to correct this error.

  17. Sorry, we didn't make our release deadline... by ysth · · Score: 1

    The cloud compiler had yet another outage.

  18. Why marketing people need to be tortured slowly .. by Anonymous Coward · · Score: 0

    ...this is a service as in a process always running on your computer,...

    Oh. My. God!

    A software vendor using the term "service" in the classic sense? What next, the "client" is a program on the same machine or network that uses that service?!

    See folks, back in the old days when I had to program in the snow - uphill both ways! - that was the proper use of the term "service", but the marketing people (with plenty of help from engineers trying to get rich quick in tech) distorted the term to sell their wares. As a result, we see all the confusion that we are seeing in these threads here for this article.

  19. Re:First po5t by Anonymous Coward · · Score: 0

    HAHAHA you fail

  20. My dislike for VB.Net can be summarised with this: by Toreo+asesino · · Score: 1

    "option strict on" ...

    *facepalm*

    --
    throw new NoSignatureException();
  21. There's prior art by mangu · · Score: 1

    you have much more ways to use the compiler. it still is on your desktop, still 100% in your control. but it's not a blackbox anymore, it's now something you can plug in own stuff, extend, reuse, etc.

    Hmmm, I wonder where have I seen this before?

    1. Re:There's prior art by spongman · · Score: 1

      wait, GCC has a library that allows you to compile code on the fly, inspect the syntax and symbols of the results, load it into the calling process and execute it?

      Here's the code from the video (42:00):

      static void Main (string [] args) {
              ScriptEngine engine = new ScriptEngine ();
              Session session = Session.Create ();
              engine.Execute ("using System;", session);
              engine.Execute ("int Sqr(int x) { return x * x; }", session);

              var f = (Func<int, int>) engine.Execute ("new Func<int, int> (Sqr);", session);

              for (int i = 0; i < 10; i ++)
                      Console.WriteLine (f(i));
      }

      if GCC can do something like that, i'd love to see it.

  22. GCC plugins? by Anonymous Coward · · Score: 0

    This sounds similar to GCC plugins: http://gcc.gnu.org/wiki/plugins

    1. Re:GCC plugins? by spongman · · Score: 1

      yeah, it's just like plugins, however it's different in almost every conceivable way.

  23. NOT about the cloud by Anonymous Coward · · Score: 0

    It is amazing (or it isn't - cue the "you are new here" posts) how many people can't be bothered to RTFA. This is not about cloud computing. It is about a new API to the C# compiler.

    I hope this will enable some kind of meta-programming capabilities.

  24. This article was written by an idiot by benjfowler · · Score: 1

    Given the dire state of technical and scientific journalism these days, nothing surprises me, although for technical journalism, this is hitting a new low.

    So basically, he's describing a compiler which generates an annotated AST of the program being compiled? Actually, I've got no idea, because of shoddy, slipshod, lazy journalism.

    Even for modern journalism, this is a piss poor effort. Whoever wrote this should be ashamed of themselves.

    1. Re:This article was written by an idiot by chriseyre2000 · · Score: 1

      So a reimplementation of Boo, at the framework level?

    2. Re:This article was written by an idiot by Anonymous Coward · · Score: 0

      They've rewritten a stand-alone C# compiler, originally written in managed C++. Now they have it as a general-purpose C# library, which can easily be used by any .NET program to dynamically generate CLR bytecode.

      Kinda like Java Compiler API did 5 years ago.

    3. Re:This article was written by an idiot by Anonymous Coward · · Score: 0

      What I love is they title the article "Microsoft previews Compiler-as-a-Service software", and then feel the need to define API and compiler, as though someone who doesn't know what those are is going to make it past the first paragraph.

    4. Re:This article was written by an idiot by shutdown+-p+now · · Score: 1

      Now they have it as a general-purpose C# library, which can easily be used by any .NET program to dynamically generate CLR bytecode. Kinda like Java Compiler API did 5 years ago.

      But unlike the Java compiler API, this also exposes AST (it's part of the public API surface).

  25. Summary doesn't tell the right story by Anonymous Coward · · Score: 0

    This is obviously not about not having a local compiler anymore, but about the compiler offering additional services which can be consumed.

    All the extra information the compiler gathers while compiling your code can f.ex. be used by the IDE (Visual Studio) to improve intellisense, code analysis and refactoring. As a developer I certainly think this is a great.

  26. Prime use case: better merge conflict resolution by DanyX23 · · Score: 1

    A great use case for something like this would be better merge conflict resolution. DVC Systems like git, hg etc work reasonably well for source code for simple changes, but concurrent refactorings in different branches are still a potential headache. If merge algorithms could get easy access to the semantics of the code they try to merge they could be a lot cleverer than just line based diffing. Does anyone know is something like this is already being worked on?

  27. Microsoft patents it by nikkipolya · · Score: 0

    Now that prior art does not matter, first to file for a patent is the owner. Microsoft filed for patents for this idea that it ripped off from Mono. Also, a few years down the line, their patent for linked lists will be valid in the courts.

    MSFT trading at 9 P/E.

  28. Thus saith David A. Wheeler by tepples · · Score: 1

    Well, one way to increase trust would be to build the source-provided compiler with two different compilers

    I'm glad to see someone else remembers David A. Wheeler's diverse double-compiling dissertation.

    1. Re:Thus saith David A. Wheeler by maxwell+demon · · Score: 1

      Actually I didn't know that work. But then, thinking about it and formally proving it are two things, so it's nice that this idea has also been formally proven.

      --
      The Tao of math: The numbers you can count are not the real numbers.
  29. Use our compiler or your exe won't load by tepples · · Score: 1

    I mean, its not like you can't switch from one compiler to another if one provider decides to be a douchebag and ban specific use.

    If a device's manufacturer won't digitally sign for execution any binary that isn't compiled with the manufacturer's own toolchain, developers of applications for that device can't switch.

  30. I trust David A. Wheeler's trust by tepples · · Score: 1

    Please see replies to c0lo's post.

  31. Greenspun's Tenth Rule by tepples · · Score: 1

    Sounds like they kludged a re-invention of LISP onto an unsuitable language.

    Yeah, but what isn't a reinvention of half of Common Lisp?

  32. So? by lennier1 · · Score: 0

    And the next step will be a cloud-based compiler so Microsoft can automatically check whether your code infringey on any of their patents???

  33. There actually appears to be a C3 language by Chrisq · · Score: 1
    here does seem to be a c3 programming language. The designer's blog gives the aims as:

    C makes programming more enjoyable for serious programmers.

    C is a general-purpose programming language that supports
    – low-level programming
    – data abstraction
    – object-oriented programming
    – generic programming
    – functional programming
    – metaprogramming

    It sounds a bit like an "all things to all men" Ada or PL/1 in vapourwear

  34. Welcome to the future MS by lerxstz · · Score: 2

    From TFA: "It also adds dynamic typing to the statically typed C# and Visual Basic, allowing developers to add objects and new variables to a program on the fly."

    So it turns VB/C# into...Obj-C!

    *ducks*

    --
    I chose to end my comments, not with a rim shot, but a long decaying F#7sus4
    1. Re:Welcome to the future MS by shutdown+-p+now · · Score: 1

      From TFA: "It also adds dynamic typing to the statically typed C# and Visual Basic, allowing developers to add objects and new variables to a program on the fly."

      So it turns VB/C# into...Obj-C!

      *ducks*

      TFA is clueless, since dynamic (duck) typing has been a part of C# since version 4.0, and a part of VB since version 1.0.

  35. Bad Article Title by Valen0 · · Score: 1

    The title on the article is misleading. The author is confusing the "Software as a Service" distribution model with the "Just In Time" (JIT) compilation model. The article subject is about how Microsoft, through the Roslyn architecture, is allowing SDK level access to the JIT compiler that runs the .NET applications on the host computer.

    --
    -Valen
    1. Re:Bad Article Title by shutdown+-p+now · · Score: 1

      Whereas you are confusing "compiler" and "JIT compiler" here. Roslyn has nothing whatsoever to do with JIT-compilation of CIL bytecode to native code. It is about compilation of C# and VB source code to CIL bytecode - but more than that, since it also exposes intermediate steps (such as AST).

      But, yeah, this still has nothing to do with SaaS.

  36. Upcoming video here? by Anonymous Coward · · Score: 0
  37. I made that mistake too by Kamiza+Ikioi · · Score: 1

    I heard Compiler as a Service and thought at first, "Oh great, Microsoft feels the big threat by Google App Engine, and that Python is going to take all of their business, so they've created a Python killer."

    --
    I8-D
  38. Re:My dislike for VB.Net can be summarised with th by jamiesan · · Score: 1

    VB6: Getting our strict on since 1998!

  39. The summary sucks by Anonymous Coward · · Score: 0

    A lot of people are being misled. It should have read, "MS previews new runtime compiler function. The new function uses an instance of the compiler running as a service. The service can be run locally or remotely"

    Of course, the summary was bait for all the people upset about MS taking control of their software and was a successful troll of Slashdots userbase designed to generate pageviews and ad revenue.

  40. Not a service by bsv368 · · Score: 1

    Service is a terrible word to describe this. TFA doesn't even use it except in the title. Compiler As An API. Compiler As A Library.

  41. GCC is not better in this respect by Anonymous Coward · · Score: 0

    I am doing CLFS with GCC 4.6.1 right now.
    I target i686-pc-linux-gnu under Cygwin/Win7 (I'm actually done already and now optimizing initramfs size).
    GCC 4.6.1 source code size is 411 MB.
    Have you looked at GCC (or any other non-trivial) source code yourself?
    I did and even reported few GCC bugs with fixes that have been accepted.
    Can you personally spot a planted bad code looking at all that source code?
    Out of "millions eyes" only about four eyes have a competence and patience to spot such a problem (I don't have it either).
    And I guess at least two of that four eyes belong to a person who plants the bad code.

  42. You're full of it on VB6 by Anonymous Coward · · Score: 0

    There are TONS of "enterprise class" apps written around the planet still in VB6 (I know, I've programmed around 20 of them myself (or, co-programmed them for businesses around the USA) since 1996 or so, & I am FAR from the "ONLY PROGRAMMER OUT THERE"). In fact, your statement REEKS of someone that's never really been out there coding larger applications for businesses. I mean, for example, don't you *think* that dataaccess via ADO, RDO, OO40, & even DAO via SQLStatements (using directexecute OR better yet, stored procedures on larger DB engines like DB2, Oracle, or SQLServer) are possible to use to design such larger enterprise class data systems in VB6? Clue/New NEWS/NewsFlash: It's VERY possible, & VB was excellent at it (in fact, less failed projects than C/C++ written ones typically for decades, because the language is less complex). Only Delphi rivalled VB on that last account.

    APK

  43. crap summary by spongman · · Score: 1

    guys, stop confusing this with SaaS, the Java compiler API, GCC plugins, etc...

    Just watch the damn video!

  44. yeah right by Gravis+Zero · · Score: 1

    I think I'll stick with GCC/G++

    --
    Anons need not reply. Questions end with a question mark.