Two seasoned salty programming veterans talk best practices based on years of working with Laravel SaaS teams.
Joel Clermont (00:00):
Welcome to No Compromises, a peek into the mind of two old web devs who have seen some things. This is Joel.
Aaron Saray (00:08):
And this is Aaron. You know what the worst thing in the world is, Joel?
Joel Clermont (00:19):
I can think of lots of things, but no. I want to hear what your idea is.
Aaron Saray (00:24):
It's .net. It's just the absolute worst.
Joel Clermont (00:26):
Oh boy, come on.
Aaron Saray (00:28):
Okay. No, I'm just kidding. But I think I wanted to talk a little bit about that today where there's so many different languages and so many different ways to solve stuff. And it's really easy to trivialize and get in a certain groove of like, "The tools that I've picked are awesome and everything else is the worst."
Joel Clermont (00:46):
Well, it kind of validates that you're making good decisions, right? Like, it's a common mindset to have. No one wants to be like, "Yeah, I made a horrible decision. Love it."
Aaron Saray (00:55):
Yeah. When there are people around you and then you use the same thing, it does feel good. Like, "Oh, I made that smart decision,"
Joel Clermont (01:02):
Sure.
Aaron Saray (01:02):
"I can be more effective and efficient just like these people." But I think that the nature of what you just said is the reason why there are different tools. I think there's a couple different reasons, but the first is there are different types of people and different types of people think differently. We run into this all the time when me and you bicker back and forth. Even on the podcast, we've joked that I like to read the whole manual and you like to just take something out and start messing with it, and then go back and read parts I think. It doesn't make sense to me. I was like, "Just read it all through, once you have a base understanding, then do something differently."
Well, if you look at that, that's almost like some of these different languages. Some languages maybe are compiled so you can't even run them. They have to be compiled before you can run them, they have to be linked, and all that kind of stuff. Others can compile at runtime, like PHP and JavaScript. Others have a certain environment that they're required to work in. Like, someone who works directly in the Salesforce ecosystem can only do their stuff inside of there. While others are open source so you can kind of run them everywhere, like JavaScript or embedded languages. There's just a number of different types of languages and things too.
Joel Clermont (02:09):
Yeah. I just have to giggle a little bit because there's a phrase you say to me a lot, Aaron. "Why would you ever do that?" Like, I'll be doing something on the Screen Share and you're like, "I just don't understand why you're doing that." I'm like, "I don't know, it's just what I do." But yeah. And I like your point too because as you were going through that list, I think maybe it was when you said Salesforce, a shudder went through my body. And I had that thought, like, "Oh, why would anybody want to use that?" being somebody who has had to use it on projects. But so I think it's a good point. Even when we're in the midst of trying to be conscious of not having those reactions, I still had that reaction. I think this is a good thing to think about.
Aaron Saray (02:49):
Yeah. These different languages, I guess the reason why these different languages are even made is like, "Why don't we all just write in assembly or something like that," right? Well, it's because developers and programmers already realized that there could be a "better way to do something." But it's better for them, it doesn't mean it's better for everyone. I think about... what's that one language that you really love, Elm?
Joel Clermont (03:11):
Yeah.
Aaron Saray (03:11):
According to the developer that generated that language and a bunch of other people, that is a better way to do X, Y, and Z things. State-related things, being able to play stuff back and forth, functional programming, whatever. I don't even know what I'm talking about, I'm just saying buzz words.
Joel Clermont (03:27):
No, you're doing fine.
Aaron Saray (03:28):
But for me, I don't think like that. Like, you've showed me a couple times and... I mean, yeah, of course a couple times I just picked on you because it's fun. But the majority of the time I was picking on you because I was actually a little scared that I didn't understand what I was looking at and I was like, "Well, then this is the worst. I'll just call it the worst and then that way I don't have to admit that I don't understand why this is better."
Joel Clermont (03:50):
Yeah. I think that you hit upon another reason why sometimes we might reject something. Is we just haven't even taken the time or we've tried and, at the first attempt, it didn't click for us so therefore it must be dumb.
Aaron Saray (04:02):
Yeah, I think that happens even in things that you like. Like, I've worked on Laravel projects and done stuff, and all of a sudden something clicked in my head where I'm like, "Oh. The last, I don't know, two years of programming, I've done that wrong and I can do it a better way, a different way." So even on things that you know pretty well, things will click in your head and you'll know the next level.
Joel Clermont (04:23):
Sure.
Aaron Saray (04:23):
You'll try to level up on that. Well, imagine if you don't know the thing at all. You're trying to get to that first hump. That can be pretty scary.
Joel Clermont (04:30):
Absolutely. We've talked about this in other episodes, but I think one other advantage there... there's a few advantages of not hating on something. One of them that I'll share is that there are things to learn from other communities even if it's a drastically different approach overall. And a lot of what they do in that community wouldn't apply to what you do in your programming stack of choice, there's elements of that that might be kind of interesting.
You mentioned Elm before. I know there are other JavaScript libraries, I think there's even been some work... I think I met a guy at Laracon one time that was doing something to try to bring some of the Elm Data Flow stuff even into Laravel. Whether those end up being good ideas or not, is not-
Aaron Saray (05:17):
I just did the same thing. I just did the same thing as you do when you said bringing that Elm stuff into Laravel. I was like, "Oh, why?" But why not? Why not learn to maybe do something in a better way. Or, we try it and it's not and then we say, "Hey, we tried it."
Joel Clermont (05:32):
Right, exactly. But to your point, your overriding point is if you just dismiss something and then you layer emotion on top of it all. "Oh, that's dumb. I hate that." You're never going to see those opportunities so I like the idea of keeping more of an open mind.
Aaron Saray (05:45):
I can actually point to that happening with me, especially as I learned more JavaScript. I would say way back in the day, I still focused on PHP and I was right on the backend and I almost had that sort of attitude against frontend developers. "They don't know. They can't make anything." I learned a little bit more JavaScript and I'm like, "Actually, I like that you can kind of program in the frontend too. Who knew that you could program in the frontend?" Then I started to do it more and I learned to do object-oriented sort of stuff. I saw that there's all these different ways to do what I was doing and then certain things made way more sense in my language stack of choice, PHP, versus JavaScript.
There's nothing wrong with making objects and stuff like that and constructors in JavaScript but I tend not to use them anymore. In my JavaScript, I've learned to be a little bit more functional, compose things. But that sort of methodology, I think has actually helped me understand how to write even cleaner PHP code as well. So from a different language and its different paradigms, I picked up a few things that not only just opened my mind in general, but made my other language, I think, better.
Joel Clermont (06:55):
Yeah. I mean, that's a totally fair point. I still am in the camp of trying to avoid writing JavaScript so I will leave that to you. But that's my own limitation, that's nothing against the language, I just like writing PHP more. Well, and I guess... I don't know if you had any other advantages in mind. But one other one I thought of is just, don't be a jerk, right? I mean, I guarantee you, especially as PHP developers, we should be most sensitive to this because PHP is kind of looked down upon by many other programming communities. We've been on the receiving end of that so why dish that out to somebody else? You know what? If someone loves ColdFusion, great. You know, maybe they've got a business consulting on it or they work at company that's generating revenue.
Like, why even say something negative about it even if you think its time has ended and it should go away? There's no benefit to saying something negative about something that somebody else put their energy into and might enjoy doing.
Aaron Saray (07:55):
From time to time, I'll go to random nature parks around here and go for a walk. I'm trying to be healthier.
Joel Clermont (08:09):
Nature Park as opposed to what? A skate park or what?
Aaron Saray (08:13):
Well, I live in a more urban area so there are parks that you can't really walk in. I mean, you can but where it's just a concrete jungle. I'm talking, go out to an area where there's green grass in many acres.
Joel Clermont (08:26):
Right. So it's not a redundant phrase, like hot water heater that I said today and felt immediately stupid?
Aaron Saray (08:31):
No.
Joel Clermont (08:31):
Okay, sorry.
Aaron Saray (08:33):
I went out to this one nature preserve sort of area and it's got this really, really cool thing. It's on almost the side of a hill. At the top there's a couple buildings where people can use and then there's these walkways all the way down to this lake at the bottom of the hill. I walked all the way down to the bottom of the lake and, you know, it's cold out and maybe there was ice on the path. I don't know, I'm giving excuses for why it was so hard to walk back up the hill.
Joel Clermont (08:58):
Okay.
Aaron Saray (08:58):
I'm walking back up the hill, it's kind of going zig-zaggy, and over the edge of the hill I start to see a pretty large A-frame building. Where it's basically the whole thing is like a rough... Just big A and a lot of windows facing towards the lake. I'm like, "Oh, I noticed that when I walked down, but I really hadn't thought about it." I'm walking up this hill, and I'm not fit, so as I get closer and closer to the top of the hill, I'm really out of breath. I'm just puffing and puffing, the sun's out so I'm getting really warm. I get to that top of the hill, I'm looking at this amazing A-frame building. It's probably two stories tall, it's all glass. Sun is shining off of it and I can see the clouds and reflections.
It's really beautiful but I am out of breath so I'm having a hard time appreciating it. I got my sunglasses on. I get to the top and there's a bench there. I lean on the bench, kind of almost backwards, put my arms on the top and I'm sitting there just breathing heavily and going, "Time to ca-catch my breath." I'm staring at this amazing architecture. And then the sun goes behind the clouds. And when the sun went behind the clouds, the reflection stopped on all of the windows on the front of the building.
Joel Clermont (10:08):
Oh boy.
Aaron Saray (10:08):
And I made eye contact with a row of elderly ladies doing some sort of exercise system. Basically, I had walked up this hill and then looked at them and stared at them according to their insight and just breathed really hard and just panted at them. Just staring right at them as they're trying to do their exercises, me having no idea. And then when the sun... I'm like, "Ah." It's like, "Look away."
Joel Clermont (10:33):
Totally natural. I'm sure they weren't creeped out at all by that. You know, your story made me think of a time I was visiting a nearby city and there's a harbor. So there's an old historical lighthouse that a friend of mine wanted to visit. We parked below it and we walked up, it felt like 10 flights of stairs straight up, and we were huffing when we get to the top. And then we realized there was actually a road you could drive around and we wouldn't have had to walk up all those steps. I felt like a total idiot. It's like, "I wasted all that effort."
Aaron Saray (11:08):
All right. Well, jump on Twitter and tell us what you hate and why.
Joel Clermont (11:13):
No. Have you learned nothing from this episode?
But if you would like some help, then head over to our website, nocompromises.io and set up a call and we can see how we can help.