Categories
Platforms

Getting Started with EVM (Ethereum Virtual Machine)

Ethereum has been a game-changer since its launch in 2015. It revolutionized the way people think about blockchain technology and decentralization. For a quick refresher,  Ethereum is a public, open-source, decentralized blockchain which can run smart-contracts and enable developers to build and deploy decentralized applications (DApps).

Many used to believe that blockchain was all about cryptocurrencies. And Ether is just another cryptocurrency like the well-known Bitcoin. However, Ethereum took the blockchain technology to new heights by shifting its concept from being just another digital currency to a new decentralized platform with endless applications and possibilities. 

It gave birth to the ICO (Initial Coin Offering) wave, introduced a completely new programming language, supported the creation of DApps (decentralized applications), and, foremost, polarized the term “smart-contracts.” What makes all these possible is the heart of Ethereum’s success: the Ethereum Virtual Machine (EVM)

In this article, we’ll take a closer look at the EVM, what it is and how it works. We’ll also give hints and tips on how to develop on EVM using Solidity. So, without further ado, let’s get started!

Basics of Ethereum Virtual Machine 

We’ve already mentioned that EVM makes Ethereum what it is today. But we should establish a stronger foundation for understanding EVM. 

What is an Ethereum Virtual Machine (EVM)?

Ethereum Virtual Machine or EVM is a “world computer” that executes programs called “smart-contracts.” Smart-contracts are immutable computer programs intended to digitally facilitate, verify or enforce the negotiation or performance of a contract. These are applications that run precisely as programmed without the possibility of fraud or third-party interference.

Additionally, EVM is responsible for processing and executing all other transactions on the Ethereum network, such as handling DApps, and token transfers. It runs on every node in the Ethereum network and processes every transaction that goes through it. It is Turing-complete, meaning it can run any type of program as long as there are enough resources or “gas” to process it.

How does EVM work?

EVM works by executing a program called bytecode. This bytecode is generated from the high-level programming language Solidity (we will discuss this later in this article). The bytecode is then fed into the EVM, which processes and executes it.

To better understand this process, let’s compare it to how a traditional computer works. A desktop computer runs programs written in high-level coding languages like C++, Java, or Python. These programs are then converted into machine code, a low-level language the computer can understand. And the machine code is fed into the CPU (central processing unit), which processes and executes it.

Similarly, the bytecode generated from Solidity is fed into the EVM, which processes and executes it. The main difference here is that a traditional computer can only run one program at a time, while the EVM can run multiple programs simultaneously. This is because each program that runs on the EVM has its own isolated environment, which is called an “Ethereum Virtual Machine.” 

Developing on EVM with Solidity

Solidity as Programming Language

As we’ve mentioned before, the EVM executes a program called bytecode. This bytecode is generated from the high-level programming language called Solidity. So, to develop on EVM, you will need to understand the use of Solidity. 

Solidity is a contract-oriented, high-level programming language for implementing smart contracts. It was created specifically for the EVM and had syntax inspired by existing languages such as C++, Python, and JavaScript. However, there are a few things that you should know about Solidity. 

First of all, Solidity is a statically typed language, which means you will need to declare the type of each variable before using it. For example, before using it, you must declare whether a variable is an integer or a string. Secondly, Solidity is case-sensitive, so you will need to be careful about the casing of your variables. For instance, the variable “MyVariable” differs from “myvariable.” Third, Solidity does not have a concept of “null,” meaning you will need to use the keyword “require” to check if a variable is null or not.

Tools to Get Started

You can use the following few tools to get started on EVM. The first tool that you will need is the Remix IDE. A Remix is a browser-based IDE that allows you to write, compile, and debug Solidity contracts. It also comes with a built-in debugger and an integrated testing environment.

The next tool you can use is Hardhat. Hardhat is a toolkit for Ethereum development that allows you to automate many of the tasks involved in smart contract development, such as compiling, testing, deploying, and upgrading contracts.

The last tool that you can check is Truffle. Truffle is a development environment, testing framework, and asset pipeline for Ethereum. It makes it easy to develop smart contracts and provides a suite of tools for testing, debugging, and deploying contracts.

After choosing the tools, you must decide which Ethereum network you want to deploy your contract to.  You can choose from two main networks: the testnet and the mainnet. Testnet is a global testing environment in which developers can obtain and spend ether with no real-world value.” In other words, it is a test network where you can experiment with your contracts without worrying about losing any real money.

On the other hand, the mainnet is the “live” Ethereum network, where all transactions have real-world value. Contracts deployed on the mainnet are live and irreversible. Also, it is accessible to anyone in the world. Hence, ensure that your contracts are thoroughly tested before deploying them on the mainnet.

Lastly, once you have deployed your contract on either the testnet or the mainnet, you can view it on Etherscan. Etherscan is a block explorer and analytics platform for Ethereum that allows you to view all of the transactions you have made on the Ethereum network and information about individual addresses and contracts.

Tips on Developing on EVM

Here are some tips that you can use in developing on EVM: 

  1. Make sure to test your contracts thoroughly before deploying them on the mainnet because once a contract is deployed on the mainnet, it cannot be changed or deleted.
  2. Secure your private keys and keep them safe. If someone gets ahold of your private keys, they can access all of your Ether.
  3. Consider using tools to automate the tasks involved in smart contract development to save you a lot of time and effort in the long run. 
  4. Be aware of the gas costs associated with each transaction. Every transaction on the Ethereum network costs a certain amount of Ether to execute.
  5. Keep your contract code simple and easy to understand. Complex contracts are more difficult to debug and likely to contain errors.

