« All Episodes

Hampton Catlin, Part One: Sass, the W3C, and (not) Being Data-Driven

Published 4/27/2015

Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea name is Jonathan Cutrell and today I have the pleasure of interviewing Hampton Catlin Hampton is the third of the three interviews that I did at Ancient City Ruby Hampton created SAS and he created Hamill and now he's working on a project called Wordset we talk about that in the second part of the interview with Hampton I apologize in advance for the background noise that you hear unfortunately Hampton and I could only meet in a location that was right next to a cafe so I've done my best to try to edit out as much of the background noise and hopefully you can hear Hampton and I as we talk about all of the amazing things that Hampton has been working on we talk a good bit about SAS so if you don't know what SAS says make sure you go and get a little bit familiar before you listen to both episodes and also follow Hampton on Twitter his Twitter handle is H Catlin that's H-C-A-T-L-I-N and let him know how much you appreciate him being on Developer Teanow let's get to the interview with Hampton Catlin I'm here at Ancient City Ruby with Hampton Catlin and I'm really glad that Hampton has a few minutes to sit down and talk we've passed each other a couple times and luckily we based on all of the the breaks we've had at the event we've been able to actually sit down and do a few interviews here and so I'm really excited so we're going to talk about a few different things it's kind of an open format so it's kind of a last minute interview but we're we're I'm excited to do it so it was good we get scheduled my people called your people yeah it was really intense we've got these PR people that follow us around and we're so Hampton gave a talk that was really interesting about data that he's been collecting you might have taken Hampton survey even if you don't know if you took it but he collects data on like yearly basis tell tell me a little bit about it eight years ago 2008 yeah so I was you know I've been doing Ruby for about four or five years at that point I guess and I don't know I felt like nobody was really doing a survey of what was changing the community I could already see things changing for instance back then Merb was you know really gaining traction but nobody really knew how much like you couldn't answer the question like maybe a friend was working on it you're like I don't yeah and I just thought well let's do a survey so I kind of haphazardly built a quick little online survey and then the next year I decided to ask the exact same questions again and add it on some new ones over the eight years I kind of got a little lazy about it so years when I was working on other projects you're just totally forgot actually it was Ethan like who helped me get it back up because a couple years ago I wrote me and said Hampton like you got to keep this going properly yeah so I kind of turned into an official project recently but we've done six surveys but the lowest year we had only about 200 people fill it out and the biggest years have been about a thousand which the year I think a thousand people took it so yeah we're just trying you know so there's always new questions but I really like my favorite twist is that we ask the same even even questions that are super dated I just keep asking the same way so I apologize if you have to take the survey at this point after eight years now it's like do you use mood tools and it's like no I don't use mood tools that's a long forgotten javascript library yeah yeah but it's been fun this is the first time I've ever kind of presented it like I've put up the data usually but I felt like doing some recaps looking through the data we rebuilt the site actually relaunched in a couple days before this it's now called Asker like Flickr which is okay well it's the worst name like they used to be called yeah Hampton Hampton's Ruby survey just because you know I thought it was mostly just me tweeting out but I really think it's kind of gotten bigger than that and also you know it's cute naming something after yourself for the first time and then you're like right yeah so yeah instead of going for the good name though I think it's better just be like Asker with just a R right like there's no ER is this why you named Hamill Hamill is this it even remotely yeah I get that I've got that question a lot it's that's a weird one like it was not to name it after myself okay however the fact that it did happen I mean we as HTML and it was an abstraction of already the A and I'm like it's a markup like which I was like that does kind of sound like my name yeah yeah but actually yeah no I the name was I it actually was from writing it down kind of what I wanted to be and then yeah just the fact that I haven't matched my name I was like I'm going to this but the main thing when I first presented is I named it after Mark Hamill so I showed a big photo usually when I give a camel talk I mark Hamill's the there's a nice photo yeah yeah I mean why not if your name shows up and the thing art starts to be right I guess I guess it makes me weird is that that other people would be like oh I can't possibly name it a thing that kind of sounds like my name but I was like screw it yeah so so back to the survey all right yeah yeah there's so many interesting things that kind of come out of data which is I guess a entire conversation on someone about how you know you you aren't like trying to skew the data of course there's certain like parts of you know you said it's me tweeting and out so obviously it's a lot of people are going to be using sass for example but what there was a lot of really interesting pieces and parts and conversations that were started even amongst the people that I've been around since you presented that data so for example you you showed the server the web server that's people basically like everybody uses right and the one that has kind of risen as Puma right and unicorn like showed up really strong and then kind of tapered off towards the end and I was sitting next to I don't remember who but we were talking about why that might be the case and I said it's most likely because Kuroku officially supports Puma now I recommend it yeah so there's interesting like artifacts of reality that come through the data that are really cool well see this is the I guess why I wanted to start the survey okay I could go like the we getting you the question too which like there's a lot of things to say about data I don't really trust data like I am not actually a data driven person like when I manage teams I don't I mean that's not sorry graphs are cool I like graphs like performance graphs and you know like whatever metric game people on like dropping the like my ops team likes to metric on uptime and whatever that's fine it works it's a cool yeah but I feel like nerds we over emphasize and over trust data I'm skeptical of as any one of the data we pull down because you just there's so many forces acting on it so for instance you know the question do you SaaS right that's one of the ones on there and I think it's like 77% say yes all right sorry 82 82 this my lucky number who's a lot it was 82 yeah but it's I mean I'm gonna sound really horrible it in a way that's low and high sure sure there's a lot of people taking that survey and they answered another question so they say they don't do any web work at all so do you SaaS know however you know SaaS is made competitor less is not as popular in the Ruby community so it drives up the number right so literally we've like that's not even it's interesting to have a number to talk about but it's also yeah you just can't trust it yeah like there's no way to know what percent of people actually use SaaS like the best I've looked at is uh so it's like smashing magazine is tweeted out a couple quick surveys on that I mean it's funny it ends up being about 82% interesting yeah yeah it's been cool because SaaS lost a lot of ground to less like maybe three or four years ago sure but uh it's been kind of interesting to see I'm sad I didn't ask that that question for over the years because I've had a piece of it which is like SaaS or SaaS yeah yeah or stylus and uh I have some data on that but uh 20 SaaS has made like a big resurgence and it's basically kind of knocked less and I think there's there's a few reasons I'm sure the bootstrap is unless if a lot of people for that reason probably were introduced that's why I was introduced to pre-processors in the first place and so I came in I was like wow this is really cool and then you know Chris Koyer for example was like SaaS is the winner like we've been talking about this for a long time and I okay clearly I'm opinionated I tend to agree there's still people who like the other thing like there's still people who use it but what's interesting is there are people probably listening to this podcast who use SaaS without even knowing it right because it's first of all it comes default in Rails so and I kind of want to ask you another question about this by the way um about the functional difference between SaaS and SCSS and if there is one there's no functional difference okay it's the same language so it's a preferential thing right yeah it's just I mean so we don't we tend to call it so SaaS is both okay yeah yeah which is SaaS is both there's the indented syntax and then the standard syntax okay SCSS right it was just you know SaaS started as a sister project to Hamil I convinced Natalie to I wrote up the spec for what I thought the language should do and I started coding out part of the project and then I convinced her that it was a good idea and kind of wrote up the list of like philosophies and then she just went crazy and on an airplane ride back from I think RubyConf maybe 2007 I just 2008 just started just took my code just like like crazy that's awesome and the whole thing flew from there but we you know it was written written then with an indented syntax only because it was the sister project to Hamil like I've never I'm not I don't have any strong experience with meditation I don't hate it I don't love it it felt right with Hamil so she structured documents that something about that is what I was looking for at the time so yes right oh you guys so a ham SaaS was just kind of naturally express that like we wanted to try to make it kind of close but it wasn't you know that wasn't like a huge deal for us and then when the project spun off officially into its own thing and actually Natalie doesn't work on Hamil anymore and is just doing SaaS you know less came out at this point it's a Ruby project and was compatible with CSS it's just like sss and obviously we were like oh yeah they told me make sense like sure oh yeah wait we can do that like that's why not right like it's just curly brackets and semicolon so we can add those into our language already that's not the it's just one phase of the processing so all the backend is the same for the two like actually I mean you can mix and match them absolutely sure it's in different files but yeah yeah like the interologic and everything is exactly the same but you know it was definitely less that we were like it's what you just don't notice it's such technologies like that like yeah see you not be as I did you like oh of course we should have made it see as those compatible yeah like sure but you know honestly we never we didn't I could have never imagined that it would you know kind of start approximating some sort of industry standard like Hamil is a weird language it was meant to be a weird language like yeah it's very opinionated in that way and I just you know I want to build something that time is what I wanted and right like you know I remember when I gave the first Hamil talk I was just like well nobody's ever used this except for me it doesn't matter I've just gonna like at least I'll get a conversation started and yeah turns out he's still I think 40 percent or something I think almost 50 percent of Rails developers use Hamil which is crazy wow yeah it's actually sorry it's been showing a higher on the server than I could have imagined sorry but so we weren't envisioning SaaS as like okay let's change CSS we weren't thinking that we were just thinking in our development workflow what would work best with our Rails flow like don't I don't know it's a very different way to think of something and then when we saw less and we're like well the things we're doing could we kind of we could pretend like this is CSS sure and it was so obvious and it only took like I think after West came out I mean I think it was maybe a month later that we very well now like it all the footing but you know CSS came out and it you know the focus chains then because a lot of actually the syntax is like he most in sss come from trying to be as close to the way the w3c things about CSS is possible sure it's clearly not strictly on spec and it will never be right right things like using that symbols like that's something that that is very much in the language of CSS and we want to revile CSS rules by using those so it's funny how we developed with a much different view than we started now it's very much like we have to be future compatible we really need to think about the future of how this language is going to change the debate it takes and this is why I think we have been beating less to goddesses you know the projects eight years old and it's mature as you possibly be right and every single small change that language Natalie is very strict and very skeptical of any change so there are long debates about how to change things how to do it slowly and I think that's you know less was much more of a it's one of the newer one was kind of much more they put a little more whole hog and stylus is like they just kind of do some stuff in there that is not CSS and tactically and there's some edge cases that you can hit where sass I'm gonna pretty proud to say there's edge cases are pretty well taken well defined I mean if they're there they are very rationally worked through because that's all Natalie that's not me right right right so I honestly if I've been running sass these years and I had planals say actually even Chris have Steve too we're both pretty like that's a great idea let's build it right right go go go new ideas crazy things it really takes so you know to make these projects work who's like very skeptical of anything new or anything that could break or worrying about that and she really takes it seriously and so I think that's where the you know when you do this is your full-time job I think doing less can sometimes you look like there's definitely things you just can't do or you'll hit you're like sure named it this way and I'm screwed yeah there's some strange mix-in syntax and stuff too where you know I'm proud to say in sss like it just doesn't really happen right and that's why most people who are professional tend to kind of switch over because they're like oh I'm not going to get find a surprise bug that the developer says nope yeah I like we just can't do it or yeah we won't tear yeah because it's backwards compatibility once you add some new language you can't take it back right and that's always the fear that's why you see these super long discussions and that's why we take at least six months before we add a feature it comes out because you test it and think about it and try to think of any way that in the future we might regret why we did it this way right yeah and it's exhausting yeah I can imagine well it sounds like basically like you have your own w3c like like you guys are you you're running essentially what is like a spec like long process because you know on those on those mailing lists and stuff people go back and forth like people like tab back and they're they're mailing for you know you're still yeah forever about these things and they're like speccing stuff for years and you know going and talking up to people and seeing if this like if they ever see any issues because it's really difficult you're writing for the past and the present and the future like all of these features that you're deciding have an effect on projects that have been built before yep and they're going to have exponential effects on projects built in the future and so you know and you also have the CSS spec that's being developed in parallel that you have to keep in kind of in your view at the same time it's a pretty massive undertaking we like like I always think of it as like it's like writing a bull right what we're doing I mean we get a lot of freedom because we're in a project so sure you know honestly Natalie gets convinced that's right um yeah she's definitely the it's the right thing I mean Chris and I are like you go at going home we take it's fine we'll we'll argue with you and try to make her points which yeah the natural everything sorry but you're kind of having we're having to listen into those uh oh Chris wins a lot of time being aware of the w3 c stuff because yeah we have to you know when we're seeing them talk about a syntax that might appear in 12 years we want to make sure that that is something we're all already thinking about even if it never comes in right right you just kind of got it like it's bucking underneath you and these threads are happening and some things are moving some things aren't um and you know there is but we're very much pulled to them they they are absolutely not pulled to us if not slightly discussed with our existence but yeah well it's interesting we mentioned that though because I it's probably debatable that what uh sass and less and stylists have done to CSS is pushed it forward they they've definitely it's almost like a testing ground for potential features in the future right so like in some ways because uh if you have a question about will people use variables well that question has been answered now like in yeah I think but the downside is okay variables are funny right because variables I don't they don't make as much sense in the browser they don't really give you a lot of savings when you're compressing the kind of values we have in CSS like one px right putting the word with there I don't know sidebar width or something like is I mean with compression it's a wash like it doesn't even matter like um actually if anything you made the parser slightly slower because it's got to remember stayed in a way that it didn't the size parser like it's it's just kind of a wash for the developer um and and then load orders all we're because you can't control it and namespace collisions between CSS files and also if you include a library that has variables like there's something very nice and clear about resolving all this before you your production right um like they're it's hard to have with a lot of languages like when you compile Java into a bytecode you know there's a very different job being JavaScript I say Java bytecode and being Java right Java needs to result everything it's got variables uh you know so it's interesting the variable spec uh when I first saw it uh Tatyat tab didn't work on that affair that's yeah baby yeah uh I I did not like it right I still I still don't I don't I'm with you I'm in the same place yeah but but here's the thing and this is what I kind of found out from him and he's pretty public about it now uh what he did was include a syntax that now opens the door to a lot more dynamic manipulation of CSS during runtime yeah so it's it's not that so variables do have some things CSS variables do some things that are not like normal variables and they're totally useful in a couple really interesting cases however they're not the same thing as using SAS variables where you set colors for your website they're not even meant to really be that um and a lot of the new features that tabs work out right now are this kind of extensibility in CSS which is something we can't actually do from the pre-processing sure so a thing like being able to include a dynamic layouts on the page that are calculated on the flyby JavaScript very efficiently and you can write your own style CSS use attributes that don't exist on the page that's stuff the pre-process I mean we're still there I mean we'll support the who's right right I know we'll help you write those but we're not the browser sure and I think that's it's one of your variables uh he calls it his Trojan horse um because what he did is uh all the browser main factors had to do a couple you know it was all super weird internal browser building right yeah but it was it was to open the door to be able to do a lot of this extension stuff that he was really pushing for yeah so you know I think that there's always going to I mean there's always knock on wood I mean as long as we're writing CSS I think pre-processors at some level make sense they're really just compilers like a ESX has some compilers that you can do now um yeah make sure that we deliver the browser modules are resolved everything sorted out before he gets there it makes sense to do some quote-unquote pre-processing like compressing an image before he gets the browser sure um but I would say the only exception is as long as we're doing CSS right um right you know who knows what I'm definitely looking forward to the future where I think we have a much bigger problem with the browser generally with layouts and how works and you know says helps some right it's just giving you like you're building the same building but you just have like a hammer that's a little more efficient like right yeah it's it's the house still the plans of the same right and I don't think I don't think that like this this future looks like moving a bunch of stuff that currently is in pre-processors in the CSS I don't think that's the point at all necessarily but I think that there are like influences because the people who are writing the spec for CSS are now aware okay there's there's a lot of people using these pre-processors pre-processors now so we have to figure out a way to you know you may have amazed how little the crap they get really yeah I mean I can't I mean hopefully you know I'm I love having my ego strength okay the one exception I can think is using extends which is incredibly complicated to pull off and SAS and I don't I don't think we should have had it just to be clear I think it's to be avoided though it helps in some really nice situation yeah the extent to feature in SAS is something the browser could do extremely efficiently hmm we're doing a bunch of hacks to try to simulate something like it but it is this it will slow down if your SAS is slow stop using extends like wow go refactor get rid of it and we're we're pretty hopeful I think tabri some like that the w3c to roughly agree to include an extend styles and it's not exactly the same oh very cool yeah so that that one I'm looking for too because that's definitely one where we were trying you know we're simulating I guess we have to when you use extends we actually have to go build a tree of what we assume your document might look like and that is of being billions I'm kidding about it can be depending on your how big your style she's talking be billions of nodes wow and we have to prune that down to something that you can print into a line so goodness because it and all we're doing is assuming likeliness so it's unlikely that it was an A tag probably meant to div and it's unlikely that the hover style is the one that you were intending yeah so we just like take all possibilities and it's it's a hack it mostly works for people though but it is it's like a experiment more than more than anything to see like how how efficient can you get this really big job right you know I'll say that's one of the one it's one of the few features we added that we kind of got bullied by the other languages on and kind of collapse too early yeah they all had something like extends and I mean I'm pretty proud to say that their implementations had are where much worse performance wise and everything else actually more the result than performed and okay I mean because the results what matters like sure to into us like we'd rather be a little slow and have a fantastic out I mean sorry you can't not have fantastic out that's the number one and then we deal with everything else out yeah so so but we kind of felt like if you're like oh well I prefer a lot because you can do this and and this is one thing Sass came to it it just kind of sat there for years is the thing that we were like we don't want to build this and then that only came with a way to do it better sure and like it was reasonable and then it was like a lot tied thank you so much for listening to the first part of my interview with Hampton Catlin Hampton thank you for being on the show once again make sure you'd catch the second part of the interview in the next episode of Developer Tea we talk about word set and we talk about why words need to be open sourced again thank you so much for spending time with me today listening to this show you are the reason that I create the show if you have any feedback you can reach me on twitter at at Developer Tea or at gmail and Developer Tea at gmail.com and until next time enjoy your tea