`
xitongyunwei
  • 浏览: 929531 次
文章分类
社区版块
存档分类
最新评论

Key Software Development Trends

 
阅读更多
More than ever before, today’s developers are open to considering and using multiple technologies to enable them to build solutions smoothly and deliver them to their customers quickly. There are an increasing number of choices available for developers in terms of programming styles. Our goal is to provide fantastic support for all programming styles within our tools to enable our customers to build great software.

Several trends are emerging within the area of software development. Below are some of the most important trends I’ve been thinking about recently. This list isn’t comprehensive of all software trends, but each one represents an area that Microsoft is currently or will be investing in to bring to our customers.

Cloud Computing

Cloud computing allows companies to leverage just the computing resources they need today, scale up to handle peak loads, and avoid the overhead of managing hardware. Cloud computing levels the playing field for small companies to compete against large, established companies at a reasonable and predictable cost. Windows Server, Windows Azure, SQL Azure, and services such as Windows Live, Office, and Xbox Live are now live in the cloud. Microsoft has committed to bringing the best cloud computing platform and services to the Windows ecosystem. The cloud is just one example of a virtualized computing platform, and the next generation of developer tools must enable developers to build software that deploys and performs well in cloud and other virtual environments.

The Web as a Platform

The browser provides a rich runtime environment and friction-free access to applications. Developers are increasingly choosing the web as their platform of choice for software and software development. Increasingly, developers and designers are using tools that offer a rich development, debugging, and profiling experience designed for the web. JavaScript libraries allow web developers to get more done with JavaScript than ever before while reaching a wide audience, and immersive internet applications, such as those written for Silverlight, allow developers to break free of the limitations of HTML and take advantage of a range of resources and features while guaranteeing compatibility across platforms.

Parallel Computing

Moore’s Law, the prediction that CPU performance would double every eighteen months, is now fulfilled by adding more processor cores rather than by increased performance of a single core, bringing the power of multi-core processing to low-end machines. New trends in computing take advantage of inexpensive and widely-available desktop graphics processors for certain tasks. At the high end of processing ability, supercomputing centers are leveraging clusters to perform complex computational tasks. Today, a small handful of programmers have the skills to write code that performs well in multi-core and many-core environments. In the future, parallel libraries, debugging, profiling, and diagnostic tools will enable more developers to take advantage of parallel computing resources.

Proliferation of Devices

With the increasing availability of inexpensive devices that connect to the internet, we all want to access and interact with our data in ways that are appropriate to our devices’ capabilities. We expect to access our online identities and data easily and securely on all our devices. Today, Microsoft provides access to users’ data via Windows Live and Xbox LIVE. With the proliferation of devices has come a proliferation of user interface paradigms that enable natural and intuitive interaction with those devices. As touch-based, speech-based, and camera-based solutions become available and cost-effective, Microsoft is evolving software to take advantage of these capabilities to build intuitive user interfaces. Windows 7 provides great support for touch-enabled applications in the platform. Silverlight and WPF have embraced camera-based interactions and multi-touch, as has MFC. I expect user interface paradigms to continue to evolve and become more intuitive and powerful.

Agile Development Process

Agile development processes, including Scrum, test-driven development, and continuous integration are commonly used in the enterprise and smaller development shops, often in combination with other development practices. Within Microsoft, many teams have integrated elements of Agile development practices to their process. Visual Studio 2010 opens the door for Agile methodologies, offering support for some Agile processes such as unit testing and iteration planning. We will continue to support more Agile methodologies going forward as well.

Distributed Development

Distributed development enables team members to work closely despite geographic separation from each other, bringing together worldwide talent to seamlessly work toward a common project or goal. The experience of a team working across time zones and borders should be as good as the experience for a single developer, but also includes supporting cloud-based development activities such as distributed code reviews, remote paired programming, developer/tester collaboration and resource sharing. Great distributed team development tools will enable developers to build the next generation of software, leveraging the worldwide talent pool.

In Closing…

These trends don’t represent a complete list of influential factors for all areas, but are some of the areas we feel can move software development forward. I welcome your perspective: which of these trends do you feel will be most important in the future? Are there trends you think should be included in this list? Leave a comment with your perspective.

分享到:
评论

相关推荐

    The.Antivirus.Hackers.Handbook.1119028752

    which details how to start from a finished antivirus software program and work your way back through its development using the functions and other key elements of the software. Next, you leverage ...

    C++test教程为从事软件测试人员提供良好的工作

    improve software development team productivity and software quality. C++test enables coding policy enforcement, static analysis, comprehensive code review, and unit and component testing to provide ...

    c++test完整版教材为中国软件测试人员工作

    improve software development team productivity and software quality. C++test enables coding policy enforcement, static analysis, comprehensive code review, and unit and component testing to provide ...

    Software Testing and Continuous Quality Improvement

    Obtain Development Acceptance. . . . . . . . . . . . . . . . . . . . 18 Step 4. Plan for Implementation of the SQA Plan . . . . . . . . . . . . . 19 Step 5. Execute the SQA Plan. . . . . . . . ...

    Enterprise Application Architecture with .NET Core

    It will then teach you about the types of patterns and the principles of software development, and explain the various aspects of distributed computing to keep your applications effective and ...

    Cognitive Computing for Big Data Systems Over IoT(2017).epub

    In cognitive computing, new hardware or software devices mimic human brain and take a decision appropriate to the situation. Moreover, cognitive computing is used in numerous artificial intelligence ...

    Apache Spark 2.x Cookbook

    He is an open source software expert and advises American companies on big data and public cloud trends. Rishi was honored as one of Silicon Valley's 40 under 40 in 2014. He earned his bachelor's ...

    Mastering.Text.Mining.with.R.epub

    Key Features Develop all the relevant skills for building text-mining apps with R with this easy-to-follow guide Gain in-depth understanding of the text mining process with lucid implementation in the...

    Mastering Text Mining with R [2016]

    Text Mining (or text data mining or text analytics) is the process of extracting useful and high-quality information from text by devising patterns and trends. R provides an extensive ecosystem to ...

    Research Advances in Cloud Computing-Springer(2017).pdf

    The first chapter on “Serverless Computing: Current Trends and Open Problems” covers various serverless platforms, APIs, their key characteristics, technical challenges, and related open problems....

    AJAX and PHP.pdf

    was created by Microsoft in 1999), their new role in the new wave of web trends is very young, and we'll witness a number of changes before these technologies will be properly used to the best ...

Global site tag (gtag.js) - Google Analytics