Coding 101 61 (Transcript)
Netcasts you love from people you trust, this is TWiT! Bandwidth for Coding 101 is provided by CacheFly at www.cachefly.com.
It’s time for Twit’s annual audience survey. We want to hear from you. Please visit www.twit.tv/survey and let us know what you think. It only takes a few minutes and your anonymous feedback will help us make Twit even better. We thank you so much for your continued support. Twit.tv/survey.)
Father Robert Ballecer: This episode of Coding 101 is brought to you by Lynda.com. The online learning platform with over 3000 on demand video courses to help you strengthen your business, technology and creative skills; for a free 10 day trial visit www.lynda.com/c101. Today on Coding 101 we’ve got Carlos Souza from Code School.
Hello and welcome to Coding 101. It’s the Twit show where we let you into the wonderful world of the Code Monkey/Code Warrior. I’m Father Robert Ballecer the digital…and joining me again is my fabulous super special co-host Mr. Lou Maresca. Lou, welcome back to the show.
Lou Maresca: Thanks, Padre.
Fr. Robert: Seriously at some point we need to come up with a better name than “super special guest co-host”. We’re waiting, we’re waiting for authorization but it’s going to happen. How are things up in beautiful Redmond?
Lou: Fantastic today, the weather is actually exceptional and I’m looking forward to some sun.
Fr. Robert: Absolutely. I’m hoping that we keep our sun down here in San Francisco. It’s been fun, some sun but some bitter cold. Now a man who doesn’t have to deal with bitter cold is Mr. Carlos Souza from Code School. Carlos, thank you for coming on to be our special guest today; we bring you in because you will be the Code Warrior for future episodes – a future module of Coding 101. We thought that our audience should get to know you. Welcome and thank you for coming onto Coding 101.
Carlos Souza: Thank you for having me. It’s a pleasure to be here talking to you.
Fr. Robert: Now I should mention for all the people who were expecting a code heavy episode; remember we do this every once in a while. In fact we’ve been doing a month of this that between modules where we do heavy coding we like to have people on who have experience, who can share their experience of what it means to be a programmer, who can share their wisdom of how they got into the trade and this is definitely one of the special ones. Carlos, I’ve got to ask you, first of all how did you become a programmer? What was it that brought you into this world?
Carlos: I think it was part of just enjoying creating things. I’ve always enjoyed creating things, not necessarily programming related. I was into music before I was into programming. I was into art, drawing, just making new things out of existing things. Programming just came to me as part of my computer science degree that I was a part of. I learned it by necessity and I ended up enjoying it. I’ve been doing it for a decade now.
Fr. Robert: I’ve heard this every once in a while when we’ve had these interviews and typically you’ll start off with a background of messing around with a computer – maybe some hardware that leads into curiosity about the software and then they find that software is where they should be. In fact we had a very good episode with Steve Gibson where he talked about his desire to have the foundational knowledge. Not just to know how to put computers together but to understand their inner workings and that meant that he would understand the programming and the minutia of the electronics that went into it. What was it for you? Of course you talk about this desire and this bent towards the world of programming but was there something in particular that just caught your eye and wouldn’t let go?
Carlos: It didn’t start with hardware for me. Even to this day I don’t like opening up computers and messing around with parts or electronics or anything like that. I like the softer part. I like solving problems of the algorithm kind of layer and what actually drove me to start programming was basically solving problems through code; just writing code, trying to tell a story through code, through a programming language; expressing myself through a programming language and being able to solve my own problems and problems with others through software.
Fr. Robert: Carlos, I have to establish your geek credentials here. Name your computer history. What did you start with and what are you on now? Give us everything between.
Carlos: I started out with a 386 computer and that was when I was around 11 or 12 years old and at the same time I started playing around with html and css. Back in the day had my web design geo cities website with a huge URL that I could never remember and just started going through the source code on the pages and try to understand how markup worked and how browsers worked. Then I stopped for a very long time to devote my time to music and learn how to play the guitar and how to play music and then I went back to programming many years later in college. I can’t even remember what computer I had but now I have a MacBook Pro like many other people have but again I’m not super into hardware or configuration. I just want something that works and is fast enough to run my programs.
Lou: So Carlos, what type of language did you start out with? I know you said you went back to college a little later on. Did you start with high level language or low level languages? What kind of caught your interest?
Carlos: It was always the higher level languages because like I said I’ve never really been into hardware stuff so I never needed that kind of granular control for the machine. It was always focuses on making web applications; so my first language in college that I worked with was ASB, Classic ASB so sort of like visual basic for the web. Then in college I was learning Java. So those are the 2 languages that I started my professional career with and then shortly after I moved more towards the open source community so I switched ASB with PHB and that’s where I had my real Eureka moment into programming and most of my initial leaning phase in learning how to make web apps was in PHB.
Lou: Great, 1 thing I was curious about the Code School is that the whole tag line is learn by doing. Can you tell us a little bit about what Code School is?
Carlos: Yes absolutely. Code School is a school for learning mostly web technologies and what we want to do in Code school is that we want to introduce people to various languages by showing them what’s cool about those specific languages and technologies. So it turns out that when you’re learning a new language the chances of you giving up on it is on the very first couple of minutes to couple of hours into said language where you have to set up your environment, download all the tools, install everything on your local machine and if you’ve ever tried to do that you know things never go as planned. So what we wanted to do in code school was be able to skip all of that phase and have people try out the coolest and the most interesting aspects of each technology. So in code school everything you do is in the browser. We teach you programming concepts and then right after we teach you each concept we give you a console like an input where you code the challenges in the browser. You never have to download anything and you never have to struggle with installing or setting up anything. You actually get to try each programming language and each programming environment inside of your browser so that means you might want to try objective C and iPhone development from a Windows machine running Internet Explorer or you might want to try out – Rails without ever selling anything local. We want to show you what’s cool about those technologies so you get to decide whether or not you should invest more of your time into learning them.
Fr. Robert: Carlos, I’m going to drag you down into the mud with us. We’ve had this ongoing debate back and forth and actually Chumley in the chatroom represents it really well. Right now he’s saying; “Listen you’re a programmer or you aren’t. Tricks can be taught but you can’t tell a random person how to code anything. This is one of these things that we’ve gone back and forth on because Coding 101 – this show, its very nature is a gentle introduction. We tell people right up that you’re not going to become an expert programmer just by watching our modules. You can’t; we can show you different languages, we can show you different tricks and we can show you some of the interesting things that we find but that spark that you spoke of, that interest that draws you, it almost feels like you either have it or you don’t. Either you can be a programmer or you can’t. What’s your stand on that because I go back and forth; I don’t want to sound elitist. I don’t want to sound as if there are only the chosen few who can be programmers but at the same time I’ve seen people who’ve put a lot of time into learning programming and they just never really get it.
Carlos: Yes, that’s exactly what I think Padre but I think maybe those people are doing it for the wrong reasons. Do you know what I mean? I think it’s about figuring out why you’re doing it, what drives you, what makes you stay up at night trying to understand a specific language or framework. A lot of people go in for the money, they see the famous programmers or the famous people who built companies and make millions of dollars and then that’s their reason for trying to learn how to program. Personally that is the wrong reason. If you’re in it for the money, and I would say not just programming, pretty much anything, if you’re in it for the money you’re not going to stay for the long run. You’re going to burn out, give up on the first couple of obstacles. I think because it’s a matter of figuring out why, why do you want to do that. Once you do that I do believe that everybody can become a programmer if you have the right motives behind it.
Fr. Robert: I love that, that’s the “why” of programming and you’re right it can’t be about money because those are the people exactly whom I’m speaking of; the ones who say “oh wow, such and such and app just made x-millions of dollars this week, that’s what I should do because I want to make money”. That just doesn’t work. You may get some of the knowledge for programming, you may understand how to put syntax together but if you don’t have that underlying desire it’s just not going to last. Now Lou let me ask you this because you work in a place with programmers. You are a lead developer, you tell them what to do. Do you see this because you must get a turnover; do you see people who come in a think they’re going to do something awesome and they just don’t have the fire and eventually they just have to leave.
Lou: Honestly it’s a very low percentage; from Microsoft at least because the people who come in are out of college, they’re looking for the job to really expand on their skills. The ones that hire from the field they normally are coming again to expand their skills because of the amount of resources here. So I think that you don’t get a lot of that here because people know that Microsoft is a huge corporation and they’re not necessarily going to strike it rich right up front unless they work really hard and expand themselves. So I think that’s not really the case for most people. There are those people who come in and say, “Oh I’m going to get a whole bunch of stock and build a whole bunch of things and then I’m going to be out of here and do my own startup”; that’s normally not the case usually in these types of corporations.
Fr. Robert: Carlos, has most of your teaching experience been limited to Code School and the web or have you had in classroom experience where you’re actually face to face with people who are trying to learn the trade?
Carlos: Absolutely. For a very long time, ever since going back to college when I realized that…and this was interesting because I’ve heard this from multiple places recently. You don’t need to be an expert to teach, all you need is to be able to reach out to someone whose maybe 1 step behind you on something. If you’re able to reach out to that person and bring them along with you and teach them a concept that perhaps you just learned a couple minutes ago then you’re a teacher. So I’ve been doing that since college and I’ve been running Meta groups, I’ve been doing hackathons, coding groups for a long time before we even started Code School.
Fr. Robert: It’s funny that you mentioned that because when I…we do this thing called regency and most of us get put into teaching a subject that we are not great at. The mantra was you just need to stay 1 chapter ahead of your students. That’s kind of true, if you understand that there’s way more that you need to learn than you actually end up being a better teacher because you’re more receptive and you actually listen to your students and you find out what they need. But going back to that example – the fact that you’ve had face to face along with online teaching; what is your philosophy of student? In other words when you start forming someone to learn programming be it whatever language it is. What are the things that you look for? What are the things in your mind that tells you that person is a good student, that person is a good student, this person needs work and this person can’t make it.
Carlos: I think it all comes down to motivation. You can’t teach someone who doesn’t want to learn if that makes sense. So there are a lot of people again who come to Code School “forced” to learn a subject and then they end up not seeing the true value. Again going back to something you said, it’s not about just learning from 1 source. We don’t expect people to come to Code School and become experts on a specific subject. This is just an intro, at the same time people shouldn’t rely on a single book to become an expert or a single video screen cast. They should be able to watch everything that’s out there or as much as possible and hear from different sources and then figure out by themselves almost what way works for them. Only a motivated person will be able to do that, someone that’s not motivated is just going to stop at the first obstacle.
Fr. Robert: Right. We’re here with Carlos whose here from Code School. We’re bringing him in as our Code Warrior on our next programming module and we’re going to continue to talk to him about the philosophy of programming. About what he thinks makes for a good teach and what makes for a good student and ultimately what makes for a good learning environment. Before we go on let’s take a moment to thank the sponsor for this episode of Coding 101. We’ve been talking a lot about giving you an introduction, a taste into programming but you need something once you get that taste, once you find that hunger that we’ve been talking about. Once you find that desire you need to be able to go to a place that can give you the step by step because we’re not going to do that here on Coding 101. That’s not what we’re trying to do. We’re just trying to introduce you to a bunch of different experiences, a bunch of different programming languages. The place that we suggest you go to, to fill that hunger is Lynda.com. Lynda.com is the place, at least here at the Twit TV brick house for knowledge on the internet. It’s a repository, it’s not just a place where you can learn, and it’s a great reference. Their subjects are basically everything. Do you want to learn a new computing language? You can do that there. Do you want to learn about business skills? You can do that. Do you want to learn about photography or videography or any of a number of subjects that they cover with experts; you can do that because Lynda knows how you learn. Now some of the courses that I recommend on Lynda.com are; Up and running with Java, design patterns in PHP and HTML essential training. They also have 3 different courses on building a note taking app – an android version, an iOS version and a Windows version. That’s something that we tried to do here in one of our modules and they’ll take you through the actual step by step along with the assets so you can follow along at home. Now each course will teach you how to create a complete mobile note taking app from start to finish and within hours you’ll have created a working app and learned the basics of developing for whatever platform you chose. Now Lynda.com just works for us and that’s why we use it again and again. It’s not just for programming, in fact most of the folks here at the Twit Tv brick house don’t program but we all use Lynda because it is such a great reference. Right now we’ve worked with a switch over from Mac using final cut for all of our video production to PC with Adobe Premier Pro. Well Lynda.com gives us that reference and with their searchable transcripts it means that our editors can look for a particular problem, a tool that they can’t find or a filter they need to apply and it will go straight to the episode, to the section, to the time code that answers their question. Folks, Lynda.com is really a resource that you should have in your tool bag. Now with a Lynda.com membership you can watch and learn from top experts who are passionate about teaching, you can stream thousands of video courses on demand and you can learn…this is important…on your own schedule. Learning happens when you’re ready to learn. You don’t want a tool that’s going to push you and push you until finally you give up. You want a tool that will let you learn at your own pace. Now you get to browse each course with those transcripts I just talked about so that you can find those annoying problems that just won’t go away and you can download your tutorials and watch them on the go, including access on your iOS or Android device. You can create and save playlists of course that you want to watch. It’s like a Netflix Queue to fill that knowledge hole and you can customize your learning path or share with friends, colleagues and team members. I use Lynda.com every day and I think you should too. Your Lynda.com membership gives you unlimited access to training on hundreds of topics all on flat rate. Whether you’re looking to become an expert, you’re passionate about a hobby or you just want to learn something new I want you to visit Lynda.com/c101 and sign up for your free 10 day trial. That’s www.lynda.com/c101 and we thank Lynda for their support of Coding 101. We’re back with Carlos Souza from Code School. Carlos let’s pull it forward a little bit into the present. I was perusing your Get Hub site the other night and you are incredibly heavily invested in Ruby and the framework Ruby on Rails. What is it, what drew you to that language and that platform?
Carlos: Happiness, programmer productivity, being able to prototype and at the same time build full stack web apps, I want to say easy and pretty much in an enjoyable fashion. I love Rails and have been working with it for the past maybe 6 years and I love contributing to it every now and then whenever possible; whenever I see a bug or something in the documentation that could be improved or anything like that.
Lou: Carlos you talk about working with Ruby and so on. What do you feel that are really kind of the strengths and weaknesses with Ruby? And why is it a good language to teach up front?
Carlos: It’s an expressive language. It’s 1 of the few languages out there that were built thinking about the person writing the program rather than the machines that would run the programs. So it’s a language that was designed from the ground up to be an enjoyable language and an expressive language. So that’s what I like about Ruby and Rails pretty much just follows in the same pattern. It’s a framework that’s meant to be enjoyable and that’s meant to include pretty much everything that most web applications do.
Fr. Robert: Something that you said there really caught my ear; “Ruby is a programming language that thinks of the programmers rather than the machines on which the programs run”. What does that mean, why do you feel that more than any other language it’s programmer-centric?
Carlos: Well I feel that way because that is the real reason behind it. The author of the language has said that many times and the reason for that is we read programs way more often than we write them. So the reason behind writing expressive and a well-crafted so to speak software is that it can be maintained. Of course it needs to run accordingly, it needs to get the job done but at the same time it needs to be maintained by not only the person who wrote it but also by other people that will eventually join the team. That is the main intent of the Ruby language is to make it so that people can read a program months or years after it’s been written and they can understand it and extend it accordingly.
Lou: Carlos, 1 of the advantages I think with Ruby a lot of people say is around dynamic typing and also I think Ruby itself is really easy to write and test with which makes it really easy to maintain but also one of the negative things that people say around Ruby is that it has dynamic typing which may be sometimes hard to refactor code and even like you were just saying to sometimes understand the code. How do you get beyond those things and do you feel that they are strengths and weaknesses of the language?
Carlos: So to speak. It really depends on how you write your program. You could say that same thing about any other dynamic language out there but they have their strengths as well. I think what you mentioned about the dynamic language getting in the way of refactoring – I don’t see it that way because mostly I don’t use an ID, I use a text editor and the refactoring for me is equally the same as if I were using a static language on ID too so I think if you follow certain best practices and certain principles of writing tests and document your code and maybe keep track of code coverage on your tests and all of that; those techniques can help you when the time comes for things like refactoring. So I don’t think it’s…I wouldn’t not use Ruby because of those things and there’s a lot more people out there that feel the same.
Lou: I think another strength that I’ve seen with Ruby was around the fact that you could get going on it really quickly. It has a really quick onboarding process, you get moving right on it right away but what are the other weaknesses people talk about? Let me know what you think. Do you think that Ruby sometimes has performance issues…or not performance issues but less performance than other languages like Java or even C Sharp or any other high level languages?
Carlos: Right, it is a fact that depending on the benchmark Ruby will perform somewhat optimally when compared to those languages but at the same time it’s for very specific applications and for very specific benchmarks. For most of where it’s used, say web apps, Ruby, the languages turns out not being the bottle neck of your web application. There are many other things that will eventually make your web apps slow that do not involve the server site language being used. I want to say for the vast majority of the cases when someone says this web app is slow it’s not because of the server site language that’s running it.
Fr. Robert: Carlos there is something that you mentioned there that I think we can kind of tease a little bit. You don’t use an IDE, you are a text editor programmer. You like having…what, emax – what do you use?
Carlos: I use Vim mostly.
Fr. Robert: Of course, that’s the only sane choice and I just opened up a whole new…that’s fantastic. But why do you do it that way because one of the things that we’ve done here on Coding is we’ve shown both ways. We’ve shown how you could just use a text editor, you could use Vim, you could use emax or whatever it is but then we show the strength of using an IDE…a developed IDE and everything it brings with it. But the more experienced programmers I talk to, they kind of default back to not IDE. Why is that?
Carlos: I think it’s not just because of Vim. I’m a fan of just plain old text editors because again I don’t think that’s the bottle neck when it comes to programming. I don’t think typing is a bottle neck, I don’t think IDE efficiency will make you a better programmer or a faster programmer. I don’t really believe in that and I try to keep my tools as minimal as possible. I’m minimalistic when it comes to programming tools so I’m pretty happy with using a plain text editor even within Vim I don’t use that many plugins or anything like that and I think it makes it easier for me to either switch between development environments or even sometimes to log in a remote machine that doesn’t have a graphical user interface and program it in there. I just try to keep my development tools as minimal as possible.
Fr. Robert: Alright Carlos, let’s just jump into Ruby. I think you’ve made the case of why people should use it and why you use it and of course you have a lot of experience with Ruby and the framework of Rails. What would you say are the things that Ruby does or Rails does better than any other language. Why would you choose to do it? What project would come up and you would say that’s absolutely something for Ruby and Ruby on Rails.
Carlos: Any web application unless you have a very specific requirement which I can’t think of any right now; you’d probably want to use Ruby and Rails unless again you team isn’t familiar with the language. In that case I would say use the tool that most of your existing team is familiar with but I want to say that Rails is pretty much the only framework out there that is able to group all of the best practices in software development and at the same time alongside with the conventions in web development with the most things that most web apps do and Rails is able to combine that and offer that in the best way possible alongside with its community that have an amazing “eager to help others” and also documentation. I think it is the 1 thing that makes Rails different and better than all the other tools out there.
Fr. Robert: Wow that is a bold statement. So Rails is the 1 language that groups together all the best practices that we would want to see in a web development application framework. The 1 tool box. Lou would you be ok with that?
Lou: So I enjoy actually building Rails. I’ve build with Ruby Rails for a while actually. So I think they do have a really good tool set and they have a bunch of really good things like for instance for C Sharp and those other languages out there. There are other sources that have places where you can get code and sometimes you don’t necessarily know the quality of that code but it’s available to you. But with Rails and Ruby and Rails you sometimes – you actually get, from my experience, even though there is less of that you do get it a little bit more higher quality from those types of libraries and those available things out there and I do believe that that kind of gets you up and going faster and it will get you a little bit higher quality code from that aspect. So I wouldn’t say it’s the 1 and only tool box but I think it does have a higher quality bar when it comes to that tool box.
Fr. Robert: Wow, ok. I didn’t expect that but that’s good. Carlos, in just a few weeks here we’re going to be giving you a module. In fact we’re going to be prerecording the entire thing this entire Saturday. It’s going to be off line so you folks out in the chat room you won’t be able to see it. We’ve got to keep some secrets here at the TWIT TV network but give people a little taste. What are you going to show them? By the time they’re done with this introductory Ruby module what will they know how to do?
Carlos: Hopefully they’ll know how to read Ruby applications. So we’re going to start pretty slow paced with just Ruby, showing some of the cool syntax that just Ruby has… some of the features that Ruby has that might not be in other languages and some of the stuff that’s more commonly used in Rails. Then we’re going to jump into Rails and start with the very basic web app and then we’ll start exploring some of these features and eventually we’ll deploy this app to a production environment. So we’re going to do exactly what perhaps a startup would do with its own product going live and into the industry.
Fr. Robert: Alright and perhaps you could give people some resources. Where can they go if they’re intrigued, if they’re peaked and they want to be ready for when you come in with the module? Are there any resources that they can go to on the web to maybe whet their appetite or many find a couple of code examples? Of course they’re going to want to go to your GitHub. Bryan if you could show his GitHub, it’s a fantastic repository of some wonderful code, some assets that you can pull down and work with but where else would you suggest?
Carlos: Absolutely so there are 2 websites that people can go to, to kind of get their feet wet. 1 of them is tryruby.org which is a web site which we try to make very fun. It is now under the Code School grand. It wasn’t started by us but now it’s maintained by us. So we try to give people an intro to what the Ruby language is and what they can expect to see in Ruby script. Then after they’re done with that and it should be 10-15 minutes… a very short introduction to Ruby; then they can go to Railsforzombies.org.
Fr. Robert: I like that.
Carlos: Which again we try to make it fun and engaging and interactive. It’s kind of the same thing that they’ve done for the Ruby language but now for the Rails framework. So in Rails for Zombies we’ll show them the most important parts of Rails and what we think are the things that make Rails special. Some of those things we’re going to be going through in practice in our upcoming series that we’ll be recording but if they want to start seeing what’ s up with this Rails thing they could definitely start with Railsforzombies.org. Both of those are free resources so they don’t have to pay for anything or commit to anything and again what’s most important is they don’t have to install anything what so ever in their local development environment. They can access it from Google Chrome, Firefox, Internet Explorer, and Safari…wherever they please.
Lou: I love this, this is great! Railsforzombies.com?
Fr. Robert: I know what I’m doing tonight. Carlos Souza from Code School thank you so very much for being with us. Again we like to introduce the people who are going to be Code Warrioring future modules. That’s a word I just made up. So again if people want to see Ruby, if they want to see Rails they’re definitely going to have to catch Coding 101 in a couple of weeks. We’re going to prerecord all your episodes so they’ll be ready to go but I just want to thank you. Thank you for being on, thank you for talking to our audience. Could you please tell the folks at home – the Coding 101 audience where they can find you? This is your 60 seconds, anything you want to recommend, Code School, your personal site, your Twitter account, where do they find your work?
Carlos: Absolutely. It’s been a pleasure participating on this show and I’m looking forward to a series. If they want to learn more about stuff that we do here at Code School go to www.codeschool.com, join in the website. It’s free to register. About 30% of our content is free so if you’re not sure whether or not you should pay the subscription price you can stick around for a little bit and try things out. Also make sure you follow our Twitter account. Twitter.com/Codeschool – we’re also on Facebook and Instagram and all the other social networks. If you want to reach out to me more specifically you can send me an email. Carlos@codeschool.com or follow me on Twitter – twitter.com/caike which you’re seeing right now and my personal website is probably up there too – csouza.me that has links to all the other social networks like GitHub, Twitter, blog that sometimes I write stuff on and yes it’s been a pleasure again and I was super happy to know that you’ve been to Belane and I want to talk to you about that.
Fr. Robert: We’ll talk. Actually I think I may be going back down there probably in about 4 months so it’ll be nice and this time it’s for pleasure rather than for work.
Carlos: Right, you’re going to have a great time I’m sure.
Fr. Robert: Carlos Souza from Code School. He will be our Ruby at Ruby on Rails Code Warrior. We thank you Sir and we will see you in a future episode of Coding 101. Now folks that’s not the end of the show. That’s actually the beginning. It’s weird, we’re doing something different on Coding 101 now. Lou, first of all I’m surprised that you agreed with him that Ruby is actually a good language. I don’t know, I shouldn’t be surprised because you’re a real programmer and real programmers see the value in every programming language but I thought you might be throwing in some hate, so kudos!
Lou: Never hate. Like I was just saying to you does a builder really only know how to use a hammer and if he’s a good builder obviously he’s going to not only know how to just use a hammer. There are other programming languages out there that are very useful, they’re easy to start with, they are even useful, much more useful on the server because you can get tasks done much quicker and much faster and again there’s a lot of help out there on the web on open source but it’s a great language and it has a lot of backing behind it and now there’s compilers that are out on the web compiling services and so forth but again Ruby has the same. So there are strengths and weaknesses to all languages and I think it’s just whatever you need from the tool box at the time.
Fr. Robert: Let’s go ahead and jump into some of the news bits. What we typically do at the top of the show we’re going to do it now. The first one and I want to get your opinion on this – I was mucking around the web the other day and I found out that Duo code point 4…it’s a beta, is now out. Now it’s a C Sharp to Java Script compiler and it’s powered by Roslyn and users can download a Duo Code visual studio extension which will install project templates that will pretty much get you started and turning any C Sharp code into Java Script. Now Lou maybe I can bring out the hate in here. Why would you do this?
Lou: So honestly there have been some attempts at this before. In fact there was an open source project called Script Sharp and in fact some of the internal Microsoft teams use this to build up very large web applications and what it helps you do is it helps the developers build in a strongly tight statically tight language like C Sharp and then compile it down to something that’s not that way – Java Script. And it’s actually very useful especially if you’re looking to move some of the developers that are manager or native code developers into the website because they can build the code and they can see the output. But there are risks to doing this type of thing and some of these projects for instance Script Sharp is no longer being maintained because I think the gentleman who started it is no longer here but there are other ones. There’s one called “Saltarelli”…I think that’s how you pronounce it and that one is on top of Script Sharp so it’s like a stanchion on it. Those are both Open Source projects. Now Duo Code I think it’s not but it’s very useful because it brings people closer to the web code who might not have been there before.
Fr. Robert: Right and I’m not going to make the mistake of dumping on Java Script or…I’ve never actually dumped on Java Script. I’ve always offered a balanced view of it but people get really upset when I do that but there’s – of course Java Script will run in a browser and C Sharp won’t but what we have talked about is that Java Script makes it very easy for you to do stupid things and that’s actually the hallmark of a very powerful language. It really lets you do think you maybe shouldn’t do. Anytime I hear about some sort of extension or project template that will do transcription of code in the back of my mind I’m always thinking “It’s going to do all those things that I don’t want it to do and I don’t really want that happening with Java Script. Do you get that same kind of vibe?
Lou: Yes, I think you hit the nail right on the head because that’s the number 1 risk with these types of things; is you get a specific type of developer who knows let’s say server site coding, C Sharp and Ruby on Rails. They know these types of things and then they want to also become a front end developer and the way they do that is they work inside these special frameworks or these special compilers and the risk behind that is they code exactly how they would for a manager native type application – server side and they expect for it to build really good or highly optimized Java Script. What they find out is that you tend to have sub-optimal performance, you have sometimes syntax problems and other issues so you run into issues and so these types of things are risky because it makes people think they’re going to build a web app very easily. But then you build this web app and you find you have lots of problems you have to fix later on.
Fr. Robert: Let me turn that back on you because one of the big announcements that we brought up towards the start of this year was that Microsoft is basically open sourcing a large chunk of the Dot net framework. And now you can write in C Sharp and you can transcribe to different languages. If you did that right there would still be a lot of work. We like to talk about right once compiled many times but you should still go over what it transcribes into. Yes? I mean if we’re going to take that same standard of not being really sure if we want Java Script to be taken from C Sharp we should also be looking at frameworks like Dot net to make sure that they’re not doing something silly with security.
Lou: Absolutely. I think things like Google Tool Kit and App Script and Type Script these are all things that are much closer to the Java Script and semantic in syntax and they make it a little harder for you to make the mistakes of the higher level languages because they’re much closer to that but like you said with C Sharp and some of these others even the Java GWT Google Web Tool kit that compiles it down to Java Script; these types of things are risky because they output Java Script code and then people just expect it to just magically work. The problem with that is it sometimes doesn’t actually output what you expect. So that’s where you might actually spend double time sometimes on going back and verifying and running tests and more uni-testing and that sort of thing to make sure that things that get outputted are correct and what you expected and will run optimally in your environment and all browsers. These other languages like Act Script and Type Script, these things are optimized for the browser. That means that what they output depending on the code that you write will hopefully be optimized and highly performable as they can make it. So that’s kind of the key and these things are not necessarily the same goals.
Fr. Robert: Right. We’ve got CT in the chatroom who’s saying my programmer friend says that the era of web developers is over now that you can compile C to Java Script. As a web developer I disagree and I think that actually encapsulates my thoughts on it which is; it’s nice that you have this option but I don’t think it means now you can just forget all other languages. That’s always one of those promises that we hear that this is the last language you will ever have to learn and it will compile into any other language on any format on any platform. I’m actually at the point of my programming where I just know that’s never going to happen. We’re never going to get to that point unless we all start using exactly the same platforms.
Lou: Exactly. Every platform has its advantage. There are negatives and positives. For instance Node Js’s was supposed to bring the ability to have a web front end developer, Java Script developer to the server site so now they can rate server side components and know Java Script and be able to do that but that’s again not the end all. Node Js’s are a cool environment and I actually do like using it but it isn’t the end all. It’s just a tool kit and a very large tool box so it’s always going to get better and there will always be things coming out that will do things better than the next.
Fr. Robert: And they keep adding tools to the tool box and it’s bothering me. Stop it! Alright let’s go into the 2nd bit of news. This I really like. Again I was just stumbling around the web the other night and I found a page at PublicAPIs.com that includes a huge data base of publically accessible APIs. Now we have used APIs a lot in our coding modules. In fact Santa’s Little Helper relied on some APIs that weren’t necessarily public, they were mostly public but this is something that I think is a great resource for Coding 101 folk because they should be able to take the lessons they got out of that last module and apply it to different services around the web. What about it Lou? Is this the new web developer environment that we’re just going to go from API to API?
Lou: I think it really helps to bring your apps to fruition. Like a lot of people who have…for instance I got an email recently about a person wanting to find flight data, for instance how much flights cost and then they can basically find the mistakes in the flight cost so they want to be able to data mine that. So every day the costs came out they could basically find out what a seat would cost to go from 1 place to another and then when finally 1 of the airlines made a mistake and it made it really cheap they would go and buy it right away. So they wanted to do that but they couldn’t find the free way to do that and so these places will bring developers closer to finding those APIs because they’re market places for public APIs. Not necessarily always free but it also brings them closer. Sometimes you’ve just got to find out because the content providers don’t always have a universal place that they put their APIs. For example in this specific instance I gave him Google and I said go to Google because Google actually has an API for their ITA I think is their matrix. They have an external API that actually is free up to a specific amount of operations. So he went and used that but again that’s not found on the public API because they didn’t publish it. There are great places to go but it’s not the end all for APIs that are available.
Fr. Robert: Lou Maresca, he’s a senior lead developer for over at Microsoft. He is our Code Warrior/ Super special guest co-host/ just man about town. I love having you on my shows Lou and could you please tell the TWIT TV army where they can find you and where they can find your work?
Lou: Absolutely, so you can always find me. I’m LouMM on Twitter and all my daily work that I do during the day is crm.dynamics.com.
Fr. Robert: You’ll also find Lou all over the Twit TV network, in fact of course we always have him on This Week in Enterprise Tech. He’s one of my favorite guests to have on that show. He’s here on Coding 101 as our super special guest co-host; a title that may hopefully change at some point in the very near future. You’re also going to start finding him on “Before you Buy” on Friday’s. That’s right, we sent Lou a bunch of product and we’re going to get him into the product review fold. Folks if you want something that’s good you’ve got to find Lou Maresca. LouMM we thank you for being our super special guest co-host and we’ll see you next week.
Lou: Thanks Padre.
Fr. Robert: Now folks that’s the end of this episode but that doesn’t have to be the end of your Coding 101 experience. You can find all of our shows, including our wild card episode and our programming modules where we actually will show you programming. We’ll show you different languages. We’ve done C Sharp, Java Script, we’ve done Pearl, PHP; just go to our show page at www.Twit.TV/coding101. Now Coding 101 you may have noticed has changed over the last couple of months. We’ve tried to give you what you want and the way that you tell us what you want is by following me on Twitter at twitter.com/Padresj. I take the input from Twitter and I take the input from our Google Plus group to find out what it is that you want to see in every episode of Coding 101. Is there a guest that you’d like to try to get on the show? Tell me there. Is there a topic or a language that you want covered? Tell me there. Is there something you wish we just wouldn’t do on the show? Well that’s also a great place to tell me. Again it’s the only way that we know what it is that you Coders want to see. Also don’t forget that we do this show live every Monday at 230 PM Pacific time. Just go to live.twit.tv. Now we were a little early today because of scheduling but normally you’ll find us at 230 on the dot and if you come a little early you’ll see the preshow so you’ll see what goes into making it and you’ll see the post show so you’ll see what we do after we’ve wrapped up the final shot as well as all of the bloopers that go in the middle. Also don’t forget that we’ve got a live chatroom. If you’re going to watch us live jump into irc.twit.tv and you’ll be able to ask me questions or give me comments during the show. In fact I’ve got you right up there and I pull in input from our audience as much as I possibly can. It’s part of the experiment that is Twit TV. Finally thanks again to everyone who makes this show possible; to Lisa, to Leo, to Lou Maresca my super special guest co-host, to your our audience and of course to my good friend, co-host TD enthusiast Mr. Bryan Burnett Cranky Hippo. Bryan can you tell the folks where they can find you on Twit TV?
Bryan Burnett: Well we do a lot of shows together now that I think about it but you can find me doing BYB reviews on Friday. We also do a Know How show on Thursdays and I was working on this earlier. This isn’t what I’m doing for this week but if you have an old game boy and the screen isn’t working I probably have a fix that you won’t have to worry about it anymore. Greg was going to toss this in the garbage because the screen didn’t work and I was like no…we can save her. Those are the kinds of things we do on Know How. We play with software, we play with hardware and you can follow me at Cranky_Hippo on Twitter.
Fr. Robert: You know in a lot of ways Coding 101 is like Know How. We’re covering things that we want to talk about.
Bryan: You know how Carlos was talking about following your passion? We kind of have a thing passion. We like a lot of different things so we play with a lot of different things and we hope that it’s interesting along the way.
Fr. Robert: Yes we do. Until next time I’m Father Robert Ballecer. This has been Coding 101…end of line!