popularity of programming languages 1970-2000
TRANSCRIPT
Which language(s) to learn for the highest return on investment?
Popularity of Programming Languages 1970-2000
Main Frame
Mini Computer
Personal Computer Internet & Web
Popularity of Programming Languages 2010-Present
Web & MobileDeep LearningData Science
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
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
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
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
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)
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
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
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