Johnllopez Week 11

From LMU BioDB 2017
Jump to: navigation, search

Development Vocabulary

  • RFC 5321: RFC 5321 is a document that defines Simple Mail Transfer Protocol for the community to discuss, suggest, and make improvements upon. SMTP is intended to be the basic protocol for e-mail transport and is intended to be the standards of designing the way emails are sent (Klensin, 2008).
  • RFC 5322: Like RFC 5321, RFC 5322 is designed to be a basic protocol for a form of internet communication and is created for the community to discuss, suggest, and make improvements upon. However, RFC 5322 defines the Internet Message Format, a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages (Resnick, 2008).
  • Java Applet: An applet is Java program that a browser enabled with Java technology can download from the internet and run. An applet is typically embedded inside a web page and runs in the context of a browser ("Lesson: Java Applets").
  • SQLite: An embedded SQL database engine with multiple tables, indices, triggers, and views contained in a single disk file. In addition, it does not need a server. It is free to use for anybody ("About SQLite").
  • Enterprise Programming: Enterprise programming is when a programmer develops software for a large company/organization whose main objective is not to develop software. The software is typically meant to have a great number of users (Ilardi, 2017).
  • Bytecode: The machine language of the Java virtual machine. This means any instructions written by the programmer are translated into this from the original syntax, and the results are interpreted by the JVM. (Venners, 1996).
  • Clojure: Clojure is a programming language that runs off the Java Virtual Machine and uses Java's structure while maintaining the syntax of the Lisp programming language. ("Rationale").
  • NPM: Short for Node Package Manager, NPM contains thousands of reusable, free JavaScript packages for software developers to use. NPM is installed alongside Node.js. New packages can be installed from the command line and packages can be used within typical JavaScript syntax. ("Node.js NPM").
  • V8: V8 is a JavaScript engine that compiles and executes JavaScript source code, handles memory allocation for objects, and garbage collects objects it no longer needs. V8 enables any C++ application to expose its own objects and functions to JavaScript code. (Thompson, 2015).
  • Netscape: Just as Paul Ford's article says, Netscape was one of the first commercial browsers. Netscape was released in 1994 and did not offer support for Java and JavaScript until version 2.0. (Heisler, 2014).

Article Outline

  1. Paul Ford's main message is that what appear to be simple programming tasks require the most contemporary tools and resources, yet these resources have similarities with those already established.
    1. Ford provides 3 of the most common languages/practices in most modern programming operations.
      1. Relational Databases.
      2. Java.
      3. JavaScript.
    2. Ford explains that the modern environment for programming is constantly changing and complex, yet similar to practices in the past.
      1. Programming languages are always changing for the better.
      2. Despite the differences in task, modern programmers use some arrangement of the most common practices.
      3. Programming tasks are more complex than anticipated.
  2. Paul Ford describes the cause and effect relationship between modern programming practices and informs the reader that adapting to the industry changes the industry.
    1. Explicates the origins of several contemporary programming languages and why they were developed.
    2. Provides insight to the ever changing environment of software development and how developers adjust to meet the demands of the industry.
    3. Explains how the needs over time change for software use, yet developers have the ability to adapt.
  3. Ford discusses the most important/popular languages and development environments, like relational databases, Java, and JavaScript.
    1. Implementing Relational Databases is the Best Approach to Handle Big Data.
      1. Relational Databases use the Structured Query Language.
      2. Represent the world using tables containing rows and columns.
      3. "Data management is the problem that programming is supposed to solve" (Ford).
      4. Allows us to have web services that store large quantities of different types of data (Amazon, Netflix, Spotify).
    2. Also lets data be retrieved on small devices (SQLite).
    3. A Majority of "Big Corporate Programmers" use Java Because of Its Class Library, Available Documentation/Manuals, and Virtual Machine.
      1. Class Library contained classes and methods needed for several commonly used purposes such as math, databases, document management, and network services.
      2. Documentation automatically generated using javadoc.
      3. Several manuals, workshops, lessons, and training opportunities.
      4. Virtual machine enabled Java to run on most common computers, allowing implementation for many large companies for several purposes.
    4. Over Time, the Functionality of JavaScript Grew from Simply Making Pages Interactive, to Using Web Pages as Software, to Being Used Outside of Web Pages.
      1. Initially used within pages for animations and page style.
      2. With the rise of Ajax, JavaScript became the main language for web programming web applications.
      3. V8 engine in Chrome allowed JavaScript to run faster.
      4. Modifications on the V8 engine allowed JavaScript to run outside of the browser.
      5. Creation of packages like Node.js.
      6. "If you knew how JavaScript worked on a Web page, then you could make it work on a server" (Ford).
      7. NPM helps install packages for JavaScript.
    5. Improvements in Software Engineering Allow New and Greater Things to be Made
      1. Relational databases allows us to have web services that store large quantities of different types of data.
        1. Amazon - "Books"
        2. Netflix - Video Files
        3. Spotify - MP3 Files
      2. Also lets data be retrieved on small devices (SQLite).
      3. Java is a versatile language with implementations everywhere!
        1. Used in “enterprise programming” for companies like GE.
        2. Used by software companies like Google.
      4. JavaScript allows people to make real software using web pages.
        1. Google Documents
        2. Amazon Web Services
  4. Ford strongly argues that programming languages change for the better, there are similar trends in modern development, and development is more complex than it first appears to be.
    1. Programming languages are constantly changing to increase usability and proficiency.
      1. Some languages have different syntax yet run using the JVM.
        1. Clojure
        2. Jython
        3. JRuby
      2. Formerly common languages such as PHP are becoming obsolete in favor of newer, more efficient languages
      3. Java applets, once used widely are considered impractical now
    2. Although each programming project serves a different purpose, there are similar trends in development despite differences in the objective.
      1. Enterprise programming uses Java despite the fact they don't specifically sell software.
      2. Academic research develops with Java despite generally lacking user interfaces.
      3. Software development companies use Java for a multitude of tasks and project sizes.
      4. Several groups of programmers can use JavaScript despite its original intended use to create page interactivity:
        1. Web Application Developers
        2. Database Managers
        3. Web Page Designers
    3. The Process of Software Development is More Complex than Writing Code.
      1. Different protocols and methods for making a similar product.
        1. Simple Mail Transfer Protocol vs. Internet Message Format.
        2. Installing a package from NPM and configuring it to your individual server.
      2. Requires dozens of tasks to be distributed to people at the company.
      3. Despite hundreds of packages/libraries existing, picking out the right one for your purpose and your company.
  5. This article taught me why it's important to stay up to date to current programming practices, and it gave me a greater idea of how my group can use JavaScript.
    1. If I don't stay up to date with the ever-changing JavaScript, I can not unlock its true capabilities
    2. Using resources like NPM, it's quite possible to make JavaScript do anything I need it do.
      1. JavaScript libraries and methods will have to be used to complete my task.

