×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Microsoft Previews Compiler-as-a-Service Software

samzenpus posted more than 2 years ago | from the but-this-please dept.

Microsoft 171

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."

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

171 comments

I thought VisualBASIC was dead... (1)

Compaqt (1758360) | more than 2 years ago | (#37417684)

Didn't NetCraft confirm it?

Re:I thought VisualBASIC was dead... (1)

dririan (1131339) | more than 2 years ago | (#37417700)

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.

Re:I thought VisualBASIC was dead... (1)

Pino Grigio (2232472) | more than 2 years ago | (#37417830)

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

Re:I thought VisualBASIC was dead... (1)

cbhacking (979169) | more than 2 years ago | (#37417870)

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.

Re:I thought VisualBASIC was dead... (1)

Anonymous Coward | more than 2 years ago | (#37417930)

...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.

Re:I thought VisualBASIC was dead... (1)

julesh (229690) | more than 2 years ago | (#37417998)

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.

Re:I thought VisualBASIC was dead... (2)

mangu (126918) | more than 2 years ago | (#37418160)

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.

Re:I thought VisualBASIC was dead... (2)

Dr_Barnowl (709838) | more than 2 years ago | (#37418062)

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.

Re:I thought VisualBASIC was dead... (1)

WrongSizeGlass (838941) | more than 2 years ago | (#37418226)

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).

Re:I thought VisualBASIC was dead... (0)

Anonymous Coward | more than 2 years ago | (#37418358)

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.

Re:I thought VisualBASIC was dead... (1)

aix tom (902140) | more than 2 years ago | (#37418490)

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.

There actually appears to be a C3 language (1)

Chrisq (894406) | more than 2 years ago | (#37418752)

here does seem to be a c3 programming language [c3-lang.org]. The designer's blog [c3lang.org] 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

Re:I thought VisualBASIC was dead... (0)

Anonymous Coward | more than 2 years ago | (#37418054)

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.

So, why not use Mono? (0)

Anonymous Coward | more than 2 years ago | (#37417688)

"It resembles a model developed by the Mono Project"

I new it was better. Please kill .Net.

Re:So, why not use Mono? (4, Informative)

ByOhTek (1181381) | more than 2 years ago | (#37418656)

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.

Threat to Computing (0)

improfane (855034) | more than 2 years ago | (#37417702)

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.

Imagine a world where... (0)

improfane (855034) | more than 2 years ago | (#37417710)

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.

Re:Imagine a world where... (1)

Tomato42 (2416694) | more than 2 years ago | (#37417962)

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.

Re:Imagine a world where... (1)

DrgnDancer (137700) | more than 2 years ago | (#37418608)

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.)

Re:Imagine a world where... (1)

UnknowingFool (672806) | more than 2 years ago | (#37419192)

I think Apple developed Clang [wikipedia.org] 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.

Re:Threat to Computing (1)

dririan (1131339) | more than 2 years ago | (#37417712)

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...

Re:Threat to Computing (0)

Anonymous Coward | more than 2 years ago | (#37417896)

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

Re:Threat to Computing (3, Insightful)

aztracker1 (702135) | more than 2 years ago | (#37417716)

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.

Re:Threat to Computing (1)

c0lo (1497653) | more than 2 years ago | (#37417754)

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 [bell-labs.com]
"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.

Re:Threat to Computing (2)

maxwell demon (590494) | more than 2 years ago | (#37417974)

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).

Re:Threat to Computing (1)

plover (150551) | more than 2 years ago | (#37419274)

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.

Re:Threat to Computing (1)

DrgnDancer (137700) | more than 2 years ago | (#37418688)

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.

Re:Threat to Computing (2)

c0lo (1497653) | more than 2 years ago | (#37418784)

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?

Re:Threat to Computing (1)

DrgnDancer (137700) | more than 2 years ago | (#37418888)

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.

Re:Threat to Computing (1)

ByOhTek (1181381) | more than 2 years ago | (#37418698)

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 [bell-labs.com]

"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.

Re:Threat to Computing (1)

c0lo (1497653) | more than 2 years ago | (#37418808)

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.

Re:Threat to Computing (1)

ByOhTek (1181381) | more than 2 years ago | (#37419040)

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.

Re:Threat to Computing (1)

c0lo (1497653) | more than 2 years ago | (#37419216)

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

Exactly my point [slashdot.org]

Re:Threat to Computing (1)

UnknowingFool (672806) | more than 2 years ago | (#37419320)

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.

Re:Threat to Computing (1)

johanatan (1159309) | more than 2 years ago | (#37417756)

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

Re:Threat to Computing (1)

mangu (126918) | more than 2 years ago | (#37418238)

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.

Re:Threat to Computing (1)

erik umenhofer (782) | more than 2 years ago | (#37417734)

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.

Re:Threat to Computing (1)

davepermen (998198) | more than 2 years ago | (#37417744)

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.

There's prior art (1)

mangu (126918) | more than 2 years ago | (#37418178)

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? [fsf.org]

Try reading the article (2)

msobkow (48369) | more than 2 years ago | (#37417786)

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.

Re:Try reading the article (2)

klingens (147173) | more than 2 years ago | (#37418620)

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!

Re:Threat to Computing (1)

bennett000 (2028460) | more than 2 years ago | (#37417790)

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.

Re:Threat to Computing (1)

Superken7 (893292) | more than 2 years ago | (#37417812)

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.

Use our compiler or your exe won't load (1)

tepples (727027) | more than 2 years ago | (#37418564)

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.

Re:Threat to Computing (1)

Imbrondir (2367812) | more than 2 years ago | (#37417846)

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.

Re:Threat to Computing (1)

Noughmad (1044096) | more than 2 years ago | (#37417936)

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 [opensuse.org]?

Re:Threat to Computing (0)

Anonymous Coward | more than 2 years ago | (#37417850)

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.

Re:Threat to Computing (0)

Anonymous Coward | more than 2 years ago | (#37417960)

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?

After your personal info... (0, Redundant)

c0lo (1497653) | more than 2 years ago | (#37417714)

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.

Re:After your personal info... (0)

Anonymous Coward | more than 2 years ago | (#37417788)

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.

Re:After your personal info... (1)

c0lo (1497653) | more than 2 years ago | (#37417864)

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?

Re:After your personal info... (1)

gutnor (872759) | more than 2 years ago | (#37417798)

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.

Re:After your personal info... (0)

Anonymous Coward | more than 2 years ago | (#37417802)

Is everyone else commenting here high?

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

Re:After your personal info... (5, Informative)

pyrbrand (939860) | more than 2 years ago | (#37417804)

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#.

Re:After your personal info... (1)

c0lo (1497653) | more than 2 years ago | (#37417844)

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.

Re:After your personal info... (1)

Asic Eng (193332) | more than 2 years ago | (#37417928)

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.

Re:After your personal info... (1)

monopolarbear (2412522) | more than 2 years ago | (#37417982)

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 [imageshack.us] ) , you should press AltGr + 3. If you miss AltGr you would type C3 instead of C#..

Re:After your personal info... (1)

Rockoon (1252108) | more than 2 years ago | (#37418502)

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 [wikipedia.org] 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.

Why marketing people need to be tortured slowly .. (0)

Anonymous Coward | more than 2 years ago | (#37417984)

...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.

Re:After your personal info... (1)

pixy11 (2462842) | more than 2 years ago | (#37418088)

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.

Re:After your personal info... (0)

Anonymous Coward | more than 2 years ago | (#37418204)

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.

Re:After your personal info... (0)

Anonymous Coward | more than 2 years ago | (#37418770)

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.

Slashdot groupthink ... again (0)

Anonymous Coward | more than 2 years ago | (#37417774)

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.

Bad Title (1, Insightful)

improfane (855034) | more than 2 years ago | (#37417860)

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.

Re:Bad Title (1)

Tacvek (948259) | more than 2 years ago | (#37418746)

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.

Re:Bad Title (1)

St.Creed (853824) | more than 2 years ago | (#37418920)

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 :)

Business Skewl (0)

Anonymous Coward | more than 2 years ago | (#37417814)

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.

Have they not heard of System.CodeDom.* ? (1)

oPless (63249) | more than 2 years ago | (#37417880)

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?!

Re:Have they not heard of System.CodeDom.* ? (1)

Tacvek (948259) | more than 2 years ago | (#37418800)

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.

'Service' as in 'daemon' (2)

2phar (137027) | more than 2 years ago | (#37417886)

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

Re:'Service' as in 'daemon' (1)

Marc Madness (2205586) | more than 2 years ago | (#37419156)

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.

first they AASed the... (0)

10am-bedtime (11106) | more than 2 years ago | (#37417908)

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.

Re:first they AASed the... (0)

Anonymous Coward | more than 2 years ago | (#37418602)

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.

Schmit's "Optimizing Assembler" (1)

MichaelCrawford (610140) | more than 2 years ago | (#37417938)

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.

C3 is not a new language (1)

fynfuqbg (522423) | more than 2 years ago | (#37417958)

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.

GCC plugins? (0)

Anonymous Coward | more than 2 years ago | (#37418214)

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

NOT about the cloud (0)

Anonymous Coward | more than 2 years ago | (#37418216)

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.

This article was written by an idiot (1)

benjfowler (239527) | more than 2 years ago | (#37418296)

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.

Summary doesn't tell the right story (0)

Anonymous Coward | more than 2 years ago | (#37418308)

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.

Prime use case: better merge conflict resolution (1)

DanyX23 (984873) | more than 2 years ago | (#37418422)

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?

Microsoft patents it (0)

nikkipolya (718326) | more than 2 years ago | (#37418476)

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.

Your Go In The best way Air Jordan Shoes Stumbled (-1)

Anonymous Coward | more than 2 years ago | (#37418524)

Not surprising the beginning of the shoe company offers resulted in the effective vacation by identifying that as soon as the Ancient greek language goddess associated with victory. Nike, Adidas and Speak were being these key athletics manufacturers because reasoning behind trainers came to be. To start with people today referred to as the organization as Cordon bleu Activities in which eventually turned being generally air max shoes [vogue4biz.com] known as Nike. Many with Nike's honor is usually due to air Jordans distinctive line of golf ball tennis shoes.It turned out noisy . 80s as soon as the rest of the companies experienced joined long term contracts along with popular golf ball megastars of these time air Jordan shoes [vogue4biz.com] period this Nike had an important determination of shelling out money on the subsequently Out of law school on the crimson bulls company - Jordan. The primary actually Jordans had been designed by Peter Moore and also the style performed every one of the marketing to the merchandise that seemed to be needed. The item stirred up air max 2011 shoes [vogue4biz.com] a dispute regarding Moore did not know this merely white-colored footwear have been helped amongst people. Despite the principles, The air jordan dressed in these people following forking out heavy fees.There after, it had been Nike that's judgment your site regarding golf ball footwear. The idea experienced recorded any earnings with $a couple of.three one thousand million nevertheless had comments 2 months connected with open public relieve The nike jordan Brand of shoes or boots. Through 84 until present day 24 innovative layouts in addition to inventions have already been included in the Jordans using Jordans the new year variety remaining up to date.Because of huge recognition and price tag, there are plenty of fake Jordans which have attacked this marketplace. Beware of all of them. Carefully consider the actual "jumpman" logo design as well as the holograph before hooday [vogue4biz.com] buying these people. The best way to keep away from fakes is to find air jordan shoes mix air max 2009 [vogue4biz.com] your own true Jordans out of a strong documented The nike jordan shop. A summary of these outlets will come in the actual Nike web page. Your website now offers an individual instruments to style your set of two Jordans plus sequence these people internet.The reason for ready even now? Get along with pick up your pair of Jordan Athletic shoes and enjoy the activity!

So? (0)

lennier1 (264730) | more than 2 years ago | (#37418662)

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

Welcome to the future MS (2)

lerxstz (692089) | more than 2 years ago | (#37418896)

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*

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...