Conclusion 

It’s safe to say that Ethereum is a disruptive innovation with the potential to change how we interact with the digital world. That’s why it’s no wonder Ethereum’s price today continuously rises. With its powerful smart contract functionality, Ethereum provides a whole new level of flexibility and control.

While it is still in its early stages, Ethereum Virtual Machine (EVM) has already established impactful changes, and its further development is definitely worth keeping an eye on.

Sophia Young recently quit a non-writing job to finally be able to tell stories and paint the world through her words. She loves talking about fashion and weddings and travel, but she can also easily kick ass with a thousand-word article about the latest marketing and business trends, blockchain, cryptocurrency, finance-related topics, and can probably even whip up a nice heart-warming article about family life. She can totally go from fashion guru to your friendly neighbourhood cat lady with mean budgeting skills and home tips real quick.

Categories
Community Languages News and Resources Platforms Tools

Current development trends in software engineering

Every year we conduct two global, independent developer surveys engaging more than 30,000 developers. We track development trends across platforms, revenues, apps, tools, languages etc. The 18th Developer Economics survey ran from November 2019 to February 2020 with more than 17,000 developers and tech-makers participating, allowing us to analyze and understand development trends on major areas such as mobile, cloud, desktop, IoT, web, augmented and virtual reality, machine learning and games. 

It’s no secret that we are data-enthusiasts. Data is in our DNA.

After each survey wave, we transform these data into graphs and insights and offer part of them as resources to our developer community. Our methodology is founded on 9 essential and non-negotiable qualities:  magnitude, impartiality, inclusivity, consistency, substantive, engagement, diligence, confidence and breadth. See more on how our methodology allows us to understand and profile developers.

Our goal is not only to help the world understand developers but also to add value to all the developers out there, by offering them the necessary insights to benchmark themselves and make smarter business decisions based on current development trends.

So let’s have a look at what our developers are saying, shall we?

Starting from some basic insights, it is important to know in which age group our respondents belong: 35% of developers worldwide are between 25 and 34 years old. The second largest demographic – almost 28%- is the young developers, aged 18 to 24 years old. 

What age group are you in?

Development trends

Just over half of our respondents reported having less than 5 years of coding experience. As our research covers both professionals and amateurs such as hobbyists and students, the experience mix makes perfect sense and is representative of the coding skills of the global developer population. We find that the young and relatively inexperienced are the first to jump into emerging sectors drawn by the hype, and they play a key role in their evolution.

How many years have you been working on software projects?

Development trends

Focusing on programming language preferences of mobile and backend developers, we find that Java is the third option for backend developers, while the most popular choice of mobile developers. The first choice of backend developers is instead Javascript with over half using it for cloud development. 

Which programming languages do you use to write code that runs on the device in your mobile apps?

development trends

Which programming languages do you use to write code that runs on the server?

development trends

When it comes to front-end frameworks or libraries for web applications most programmers use jQuery (49.7%) and Bootstrap (48%). Other frameworks our respondents stated they’re using are React (42.9%), Vue (28%) and Angular (2+) (25.2%). 

What about trends in augmented and virtual reality (AR/VR)? Almost half of the developers working on AR/VR use C#. Moreover, as is typical of a still-emerging sector, almost 60% of respondents said they are hobbyists in this field.
Last but not least game development. Developers mostly prefer to create adventure and action game apps with 44% of respondents choosing each of these. 36% create Arcade games while almost 23% choose Role Playing or Strategy games.

Which categories do your games fit in?

development trends

For more insights from our latest survey, you can check out the Developer Economics graphs dashboard. It’s also a great opportunity to benchmark yourself against the global average. 
Enjoy!

Looking for a more thorough report analysing the developer population and trends? Download our next State of the Developers Nation report 18th Edition. You will find it here.

Categories
Platforms

Major Issues When You Use Mobile App Builders

Having a brick-and-mortar location isn’t enough for the average business anymore. Rather, both large and small businesses need to take the time to build an online presence for themselves. This connects them with their customer base directly and makes it easier for potential customers to find the business. 

Specifically, apps have a special level of potential. When a company has an app, they’re likely to see higher profits, increased customer loyalty, greater brand recognition, and more business from each customer. Smart Insights put the benefits and cost of mobile apps well in their infographic.

However, there is more than one way that developers can tackle building an app. One of the first answers that come up in response to the need for an app is often to use a mobile app builder. Yet, these have some key disadvantages that you need to know. 

Limitations of Template Design

Mobile app builders put a focus on beginners and busy teams that don’t want to worry about custom coding. While convenient, this comes with an unfortunate drawback. It’s difficult to make a striking and unique product when starting off of a generic base. This is a major risk in a market in which, according to Statista, there are currently almost 2.5 million apps with additional ones being released every day. 

In addition, it’s very hard to fundamentally change a template. So, even if developers have the expertise to make changes, it’s going to be difficult if not impossible to achieve the same results as an app developer company when using a mobile app builder. Once again, this limits individual creativity because it won’t allow developers to heavily adapt to the company’s distinct tastes, aesthetics, and needs. 

Access to Limited Features

The features that mobile app builders offer also come back to the downfall of their simplicity. Because users are catered to in a way that doesn’t require them to custom code or program anything into their apps, many mobile app builders are designed with a drag-and-drop feature.

In these cases, there are a number of predetermined features available in the app builder. When developers find a feature they want in their app, they basically drag it into their workspace and drop it where they need it to go. The exact way that the builder works vary from software to software but the general concept is usually the same.

