
Choosing a programming language for a novice developer is quite a stressful exercise. Not the fact that the currently popular language will remain so in a year. Even less likely is that his knowledge will help you get a more prestigious job.
However, it is quite interesting to observe which languages ​​and technologies developers choose in a situation where they are given complete freedom for this — when they write not what their boss requires, but work on their own project without any specific purpose.
')
Like, for example, on the hackathon.
Not long ago, ChallengePost - a tool for organizing the work of a large number of hackathons (including those that are held before each TechCrunch Disrupt conference) - changed its name to Devpost. In order to celebrate this event, its employees collected the knowledge that they have acquired over the past year.
About the Devpost community
Devpost (formerly ChallengePost) is a community in which developers can share their projects, create their portfolios and participate in online and offline hackathons.
In its first report, Devpost ranked the technology rankings most often used by students during the 2014-2015 school year. Beginners and experienced programmers, students of schools and colleges are all sources of innovation in software (as well as hardware) software and demonstrate the same interest in scientific aspirations and in creating user-oriented products.
Ranking technique
During the hackathons and as part of the compilation of their portfolio by participants, respondents were asked to tag with the platforms, technologies, languages ​​and APIs that they use. This method helps to gather all the necessary information about the developer community.
The authors of the report studied the tags of the projects of each of the participants (there were 13,281 people in total) 160 student hackathons, who presented a total of 9,898 projects either on hackathons or in their portfolio on the Devpost website.
The list of technologies used in student projects included programming languages, communication APIs, social services APIs, payment systems APIs, geolocation APIs, music APIs, backend and frontend frameworks, databases, game engines, integrated development environments (IDE). ), libraries, backend as a service (BaaS), platform as a service (PaaS) and infrastructure as a service (IaaS), protocols, text editors, hardware, and much more. For each category, the authors selected the 5 most popular tags.
Technology Rating and API
Mobile platforms:
What mobile platforms are programmers interested in? 38.2% of developers choose Android, 22.7% use iOS, and only 4.9% use Windows Phone. The remaining 34.2%, apparently, have not yet decided on their favorite platform.
Programming languages ​​and other tools:
- HTML / CSS
- Javascript
- Python
- Java
- C / C ++
- Php
- Objective c
- C #
- Swift
- Json
- Ruby
- XML
- Ajax
- Shell
- Processing
- Lua
- CoffeeScript
- Go
- Matlab
- Opengl
- R
- Groovy
- XAML
- Perl
- Webgl
- Applescript
- Scala
- GLSL
- Jsp
- LaTeX
HTML / CSS and JavaScript, as expected, topped this list. As a rule, these are studied by novice developers first. Therefore, if you are trying to assemble a team of people unfamiliar to you (which happens quite often on hackathons), then these tools are in some sense universal.
Surprise to see Swift in this list, since Apple introduced this language just 13 months ago.
As for API-interfaces, here Devpost did not begin to collect everything in one pile, but broke them into categories. And it will not hurt you to get acquainted with the API in each of the categories.
Communication APIs:
- Twilio
- Yo
- Sendgrid
- Moxtra
- Mailjet
Social Services API:
- Facebook
- Twitter
- Reddit
- Instagram
- Google+
Payment Systems API:
- Venmo
- Paypal
- Stripe
- Braintree
- Blockchain
Geolocation API:
- Google maps
- Yelp
- Google places
- Esri ArcGIS
- Mapbox
Music APIs:
- Spotify
- Echo nest
- Soundcloud
- Google play
- Rdio
What communication API platform, according to their data, is most popular? Twilio. Social? Facebook (of course), then Twitter (also expected). Payment system APIs? Venmo, ahead of Paypal. Surprisingly, both overtook Stripe. Google Maps is the sole leader in the geolocation category, as many might have guessed.
Twilio's leadership in the communications API category is more than obvious if only because developers often use Twilio on hackathons. Such developers are almost found on every hackathon, even if it is just one of the evangelists acting informally. A prerequisite for working on Twilio is to create a project based on its API. Moreover, one of the leading Twilio developers left the company and founded
Major League Hacking , a company that conducts hackathons for students around the world.
Application development frameworks:
- Node.js
- Flask
- AngularJS
- Ruby on rails
- Django
Database:
- MongoDB
- Mysql
- Sqlite
- PostgreSQL
- FoundationDB
IOS frameworks:
- Core location
- Mapkit
- Uikit
- Core data
- AV Foundation
Game engines:
- Unity
- Pygame
- libGDX
- Gamemaker
- Unreal engine
If we talk about game engines, then the clear leader is Unity with more than 1000 submitted projects. Next on the list is Pygame with less than 50 projects.
Integrated Development Environments:
- Android Studio
- Xcode
- Eclipse
- Visual studio
- Jade
Libraries:
- jQuery
- Express.js
- Socket.io
- Opencv
- D3.js
"Backend as a service" (BaaS):
- Parse
- Firebase
- Meteor.js
- MongoLab
- Amazon RDS
Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) (Top-10):
- Azure
- Heroku
- Amazon Web Services
- Digitalocean
- Ibm bluemix
- Google App Engine
- Linode
- Atlantic.Net
- Openshift
- Rackspace
Command line utilities:
- cURL
- Makefile
- Gradle
- Yeoman
- ngrok
Text editors:
- Sublime text
- Vim
- Notepad ++
- Brackets
- Atom
What can be said about projects that break through the walls of the virtual world and invade the world of physical technologies?
Hardware:
- Arduino
- Myo
- Pebble
- Leap Motion
- Oculus rift
- Raspberry pi
- Intel edison
- Kinect
- Particle (formerly Spark)
- Google cardboard
- GPS
- Servo
- 3D Printing
- Android Wear
- Meta (smart glasses)
- Google glass
- Accelerometer
- Tessel
- Muse (headband)
- Intel galileo
The hardware platform Arduino has become the expected queen of the “iron” ball. It is quite flexible and easy to change, being the “brains” of almost every simple electronic project, and not too expensive, so you will not suffer much if two or three boards are burned. That is why it is preferred by most electronics enthusiasts. Behind it is no less famous, but more narrowly specialized "iron": Myo bracelet-manipulator, Pebble smart watch, Leap Motion motion detector and Oculus Rift virtual reality helmet. It is curious that the versatile and inexpensive computer Raspberry Pi was only in 6th place.
Other APIs and Technologies
Not all technologies noted by students fall into one of the categories. Some enter immediately into several. Below are a few more technologies that fall into different categories:
- AlchemyAPI
- Autodesk
- Bitcoin
- Bloomberg
- Canvas
- Capital One
- Docker
- Dropbox
- Eventbrite
- Evernote
- Face ++
- Giphy
- Ibm watson
- Indico
- Kimono
- Machine learning
- Maya
- MetaMind
- Mojio
- Nginx
- OCR
- Ordr.in
- Postmates
- Priceline API
- Qualcomm Vuforia
- Rhine
- Saber
- Selenium
- Solidworks
- Tomcat
- Tripadvisor
- Uber
- Weather underground
- Wit.ai
- Wolfram Technologies
- Ziggeo
Main conclusions
Most of the projects in which the sample of students took part were limited to web development or mobile development, and the programming language ranking we compiled reflects this situation. Having at their disposal 24-48 hours, students on the hackathon, as a rule, were engaged in web development using the API and the development of mobile applications.
It’s somewhat unusual to see that Android is clearly superior to iOS, but this open platform gives an advantage to students who are engaged in application development on weekends.
Despite the presence in the student community of numerous jokes about Node.js, the rating shows that this platform turned out to be extremely popular in the 2014-2015 academic year.
CSS, Objective-C, Swift, and Lua occupy high positions on Devpost, given their use in web development, developing applications for iOS and creating games, respectively. Languages ​​such as C ++, R, Perl, and Scala are more commonly used in corporate systems, backend applications and in the processing of statistical data, and are much less commonly used on hackathons and in student projects.
Development for specific hardware was especially popular with judges in 2014-2015. 10% of the winning projects were accompanied by the tag “hardware”, 8.2% - development using Arduino, 5.3% - projects for Pebble, 4.8% - Leap Motion, 4.5% - Myo and 3.9% - Oculus Those who were engaged in the development of one of these platforms, won prizes more often than non-prize ones.
Pebble, Oculus, Leap Motion, Intel Edison, Raspberry Pi, Muse and Meta became more popular during the spring semester, most likely due to financial support from companies.
Despite the recent increase in interest in NoSQL databases (for example, MongoDB and Redis), relational databases are still quite popular.
Bootstrap and other similar front-end development tools are popular with newbies. The competition in the PaaS / IaaS model space is constantly growing, and there are even more opportunities to use the DevOps methodology. Due to the fact that the XaaS model is increasingly turning from services directly into goods, industry leaders and new players will have to provide more personalized support to stand out from the rest.
Among the technologies that showed rapid growth in the second half of the school year, we can highlight Unity, Intel Edison, Bootstrap, Meteor.js, Flask, OpenCV, Jade, DigitalOcean, Ionic, Wolfram Technologies, Linode, Postmates, Capital One, Blender, Swift, and SQLite.
Instead of conclusion
Remember: despite the increased interest in this data, they will not necessarily reflect the real state of affairs. Of course, it will not hurt you to study any of the top five tools, but you should not make important professional decisions based only on this data.
If you think which language is better to learn first, choose the most simple (JavaScript is a good solution), learn the key principles of programming, and then try to pay more attention to the details. But if someone says that your first language is an unfortunate decision, and you just need to study Ultramodern Language instead, send it to hell.
More materials on startups in our blogs on Geektimes and Megamozg .