Benefits of Programming Languages and Improving their Flaws

Programming languages were created by different computer scientists and developers to solve a problem. They have been coexisting with machines as early as the 1950’s to solve problems as simple as mathematical computations at a faster rate. Today, they are what makes the software and other digital programs we access through many smart devices such as smartphones, computers, and other automated machines. Therefore, programming languages are also constantly created to fit the growing needs for the technology that evolves and are more widely used than before. Having a variety of programming languages helps expand developers’ tools for solving problems that may arise from different disciplines—this is how technology gets widely adapted throughout our lives.

This paper will focus on the benefits of having many programming languages despite the inconvenience they bring to programmers and developers.  Although some argue that many of the programming languages, especially the mainstream ones (i.e. C, C++, and Java) try to replace each other but still have similar or even the same flaws, it is still worth agreeing that creating programming languages is more preferable. With the flaws in mind, offering better methodologies to creating programming languages may reduce the imperfections present.          

An article by programmer Vasyl Langutin discusses the main reasons why there are many programming languages and why they are constantly being created. The first reason is that technology constantly evolves, thus, demands more suitable programming languages to make software for them. Programming languages are made to solve any problem. Different problems arise as technology evolves. A great example of this argument is when Google released their own programming language Go in 2009. An article released by Network World Middle East discussed the creation of Go.

According to Google’s principal software engineer, Rob Pike, Go is created to solve the problems Google is dealing with their own software or application programs. Creating another programming language was necessary because they had problems with implementing their programs with the other existing languages for the past decade (“Google Creates”).

The second reason which is similar to the first reason is that different developers require different languages. Langutin uses the analogy of doctors with different specializations similar to different software developers that specialize in certain fields (e.g. web development, app development, and gaming). The examples mentioned in his article were the motivation to create C, C++, PHP, Go, and JavaScript. C is created by Dennis Ritchie while working at Bell Labs (currently known as “AT&T”) in 1972 to allow flexibility and compatibility on operating systems. Today, the C language runs on “almost all kinds of software and hardware.” C++ (read as “C-plus-plus”) is created by computer scientist, Bjarne Stroustrup in 1985, to further improve the use of the C language. C++ is an improvement to the C language but with added features that make it accessible to more people for solving more specialized tasks.

Today, C++ is also used for game development. While C and C++ are aimed at solving problems on operating systems and programming more sophisticated tasks through an operating system, web development languages were also created. PHP is created by Rasmus Lerdorf in 1994 initially for a personal project of his on developing websites. It eventually became popularly used for web development when Lerdorf released it to the public. Likewise, JavaScript was released by former company Netscape in 1995. It was initially created for front-end web development which focuses on designing websites and allowing easy syntax for web developers to learn quickly. It now improved to front- and back-end development (back-end is similar to PHP’s purpose) and eventually mobile development. Go was created by Google to solve problems of their own. It not only provided convenience to certain tasks but also improved code readability and a faster execution rate compared to using other programming languages. Python and R are widely used by data scientists “to analyze data for scientific research and educational purposes” (Langutin).

The third reason is each developer or company has different needs for their projects. Having many programming languages allows flexibility for companies and developers to solve their unique problems. This reason is similar to the previous ones but focuses on the motivation behind the creation of each programming language. This is evident in the creation of PHP and Go which were made out of necessity by their developers. Also, many programming languages give flexibility to developers and companies alike. C++ and Go allow faster execution rate and high performance compared to their counterparts, tools to analyze data such as statistics and tables are easily done through Python, and each operating system for mobile applications require different languages that fit its capabilities such as Swift for iOS (Apple operating system) applications and Java for Android operating systems.

Although having many programming languages for each specialization in software is reasonable and vital, there are programming languages that overlap with each other based on their functionality. Such as these are the programming languages R and Python and C++ and C# (read as “C-sharp”). Also, popular programming languages such as C++ and Java (although Java is a huge improvement to C++) have the same amount of flaws. Programmer David Pankhurst argues that there are too many programming languages existing and creating more gives a hindrance to software and web developers. He argues that the developers of many programming languages create it out of egocentricity. Also, some of the programming languages, especially the popular ones like C and C++ have their flaws on handling data (specifically on an issue called “garbage collection”) and the unnecessary strictness of these languages, including Java, involve requiring a semicolon on each line of code to be executed.

