Lesson 3 Highlights

Alexander Blanchette


Repository

A repository is a place where multiple files or servers are stored and distributed on a network. Repositories are essential in Version Control Systems (VCS) because they allow files to be checked out and resubmitted regularly. VCS allows for teams of programmers to work on the same project at the same time while keeping track of all changes or revisions. A repository contains three characteristics. A trunk, Branch and tags. The trunk is always the main file that, after being vetting for accuracy and compiled becomes the new master file that gets checked out. Branches are used to store different versions of the program, they may not always become part of the trunk and can lead to dead ends. However these branched versions need to be saved, so tags are used to both mark and save the file. Tagged files are never meant for active development. Repositories allow for a structured way to develop as a team while keeping track of all work. This is invaluable because a few days work on a dead end file could be worth a lot more in the future.


JavaScript

Java script or JS is a dynamic and weekly typed language that is commonly employed by web developers. It was originally created to add dynamic and interactive elements to webpages. JavaScript or JS is a weekly typed, and client-side language. This means JS functions can run after a webpage has loaded without communicating with the server. This also means that JS code can be inserted anywhere using a script tag. While it is best practice to load it in the header one can put in in the body too. However, when working on large projects most web developers create and maintain a specific file with a .js extension and link to it within the HTML code. For example, web developers create and maintain specific CSS files instead of using inline code.


Strong vs. Weak typed Languages

Examples of strongly typed languages are Java. Strong languages require that data types be pre-defined by the programmer, and is enforced by a compiler. The advantage of strongly typed languages is that they allow for a certain standard to be set when coding, making it useful for team work or tracing someone’s code. However this strict level of consistency comes at the cost of flexibility because the language is equipped to handle very specific and limited data types. This weakness is why loosely typed languages were developed. JavaScript or JS is one such loosely typed language that does not require data types to be pre-defined, sacrificing rigidity for flexibility. Loosely typed languages allow for programmers to create new data types that normally would not work in strongly typed languages.


Client-side vs. Server-side Programming Languages

JavaScript or JS is an example of a client-side language, meaning that JS file runtime exists on the browser. On the other hand languages like PHP compile data on the server. The server then serves the outputted data to the client. Server side languages are important because they can handle sensitive data that does not show up in the outputted file like usernames and passwords. One disadvantage of this is that the server needs to dedicate runtime to compiling these files and serving outputs, which is inherently more taxing then something that is handled locally. This introduces more strain on the server and possible longer load times for the end user because they have to wait for the server to serve and compile all the files they requested.


Git-Hub

Git Hub is a web service that allows teams to collaborate effectively through the use of VCS or Version control systems. It does this using “Git” Git is a Source control management (SCM) system. In its most basic form SCM’s keep track of and provide file management for software development teams. SCM Is also known as a VCS or version control systems. Git-hub is one of the worlds most popular VCS service providers and comes with many advantages. Firstly, all data is stored remotely allowing for it to be accessed anywhere the client has internet allowing programmers to work on-the-go. Outside of the VCS services, git-hub provides a social media platform where users can share and discuss different coding projects. This also leads to many public projects where users can voluntarily contribute from all over the world.