popularity of programming languages 1970-2000

12

Upload: others

Post on 29-Dec-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Popularity of Programming Languages 1970-2000
Page 2: Popularity of Programming Languages 1970-2000

Which language(s) to learn for the highest return on investment?

Page 3: Popularity of Programming Languages 1970-2000

Popularity of Programming Languages 1970-2000

Main Frame

Mini Computer

Personal Computer Internet & Web

Page 4: Popularity of Programming Languages 1970-2000

Popularity of Programming Languages 2010-Present

Web & MobileDeep LearningData Science

Page 5: Popularity of Programming Languages 1970-2000

Learning programming language

Language syntax and grammar

EcosystemConcept (object-oriented)

LibrariesIDE (edit, debug etc)

• Read good codes written by someone else

• Start with writing code for for a simple yet interesting project

• Learn and get used to the best practice for readability

• function and variable naming – good names substitute

for long comments

• consistent coding style

• refactoring

• Get proficient with IDE and tools for the productivity

Page 6: Popularity of Programming Languages 1970-2000

Paradigm of Programming Languages

• Procedural

• Traditional model of computation

• Most programming languages

• Functional

• Designed to model the problem rather than the solution

• Mathematical programming languages GAMS, AMPL, F#

• Object-Oriented

• Class, Abstraction, Encapsulation, Inheritance, Polymorphism

Page 7: Popularity of Programming Languages 1970-2000

C - parent of the most widely used languages

• C has been a dominating language in Unix and Windows environments since early days of

computer

• The C syntax has inspired lots of popular languages (C++, C#, Java, Perl, Python, Ruby)

• Numerous libraries are written in C; interfacing them requires C knowledge

• C is extremely portable; “all” machines can compile and run C programs

• C is very low level and close to the machine language – efficient and small overhead

• Must-know language for computer engineers

Page 8: Popularity of Programming Languages 1970-2000

Languages of Energy Modeling Software

• GCAM Core: Originally written in Fortran, ported to C++

• GCAM Data System: R, Python

• GCAM-EML: C#

• Message: Python

• Times/Markal (and most linear programming models): GAMS

• Osemosys: GMPL (Gnu Mathematical Programming Language)

• RetScreen: VBA

• System Advisor Model (SAM): Originally written in Fortran, ported to C++ recently

• Magicc: Fortran

Page 9: Popularity of Programming Languages 1970-2000

Features of GCAM-EML

• Completely rewritten in C# (compatible with GCAM v5.3)

• Allows for powerful GUI development using WPF

• Allows to develop web-based application by sharing 100% code-base except for user interface

• User-friendly GUI and powerful visualization

• Various features to help understand modeling process and analyze results – used as a tool for teaching

energy modeling.

• Bypass solving for global supply/demand, and instead focus on detail modeling of national energy system.

• Fast and light – takes a couple of seconds to complete calculation, deals with only data of the country in

interest. (a couple of hundred times faster and smaller)

Page 10: Popularity of Programming Languages 1970-2000

GCAM-EML on the Web (coming soon)

View

100% shared code base

Back-end for web-based app

• Web-based energy modeling application using Blazor (the latest web development framework from Microsoft)

• Support platform independent tool – accessible anywhere once web browser is running

Page 11: Popularity of Programming Languages 1970-2000

Languages for Data Science and AI

Python

• Originally developed as a programming language for non-programmers.

• One of the most popular languages with the rapid growth of machine learning.

• Well-suited to quickly implement a prototype and test the concept.

R

• Origin in the Bell Labs in the 1970’s

• Statistical analysis / Visualization / Machine learning

• Help understand the foundation of data manipulation

Page 12: Popularity of Programming Languages 1970-2000

Drawback of R

Complicated structure of packages

• number of packages: over 12,000 in 2018

• dependency / versioning2018

11,000

ecosystem of R packages

# of R packages