The unnecessary strictness of syntax was resolved by newer programming languages like Python (which don’t require semicolons but rather leave an executable code on each line). But Pankhurst further argues that most programmers who create programming languages would rather create one than learn from an existing one. These programmers would then improve their own inventions due to egocentricity and competition in the job market. They would prefer working on a project or thesis that creates a new revolutionary programming language rather than improving an existing language that may have been revised and used several times. Also, introducing a new programming language and learning it earlier lets a programmer or developer become more competitive in the job market. New languages normally learned by younger generations allow leverage towards more experienced programmers, thus, stronger competition in the job market. Also, companies that sell cross-platform tools benefit from the demand of having tools that can convert or allow certain programming languages to work in any program, thus, support the creation of multiple languages. Although all of these may be true, Pankhurst’s blog is based on opinion and rational reasoning. Since creating many programming languages out of the wrong methodology and motive may be the problem, finding a better methodology and motive can be the solution to creating better programming languages.

There hasn’t been a proper methodology for creating programming languages since most of the languages sprung up from personal projects and personal solutions to problems that arise which are reasonable motives. Although there’s no proper methodology, there have been different methodologies introduced on creating programming languages based on human data and better syntax for easy readability and understanding of programming and general concepts of computer science. In Peterson’s article, “Media Centered Languages for New Computing Experiences,” he discusses the use of two media-based languages that help widen the audience to younger people towards the concepts of computer science. The two languages mentioned were Pan, a graphical language, and Haskell, an “algorithmic computer music.” He mentions the issue in learning computer science basics is focusing on the syntax of the programming language itself rather than its purpose or the problem it aims to address. This is due to the strict nature of using programming languages which causes more lines of code that are harder for beginners to comprehend quickly.

The languages mentioned focus on basic mathematical notations and functions learned as early as middle school. Peterson discusses an example of a geometric pattern displayed by Pan. It only required 4 lines of code to display the intricate Cartesian plane compared to using more complex and popular programming languages. Likewise, Haskell provides syntax on musical notations that is more readable than other languages. Although the languages above are not suitable to replace the more complex languages widely used for current software, it is worth noting that these simple programming languages do make programming easier to learn and understand by a general audience as young as teenagers. Having these kinds of languages can be the motivation for creating new programming languages.

Another methodology focuses on creating programming languages based on human data and surveys rather than inheriting from existing languages and developed by novice programmers. In Stefik et al.’s article, “Towards Intuitive Programming Languages,” they discuss the research they conducted and the development of their programming language, Hop which is created based on scientific and empirical data of human studies. Instead of deriving their language from an existing programming language or programmed by novice developers, the team decided to survey average people, including non-programmers on which type of syntax, keywords, and other semantics a programming language should have. They claim to be the only ones who have used this methodology and are successful. An example mentioned was replacing the keyword “for” for looping through or repeating a certain block of code into “repeat” since it is more intuitive.

Although having a “better” programming language is ideal, it is impossible to create such with all the problems a programming language is required to solve. Stefik et al. did mention that their programming language is not one that solves all the problems or is even fit to replace all the complex programming languages existing. Rather, it should be a methodology or inspiration to create programming languages that are “rich, flexible, fast, and measurably intuitive” (214). Creating such a language can be done through observation and survey of human data. Stefik et al. could have provided more information on how big their survey pool was to derive at a conclusion of how intuitive Hop was since there was nothing mentioned about it. The method of analyzing empirical data and using scientific method for creating a programming language rather than inheriting from existing, low-level, assembly languages may be a better option to avoid the flaws and difficulties of programming and understanding the basic concepts of computer science.

Having many programming languages is vital for software developers, programmers, and computer scientists. They act as an arsenal of tools to use for solving problems of different disciplines and bringing solutions to upcoming problems. Just like Google’s Go, they can motivate the creation of more sophisticated solutions that optimize and innovate current technology or existing software. Although learning many programming languages is inconvenient to programmers and time-consuming as its syntax is stricter than natural languages, creating more programming languages is still preferable as to provides flexibility and different tools to solve problems. Creating them with proper methodologies can remove the hindrance of strict syntax and difficult comprehension of the language. There hasn’t been a proper methodology to creating programming languages but there have been different ways and motives to creating one.

Programming languages like Pan and Haskell focus on math and music respectively. Hop was created based on surveying average people based on the intuition of what and how a programming language should be. All these languages allow better intuition and understanding of the solution and basic concepts of computer science in a few simple lines of code rather than comprehending the meaning of stricter syntax found in more popular and sophisticated programming languages.

Works Cited:

“Google Creates Programming Language to Simplify App Dev.” Network World Middle East, Nov 11, 2009. ProQuest, http://libproxy.utdallas.edu/login?url=https://www.proquest.com/magazines/google-creates-programming-language-simplify-app/docview/210995289/se-2?accountid=7120.

