 I'll introduce you and then I'll dim the lights and you can start I did on YouTube, right? So welcome everybody Big hand for our next speaker mr. JJ Merulo and the floor is yours. Okay. Thank you very much for being here My name is JJ Merulo. I know it's very bad time because it's pretty much dinner time here in Europe I mean Spain is the time we wake up from the siesta, so Anyway, I'm going to talk about this How to stop programming in C in every single language? Once and for all you can see that that anyway, this is me You know people put all kind of bios and everything. I don't care. I mean, this is me. This is actually important That's my Twitter You're it Anyway, I you're not going to see this but you know it Yeah, you probably have seen it already, you know print F, you know You start to learn some new language like see for instance, you saw something like this includes the studio dot-h and then print F Whatever, maybe you should you have also seen this. Have you seen this? How many of you have seen this? Great. Great. You're good guys. I love you And maybe this this was in Java Was once again the same thing was printing something to console, you know There's some in poor output to console or maybe even this This is pretty much the same thing in Scala So if you go to any tutorial in go in Scala in Cloudera, whatever First thing you're going to see is something like print F whatever. I think that's bad. That's very very incredibly bad It will tell you why First you probably have learned I mean, how many of you right here have our self taught in programming So pretty much everyone that probably means that I mean that means two things Probably you will be better programmer because you have been self taught Second the person who taught you knew nothing about the program in language you were learning You were probably using something like this Let me see Because you know you were I mean think think about it what you did you were printed to console You were doing something like like including some some standard library or whatever But actually You think about it here You never use that kind of thing You pretty much never print to console if you're doing something in production. Do you print to console? No, you don't do that. I mean you print to a log you do some kind of you know Just or something in a database you do something like that So I mean it's like learning something that at the end of the day when you stop learning when you have learned everything They say okay, you have learned everything but don't ever do it again It's I mean, I think it's just kind of them The thing is about the I mean you think about all the kind of programming languages you have the world programming It's many things, but there are some things that it's not First is that it's limited It's not limited to a single language Once again think about the way you program you probably use some language whichever language You probably use use something like Jason Which is not a touring complete language, but it's just a language then you have to present something in It's probably some some in the web or something that that it will eventually end up on the web So you you have to know HTML Then if you have to do something on the client side, you also have to know JavaScript so First thing is that I think that it's wrong to learn a language all by itself Because eventually you will end up using that language in an ecosystem with many other languages Oh, let's choose the language HTML is going to be there pretty much JavaScript is going to be there almost always you're going to have something like Jason XML jam something like that and you have to learn them also Program is not monolithic monolithic that means that you're going to program one piece of a program In one language and then some other some other part of the program is going to be problem in a completely different language Think about Microservices Microservices they have several good things that one of them is that you can every single make microservice can be programming Any language in the language of you want I mean as long as you respect some API interface or whatever you can use any language So it's not monolithic. It's not single thread. It's going to run in many computers It's going to run even in a single computer might be concurrent Maybe something completely different something you're not prepared if you start to learning to program Printed the console and then you're not going to do it by yourself Every single Tutorial every single book Says you have to do that and then when you do that you will obtain that it never says no You have to do that in the developer branch And then you have to put this to production and then everybody else in the in the team will jail at you because you did it wrong I mean that's what actually happens. You are always programming and you it in a repository Could be it could be something else But you're always always going to program almost always going to program in a team Even if you do some open source programming you're going to put it, you know out there in the world and somebody can come up and do a Pull request, so you have to know what's a pull request That kind of thing. I mean it's incredibly important. You will never hold alone and then People also focus on the syntax if you want to do a for you have to do it this way if you want to do a switch Statement you have to do it do this way if you want to do whatever Functions subrouting whatever you have to do in that other way. I think that that's also wrong You have to focus on best practices. I mean, do you remember when you learn basic? How many learn basic for the first time? So there was this thing called go to you remember go to You have to do go to and you can do easy go to level and then don't do it Don't ever do it again. I mean the syntax is there you can do many things and with the syntax You can do many things wrong for instance Think about the scala you can do for in a scala you can do if in a scala But then you shouldn't do it because the proper way of doing that is you know monadic way It's not best practice or PHP. I won't say anymore about PHP, but Then it's never isolated so You're the I mean every programming language is the core of our ecosystem that happens Some more languages at the same time you learn the language you learn the ecosystem for instance think about the scala and think about SPT You I mean it's almost impossible to do anything with a scala if you don't know SPT or think about go I mean goes a language but it's also ecosystem because it's around time. It's something that you know Brings dependencies think about no and think about MPM It's I mean the ecosystem is built in Sometimes it's not building sometimes you have to learn you have to know what's the best way this week to build something in JavaScript Things like that But you have to learn them. So even if you know perfectly JavaScript, you know the syntax You know how to do everything asynchronous whatever you still have to know a lot how to deal with MPM or grant or power or webpack or fly or some other And then it's not proprietary Some people start to learn a new language and they start to learn it in some proprietary kind of Environment and you say no, I don't do that I'm cool. I do open software, but you use sublime text and that's proprietary and you use IntelliJ And that's proprietary and you use some other key things like code or something like that I think that actually coding is the killing up of software every single almost every single programmer Working nowadays is using some programming tools that are open source. So I Think that way you should kickstart programming all over again. We should I mean programming We should try to learn programming in a new way like for instance Deal with expressions think about expression nobody talks about expression expression are very cool Are at the core of the language and they are so very common if you learn how to do something in a particular language You probably learn how to do it in three or four six or seven different languages I mean you can only some things in a particular way with a plus But some other things like concatenating strings on many other things. They are done exactly the same in many languages So expressions are very easy to learn and also You can use them from rep ripples You don't even need to compile a language You don't even need to compile a line of code to work with expressions if you work with Python with Par6 with a you know with a console with with a developer console in Mozilla or in Chrome in Chromium you can pretty much type an expression and you will get the result. So it's like a Calculator on steroids, but very nice calculator So you can create complex expression and you can even create like very little teeny tiny Algorithms that allow you to to know how everything works and repels are incredibly good You think about the ripple nowadays a ruby Ripple all the ripple. I mean that they are incredible They work very well and they allow you to do a lot lots of things because you think about programming as something That's creating a program compiling a program running a program deploying a program It's not I mean for some people like journalists like people who are working biology for psychologists Programming is something that they do to get some stuff done and sometimes expressions are just the thing they need When I mean expression, I mean I mean real expression. No variables. No Function names. Nothing. You can learn a lot of things from expression I should learn to fail Every single book says you have to do this and then you will attend the result and this is okay Everything is going to be okay. Nothing is going to ever be okay. I mean everything is going to fail So one of the first things you need to do is how to work with errors How to learn the errors? I mean I am a professor. I teach at the University One of the single thing that they don't that my students don't know how to do is how to deal with errors What they do is they start all over again. I mean they go to Stack Overflow They copy again the thing they modify the stuff and they type error over again So they look at the error. They look at many different things They don't even know what to cut and paste into Google to get the error, right? And that's because they didn't learn how to fail They didn't mean nobody told them that in this particular language The errors have had this structure. You should look at them this way. This is the stack This is whatever this is function call Pass them and try to learn from them and try to fix them not start all over again and then Something very important git goes before open So you learn to save some program you learn to put it that the best practice is always to work in a repository If only for backup purposes, it's okay. I mean, it's right to work with that You don't need to actually create a file. You can work with a ripple do a stuff But when you actually have to use the file Put first the code in a repository always always because you're going to need it Open or close or whatever git goes before open or goes before save us or whatever Because repositories are actually the natural environment of programs and you should always learn to program in a repository And also learn all languages Okay, not a single language all of them at the same time so You're going to need them anyway So why not? Putting some example of how this would be done in a different language. I mean that would be great They would allow you to to learn because you're going to have to learn languages. Anyways, I mean how many languages did Show of hands how many of you learn one language in the past year two languages You see I mean you are learning all the time you have to learn to learn You have to learn to change Not say, okay. I have this new new thing What I'm going to do I'm going to program in C in this other language all over again. No, don't do that, please And also if you don't learn all languages Jay, I mean JavaScript and HTML is pretty much the way to go because JavaScript isn't For a time being it's okay. You can compile other languages to JavaScript You can compile coffee script and besides JavaScript is no single language. It's not like 1,000 You know, you have ES6 you have type script you have coffee script you have whatever so you're pretty much done with that I mean, it's an universal language Also functions every single modern language is functional So you have to learn function functions are first-class citizens. So the first thing you should learn are functions Not printing functions. That's the way to go Because all languages are functional JavaScript is functional Ruby is functional even Java is functional Java 8 is functional I mean, can you dig that and Club by default, you know all these languages say now you compile and you think okay, and you put it there And you run it on your single desktop. No, you're not going to run stuff in your desktop You're going to deploy to the cloud and that's got its own problems. So it's cloud by default I mean, I know that some people hate the cloud even if it's your own cloud You you can use open stack or you can use open nebula, whatever eventually you're going to run stuff in the cloud So when you save something and run something run it directly on the cloud on a pass on our infrastructure service, whatever and So you will say, okay, I have a really language. So I'm bad. I mean sing, you know, what can I do? I mean, you can do many things first make change Do it yourself Teach some other people to a new language to your family. I'm teaching my family language per six I'm going to talk about that tomorrow. So I mean come by the per that room, which is Incredible also in a ways and learn who they did and also ask for change so if you go to some tutorial if you go to somewhere if you have the power to you know to pay some people to Do a teaching your company tell them to try to Do things in a different way because we are in 2017 and things are done differently So the thing is say goodbye to hello world This is thank you very much, so thank you very much