Top Programming Languages, Technologies, Tools & Web Solution Stacks 2020
Richard Harris
DevOps, Online & Mobile at TD Bank Group #devops #agile #cloud #java #js #csharp
Popular Programming Languages
- JavaScript - Web development, Dynamic contents, Client and Server side
- Java - Enterprise Application
- Python - General purpose; Popular with Statistical Computing / Data Science
- C# - Edges out C++ for most pouplar Game Development language; Also used for Websites & Utilities
- PHP - Web development, Server-side
- SQL - Declarative language used for managing data held in a Relational Database Management System
- C++ - General purpose; Popular with Utilities (small apps for small tasks) & Game Development
- C - General Purpose, Low-level programming
- Swift - Replaced the Objective-C as the main language for Apple-related software (macOS & iOS)
- R - Statistical Computing / Data Science
Notable
- Typescript - An open-source superset of JavaScript, that compiles to plain JavaScript, and is developed and maintained by Microsoft, .
- Bash Shell / PowerShell - Automation and system admin
- Ruby - Web development
Technologies & Tools
Web Frameworks
- jQuery (JS)
- Express (JS)
- Angular/Angular.js (JS)
- React.js (JS)
- Vue.js (JS)
- Spring (Java)
- Django (Python)
- Flask (Python)
- ASP.NET (C#)
- Laravel (PHP)
- Drupal (PHP)
- Ruby on Rails (Ruby)
Other Frameworks, Libraries, and Tools
- Node.js (JS)
- .NET (C#)
- .NET Core (C#)
- Pandas (Python - Data Science)
- TensorFlow (Python - Data Science)
- Torch/PyTorch (Python - Data Science)
- React Native (Mobile - JS)
- Cordova (Mobile - Web Standards)
- Xamarin (Mobile - C# & XAML)
- Flutter (Mobile w/ Dart)
- Unity 3D (Game Engine - C#)
- Unreal Engine (Game Engine - C++)
- CryEngine (Game Engine - C++)
- Apache Spark (Cluster-computing / Big Data Frameworks)
- Hadoop (Cluster-computing / Big Data Frameworks)
- Ansible (Configuration Management Tool)
- Puppet (Configuration Management Tool)
- Chef (Configuration Management Tool)
Databases
- MySQL
- Microsoft SQL Server
- Oracle
- MongoDB
- PostgreSDQL
- SQLite
Platforms
- Windows (OS)
- Linux (OS)
- MacOS (OS)
- Android (Mobile)
- iOS (Mobile)
- Docker (Web)
- AWS (Web)
- Microsoft Azure (Web)
- Heroku (Web)
- Kubernetes (Web)
Development Environments
- Visual Studio Code (.NET)
- Visual Studio (.NET)
- IntelliJ (Java)
- Eclipse (Java)
- NetBeans (Java)
- PyCharm (Python)
- IPython (Python)
- Android Studio (Mobile)
- XCode (Mobile)
- PHPStorm (PHP)
- Notepad++ (Text Editor)
- Vim (Text Editor)
- Sublime Text (Text Editor)
- Atom (Text Editor)
How Technologies Are Connected
Web Solutions Stacks
Anatomy of a Web Solutions Stack
A solution stack is the combination of programming languages, tools and frameworks that the developers use to create web platforms and mobile applications.
There are two main parts to any application, the client side and the server side, also popular as front end and back end. To develop a web application the architect defines the stack as the target operating system, web server, database, and programming language.
Client-side (Front end) is where the real interaction with the user happens. The user will interact with the website, the web app or a mobile app. The three main technologies with web front ends are: HTML, CSS, Javascript.
Server-side (Backend) consists of servers, operating system, databases, programming languages, and frameworks. The server side stack responds to user requests, accesses the database and executes simple CRUD (Create, Read, Update and Delete) operations.
Note: Middleware is computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware can provide a standard way to communicate data between systems.
Popular Web Solution Stacks
Regularly, the components of a solutions stack are developed by different developers independently from one another. However, some components/subsystems of an overall system are chosen together often enough that the particular set is referred to by a name representing the whole, rather than by naming the parts...
WINS
- Windows Server (operating system)
- Internet Information Services (web server)
- .NET (software framework)
- SQL Server (database)
WISA
- Windows Server (operating system)
- Internet Information Services (web server)
- SQL Server (database)
- ASP.NET (web framework)
MEAN
- MongoDB (database)
- Express.js (application controller layer)
- AngularJS/Angular (web application presentation)
- Node.js (web server)
MERN
- MongoDB (database)
- Express.js (application controller layer)
- React.js (web application presentation)
- Node.js (web server)
LAMP
- Linux (operating system)
- Apache (web server)
- MySQL or MariaDB (database management systems)
- Perl, PHP, or Python (scripting languages)
Notable
- MEVN (V - Vue.js)
- WAMP (W - Windows), WIMP (I - IIS), XAMPP (cross platform)
WISA (ASP.NET Core)
- A popular web-development framework for building web apps on the .NET platform.
- The open-source version of ASP.NET, that runs on macOS, Linux, and Windows. ASP.NET Core was first released in 2016 and is a re-design of earlier Windows-only versions of ASP.NET.
- Integrates seamlessly with popular client-side frameworks and libraries, including Blazor, Angular, React, and Bootstrap.
MEAN
- Undoubtedly, the MEAN stack is the most popular full-stack solution. Being entirely JavaScript-powered, it brings numerous benefits to web developers among which is the usage of a single language throughout your stack. Another strong advantage is that all the underlying technologies are free and open-source.
- All the components of MEAN speak JSON which makes the data flow smoothly between the layers.
- MongoDB is a popular NoSQL database. Unlike relational databases, it stores data as JSON-like documents
- Express.js is a back-end web app framework that supports and hosts Node.js projects. It assists in organizing your app into an MVC architecture on the server-side. The main task of Express.js is to manage the workflow between the client-side and the data model, ensuring easy transferring of data to end-users.
- Angular is a front-end framework, developed and maintained by Google. According to the Stack Overflow Developer Survey 2019, it’s in the top most used web development frameworks.
- NodeJS is an open-source cross-platform engine for building server-side applications. It’s the true backbone of the MEAN stack. NodeJS serves as an integrated web server for the smooth deployment of MongoDB and the app itself to the cloud.
MERN
- In its essence, the MERN stack is the same as MEAN stack but with Angular replaced by React. As well as MEAN, it successfully covers the full development process – from front end to back end.
- Developed and maintained by Facebook, React is one of the most popular frameworks for building interactive UIs. It’s appreciated by the reusability of components, high performance, and smooth learning curve.
MEVN
- In this version of MEAN, Angular is replaced with Vue.js as a front end framework.
- Vue.js is rapidly gaining popularity during recent years. It embodies the best features of React and Angular. Its key advantages are a non-steep learning curve, excellent performance, neat programming style and a rich ecosystem of tools.
LAMP
- The LAMP stack is an industry-standard. It’s recognized for its performance, flexibility, and open-source nature.
- Linux is an operating system and a first layer of the stack. All subsequent layers run on top of it.
- Apache is an open-source and free HTTP server that transfers the content between the server and client machines upon request. To be precise, it fetches the content from the server, turns it to static HTML files and returns it to the browser.
- MySQL is a relational database management system (RDBMS). It stores information that can be requested to build a website.
- PHP is a programming language. Instead, you can use a similar web programming language, e.g., Perl or Python.
- All these layers are open-source and free products.
Factors to be Considered when selecting a Web Solutions Stack
- Type of Project (scope / application complexity / security requirements)
- Team’s Expertise and Knowledge Base (build / maintain)
- Time to Market (3rd party libraries / tools)
- Scalability (performance / accommodating growth in usage)
- Maintainability (code base / architecture)
- Development Cost (project budget / licensing of tools used)
Fun Fact: Did you know that in 2019 the global population was 7+ billion people, with 4+ billion internet users, and 1.6+ billion websites?!
Additional Resources
Further Reading
- Stack Overflow Developer Survey 2019 (Note: Check out my key observations)
- The State of Developer Ecosystem 2020 (Note: I listed my favourite parts in this post)
- Top Programming Languages of 2020 according to stats & surveys
Developer FAQ (key excerpts from 'Stack Overflow Developer Survey 2019')
- What Languages Are Associated with the Highest Salaries Worldwide?
- Who's Actively Looking for a Job? (Note: consider the correlation to job availability)
- Most Popular Industries for Software Development Work?
- Most Important Job Factors?
- How Structured Is the Work of Developers?
- Greatest Challenges to Productivity?
- Salary by Developer Type?
References
- TIOBE Index
- Most Popular Programming Languages 1965 - 2019 (video)
- Most popular programming languages on Stack Overflow Sep 2008 - Nov 2018 (video)
- Wikipedia - Solution Stack
More Articles by Richard
Data
- SQL QuickStart Guide
- Database Management Systems QuickStart Guide
- Database Design QuickStart Guide
- Glossary of Database Terms
- Data Science
Application Development
- Open Source ASP.NET Web Applications (CMS, E-commerce, etc.)
- Top Reporting Tools for ASP.NET (23/03/2017)
- Building Desktop Apps
Learning Resources
- Computer Science & Application Development Tutorials
- Best of LinkedIn Learning: Computer Science
- Best New .NET Books To Read In 2019 [Updated: 13/03/2020]
- Best of Wikipedia: Web Development
- Best of Wikipedia: Software Development
ASP.NET 4.0 in C# (WebForms)
- State Management in ASP.NET
- ADO.NET Fundamentals
- Data Binding in ASP.NET
- Files and Streams in ASP.NET
- Output Caching with Dependency in ASP.NET
- Updating Legacy ASP.NET Applications to support TLS 1.2
- Point Multiple Domain Names to One Website: Server Side Redirect in ASP.NET
- Dynamically inject / insert CSS & JavaScript in ASP.NET / C#
- Bundling and Minification of CSS / JS in ASP.NET
Tech
- Doing Business on Instagram, The 5 Best Instagram Schedulers, and More
- Google Analytics
- E-lancing / Freelancing / Online Outsourcing
- YouTube Tricks
- Cloud Storage for Work (01/06/2017)
News
- Software Development & Technology News (01/10/2020 - 08/02/2021)
- Software Development & Technology News (29/09/2020 - 16/06/2020)
Tech Data Visualization
- Microsoft Hits $1 Trillion Valuation: Data Visualization of Microsoft, Amazon, Appple, Alphabet, and Facebook market cap
- Most Popular Programming Languages 1965 - 2019
- Most popular programming languages on Stack Overflow Sep 2008 - Nov 2018
- Most Popular Websites By Year
- Most Popular Operating Systems By Year
- 25-years of worldwide phone sales, mesmerisingly visualised
Personal Interest
- 100 Best Novels of All-Time | LinkedIn
- Top 30 Non-Fiction Books
- Napoleon Hill’s Keys to Success
- Joe Rogan's Top 10 Rules For Success
- Joe Rogan's 10 Rules For Success Volume 2
Featured Posts
- Best Relational Databases Software in 2020 | G2 [Link]
- Productivity Apps [Notes]
- Do It Now! [Notes]
- Get action. [Notes]
- Digital Wellbing: Technology and our daily lives [Notes]
- Conversation with a Product Manager from Facebook [Notes]
- Amazon's 14 Leadership Principles
- 5 Tips For Getting A Data Science Job [Notes]
- 5 Tips To Improve Productivity [Notes]
- Cal Newport: The Power of Digital Detox [Notes]
- Educational Streaming Channels / Websites [Notes]
- Joe Rogan: Be The Hero of Your Own Movie [Notes]
- Joe Rogan's Life Advice [Notes]
- 11 Best Online Services to Monitor Sites Uptime [Link]
Posts
- Windows Turns 35: A Visual History From Windows 1.0 to Windows 10 [Link]
- How to Progress Every Day (a Different Approach to Discipline) [Video]
- Vistaprint: Online Printing Canada | Business cards, signage & more [Link]
- Easy Promotional Posters, Graphics & Videos | PosterMyWall [Link]
- 7 Handy Windows Tips & Tricks [Notes]
- Essential Windows Programs [Notes]
- Experts Reveal How To Wake Up Not Tired [Notes]
- Technical Writing Courses | Google Developers [Link]
- .NET Core vs .NET Framework: How to Pick a .NET Runtime for an Application [Notes]
- 5 Ways to Develop a Unique Selling Proposition [Notes]
- How to measure technical debt [Notes]
- Anxiety in product development [Notes]
- Launching a Tech Startup [Link]
- Monday Morning Motivation [Notes]
- .NET Schedule [Notes]
- TechEmpower Web Framework Benchmarks [Link]
- Top Companies 2019: Where Canada wants to work now [Link]
- Just do. [Notes] [Video]
- Old Thinking versus New Thinking [Image]