Lagutin, Vasyl. “Why Are There so Many Programming Languages?” FreeCodeCamp.org, FreeCodeCamp.org, 14 Sept. 2021, www.freecodecamp.org/news/why-are-there-so-many-programming-languages/.

Pankhurst, David. “On Too Many Programming Languages.” Utopia Mechanicus, Utopia Mechanicus, 6 June 2014, www.utopiamechanicus.com/article/why-so-many-computer-languages/.

Peterson, John. “Media Centered Languages for New Computing Experiences.” Proceedings of the 2005 Conference on Diversity in Computing – TAPIA ’05, 19 Oct. 2005, doi:10.1145/1095242.1095253.

Stefik, Andreas, et al. “Toward Intuitive Programming Languages.” 2011 IEEE 19th International Conference on Program Comprehension, 22 June 2011, doi:10.1109/icpc.2011.33.

Honors Research Paper: Rising College Tuition, Free University As Solution

Introduction

This research covers information on the rising college tuition rates in the U.S. and how government aid is the determinant. Making post-secondary education free in the U.S.was introduced as a solution but also has its downfalls. Evaluating the free university system adapted in Europe and the current college system in the U.S. may help analyze what solution must be done and what actions must be avoided.

Rising college tuition in the U.S.

Research shows that college tuition has risen a lot faster than the inflation rate in the U.S.  Data from the U.S Bureau of Labor Statistics (BLS) shows the inflation rate from the early 2000s to 2020. In 2003-04, the inflation rate was 2.9% (data recorded in U.S. CPI) while college tuition costs rose on an average 10.9%. This gap between the inflation rate of the economy and college cost in a year widened throughout the years. Despite the deflation in 2008, the CPI for college costs in 2008 increased by 231.82% (Bhutada, 2021). But in November 2020, college CPI met a record low of 0.6% due to the impacts of the COVID-19 pandemic. The impact of the COVID-19 was the forced shutdown of public places, the shift of in-person and hybrid classes to virtual, and cancellation of some classes that can’t be handled virtual.

The reason for the exponential increase in college costs boils down to one cause: government aid. Based on the laws of supply and demand in economics, an increase in demand with constant supply raises prices for the product being studied, i.e. the colleges and universities for this case. With students willing to study, are they necessarily able to study? The solution allowing students to afford college regardless of financial background is through government aids such as low-interest federal loans. If that’s the case, limited colleges with many students willing and able to study causes this scenario of raising prices. According to McConnell et al, the rise of federal student loans is the cause for rising tuition rates. Giving all students the willingness and ability to pursue a postsecondary education with limited supply of schools and facilities forces institutions to raise prices and meet an equilibrium price (when the supply meets the demand). This has not been the case since prices have been increasing since the 1940s. An approach the federal government took during the post-WWII era was building state universities and employing more instructors which reduced the tuition rates dramatically in that period (McConnell et al., 2021). But both the government and private entities can’t keep building universities. 

Free Universities as Solution

Counterintuitively, government-funded public universities instead of the current FAFSA and federal loans were introduced to the U.S. It became a prominent topic during the Democratic primaries in 2019. Democratic nominee Bernie Sanders and Elizabeth Warner proposed student loans forgiven but Sanders went a step further. Sanders proposed free universities in the U.S. just like the system Europe adapted (Amselem, 2019). 

Proponents of Free Universities

Proponents of free universities argue more favorably on socialist concerns. Free universities give students more freedom to major in what they’re passionate about, allow opportunity for individual growth (Marcus, 2016), produce economic growth through research and knowledge provided by students who are willing to study and have the opportunity to do so because it’s free, and treat postsecondary education as “public good, and not just a commodity” (Earwaker, 2020). Support for free or lower cost universities is evidenced by government funding initiatives. An example is the Permanent University Fund (PUF) amended in the Texas Constitution. The amendment required the Texas state government to allocate revenue from land grants for mining and oil drilling for University of Texas (UT) and Texas A&M schools. This led to a coalition with other Texas universities to pass an additional amendment called the Higher Education Assistance Fund (HEAF) which led other Texas universities to receive state funds from the land grants (Mora & Ruger, 2019). Normally, a Texas amendment or law requires strong lobbyists to influence legislators to propose it and let the governor and the people approve it. The two amendments concerning funding postsecondary education successfully went through the amendment process.

Opponents of Free Universities 

