Encapsulation is a programming concept that refers to the ability to hide information about how a section of code works, instead requiring the person using the code to only have to know what information to provide and what results to expect. “Implementation details can be hidden within the objects themselves. This information hiding, as we’ll see, is crucial to good software engineering” (Deitel & Deitel, 2018, p. 12).
A great example of encapsulation in the Bible is Salvation. As Christians we only have to know what Jesus did: that He died on the cross for our sins, and rose to life defeating sin and death (1 Cor 15:3-4). If we believe that and put our trust in Jesus for salvation, He will save us. How does this work? We don’t understand the entirety of it. We understand some things, that death came for everyone through Adam’s sin and yet is offset as resurrection comes to everyone through Jesus’s righteous death (1 Cor 15:21-22).
The core of what we have to know is just what we have to provide and what results to expect: We have to believe in God and that Jesus, His son, came and died for our sins to restore our relationship with God. We know that happens because God has provided the explanation (or in programming terms, interface) for us through the Bible. However, the exact details of how Jesus’ death on the cross for us reverses the sins of each of us is never truly understood and explained. The Bible uses metaphors to explain to us what is happening (that we are justified, that we are adopted) but it never explains how it happens. This is the essence of encapsulation when it comes to programming.
A second form of encapsulation in the Bible is the battle at Jericho. In Joshua 6, God tells Joshua to have the Israelites circle Jericho one time a day for six days and on the seventh day to circle it seven times and to shout and blow the trumpets (Josh 1-5). This is the input: circling Jericho and blowing trumpets. The output: The city of Jericho’s walls will collapse and the Israelites will be able to take the entire city.
God doesn’t explain how the city’s walls will collapse or what circling the city has to do with it. That is all God’s business. All that the Israelites have to worry about is doing what God said, and watching as they get the results that God promised. In this sense, Jericho is a perfect example of God using encapsulation.
In America, where freedom is a right, it is often assumed that freedom is allowed anywhere and everywhere. This freedom does not, in fact, extend to private property such as the property owned by a business. Because of this conflict, in a 2005 survey, 26% of employers “had fired workers for misuse of the Internet” (Dale & Lewis, 2016, p. 279).
It makes sense that a company should be able to avoid misuse of their equipment and property, however it is also important for employees to be able to rest and recuperate throughout the day (Dale & Lewis, 2016, p. 279).
When it comes to the Christian’s use of technology, two questions must be asked. The first is how should a Christian employer handle the technology used in their business. Ephesians 6:9 says “And masters, treat your slaves the same way, without threatening them, because you know that both their Master and yours is in heaven” (CSB). This same principle can be used for employers and employees. The statement “treat your slaves the same way” refers to the verses before where the slave is told to serve their master with sincerity, and a good attitude, because what the slave does they will receive back from the Lord. This means that employers should show consider the same things when thinking about their employees. This means, if and when an employer does monitor employee use of technology, it should be done with sincerity and grace.
Finally, the question is how a Christian employee should behave. In Luke 16:10, it says “Whoever is faithful in very little is also faithful in much, and whoever is unrighteous in very little is also unrighteous in much” (CSB). This means, that as much as is possible, an employee should use the time and equipment provided by their employer for company work. The great thing about that is when a Christian employee adopts this principle, it doesn’t really matter if the employer tracks their technology usage because they will be living “above reproach” (Colossians 1:22).
Dale, N. & Lewis, J. (2016). Computer Science Illuminated, 6th Edition. Burlington: Jones & Bartlett Learning.
Some negative aspects of playing video games are that time spent on video games can quickly get out of hand, potentially interfering with more productive activities such as work, school and other social or learning activities.
Addiction can take form in many different ways, alcohol, gambling, sex, and of course, gaming. “Gaming addiction exhibits the same symptoms as other impulse-control disorders” (Dale & Lewis, 2017, p. 494). Some indications that you are addicted to gaming is usual addictive behaviors: lying, lack of attention, sleep issues, etc. Video games are seen to be highly addictive among men, based on the satisfaction hormones that are active during game play (Dale & Lewis, 2017, p. 495).
When considering how a Christian should deal with technology, there are two principles that can be considered. The first focuses on the Christian as an individual. In 1 Corinthians 6, Paul explains to the church in Corinth that for a Christian, while “Everything is permissible”, “not everything is beneficial” (1 Cor 6:12 CSB). In essence, just because a Christian can do something, doesn’t mean they should do something. Paul encourages the Christian to “not be mastered by anything” (1 Cor 6:12 CSB). This means if a Christian is at the risk of becoming addicted to video games, while video games are permissible a Christian that is susceptible to addiction should be careful and exercise caution when considering playing video games.
The other concept is when considering other Christians. In the book of Romans, Paul explains that when considering their actions a Christian should always consider how their actions affect their fellow Christians. “Therefore, let us no longer judge one another. Instead decide never to put a stumbling block or pitfall in the way of your brother or sister” (Rom 14:13 CSB). This means if playing video games might cause issues for a fellow Christian then they should reconsider playing video games.
This means if the Christian does not have addictive tendencies toward video games and no other fellow Christians in their lives would be negatively affected by their playing of video games, then it is a fun activity that can be engaged with caution.
Dale, N. & Lewis, J. (2016). Computer Science Illuminated, 6th Edition. Burlington: Jones & Bartlett Learning.
Brait, E. (2016, March 17). ’Everyone could know what I was doing’: the millennials not using social media. Retrieved from https://www.theguardian.com/us-news/2016/feb/01/millennials-not-on-social-media-twitter-facebook-instagram.
· To analyze current hiring trends of programming languages and determine the easiest programming languages to get hired in.
· To suggest the top five programming languages that a programmer should learn.
· To list a couple honorable mention programming languages that just barely didn’t make the list.
· To provide a basic overview and explanation about the top five programming languages
· To show top programming trends in different cities across the United States.
A programming school called Coding Dojo, researched and analyzed job postings on a variety of websites and search engines. They even did internal research with instructional staff that knows the programming market well. Using a combination of all of these data sources, they produced a list of the five most in-demand programming languages.
The top language (Python) is a common programming language useful for writing small utility-based programs and especially for use among data scientists and other analysts. It was the top programming language in Los Angeles, Chicago, Dallas, San Jose, Washington D.C., Boston, Atlanta, and Seattle.
The second language, is Java. Java is also a widely used programming language that can be used for a variety of tasks. It was actually the most in-demand language in Philadelphia, and was the second strongest in the remaining 10 metropolitan areas giving it a very strong job demand.
The fourth and fifth languages are C (a language created and used heavily by Microsoft) and PHP. C was in fourth or fifth place in each of the 11 cities except San Jose, where Swift (Apple’s programming language) has a stronger hold. Swift and Ruby on Rails were honorable mentions, showing up in fourth or fifth place in a couple of cities each but not enough cities to make it on the top five languages in demand across the nation.
· Comparing C adoption versus Swift/iOS adoption, it is apparent that Microsoft technologies are still heavily relied upon across the nation (except in Apple’s hometown of San Jose).
· PHP and Ruby on Rails can be considered “second tier” programming languages as they don’t appear in every city and when they do appear they are in fifth place. However, they seem to be useful alternatives.
· Ultimately, knowing top programming languages will help you get a job, but if you want a job with a specific company, it is important to know what they need. Capital One, Lockheed Martin, and Bloomberg are all looking for different programming languages.
I feel that the analysis of the top-five programming languages nation-wide and then including the top languages per city is very useful approach. I know as a software engineer wondering recently what languages I should invest some more time in to, this article was very useful. I had no idea how popular Python was in the job market.
Listing some of the companies hiring different programming languages was useful. Being able to see the difference between location, companies and programming languages helps to understand what is being used, and where. I do think they could have included more companies.
PHP was barely mentioned, I think there could have been more context. For example, PHP is the language that powers most of the content management systems across the internet as it is the language that builds both Wordpress and Drupal CMS software. This is also important because many government and educational insitutations are slowly shifting from Java-based backends to PHP-based Drupal. I experienced this first-hand listening to several talks at Drupal conferences as well as helping that transition while working with USAID.
· How many jobs do each of these programming languages offer on average?
· I would have enjoyed seeing some more popular companies listed under what programming languages they were recently hiring.
· Related to the above question, I’m curious how volitial this lsit is. By comparing data over time, it would be interesting to know if the job market changes a lot or if they are pretty stable long term.
Papermaster, M. (2017, April 13). How computing will change amid challenges to moore’s law. Retrieved from https://techcrunch.com/2017/04/13/how-computing-will-change-amid-challenges-to-moores-law/
To explain the current pace of speed improvements in developing CPUs.
Discussing current increased demands in computing power.
The difference between processing power in the cloud versus processing power in the local machine.
Addressing how to increase productivity in programming for local machine processing.
Addressing how to increase physical processing within the local machine
In Papermaster’s How Computing will Change amid Challenges to Moore’s Law (2017)he discusses the challenges between the slowing of Moore’s Law and the increasing demand for local processing power in machines. Moore’s Law is the hypothesis that every two years technological advancements will enable CPUs to double in speed. Papermaster’s assertion is that this speed has begun to slow down leading to the need to find other ways to continue the same pace of technological innovation.
The first idea is that processing needs could be moved to the cloud rather than on local machines. But much of the innovation happening is in areas like self-driving cars, drones, robotics, augmented reality (AR) and virtual reality (VR). Papermaster includes an example of The Royal College of Medicine using VR and AR to create disruptive applications in the surgical area. Ultimately, cloud processing can’t be relied upon with those innovative areas because of the need for real-time data processing.
Papermaster argues that with the integration of software and hardware engineering, we can overcome the loses from the slowing of Moore’s Law. He argues that if we build specialized accelerators using both CPU and GPU processors, using innovative techniques such as 3D die stacking and stacked memory, and integrate these devices because of the smaller size of the processing units these focused hardware devices can be used through open-source frameworks in order to take advantage of many distinct functions.
He calls this new technique the Moore’s Law Plus, and he argues that by combining the on-going CPU speed increases with the innovative integration of hardware and software that we can maintain the same acceleration of technological progression.
Moore’s Law is no longer valid as a two year cycle, it takes longer to move processor size and speed forward.
Cloud computing is not responsive enough or fail-safe enough to provide the computational power needed in certain settings.
Key innovative areas that are demanding more processing power are AR and VR interfaces, as well as self-driving cars, drones, and robotics.
In order to continue at the same technological pace, businesses will need to use both software and hardware integration by pushing both areas into new directions.
There is a danger of this making software development more difficult, it is important to keep software programming effort as a key factor when making these integration decisions.
I think that Papermaster’s article, How Computing will Change amid Challenges to Moore’s Law was well written and takes an interesting look into what life after Moore’s Law looks like. He doesn’t make much of an argument for the slowing of Moore’s Law and just states it as a fact. I do think that could have been better analyzed. However, the assertion is correct.
Intel’s famous “tick-tock” development process was originally designed around Moore’s Law where the first year was the tick (process) and the second year was the tock (architecture). By the third year, technology would have improved and they would be on to a new process. However, due to the slowing of Moore’s Law, Intel has had to develop a new development process that allows them to release new processors even when they haven’t been able to make physical changes every two years like the used to (Bright, 2016).
The recognition of cloud computing but the rationale on why it is not enough for certain areas of technology such as self-driving cars, AR or VR was helpful. I found it interesting that the solution was not in one discipline but was actually cross-displine by melding both software and hardware innovation.
Some proof of Papermaster’s assertions can be found in Apple’s new iPhone 8 and iPhone X. In order to power the AR of the new iPhones as well as capitalize on battery life Apple built 6 cores into it’s System on Chip (SoC) A11 Bionic. It has two power efficient cores for general use that allows the iPhone to have great battery life as it is used normally. It also has four high performance cores that allow for heavy duty multithreading when dealing with intensive tasks such as AR. The A11 Bionic SoC also contains a motion co-processor that off-loads all the motion tracking data away from the generic processors into a processor designed for dealing with motion data (Altavilla, 2017).
I think that Papermaster’s article was a through analysis of the challenges that businesses are facing as Moore’s Law is slowly become less and less true. There are some areas that could have been expounded upon by providing proof of Moore’s Law slowing or some concrete examples of how the software and hardware integration can lead innovation at the same pace. However, the premise and conclusion were still true.
Altavilla, D. (2017, September 13). Apple A11 Bionic Processor Silicon Prowess may be the new iPhones’ Most Impressive Feature. Retrieved from https://www.forbes.com/sites/davealtavilla/2017/09/13/apple-a11-bionic-processor-silicon-prowess-may-be-the-new-iphones-most-impressive-feature/ - 2cf7358c5f82
Bright, P. (2016, March 23). Intel retires “tick-tock” development model, extending the life of each process.. Retrieved from https://arstechnica.com/information-technology/2016/03/intel-retires-tick-tock-development-model-extending-the-life-of-each-process/
Hi Bobby, Thank you for your thoughts on software piracy. You had some interesting points both on legal and moral grounds, but there were a couple things I thought I might respond to. First, you mentioned that a Christian shouldn’t use unauthorized software because it is considered stealing and that the Ten Commandments forbid theft. This however, is under the assumption that a Christian is living under The Law rather than by grace. I would argue that a Christian is free from the law, and thus the idea of stealing software, an already abstract concept is not a sin. Second, you argue that software piracy is limiting jobs as you mention that “lowering software piracy by just 10 percentage points during the next four years would create nearly 500,000 new jobs and put $140 billion into ailing economies” (Dale & Lewis, 2016, p. 191). I would argue that plenty of businesses don’t hire more employees when they get more money and the lack of software piracy doesn’t necessarily mean there would be more jobs but just that the owners of these software companies would make more money. Considering the fact that the majority of software piracy is for over-priced software by large companies like Microsoft and Adobe, the likelihood of jobs actually being affected is fairly low. Finally, I think it is important to reflect on the fact that software is abstract. Most people that pirate software either don’t have the means to purchase it or wouldn’t purchase it, even if they didn’t pirate it. In this case, software piracy isn’t affecting anyone except it allows the person who pirates the software to be able to use something to better their life that they wouldn’t have had access to before that. Thanks for your time, Eddie
References Dale, N. & Lewis, J. (2016). Computer Science Illuminated, 6th Edition. Burlington: Jones & Bartlett Learning.
The concept of a believer’s union with Christ refers both to a positional definition and an experiential definition. Positionally, when God looks down at us He doesn’t see the times we’ve messed up or the sins we’ve committed. We God looks down at a Christian believer, He sees the the acts that Jesus did and the life that Jesus lived. Because of this, that means positionally before God we get to take the place that Jesus gets. Experientially, God has come down to earth and He lives inside of every Christian believer. We don’t just cognitively know of God, we know God through our experiences with Him. Through the Holy Spirit living within believers, God begins the process of Sanctification within our lives leading us through a long process to becoming more and more like Jesus.
Without the union of Christ, the entire Christian doctrine of Salvation would fall apart. This is because the concept of our union with Christ is embedded in 4 crucial aspects of our salvation: eternally, historically, presently and eschatologically. Eternally, God chose us in Christ. Historically, God sees us as united with Christ in His life, death and resurrection. Presently, our salvation and the gift of the Holy Spirit inside of us is only because we are united with Christ. Eschatologically, when a believer dies they are “with Christ” and will rule with Christ (Rev 3:21).
Another reason that the concept of sin has diminished from the public is the common understanding of moral responsibility. “We live in an age that strives to ease or eradicate moral and spiritual culpability”[^3] It used to be that most understand that there was a common base for morality, while God’s nature might be debated, there was an agreed upon understanding in the public that people ought to measure up to moral standards like the Ten Commandments. However, in the Post-modern movement in society, people have shifted from believing in external morality to internal morality. That is, rather than morality being defined for them based on a religion or God, that morality is defined based on what feels right to them.[^4]
Thus, when morality becomes subjective based on the meta-narrative that feels right to each individual, there can be no common understanding of right and wrong, thus the diminishment of the concept of sin from the public square. As sin is defined as “failure to measure up to God’s standards,”[^5] so if there is no agreed upon God or standards, how can there be an agreed upon sin?
[^1]: Daniel Akin, ed., A Theology for the Church (Nashville, TN: B&H Publishing Group, 2014), Kindle, Location 14412 [^2]: Ibid., Location 14434 [^3]: Ibid., Location 14417 [^4]: Al Truesdale, With Cords of Love: A Wesleyan Response to Religious Pluralism (Kansas City, MO: Beacon Hill Press, 2006), Kindle, Location 1088 [^5]: Daniel Akin, ed., A Theology for the Church (Nashville, TN: B&H Publishing Group, 2014), Kindle, Location 14430