To be fair, there are plenty of mobile app builders that have wide libraries of features to use in apps created on them. That being said, any library of pre-set features is, by nature, limited. Much like templates, this inset limitation isn’t inspiring when it’s juxtaposed with the need to stand out from a crowd of other apps.

Dependence on the Platform Used In Development

When an app is created from scratch by a development company or team, there isn’t a platform that the app is dependent on. On the other hand, when an app is developed on a mobile app building platform, it’s dependent on that platform. If the platform changes or, in the worst-case scenario, shuts down, your company may struggle to update or even regularly maintain the app without transferring it to a new platform or system.

This also comes down to ownership as well as functional convenience. If your company uses a mobile app builder to create an app, it only partially owns that app. After all, the app isn’t just created with the company’s intellectual property but with the technical property of the app builder.

The problem with this is that many mobile app building platforms hold some control over the content created on them. If a problem arises or if the company that owns the platform isn’t entirely trustworthy, the platform is well within its rights to delete or lock a user out of their account or even refuse to continue future service with them. If your business loses progress on an app, it can cause a noticeable decrease in profits, damages to customer relations, and the cost of recreating the app in a different form.

mobile app

Dedication to a Single Platform

As just mentioned, when a company builds an app on one of these app building platforms, they give up some of their ownership rights to that app. One of the other consequences to these terms is that many companies struggle to transfer their app from one platform to another.

If your company is using the app builder to create an Android app, for example, this can be a particular problem. This is because if they decide to expand the app, such as creating an iOS version, by taking it to another builder, they may run into problems with the terms of service for the builder they’re already using.

Additional Charges from a Mobile App Builder

A surprising fact for many developers is that building a custom app with an app development service can oftentimes be less expensive than using an app builder. A big part of this is thanks to the set fees that app development services set out at the beginning of their time working with a company.

Mobile app builders vary slightly here. Of course, they have an upfront cost of using the platform but this often changes over time. For instance, as the app grows, it will need more space for data storage. Also, certain features may need to be upgraded to handle higher volumes of traffic.

mobile app

When this happens, though, mobile app building platforms may charge additional fees for these additional features. This means that the investment in the tools used to create, maintain, and upgrade the app can exponentially increase over time. 

Mobile App Builder: Conclusions

A mobile app builder is enticing, in large part, thanks to the convenience and ease of use. However, it would be misleading to think that these are the perfect tools. From the inconveniences of limited design choices to the legal challenges of sharing ownership of the app, these platforms make the development and maintenance process more challenging than it needs to be. As an alternative, working with an app development service will offer companies a custom app with less red tape to complicate the process.

Additionally, there are various tools you can use for app development. If you are into ARVR apps, we have created a list of Top 5 Tools for Augmented Reality in Mobile Apps.

What has been your experience of working with mobile app builders?

Categories
Community Platforms

Decoding development trends: The 17th State of the Developer Nation Report is out

Every six months, the Developer Economics Survey captures the voice of more than 20,000 developers globally. Our surveys engage developers working across mobile, desktop, IoT, cloud, web, game, AR/VR, machine learning development and data science, decoding development trends.

The 17th Developer Economics survey ran between June and  August 2019. The data analysed provided really interesting insights about the different developer profiles out there.

For instance, one in three developers are all-rounders. Only one in five declare themselves as specialists. There are almost four times as many introverts (37%) as extroverts (10%) among developers. This is a significant difference from the 2:1 ratio in favour of extroverts found in the wider community.

We also included several unusual labels, uncovering, for example, that there are double the number of night owl developers than early birds (29% compared to 14%).. What time is it with you right now?

