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."
Didn't NetCraft confirm it?
I'm not a lawyer, but I play one on the Internet. Blog
"It resembles a model developed by the Mono Project"
I new it was better. Please kill .Net.
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,
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,
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.
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.
What sets this apart from LLVM and clang except for the languages it supports?
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.
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.
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.
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,
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?!
not 'service' as in 'zuckerberg/NSA world domination'
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.
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.
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.
The cloud compiler had yet another outage.
...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.
HAHAHA you fail
"option strict on" ...
*facepalm*
throw new NoSignatureException();
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?
This sounds similar to GCC plugins: http://gcc.gnu.org/wiki/plugins
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.
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.
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.
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?
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.
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.
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.
Please see replies to c0lo's post.
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?
And the next step will be a cloud-based compiler so Microsoft can automatically check whether your code infringey on any of their patents???
It sounds a bit like an "all things to all men" Ada or PL/1 in vapourwear
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
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
http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-816T
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
VB6: Getting our strict on since 1998!
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.
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.
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.
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
guys, stop confusing this with SaaS, the Java compiler API, GCC plugins, etc...
Just watch the damn video!
I think I'll stick with GCC/G++
Anons need not reply. Questions end with a question mark.