Microsoft Roslyn: New Type of Compilers

Microsoft has presented an interesting project named Roslyn. Within the framework of this project, all the concept of compilers and compilable programming languages itself has been reconsidered. Apart from the realization of completely new functions, such as .NET-tools, C#, Visual Basic and the Visual Studio development environment, the Roslyn project offers the completely new concept ‘compiler as a service’, laying a road to the .NET platform to the most promising area – into clouds.

Once Microsoft gave many professional software developers the hope for well-off and predictable future, having moved the development of its own and third party technologies on the .NET development platform. So far, the Visual Studio development environment and the .NET platform are the most popular and convenient development tools, having adopted the best features of java technologies and having made some important steps ahead. When Microsoft presented the new development tools for writing apps with the help of JavaScript and HTML5, many software development companies started to worry that the .Net development had been folded up. However, the reality has exceeded all expectations – the presented project Roslyn has proved that the .NET platform has exciting future.

The Roslyn technology can be described as ‘compilation by request through the providing service’, although this description is a bit complicated. Technically, the new technology is not a service in comparison with such cloud solutions as SaaS (Software-as-a-Service) or PaaS (Platform-as-a-Service). The Roslyn technology is more similar to the Windows system services that offer completely new principles of compiling .NET applications – each phase of compilation is presented in the form of service that can be requested by other applications.

Usual compilers throw away all intermediate data while getting ready-made files and in Roslyn compilers all intermediate data is available via standard .NET API-interfaces. For example, the request to one single API will retrieve the whole syntax tree for the given code fragment in the form of an object. The request to another API can return the number of methods in code.

So far, one can’t predict how soon the Roslyn technology will find its place among standard development tools  – now only the trial version for C# and Visual Basic is available.

New Azure Toolkit for Windows 8

Microsoft has released the new tool for mobile application development companies that allows using the possibilities of the cloud platform Windows Azure and the software Windows 8 Metro.

The new set of the Windows Azure Toolkit for Windows 8 has been designed for the simplified apps development under Windows Metro which is able to work with the cloud operation system Windows Azure. The new tool is reported to let using the remote Azure storage as well as its computational capabilities.

The new tool includes the Windows 8 Cloud Application templates for Visual Studio, which allows working with it from the common environment for software developers.

Windows Azure Toolkit for Windows 8 supports JavaScript and HTML5, as well as .NET, C#, C++ and Visual Basic. Among the additional options there are tools for checking dependency, Windows Push Notification Service libraries and Visual Studio 2010 templates.

С++ is celebrating its 25th anniversary

The first official guide on the new programming language С++ appeared 25 years ago. On October 14, 1985 Bjarne Stroustrup introduced a new programming language of a high level that allowed writing programs for various computers using practically unchangeable programming code that was closer to the people’s language rather than to the machine codes.   

Recently С++ has become the most widely used programming language that supports object oriented programming. Stroustrup became the pioneer in the sphere of using object oriented techniques in software development where effectiveness is the priority quality in such things as simulators, graphics, user interfaces, application system, and systems for scientific calculations.

Stroustrup’s book ‘C++ programming language’ is one of the bestsellers in this sphere. It was translated into 19 languages. The next book ‘Design and evolution of C++’ opened much new in programming language description: new ideas, ideals, problems. In addition to his five books, Stroustrup published more than a hundred academic and other popular articles.

Bjarne Stroustrup took an active part in creating the ANSI/ISO standard for C++ and now continuous the work on supporting and reviewing the standard.

How to read books on programming more effectively?

The majority of newbies and even some experts in software programming often ask themselves a question: how to read a book on programming? They want to save time and get more effect from reading.
What do you think? Which of the following tips would be more useful?
• To read one chapter, and only after that to study a set of examples and task solutions.
• To read a chapter and a set of examples at the same time.
• To read a chapter / book and then review examples only visually, inventing own analogues of described problems.

We asked Oxagile programmers what do they think about these questions and got the following answers:
• I try to go read the chapter, type examples (I think that mechanical typing is also beneficial for me =), then I try to invent my own tasks for the given topic.
• Traveling by subway I saw bearded guy who was reading the textbook on C + +, desperately commenting tasks in his notebook. I like this approach to the effective reading, but sometimes it looks like fanaticism =).
• I start my reading from different parts of the book at the same time =). And in such a way my new book can be full of multicolored bookmarks even at the first day.

The way of reading depends on your way of thinking, so you can choose your own variant of effective reading. Good luck!

14 technologies that won’t become obsolete before 2014: foundations of software development

The impact of recent changes in the world economy changed the situation in world of software. Now the majority of developers are focused on short-term work. But it doesn’t mean that they are careless about their prospects. Self-education and experience are still the only way to success. That is why it’s so important to be constantly analyzing existing technologies and methodologies trying to keep step with changeable IT- world, not wasting valuable time for unnecessary knowledge and superseded information.

So we will try to forecast the most essential skills for developers that won’t become obsolete in the next five-six years. In this and the next posts we will list 14 the most relevant technologies for software developers.

#1-3: Java, PHP, .NET

It’s highly unlikely that three foundations of software development, Java, PHP, .NET, will be in less demand in the near future. Developers need to know at least one of these programming languages and development platforms: Java, .NET (VB.NET or C #), or PHP. Nevertheless only one programming language syntax is not enough. Usually projects cover a wide range of different functions, so developers need to know the frameworks and libraries associated with the necessary functionality in more details.

to be continued…

The peculiarities of .NET and C# programming language

Visualstudio2008 and language C# on the .NET platform is often used for software development. The .NET absorbed all advantages that were available in the market of software development. The .Net platform uses the opportunities of XML and Web in full. It can be called one of the best platforms for development, especially when web-services are concerned.

The sight into web development is completely revised in .NET programming, powerful and suitable in use is given to our attention technology of ASP.NET, that noticeably avoids developments of rivals. To write code on ASP.NET is simpler , much quicker, and decision is got excellent on productivity.

C# is an object oriented language of programming for the .NET platform. It was developed by a group of developers under the aegis of Microsoft Research (SCIENTIFIC RESEARCH INSTITUTE at the Microsoft company).

Using .NET for Software Testing Automation

Nowadays software testing is a rapidly growing up sphere. And software testing engineers may be found employed in different sectors. Lots of methodologies are widely known:
-Agile testing;
-Extreme testing;
-Scrum testing;
-White Box testing;
-Traditional Black Box testing and others.

The Black Box testing is the most popular and called for in many companies around the world. For years experts had been developing different costly commercial tools to lessen testing efforts and to increase the efficiency and quality of software testing, but lots of them were nonviable in practice. Later in 2001, some testing experts offered to create the software utilities for their manual-and tool-automated testing efforts.