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?
Carlos: Railsforzombies.org.
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!