1 00:00:07,880 --> 00:00:11,480 Hello and welcome to this Mooc on Pharo: 2 00:00:11,640 --> 00:00:14,200 Live Object Programming in Pharo. 3 00:00:14,360 --> 00:00:18,240 For this first lecture I'll present the mooc's aims. 4 00:00:18,760 --> 00:00:20,520 So what are they? 5 00:00:20,680 --> 00:00:23,920 You'll learn to program in Pharo, obviously. 6 00:00:24,080 --> 00:00:27,640 It's important to understand and master all the syntax, 7 00:00:27,800 --> 00:00:29,640 the full syntax and model, 8 00:00:29,800 --> 00:00:31,880 and the environment of Pharo. 9 00:00:32,040 --> 00:00:33,760 It's not just a language, 10 00:00:33,920 --> 00:00:37,680 it's a programming environment with lots of tools. 11 00:00:37,840 --> 00:00:40,520 We'll show you some of the most useful ones. 12 00:00:40,680 --> 00:00:43,960 The mooc won't limit itself to just presenting Pharo. 13 00:00:44,120 --> 00:00:45,680 We'll deeply understand 14 00:00:45,840 --> 00:00:48,640 the object-oriented fundamental mechanisms. 15 00:00:48,800 --> 00:00:50,240 That's really interesting. 16 00:00:50,400 --> 00:00:53,480 We'll illustrate these with aspects of Pharo itself. 17 00:00:53,640 --> 00:00:55,600 We will also, from time to time, 18 00:00:55,760 --> 00:00:58,640 show you some design heuristics, 19 00:00:58,800 --> 00:01:02,400 heuristics which will let you, in your life as a programmer, 20 00:01:02,560 --> 00:01:04,040 design applications 21 00:01:04,200 --> 00:01:07,000 in a more elegant, more extendable way. 22 00:01:07,160 --> 00:01:10,080 You'll work on real examples in this mooc, 23 00:01:10,240 --> 00:01:13,600 and at the end you'll deploy your own web app 24 00:01:13,760 --> 00:01:16,520 that you'll have developed from start to end. 25 00:01:17,400 --> 00:01:21,120 The mooc is structured over 7 weeks. 26 00:01:22,000 --> 00:01:26,160 We'll start with syntactic aspects of Pharo 27 00:01:26,320 --> 00:01:28,880 so you can quickly start doing exercises. 28 00:01:29,040 --> 00:01:34,680 But we're also going to mix the points linked to object design, 29 00:01:34,840 --> 00:01:39,120 so that you'll quickly understand certain aspects. 30 00:01:39,280 --> 00:01:43,280 Then we'll look at aspects linked to Pharo's core functions, 31 00:01:43,440 --> 00:01:45,440 like file systems and so on. 32 00:01:45,600 --> 00:01:48,520 The course isn't always linear. 33 00:01:48,680 --> 00:01:52,000 In the final sessions we'll go back over concepts, 34 00:01:52,160 --> 00:01:54,440 to be sure you really understood 35 00:01:54,600 --> 00:01:57,240 what we discussed in the first sessions. 36 00:01:57,400 --> 00:02:00,120 You'll have plenty of exercises and mini projects. 37 00:02:00,280 --> 00:02:02,840 As motivation, after two weeks 38 00:02:03,000 --> 00:02:06,280 you'll have seen the full syntax and the model, 39 00:02:06,440 --> 00:02:09,880 and you'll be ready to do some mini projects. 40 00:02:10,840 --> 00:02:12,440 A quick word about us. 41 00:02:12,600 --> 00:02:15,400 There are three of us, three colleagues, 42 00:02:15,560 --> 00:02:18,080 all experts in object-oriented programming. 43 00:02:18,240 --> 00:02:21,200 I've worked on traits 44 00:02:21,360 --> 00:02:23,960 which influenced Perl, Php and Scala. 45 00:02:24,120 --> 00:02:26,560 We're experts in object-oriented design. 46 00:02:26,720 --> 00:02:29,600 We're part of the Pharo core development group. 47 00:02:29,760 --> 00:02:33,600 And we're authors of several open-source books on the web. 48 00:02:33,760 --> 00:02:35,560 I recommend them to you. 49 00:02:35,840 --> 00:02:36,960 So why Pharo? 50 00:02:37,120 --> 00:02:41,520 Setting aside that we developed it and think it's a great language, 51 00:02:41,760 --> 00:02:45,480 it's very interesting from an educational point of view 52 00:02:45,640 --> 00:02:48,640 because you'll be immersed in a world of objects, 53 00:02:48,800 --> 00:02:52,480 interacting with and manipulating objects. 54 00:02:52,640 --> 00:02:53,880 As an example, 55 00:02:54,040 --> 00:02:56,960 loops don't exist as constructers in Pharo. 56 00:02:57,120 --> 00:03:00,080 They're messages sent to objects that are collections. 57 00:03:00,240 --> 00:03:03,600 Conditions are messages sent to objects that are booleans. 58 00:03:03,760 --> 00:03:08,640 So you'll constantly be interacting with living objects 59 00:03:08,920 --> 00:03:12,160 and your programs will be transformed under your fingers. 60 00:03:12,320 --> 00:03:15,080 The fact that Pharo is fully written in itself 61 00:03:15,240 --> 00:03:18,480 means you have a wide possibility for discoveries. 62 00:03:18,640 --> 00:03:23,160 Once you've understood the syntactical aspects of Pharo, 63 00:03:23,320 --> 00:03:25,320 the whole world will open up to you, 64 00:03:25,480 --> 00:03:28,040 because it's fully written in itself. 65 00:03:28,720 --> 00:03:32,720 So, to sum up this voyage that I'm inviting you on... 66 00:03:32,960 --> 00:03:34,840 Pharo is pure and elegant. 67 00:03:35,000 --> 00:03:38,520 There are very few concepts used. 68 00:03:38,680 --> 00:03:43,200 It's fun to program because of the interaction with objects. 69 00:03:43,360 --> 00:03:45,880 It's highly productive. 70 00:03:46,040 --> 00:03:49,440 Pharo is used in many universities 71 00:03:49,720 --> 00:03:52,920 because of its teaching properties and the positive aspects 72 00:03:53,160 --> 00:03:54,520 that it teaches. 73 00:03:54,680 --> 00:03:57,280 One point which is often overlooked 74 00:03:57,440 --> 00:04:00,720 is that Pharo is an empowering system. 75 00:04:00,880 --> 00:04:03,640 Pharo isn't a blackbox. 76 00:04:03,800 --> 00:04:08,400 You'll be able to see how the system is implemented 77 00:04:08,560 --> 00:04:10,520 and modify things. 78 00:04:10,680 --> 00:04:14,800 The metaphor I often use is that Pharo is a fish tank, 79 00:04:14,960 --> 00:04:18,120 and you can jump into the tank and swim with the fish! 80 00:04:18,280 --> 00:04:20,240 That's very special. 81 00:04:20,400 --> 00:04:25,080 We're going to show you some videos which will explain those aspects. 82 00:04:25,240 --> 00:04:27,680 You'll have access to the entire system.