As I embark on this education technology blog, discussing how technology can be harnessed to provide a more effective and efficient form of online education, I decided to start with the fundamental software development platform and discuss open source and the LAMP stack.
Here at Silicon Valley High School, we haven’t always been dedicated to open source and the LAMP stack. We initially chose to use the Microsoft .Net platform. .NET is a software framework developed by Microsoft that we ran on Microsoft Windows, Azure and IIS servers. It provides a large library of pre-built code and tools to build, test, and deploy various types of applications. We decided to go with the C# language but .NET is designed to be flexible and versatile, supporting multiple programming languages, including visual basic. The great thing about this platform was that I could develop prototypes myself using the Microsoft Access database on my familiar Windows PC and then I could hand them over to our software engineering team to develop into fully functioning systems deploying the more industrial-strength Microsoft SQL server. However, seeing the massive growth in open source platforms, we took a sharp turn and switched away from .Net to the LAMP stack. Now, several years later, we’ve virtually abandoned .Net. Not one of our 50+ team of software engineers continues to work in the .Net environment, and we’ve been happy with our switch to open source.
The source code for open source software is publicly available, which means that anyone can view and contribute to the development of the software. This collaborative approach to software development allows for a wide range of contributions from individuals and organizations, and can lead to the creation of high-quality, innovative software.
The open source platforms we have adopted, like the Moodle learning management system and WordPress website builder run on the LAMP stack.
The LAMP stack, which stands for Linux, Apache, MySQL, and PHP, is an increasingly popular platform for building web-based applications. It has several features and benefits that made it a good choice for us:
- Open source: All of the components of the LAMP stack are open source, which means that they are freely available and can be modified by our engineers, if necessary.
- Widely used: LAMP is a widely used platform, with a large user base and a strong developer community. This means that there are many resources available for learning and troubleshooting, and it’s easier to find software engineers with experience in LAMP technologies.
- Scalability: LAMP applications can be easily scaled to meet changing demand, either by adding more servers or by using cloud-based solutions like Amazon Web Services (AWS) or Google Cloud Platform (GCP)—I’ll discuss these platforms further in a later article.
- Compatibility: LAMP applications can run on most operating systems, including Linux, macOS, and Windows, which makes it easier to deploy and maintain the application.
Where open source is open and available to customize, the Microsoft platforms.NET and Azure platforms are relatively closed and somewhat more restrictive.
- Proprietary: .NET is a proprietary platform developed by Microsoft, which means that it is controlled by a large corporation, and cannot be modified at the code level as can be done with open source. If Microsoft decides to discontinue .Net, all our applications would be dead. That’s a risk we just cannot take.
- Strong integration: .NET has strong integration with other Microsoft products, such as Visual Studio and Azure, which can make it easier to develop and deploy applications for certain types of Microsoft-oriented projects.
- Cloud-native: Azure is a cloud-based platform that is designed to host and run .NET applications. It provides a range of services and tools that can make it easier to build, deploy, and manage cloud-based applications.
While Microsoft platforms may be a better fit for projects that require strong integration with other Microsoft products, we wanted to construct our systems using the open source building blocks available in the education sector and chose to go with the LAMP stack for our Ed Tech applications.
Open source software like Moodle and WordPress is developed by a community of volunteers, who work together to improve the software and share their modifications with others. This allows for a rapid pace of development and a wide range of features and capabilities.
The concept of open source software has a long history, with roots dating back to the early days of computing. In the 1950s and 1960s, computer software was typically distributed in source code form, with users expected to modify the code to fit their specific needs.
The modern open source movement, however, can be traced back to the late 1980s and early 1990s. In 1989, the term “open source” was coined by Christine Peterson to describe a new approach to software development. This approach was based on the idea of freely sharing the source code for software, allowing anyone to use, modify, and distribute the software.
In the 1990s, the open source movement gained momentum with the development of the GNU Project and the release of the GNU General Public License (GPL). The GPL is a widely used open source license that grants users the freedom to use, modify, and distribute software, as long as they make the source code available to others.
Developing using source code from the open source community, we have full control over our platform. We can go in to the code itself and modify it. We also get regular updates and enhancements. However, like many other developers, we don’t feel the need to change any of the code in the LAMP stack itself. We’ve never gone in and changed the way the Apache server works, or made changes to the Linux operating system. What we do is build our software on top of the open source platforms. We build our own proprietary, custom code that happens to integrate with widely available open source building blocks.
As you will see in future blog posts, our adoption of open source and the LAMP stack drives many of our choices and decisions as we select directions to take when building Ed Tech software. With all these fabulous building blocks available, it’s a great time to be a software developer and I see education as a sector that needs a technology boost. The availability of quality open source platforms means we can focus on building sophisticated new systems without having to worry about building the platforms themselves. I will discuss the software we’ve developed, and technologies se have deployed, in more detail in the coming posts.
By David Smith, Founder & CEO of Silicon Valley High School
A former Apple World Marketing Manager, David has more than 30 years’ experience of founding and managing technology startups. He holds a JD from Santa Clara University School of Law, Post Graduate Diploma in Marketing from the University of Westminster and a BS (Honors) Computer Science and Economics from the University of Leeds. In the 1990’s David founded and acted as CEO for SurfMonkey, the leading web browser and Internet safety service for children. David has authored several books on business and intellectual property and is recognized by IAM magazine as one of the world’s leading intellectual property strategists.