![Page 1: Popularity of Programming Languages 1970-2000](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/1.jpg)
![Page 2: Popularity of Programming Languages 1970-2000](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/2.jpg)
Which language(s) to learn for the highest return on investment?
![Page 3: Popularity of Programming Languages 1970-2000](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/3.jpg)
Popularity of Programming Languages 1970-2000
Main Frame
Mini Computer
Personal Computer Internet & Web
![Page 4: Popularity of Programming Languages 1970-2000](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/4.jpg)
Popularity of Programming Languages 2010-Present
Web & MobileDeep LearningData Science
![Page 5: Popularity of Programming Languages 1970-2000](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/5.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/6.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/7.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/8.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/9.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/10.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/11.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022013001/61cb81a2400c99137c43075e/html5/thumbnails/12.jpg)
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