Project Deliverable

The presentation.

Acknowledgements and References

Acknowledgements

I worked with my partner Eddie Azinge on this assignment. We met outside of class on Monday, November 13 to discuss the presentation and worked on it in person and over Google Documents shortly after. In addition, we will meet on Tuesday, November 14, to rehearse the presentation. While I worked with the people noted above, this individual journal entry was completed by me and not copied from another source. Johnllopez616 (talk) 23:22, 13 November 2017 (PST)

References

Cojure. Rationale. Retrieved November 12, 2017, from  https://clojure.org/about/rationale
Ford, Paul. (2015, June 11). What is Code?. Retrieved November 12, 2017, from https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/#the-time-you-attended-the-e-mail-address-validation-meeting
Heisler, Naomi. (2014, October 14) A Visual History of Netscape Navigator. Retrieved November 12, 2017,from https://www.networkworld.com/article/2833526/software/a-
visual-history-of-netscape-navigator.html
Ilardi, Robert. (2017, November).About Enterprise Programming. Retrieved November 12, 2017, from https://enterpriseprogrammer.com/about-enterprise-programming/
Java. Lesson: Java Applets'. Retrieved November 12, 2017, from https://docs.oracle.com/javase/tutorial/deployment/applet/index.html
Klensin, J. (2008, October). RFC 5321. Retrieved  November 12, 2017, from https://tools.ietf.org/html/rfc5321 
LMU BioDB 2017. (2017). Week 11. Retrieved November 12, 2017, from https://xmlpipedb.cs.lmu.edu/biodb/fall2017/index.php/Week_10
Resnick, Ed. (2008, October). RFC 5322. Retrieved November 12, 2017, from https://tools.ietf.org/html/rfc5322 
SQLite.About SQLite. Retrieved November 12, 2017, from https://www.sqlite.org/about.html
Thompson, Seth. (2015, November 25). Introduction. Retrieved November 12, 2017, from https://github.com/v8/v8/wiki/Introduction
Venners, Bill. (1996, September 1). Bytecode Basics. Retrieved November 12, 2017, from https://www.javaworld.com/article/2077233/core-java/bytecode-basics.html
W3Schools. Node.js NPM. Retrieved November 12, 2017, from  https://www.w3schools.com/nodejs/nodejs_npm.asp


Individual Journal Entries and Assignments

Class Assignments

Class Weekly Journal Entries / Project Weekly Journal Entries

My Page