|
1 | 1 | # Abstract |
2 | 2 |
|
3 | | -36 lectures (4 introductory topics, 8 lectures about JavaScript programming |
4 | | -language, 18 lectures about fundamental programming concepts, 6 lectures about |
5 | | -development tools and processes), 8 seminars, 9 practices and assignments, 47 |
6 | | -repositories with code examples. |
| 3 | +All programs are data. Some data are interpreted as values, others are |
| 4 | +interpreted as types of these values, and others are interpreted as instructions |
| 5 | +for processing the first two. All programming paradigms and techniques are just |
| 6 | +a way to form metadata that gives the rules and control flow of processing |
| 7 | +sequence other data. Multi-paradigm programming takes the best of all paradigms |
| 8 | +and builds syntactic constructions from them, which makes it possible to |
| 9 | +describe the subject area clearly and conveniently. We reflect high-level DSLs |
| 10 | +(domain languages) into low-level machine instructions through many layers of |
| 11 | +abstractions. It’s important to represent the task in the most efficient way for |
| 12 | +execution at the machine level, not to fanatically follow one paradigm. The most |
| 13 | +efficient is the one with fewer layers and dependencies, the most |
| 14 | +human-readable, maintainable and modifiable, ensuring code reliability and |
| 15 | +testability, extensibility, reusability, clarity and flexibility of metadata |
| 16 | +constructs at every level. We believe that such an approach will allow us to get |
| 17 | +both quick first results in the development, and not lose performance with a |
| 18 | +large flow of changes at mature and complex project stages. We will try to |
| 19 | +consider the techniques and principles of different programming paradigms |
| 20 | +through the prism of metaprogramming and thereby change if not the software |
| 21 | +engineering itself, but at least to change its understanding by new generations |
| 22 | +of engineers. |
0 commit comments