2X night owl developers compared to early birds (29% compared to 14%

Javascript remains the Queen

Looking, into programming language trends we found that JavaScript remains the queen with a community of over 11M active developers. On the second tier we have Java (6.9M) and Python (6.8M).

Our data challenges the assumption that developers’ language use is relatively stable over time. Instead, it seems that developers drop and adopt new languages all the time, depending on their needs and on their running projects.

Kotlin is the rising star among programming languages. It moved up from 11th to 8th place in just a year.

Ÿ
Growing interest and adoption in 5 emerging technologies

We saw a significant increase in developers’ involvement and adoption of five technologies in the 6 month period ending Q2 2019. These are DevOps, mini-apps, computer vision, cryptocurrencies, and fog/edge computing. For DevOps in particular, the percentage of developers who are either interested in it, learning about it, or have already adopted it increased from 66% to 70%.

Computer vision, on the other hand, saw a noticeable growth in the number of developers involved in it.  Meanwhile, the share of those developers who are actually adopting it increased only slightly.

Interest in robotics and quantum computing also increased.

However, the share of interested developers that are working on the technology dropped.

ŸInterest and adoption in blockchain applications other than cryptocurrency, conversational platforms/voice search, drones and biometric technologies remains constant.
Ÿ

Streaming games and extending reality

ŸJust 16% of professional and 10% of hobbyist game developers say they are actively working on designing games for streamers to live-stream their gameplay to an audience. Gameplay streaming is mostly associated with brand promotion and revenue generation. Therefore, the difference between professional and hobbyist interest is to be expected.

One in five AR/VR game developers design for gameplay streaming. This might be because they are the most comfortable with different models for their games, on emerging hardware and across new business channels.

Decoding development trends across regions and screens

  • 2 out of 5 app developers in Asia build apps for messaging platforms and/or chatbots.
  • 34% of mobile developers used cross-platform frameworks in the last 12 months (40% of professional mobile developers, 33% of hobbyists and students).
  • Almost one in four mobile developers opt to use React Native.
  • 31% of mobile developers whose primary target is iOS are using React Native. This compares with 21% of those who primarily target Android.

You can read the full State of the Developer Nation report here.

We look forward to decoding development trends in our next report. You can help shape the trends by taking the 18th Developer Economics survey here!

Categories
Platforms

Game On! AR vs VR

Here at /Data we offer certainty to those that are speculating about software developers: who they are, what they are choosing to do with at work and with their hobby time, and how they are doing it.  We consider ourselves the analysts of the developer economy and often say that we help the world to understand developers…and developers to understand their world.  ARVR

google-cardboard

“Google Cardboard 3d, 360 degree video viewer” by mr.racy is licensed under CC BY 2.0

Two of the areas that we are often asked about by big businesses with skin in the game are Augmented Reality (AR) and Virtual Reality (VR). Part of my job is to brief top tier organisations on what the developer audience is focussed upon so the companies can make the best decisions. I don’t speculate — I’m not brave enough for that.  Instead, like every analyst at the company, I use our data to find trends and outliers in this emerging sector.

How do we get the data? We ask the people at the coal face, the developers. We do this twice a year through one of the largest and broadest surveys in the developer calendar. We have a set of questions about AR/VR which we update regularly to find out how the latest frameworks and hardware are faring, and which programming languages are most popular. We can tie the data back to the types of apps that developers are creating, whether they work professionally or as hobbyists, and where they are based, among other things. We write reports after analysing the data, which you can find here. The AR/VR reports are in the “Emerging” category.

In the rest of this blog post, I’m going to share a few key facts that we gathered in a recent wave of our survey (Q2 2018). We currently have another survey running and would love to include your opinions; if you share them with us, there’s the chance to win some awesome prizes. Interested? Take the survey. 

ARVR development is immature

OK, that probably came out wrong! AR/VR development is still not a mature area in that it’s hardly established in the same way as desktop or web development. We generally use the more polite term “nascent” to describe an area where most of the developers working in it are hobbyists, though often professionals in other sectors, or students. In nascent areas, we find most developers are simply trying out ideas to find out more about the basics of the technology and work out where to go with it. 

ARVR development is increasing in popularity, with over 20% of our survey respondents saying they had worked on such a project in the past 12 months. Given our estimates of the total worldwide developer population, that gives a global population of AR/VR developers of over 5M.

We see a high number of young, inexperienced developers in this area, which is another sign of a sector that hasn’t yet settled down sufficiently for businesses to build a stable ecosystem of professional developers within it. It’s a sign of churn, where developers try the technology and move on. Most AR/VR apps are developed within the games category and, where they are not, their developers are still uncertain of their audience. Among AR/VR developers, almost 2 out of 3 are not so much bothered about making revenue from their efforts, but are simply interested in gaining experience. 

Virtual reality

Hardware moves rapidly in this sector, and we find ourselves updating our question set for each survey as acquisitions and closures affect the vendor marketplace.

When it comes to VR, developers are clearly keen on sexy dedicated hardware such as Oculus. But our data reveals that the same number of VR developers work with the cheaper, smartphone-based option Google Cardboard. The hardware created by a range of third party device manufacturers, incorporating the Windows 10 Mixed Reality platform (which can also be used for VR) is also highly popular with VR developers. 

ARVR Graph

 

Augmented Reality

AR is a very different beast to VR. It’s well-suited for a smartphone platform, most famously made popular by Pokémon Go. Huge investments by Apple and Google are paying off. They are keen to get you developing on their platforms because of the massive potential within the app stores (again, see Pokémon Go for an example).

ARCore on Android and ARKit on iOS are the platforms of choice for AR development by some margin. The most popular wearable for AR is Microsoft HoloLens, as Magic Leap had yet to be launched at the time of the survey. It will be interesting to see how things have changed now that device is out of the closet. So, if you’re working on this newest of hardware, tell us about it in the survey!

AR is the simple, more accessible end of the spectrum for developers. The spectrum crosses from more sophisticated mixed reality up to full-blown virtual reality. Developers are finding that AR is a good place to start, particularly during this period where underlying technology and hardware undergoes rapid evolution and pricing levels for consumers start to wobble. Starting with AR, developers can learn how to blend virtual elements ever more seamlessly into the real world, and take their experience later into the convergence zone as virtual reality becomes a more realistic proposition for users and developers alike. It’s the gateway for many, and we are seeing more growth in AR than VR for this reason.

https://youtu.be/r87hy0bdUh8?t=85

 

What about working cross platform?

Fragmentation is real, and being able to deploy across a range of hardware is always attractive. If you’re a game developer, and even if you are not, Unity and Unreal provide sophisticated cross platform development and tools that include ARVR. They do come with a steep learning curve so we find them mostly popular with those already initiated (e.g. game devs). Other platforms such as Lens Studio, Spark AR and Sumerian are empowering AR developers, and we want to find out how popular they are becoming in the developer community. 

To get this kind of useful information, and more, we need you in the survey this time around!  We want to know what languages you are using, the hardware, the platforms, and the apps you are creating. Has the new Oculus Quest has piqued your interest and restarted the heart of VR development? Or is AR and mixed reality where it’s at? Why not take the chance to tell us? Help us tell the teams behind these products what you are deciding, so they can do their best to support you. 

Have your say. Take the survey. 

Categories
Platforms

Choosing the right Containers-as-a-Service (CaaS) – or not

The emergence of cloud native development and containers has redefined how software is developed. But not all organizations have the resources or expertise to set up the required infrastructure to support a containerized application. Luckily, cloud vendors offer Containers-as-a-Service to help developers to capitalize on the benefits of cloud native development. 

All three leading cloud providers have CaaS products but choosing the right one can be a challenge. While everyone has different requirements, it is always beneficial to understand what solutions others are using and why, to help inform decisions. 

Based on research from /Data’s recent Developer Economics survey, we have discovered that there are a few factors that drive developers to choose one CaaS over another: 

  • familiarity with tools and languages
  • integration with other systems
  • support and documentation 
  • ease and speed of development. 

While there were other reasons for developers to consider when adopting a platform, the percentage of developers that considered these four factors important is noticeably different across the three leaders. Some of the other sixteen factors that are tracked in the research  include:

  • pricing
  • community
  • learning curve
  • suitability and feature set
  • performance 
  • scalability

graph-Reasons-for

Not all CaaS platforms are selected for the same reasons though. Developers that chose AWS Elastic Container Service were more likely to choose it because of its integration with other systems. This is a reason to choose AWS ECS for 34% of developers using it, compared to 29% and 28% for Azure and Google. Amazon not only has a vast array of tools and services, they also have a robust partner network. The options are so great they have their own service marketplace and have even released a Cloud Map service to help developers discover and manage it all. 

Developers tend to favor Google Container Engine (GCE) because it is easy to use and well documented. Forty five percent of GCE developers chose it in part because of the support and documentation and 36% because of ease and speed of development. We tend to find that developers are consistently happy with the support and documentation that Google provides to their developer community. This satisfaction is an important reason for Google Container Engine users to choose the platform. 

For Azure Container Service, developers like the fact that they can use the tools and languages that they are familiar with. Azure developers are 7 and 12 percentage points more likely to choose Azure Container Service for this reason than Amazon and Google respectively. Our research shows that Microsoft developers are relatively brand loyal so Azure has made it easy for developers to use Microsoft tools for container development and management. Azure has enabled developers to develop using Docker containers and Visual Studio, tools to deploy code to Azure Container Service with a simple command. They have also made it possible to deploy Docker containers to Windows Servers. Finally integration with Active Directory enables loyal Microsoft developers to use existing authentication policies and technologies .

At the end of the day, most developers are looking for a platform that is easy to use and fits with their current strategy and infrastructure, whether it is though integrations, support, or the ability to use the tools that they are comfortable with. 

Containers: Is it really a choice of either or?

While each solution has unique benefits, our analysis also found that many developers were using more than one leading CaaS and in some cases three. Seven percent of developers using a CaaS were using all three of the leading platforms while 46% were using two.

graph-developers-use

Our data verifies what you may already suspect based on your own experiences: more than half of backend developers are pursuing a multi cloud strategy, choosing not to commit to a single provider. 

There are a number of benefits to a multi-cloud solution that are driving this trend. IT organizations can avoid vendor lockin if teams develop for a multi cloud environment. This approach forces developers to build without relying on vendor specific services, reducing switching costs. Multi-cloud approaches also enables organizations to optimize their infrastructure. Developers and operations pro’s can leverage the strengths of each cloud depending on the requirements of various workloads and applications. Greater resilience is also a key benefit to consider. This is especially important in denial of service attacks where compute resources can be overwhelmed with fake requests. With a backup cloud ready and waiting, workloads can just shift to the backup cloud.

The choice of either one CaaS or the other will become even less relevant in the future as leading vendors are all standardizing on Kubernetes. Amazon and Azure are promoting Kubenetes-specific CaaS offerings to focus more on Kubernetes as the underlying orchestration engine. Azure is actually migrating all its users to the Kubernetes service. With Kubernetes the standard orchestration engine, migrating apps and container across cloud providers becomes much easier.

We are also seeing Amazon and Azure working to make it more convenient to develop using containers and Kubernetes. Both firms are offering clusterless or serverless Kubernetes services such as Fargate from AWS and Azure Container Instance. These solutions enable developers to just deploy containers without having to worry about servers or clusters. This approach will make it easier for developers but the additional level of abstraction also reduces flexibility and increases switching costs. 

Amazon’s open sourcing of Firecracker, the micro VM that supports the serverless platform Lambda and Fargate, will be another interesting development to watch. This may prove to be Amazon’s response to Kubernetes but for the serverless market. While still a ways off this could lead to a serverless ecosystem that is just as flexible as the container landscape.

What do you think?

Do you feel strongly about the container solution you are using? 

Or perhaps you feel poorly about certain other containers. 

Let us know about it and have your voice heard by taking the Developer Economics survey.

Categories
Platforms

True Cloud-native Development Has Yet To Go Mainstream

Cloud-native development and containerisation is redefining how software applications are built and run. The movement has captured an increasing amount of press and adoption is brisk as teams innovate modern architectures to build upon the unique capabilities of the cloud. Designing applications from the ground up to run in the cloud is also delivering more robust and flexible applications. But, while containerising apps has become very popular, many developers are simply migrating old code and processes to containers and are not yet developing true native apps.

 

WHAT IS CLOUD-NATIVE AND WHY IS IT IMPORTANT?

The cloud-native computing foundation (CNCF) defines it as ”using an open source software stack to deploy applications as microservices, packaging each part into its own container, and dynamically orchestrating those containers to optimize resource utilization.”

The first step towards cloud native computing is implementing containers so resources can be shared with other apps. Containers can also be spun up much faster than VM’s and are portable so they will run the same in any environment. In addition, they offer another layer of isolation from the host environment so applications can be built more securely. These benefits have broad appeal and half of backend developers are using either containers or a service that leverages containers under the hood, such as serverless platforms or cloud functions.

While the benefits of containers are significant it is the combination of containers, microservices and orchestration that enables greater efficiency in the use of cloud computing resources. For example, microservices with heavy workloads can scale out without having to scale the entire application. Also, services that are not required for current workloads can be shut down, thus optimising pay-as-you-go business models and reducing costs. Finally, the scalability and portability of containers combined with orchestration leads to distributed systems that offer greater resiliency. If there is a problem on one server, another instance of the microservers can be spun-up to take its place.

 

SoN_16_Cloud1

 

Our survey found that just 43% of developers are using containers plus container orchestration tools and management platforms, leaving 57% managing their own container deployments. Developers who are not leveraging orchestration tools may just be moving existing applications into containers or building simple apps with a few containers that can be managed manually. Cloud native apps have to not only leverage containers but should be designed specifically to capitalise on the efficiencies that the cloud offers. Developers that are using containers but not using orchestration tools, or platforms with built in orchestration, are not really building cloud native apps.

Cloud-native is more than just migrating to the cloud or containerising a monolithic app. Lifting and shifting an existing application and plopping it in a container is not a modern approach. Historically, as new computing platforms emerge, there is a temptation to take the code that already exists and just port it to the new platform. While you may realise some benefits, the true value of the new platform is missed. This is a common mistake developers make as platforms become popular. The growth phase of mobile apps is a case in point. Once everyone wanted apps on their smartphones, developers ported desktop apps to mobile which were not designed to capitalise on the unique benefits or mobility leading to poor experiences.

 

DEVELOPERS HAVE MULTIPLE OPTIONS TO BE TRULY CLOUD NATIVE

New services are emerging that offer various levels of abstraction that makes it easier for developers to take advantage of cloud-native architecture. Containers-as-a-Service (CaaS), serverless solutions and cloud functions are making cloud-native development more accessible. Developers can deploy containers and orchestration engines on their own or leverage frameworks provided by CaaS offerings. They can also use serverless platforms so that they don’t have to touch a server at all but still get the benefit of orchestrated containers and dynamic services. These solutions are becoming quite popular: 47% of backend developers are using these functions or serverless architecture.

With the flexibility of native cloud development and microservices, developers are free to use the most appropriate tools and services to build discrete components of their apps or services. The spectrum of abstraction and strengths of each approach enable developers to optimise their applications and development time by using the best technology for the job. For example, cloud native developers can use serverless for running short, event-driven processes and containers for running longer more robust code. Additional services are coming to market to fill niches in the spectrum of cloud-native offerings presenting even more options for developers. For example, AWS Fargate is filling the gap between CaaS and serverless where developers still have access to the server but don’t have to worry about containers. The results from our survey confirm that many developers are using multiple solutions to optimise resources. In fact, 32% of developers using containers are also using serverless and 40% of true cloud native developers leveraging orchestration tools and platforms are also running serverless.

 

Want more insights plus an extra graph?

Feel free to download our State of the Developer Nation 16th Edition report.

It’s free and full of insights.

Categories
Platforms Tools

The battle: Tensorflow vs Pytorch

Which framework should you use? An answer from 3,000 developers. Who hasn’t heard about the Tensorflow vs Pytorch battle between Facebook’s PyTorch and Google’s Tensorflow?  A quick search will reveal the intensity of this clash of frameworks. Here is one great article by Kirill Dubovikov.

And here is your chance to defend the framework you believe in the most.

At its core, the duel is fuelled by the similarity of the two frameworks. Both frameworks:

  • Are an open source libraries for high performance numerical computation
  • Are supported by a large tech company (Facebook and Google)
  • Have a strong and active supporting community
  • Are Python based
  • Use graphs to represent the flow of data and operations
  • Are well documented.

Taking all of this into account we can say that almost anything created in one of the frameworks can be replicated in the other at a similar cost. Therefore, the question stands. Which framework should you use? What is the main difference between each community?

At /data we are constantly surveying the developer community to track the trends and predict the future of different technology sectors. For machine learning in particular this clash is critical. The prevailing framework, if there is one, will have a huge impact on the path that the machine learning community will take in the years to come.

With this in mind, we asked the developers who said that they are involved in data science (DS) or machine learning (ML) which of the two frameworks they are using, how they are using them and what else they do in their professional life.

Tensorflow is winning the game, but is PyTorch playing on the same console?

From the 3,000 developers involved in ML or DS we saw that 43% of them use PyTorch or Tensorflow.

This 43% is not equally distributed between the two frameworks. Tensorflow is 3.4 times bigger than PyTorch. A total of 86% of ML developers and data scientists, said they are currently using Tensorflow, while only 11%, were using PyTorch.

Moreover, PyTorch has more than 50% of its community also using Tensorflow. On the other hand, only 15% of the Tensorflow community also uses PyTorch. It would seem like Tensorflow is a must but PyTorch is a nice-to-have.

tensorflow pytorch

Who is using PyTorch and who is using Tensorflow? What is each framework being used for the most?

Here are the things that really stood-out from the rest:

tensorflow vs pytorch

 

It is conclusive. In comparison to PyTorch, Tensorflow is being used in Production and most probably deployed to the cloud, as implied by the significantly higher backend experience of Tensorflow users (4.8 years vs. 3.8 of PyTorch users). As compared to PyTorch, Its community is composed more of professional machine learning developers (28%), software architects (26%) and programmers within a company (58%). This is most likely due to Google’s focus on deployment through APIs such as Tensorflow serving which has become a key motivator for the adoption of Tensorflow for many developers who are trying to push data products into production environments.

On the other hand, PyTorch is being used more than Tensorflow for data analysis and ad-hoc models within a business context (10%). In the PyTorch community there are far more Python-first developers (i.e developers using Python as a primary language) who work on web applications (46%). Moreover, the versatility of this Pythonic framework allows researchers to test out ideas with almost zero friction and therefore it’s the go-to framework for the most advanced cutting edge solutions.

Do you use any of these frameworks?

Have your say in our bi-annual survey currently running and let us know how you are building those convolutions – and win some awesome prizes in the process.

                                                     take_the_survey_button_

Categories
Business Platforms

Virtual reality: Where did it all go wrong?

In this article, I’m going to talk about how I perceive the mainstream consumer audience to have rejected virtual reality, and suggest that its child, augmented reality, may be the Slope of Enlightenment that convinces us to buy in. While these are my views alone, towards the end of the piece, I’ve dug out some data from software developers around the world who are working with AR and VR. Even if you don’t care about my views, you may find what they have to say interesting. And, if you’d like to express your own thoughts, I’ve included a link to a survey that’s open right now, which will help key players in the industry to  draw their own conclusions.

Virtual reality: Tomorrow’s world, today

I worked in the smartphone industry before it came of age. Our mission was “a smartphone in every pocket” at a time when simple feature phones like the Motorola RAZR were the must-have communications device. Within a few years of our early projects, the competitor, Apple, launched the iPhone. The rest is history. The App Store opened its doors, the stars aligned, the technology dream was realised and smartphones went on to rule the world.

I grew up in a time of change. We had a BBC microcomputer before I was ten years old. As a teenager, I sashayed along to the sounds of the eighties on a tape Walkman, and later mobile CD players and minidiscs. Then Napster, now Spotify. Change. The cadence of technological evolution was a rapid heartbeat, sounded out by the Internet, mobile phones and a maturing software development industry, which I joined enthusiastically.

Maybe I just got used to an unrealistic pace of change? But whatever happened to virtual reality (VR)? Its heartbeat seems to have flatlined. Nothing much has changed in the years that have passed since the “year of VR” (pick your year, we’ve had a few of them), which turned out to be nothing much of the sort. When I look at my mobile phone of a few years ago, or my website developed in 2004, I think how clunky and quaint they look compared to the sleek form factor and execution possible today. But when I look at the VR headsets of yesteryear and today and compare what they deliver? Not so much.

Take a look at this slideshow of legacy VR hardware. Sure, we’ve come some way since the Sensorama, but the Sega VR of 1993 wasn’t significantly more dorky than today’s HTC Vive Cosmos, was it?

Does anybody really want to strap a heavy, nerdy headset on that makes you suffer motion sickness after a few minutes use, tethers you to a PC, dulls your senses to the real world outside the headset and causes you to trip over your furniture?

Sure, expensive and shiny, next generation VR devices, are coming. But much of the hardware available is unchanged from when it came to the stores two or more years ago, which means hard-core early adopter audiences aren’t shelling out again.  While availability of more cost-accessible hardware for casual users has increased, e.g. the Oculus Go, the handsets are still expensive enough to give mainstream consumers pause, and typically compromise on aspects of quality that mean the VR experience is somewhat flawed.

Convince people that you’ll change their lives

In the consumer world, expectations for VR were raised early and sadly led to disappointment as it became clear that the ambitions went far beyond what was possible given the technology available. Overpromised, VR lost the attention of mainstream audiences, as it simply could not deliver. In part, this was down to problems with the hardware, such as cumbersome headsets, inadequate processors, poor displays and weak audio. Then there’s the secondary reason: there is no “must-have” killer app that convinces sufficient people that you’ll change their lives.

The two issues go hand in hand (the ‘chicken and egg’ situation) since if technology is inadequate, the content creators see no justification for investing heavily in VR. In turn, this means insufficient buyers and revenue to justify the investment in improving the technology. (It’s worth pointing out that secondary uses for VR, such as in industry, education, healthcare, have a very different uptake/content model, and as such, I’m considering just the mainstream here).

And, as such, entertainment content is the key to unlocking adoption by persuading consumers that VR devices are a must-have item. Like 3D TV, VR has thus far failed to deliver a sufficiently convincing experience that sends people rushing to shops to buy the hardware, despite its costs and the limitations involved.

What’s more, VR content isn’t coming along as fast it used to. Hollywood used it for marketing, e.g. to promote films such as 2016’s Fantastic Beasts and Where to Find Them and TV shows including Game of Thrones. But this has dropped back as consumer uptake and gratification was found to be negligible.

Venture funding for consumer VR software companies may drop by more than half this year, to $265 million from $576 million a year ago, SuperData says. And this isn’t surprising. According to the SiliconANGLE. VR headset sales have dropped nearly 34% since Q2 2017. Even committed hardware manufacturers are showing signs of taking their foot off the gas. Samsung, which was one of the first to market with its Gear VR mobile headset, didn’t say anything about VR in its major announcements at CES this year.

Is AR the way out of the trough of despair?

Experts predict that new kids on the block, Augmented Reality (AR) on smartphones and Mixed Reality (MR) headsets, such as Microsoft’s HoloLens. will pick up the audience that VR failed to serve. In terms of the Gartner Hype Cycle, AR and MR — the children of VR — look to serve as the Slope of Enlightenment.

AR can be delivered by the hardware already in your pocket. It doesn’t need the level of resolution or processor power demanded by VR. AR is also far less cumbersome than VR and can be used on the go since it doesn’t require total immersion in the experience. The software brings in a virtual element without losing the real world.  

Certainly, analysts report adoption of augmented reality and mixed reality to be on the up, with earnings expected to come from mobile AR apps, particularly games. Google and Apple have strongly embraced this market with ARCore and ARKit, enabling developers to access AR services on more than 500 million devices in the wild today. Both Apple and Google envisage third-party apps and services that use AR as valuable additions to their app stores. Successful apps add billions to the top line (Apple was expected to make $3 billion revenue over 2 years from in-app purchases within the best known AR title to date, Pokémon Go) and high-profile AR apps also strengthen the ecosystems of both companies, boosting other revenue streams.

The smart money is now shifting to companies working on AR and MR. Apple have a rumoured research project to build a headset for delivery next year. Investment in companies working on MR is expected to jump by nearly 50 percent this year, according to SuperData, with sales of MR headsets expected to ramp up significantly and surpass earnings of VR headsets within the next two years.

The above is purely my opinion, based on observations of the tech industry over a number of years and a healthy degree of skepticism when it comes to inflated expectations. It’s uninformed by experience at the coalface of development however. So, what do software developers working with AR and VR, have to say?

Software developers working in VR and AR told us…

Here at SlashData we run regular surveys of software developers around the world to uncover valuable insights from those working in mobile, desktop, IoT, cloud, web, game, AR/VR, data science and machine learning.

In our Developer Economics 14th edition report, which is based on a large-scale online developer survey that ran over a period of eight weeks between November and December 2017, we reached over 21,700 respondents in 169 countries. We studied the data returned from developers working in AR/VR and found the following:

  • 25% of professional game developers say they are targeting AR and/or VR. This figure falls slightly to 19% across the entire corpus of developers surveyed.
  • Dedicated VR hardware, such as Oculus Rift, is attractive to games developers (61% report using it), but across all developers working on VR projects, we see a much lower uptake (33%), reflecting its early adopter status in fields other than games.
  • Across all developers working on VR projects, 32% are targeting smartphone hardware using Google’s Cardboard, and 19% are using Daydream View, built into Android Nougat and beyond, reflecting that developers, and consumers, are still experimenting with the technology on their existing hardware.
  • A similar picture emerges for AR, with Android and iOS taking the lead in most popular AR platforms across all developers targeting AR.
  • Of the dedicated AR hardware available, Microsoft HoloLens leads the pack, with Google Glass at Work and MagicLeap trailing behind when the survey ran in late 2017.

We are currently running another survey and we would value your input. If you’re a software developer working in the field of AR or VR, or considering doing so, please consider answering the questions. If you’re not a developer but are working in the AR/VR field, pass the link on to your developer friends and colleagues.

Every survey completed has a chance to win Oculus Rift +Touch Virtual Reality System to test your creations (or simply play around), Samsung S9 PLus$200 towards the software subscription of your choice, or other prizes from the prize pool worth $12,000!

Plus, if you refer other developers to take the survey, you may win up to $1,000 in cash. Just don’t forget to sign up before you take the survey, so that we know you want to be included in the prize draw!

What do you say, are you in?

Categories
Business Languages Platforms Tools

Take the new Developer Economics Survey Q2 2018

Got something to say about popular platforms and apps out there? How about languages, tools, or APIs? It’s prime time to let your opinion out – our semi-annual Developer Economics survey is now LIVE! Don’t miss a chance to join over 40,000 developers from 160+ countries who take part in our surveys every year to tell us about trends and shape the future of where software development is going next. Start right away here!

 

Who is the Developer Economics survey for?

The survey is for pretty much everyone who gets their fingers into coding. All developers who work on software development are welcome to take the survey, whether your work on Mobile, Desktop, IoT, AR/VR, Machine Learning & Data Science, Web, Backend, or Games.

What sort of questions is the survey asking?

We ask stuff that all developers care about. Career? Check. Satisfaction with tools? Check. Future trends and what will matter in the years to come? You bet.
As always, the survey asks you questions like:

  • Which are your favourite tools and platforms?
  • What are some must-have developer skills today?
  • Are you working on the projects you would like to work on?
  • Where do you think development time should be invested?

This time, we added new questions about developer skills, so your first-hand insights are that much more important.

What do I get from it?

Apart from contributing to the developer community with your insights (and making it a better place, obviously), there are many perks. Have a look at what we prepared for you this time:

  • Amazing prizes up for grabs: iPhone X, Samsung S9 Plus, HTC Vive Pro, GitHub 12 months developer program, Udemy vouchers, and more.
  • Access to State of the Developer Nation 15th Edition report with the key findings from this survey (coming up in Q3 2018).
  • A referral program you can join, share the survey and win up to $700 in cash!

How’s this survey different than last year?

We asked developers what they wanted to see in the 15th edition of the Developer Economics Survey. Majority of you rooted for a Sci-Fi theme and we delivered! Complete the survey and you’ll find out who is your intergalactic alter-ego and where your force lies!

What happens with my responses?

Anonymized results of the survey will be made available in the free State of the Developer Nation 15th Edition report. If you take the survey, we’ll reach out to you with the copy of the report so you can be the first to check out the insights. In the meantime, you can check out previous editions here.

 

So, what are you waiting for? Take the survey now!