Policy Analyst Mary Amselem mentions the drawbacks of a free university based on the real experience in Europe. The consequences of implementing a free university system include passing the burden to taxpayers, some of which didn’t even go to college and yet are forced to pay tuition for other students, fewer academic resources per student, overcrowding, and 

counterintuitively, reduced access. Allocating certain tax revenues that don’t directly benefit all taxpayers is morally unfair and economically inefficient because taxpayers who don’t benefit would rather have their taxes allocated to something that could benefit them more or bring more satisfaction to the community. Although educating the population is beneficial in the long-term, it isn’t in the short-term, especially for non-degree seekers who are current taxpayers (Krason, 2017). Fewer academic resources and overcrowding are complementary consequences for a publicly funded university. In a data taken in 2016 from Organization for Economic Cooperation and Development (OECD), the cost for an average college student in Germany is “$16,895 compared to $27,924” for U.S. students (Marcus, 2016). Spending less for each student does not maximize the satisfaction and provide the best education. But budgeting less for each student allows more enrollments. According to Assistant Director of Political Affairs at Universities UK, Karmjit Kauer, education has to be “sustainably funded […][with] high-quality education and experience for students” (Earwaker, 2020). In addition to fewer academic resources, overcrowding is another problem experienced by a free university system. Kauer further argues that with a free university funded by the government, it is impossible to provide free education to all its citizens who demand it.

Solution to the U.S. Postsecondary System

A solution is to build more institutions or even innovate the way degrees can be obtained. Online universities such as Strayer University provide Bachelor degrees that are similar to the degrees offered by the traditional universities but the school doesn’t receive much federal aid and prominence. Policy analyst, Mary Amselem argues that reducing taxpayer-subsidized federal student loans and investing in other methods of education such as apprenticeship and vocational training can also “prepare students with lifelong skills” like a Bachelor degree does. Apprenticeship was adapted in Switzerland where 60% of private sectors are funding these programs because they find it profitable. Similar to apprenticeship is the Career and Technical (CTE) in the U.S. It offers career related skills that can be taken in high school and is supervised by the government. The U.S Department of Education (2021) showed statistical data that 77% of high school students graduated with a CTE course and completing a CTE curriculum as early as in high school can lead to career pathways such as STEM and Health sciences fields. Obtaining cheaper degrees such as an Associates rather than working on a Bachelor’s directly can also reduce financial stress and workload for a student. Anyone can obtain an Associate’s first then work on a Bachelor’s later on when the college budget isn’t so tight. Increasing one’s education incrementally or seeking for the traditional pathway for Bachelors and Masters degrees both improve human capital in the economy in the long run, it’s only a matter of preference in gaining one’s education.

Summary

There are pros and cons with a free university and the current system the U.S. has adopted. But there are solutions to continue adapting the U.S. college system of non-free universities without raising the cost of education rapidly and exponentially. It is through investing in other methods of gaining a degree or specialization and reducing financial aid. Free universities may limit enrollments while providing free education for their students and maintaining the quality of postsecondary attainment. But both proposed solutions will require some students to experiment in attaining their education, compete for limited enrollments, and face other challenges or difficulties to get educated. 

Works Cited:

Amselem, M. C. (2019, December 13). Free College in Europe: A Cautionary Tale for the 

United States. The Heritage Foundation. https://www.heritage.org/education/report/free-college-europe-cautionary-tale-the-united-states.

Bhutada, G. (2021, February 4). The Rising Cost of College in the U.S. Charted: The Rising 

Average Cost of College in the U.S. https://www.visualcapitalist.com/rising-cost-of-college-in-u-s/.

Earwaker, J. (2020). Should university education be free? Business Spotlight, 2, 28–29.

Krason, S. M. (2017). What’s Wrong with Guaranteeing a Free College Education? Catholic 

Social Science Review, 22, 395–398.

Marcus, J. (2016, October 18). How free college tuition in one country exposes unexpected pros 

and cons. The Hechinger Report. https://hechingerreport.org/free-college-tuition-one-country-exposes-unexpected-pros-cons/.

McConnell, C. R., Brue, S. L., & Flynn, S. M. (2019). Application: Government-Set Prices. In 

Microeconomics: 22nd edition (pp. 60–63). McGraw-Hill.

Mora, S., & Ruger, W. (2019). In The state of Texas: government, politics, and policy (pp. 

66–67). essay, McGraw-Hill Education.

U.S Department of Education. (2021). insights into how CTE can improve students’ income after 

they graduate. CTE Data Story. https://www2.ed.gov/datastory/cte/index.html.