Top Programming Languages, Technologies, Tools & Web Solution Stacks 2020

Top Programming Languages, Technologies, Tools & Web Solution Stacks 2020

Popular Programming Languages 

  1. JavaScript - Web development, Dynamic contents, Client and Server side
  2. Java - Enterprise Application 
  3. Python - General purpose; Popular with Statistical Computing / Data Science
  4. C# - Edges out C++ for most pouplar Game Development language; Also used for Websites & Utilities 
  5. PHP - Web development, Server-side
  6. SQL - Declarative language used for managing data held in a Relational Database Management System
  7. C++ - General purpose; Popular with Utilities (small apps for small tasks) & Game Development 
  8. C - General Purpose, Low-level programming
  9. Swift - Replaced the Objective-C as the main language for Apple-related software (macOS & iOS) 
  10. 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
Programming Language Popularity (2015-19): Bar Graph
Programming Language Popularity (2015-19): Line Graph


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

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

  1. Type of Project (scope / application complexity / security requirements)
  2. Team’s Expertise and Knowledge Base (build / maintain)
  3. Time to Market (3rd party libraries / tools)
  4. Scalability (performance / accommodating growth in usage)
  5. Maintainability (code base / architecture)
  6. 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

Developer FAQ (key excerpts from 'Stack Overflow Developer Survey 2019')

References


More Articles by Richard

Data

  1. SQL QuickStart Guide
  2. Database Management Systems QuickStart Guide
  3. Database Design QuickStart Guide
  4. Glossary of Database Terms
  5. Data Science

Application Development 

Learning Resources 

  1. Computer Science & Application Development Tutorials
  2. Best of LinkedIn Learning: Computer Science
  3. Best New .NET Books To Read In 2019 [Updated: 13/03/2020]
  4. Best of Wikipedia: Web Development
  5. Best of Wikipedia: Software Development

ASP.NET 4.0 in C# (WebForms)

  1. State Management in ASP.NET
  2. ADO.NET Fundamentals
  3. Data Binding in ASP.NET
  4. Files and Streams in ASP.NET
  5. Output Caching with Dependency in ASP.NET

Tech

News

Tech Data Visualization

Personal Interest

Featured Posts

Posts

要查看或添加评论,请登录

Richard Harris的更多文章

  • Using Linux on Windows via WSL

    Using Linux on Windows via WSL

    Contents Overview of Windows Subsystem for Linux Setup (including Windows PowerShell Commands for WSL & Linux Shell…

  • Cloud Computing QuickStart Guide

    Cloud Computing QuickStart Guide

    Overview Cloud computing is on-demand access (via the internet) to computing resources — applications, servers…

    2 条评论
  • Software Development & Technology News (01/08/2021 - 25/11/2021 )

    Software Development & Technology News (01/08/2021 - 25/11/2021 )

    Googling for Software Development- What Developers Search For and What They Find · It Will Never Work in Theory Why…

    1 条评论
  • Software Development & Technology News (09/02/2021 - 31/07/2021)

    Software Development & Technology News (09/02/2021 - 31/07/2021)

    Do business leaders know how to evaluate developer success- - ZDNet Will Artificial Intelligence Be the End of Web…

  • Azure Infrastructure | IaaS Day Recap

    Azure Infrastructure | IaaS Day Recap

    Today (17/11/2021) I attended Microsoft's Azure IaaS Day, which was delivered in partnership with Intel. In case you…

  • Microsoft SQL Server

    Microsoft SQL Server

    Introduction MS SQL Server is a Relational Database Management System (RDBMS) developed by Microsoft. It provides GUI…

    1 条评论
  • Custom Software Development: Project Initiation

    Custom Software Development: Project Initiation

    Need a custom app built? I can make your vision a reality! We'd begin with Requirements Gathering, Planning, and…

  • Software Development Life Cycle (SDLC)

    Software Development Life Cycle (SDLC)

    Overview The Software Development Life Cycle (SDLC) is a systematic process that development teams use to produce…

    2 条评论
  • LinkedIn Learning Paths: Computer Science

    LinkedIn Learning Paths: Computer Science

    In my past article Best of LinkedIn Learning: Computer Science, I reviewed the Courses offered by LinkedIn Learning…

  • Glossary of Database Terms

    Glossary of Database Terms

    Use the terms and definitions below to better understand Relational Database concepts. Actors: An actor is a model…

    1 条评论

社区洞察

其他会员也浏览了