You can listen to the podcast and read the show notes here.
Michael Smith: Welcome back to the show. I'm here with Gert Franz from Rasia and he did a lot of work on Railo and Lucee, the CFML open source engine. He's talking at the Into the Box Conference. What's your topic, Gert?
Gert Franz: I don't even know how I named it but it's actually about performance tuning step by step. Showing in iterations how to get from a very high, I'm not saying the numbers now, from a very high number of seconds to a very low number of seconds, with different iterations where you avoid certain things in your programming and then you just use common techniques and I'll explain the details why things are good and why you shouldn't use things.
Michael Smith: That is great. You're going to help people speed up their code and learn some things to avoid and things to do better?
Gert Franz: Hopefully. Everyone has their tricks and tips and how they are improving the performance of their code but this came out of an assignment from a client and while I was doing the iterations I always had to prove that I did something. I told him, “Okay, what I'm going to do is I'm going to create iterations of the code,” and I'm explaining each of those. He said, “Oh, that's fantastic. Why don't you give a talk about this.” I go, “Well that was my idea in the first place.” I was asking him for permission to do this.
Michael Smith: Oh.
Gert Franz: That was the seen why the talk came alive and I gave a version of the talk at CF Camp last year and it is really everlasting topic, an everlasting topic because you know, you can never have enough for performance, you can never have the best performance at all because everyone at a certain point in time when it's business, as business gets better or he has tons of more users gets into the issue of having back performance in their applications. That's why knowing basic things or very general things about the application or the CFML engine per se, is very important so that you know that you're not using certain things excessively because otherwise it's no wonder that your code only responds in two or three seconds, right?
Michael Smith: Right. That's important because if pages load slower than a second or two users can leave sites.
Gert Franz: Yeah, exactly.
Michael Smith: It also can lead to errors with users double-clicking.
Gert Franz: Yeah, exactly.
Michael Smith: It's generally not a good thing.
Gert Franz: Especially the basic thing, the basic response time that you have, say it is let's say one-and-a-half seconds, you cannot get around this with scaling horizontally. You need to scale vertically, too. Improve that number. Vertically sometimes is very expensive, right. Horizontally, if our scaling horizontally your average basic execution time will not improve. It will always be that one-and-a-half seconds.
Michael Smith: Just for anyone who doesn't know those scaling vertically, scaling horizontally. What do those man?
Gert Franz: Scaling horizontally means your just having more servers taking care of amount of requests. Say you have 100 requests per second and now you're adding 10 servers and these 10 servers now each one is executing 10 requests per second. If our scaling vertically you're actually adding more RAM, better CPU, and better disks and what have you. That is of course something to get the execution time of … Your basic execution time down, but in the end that is not the solution, right? If your code sucks, sorry for the word, if the code sucks you should first all see that you have the best possible code in terms of performance. If you of course have performance as an issue. If you're just having a simple website then obviously it doesn't really matter but mostly people have high transaction websites and you just need to have a very good performance because that … Google spoiled us, didn't they? When they started in, when was it? '97, '96, you really just got a result in 250 milliseconds and everyone went, “Wow.” That is exactly what I expect as well. Everything over a second is bad code in my opinion.
Sometimes there of course are exceptions if you're doing a search on flights or whatever that of course is, they have to query lots and lots of web servers and everything. That is understandable why it takes that long. There are still some ways around that and that's why I'm always hunting for the best possible performance, the baseline, so that the baseline is below half a second or so, if you're executing something.
Michael Smith: In your talk are you just talking about ColdFusion code tweaks or are you looking at the database or other things?
Gert Franz: Yes, no. This is just purely CFML. It is purely CFML. Nothing else because there are tons of other experts that are doing database tuning tips and tricks and whatever. Just forgetting to add an index of the database, obviously that is a very basic thing that you should know. If I would give that talk at CFML conference, okay it's a Box conference, people would just say, “Okay, well I can read that up online.” Most of these tips and tricks, many people don't know and since I'm a very lazy blogger I'm not blogging about these things. Of course I know I should do those things and I'm publishing my talks so people can look from there.
In my opinion that's the tool they're using, and if they're using that tool every day why not give them the best possible solutions for standard issues with performance, right? Even with simple things like structs and arrays there are ways how to get those things faster if you're looking at specific things and I'm addressing many of those things.
Michael Smith: I know you do a lot of work on the Lucee, CFML engine and for people who don't know what that is, what is Lucee?
Gert Franz: Lucee, that's the name of a girl, right? No, Lucee is the open source alternative to Adobe ColdFusion and it is now … If we take into consideration the history with Railo, it's about 12, 13 year olds and we're kind of going step by step with Adobe ColdFusion so I would say in some areas ColdFusion is the better engine and in other areas Lucee is the being engine, especially in terms of performance. I mean, you know, if we are talking about performance every time I think Lucee is way ahead in terms of performance which I particularly like.
Of course in terms of price, right?
Michael Smith: What is the price just for people who didn't quite understand what open-source CFML means?
Gert Franz: The price is zero. We offer a full refund if you're unhappy, right? It is open source and free. I have to admit as well in the past 12 years lots of people were expecting the same things from the open source engine that the closed source engine has. You used to pay a certain amount, a couple of thousands of dollars for an engine, obviously you expect certain things to be in there. If you're having an open source tool, which is kind of the open source alternative to the close source tool, they still expect those things because they come from maybe that side and that was sometimes really a struggle.
We have invested lots and lots of time and money into Railo and Lucee. We're pretty happy with how it got adopted and how people are using it. Lots of large companies are using Lucee in the meantime. Lucee is very compatible with ColdFusion. It's always the fact how you explain compatibility. If you're asking whether we have CF Sharepoint in Lucee, no we don't, because in the last 12 years two people have asked us for support for CF Sharepoint. That is not what Lucee is supporting. We have extensions for CF Spreadsheet, for instance, or CF Poi or other things.
It supports almost everything that the closed source alternative is supporting but at a different price. Go ahead.
Michael Smith: Right. For the average kind of app people have, can they just take their code and it will run straight away or do they need to tweak it a bit or is there some kind of … Do you have code, a compatibility tester you run that tells them what they need to change?
Gert Franz: Yes, yes. Normally it should … I can give you that from an example that I had, that in Munich I had a conference and before that conference we had a training and in that training, half a day of that training was to convert applications from ColdFusion to, back then it was Railo. People brought their applications and the problem was that all of them ran, just ran. I had four hours to fill with that and it was actually a complete failure but a complete success. Normally in I would say 99% of the cases you don't have to do anything.
There are of course certain things because Lucee's way more restricted than ColdFusion is. For instance, ColdFusion allows you to do something like, I don't know, you're setting your variable which is in quote has a key called request dot something, then you're outputting request dot something which every normal would thing that there is a something variable in the request's scope, but actually it is a variable called request dot something in the variable scope. ColdFusion kind of allows you to do sloppy coding there, or you can do something like CFsetA..B=5.
Michael Smith: I'm sure none of the listeners do any sloppy ColdFusion coding.
Gert Franz: Oh no, obviously not. Lucee is kind of the …
Michael Smith: Maybe they inherited some legacy code that had some sloppy stuff.
Gert Franz: Could be. Absolutely. I mean, if we're talking about Into the Box, lots of people there that are going there are very high end programmers, so normally I would expect them not to have sloppy code. Still, Lucee is very more restricted. The architecture is a little different so Lucee comes with an administrator for each of the websites and not one for the complete server. There is one for the complete server but that is kind of the one that is setting defaults [crosstalk 00:11:09] with global data sources.
Michael Smith: You have a kind of sandbox effect for each site.
Gert Franz: Yeah. That is automatically built in. It is not something that we put on top of it, we're just making use of the Java Web Context that are coming with Java by default. We're just applying our security model to that existing one.
Michael Smith: How many years do we have to wait for the next release of Lucee to come out?
Gert Franz: 0.2.
Michael Smith: It's a monthly release cycle, right?
Gert Franz: Well, 0.2 because 5.2 is coming out, I suppose in April. I'm not really sure. I'm not making the plan. The plans are made by Patrick Quinn from Webapper. He's the guy who's in charge of the release planning. I am just a member of the Lucee Association in the meantime. I mean, our company, Rasia, is doing lots of development work on Lucee, but what is happening or what has happened in the past is just since first of January we're on a monthly release cycle. We are in our third release this year. We had January recovery now the March sprint is on the way and Lucee 5.2 is supposed to be out at around Into the Box, which is mainly focusing on performance, right? Startup performance in particular.
Michael Smith: What do you think you're going to get the startup time down to?
Gert Franz: I know that you're going to pin me to this once I'm saying the number. It's going to be as … Let me put it in an Adobe way, significantly faster.
Michael Smith: Oh, can I quote you on that?
Gert Franz: Well, quote me on whatever you want. This is going to be public anyway. For me it is really very important to get the startup time of Lucee 5 faster than Lucee 4. That's is already a margin that we need to make, or not a margin, a barrier that we need to make.
Michael Smith: You're getting it down from maybe eight or 10 seconds down to a few seconds without saying a particular number?
Gert Franz: Yeah, let's say four or five seconds. That is what Lucee four was and if we get below that that is perfect, especially since command box is heavily relying on the startup type of Lucee. It's now based on Lucee 4.5 and that's why it is running in three, four seconds and that is exactly why we are working hard on getting that number way, way more down so that Lucee can make it's way into Command Box core. Lucee 5 in particular, because there's so many cool new features in Lucee 5 that Command Box cannot make use of at the moment.
Michael Smith: For folks who've not heard of Command Box or haven't used it, because this isn't a regular website that's always running?
Gert Franz: Yeah. Okay. Command Box is just Lucee on the command line so you can do something like executing scripts on the fly or you just startup a Lucee web server with a command, I guess it's just called box, and then box is just executing Command Box, then you an just run on a certain port. You can just call your website. Or you can do something like box … I'm making this up. I'm not that familiar with Command Box, but it could be box index CFM and then it executes the index CFM, which is maybe packaging your CFM files and puts them via FTP to a server so you could actually write CFML script to deploy your applications if you like so. That on the server level, right?
Michael Smith: Yeah.
Gert Franz: Server-side scripting, that is.
Michael Smith: Yeah. It's a scripting solution that lets you use ColdFusion as the scripting language and do cool things with that.
Gert Franz: Exactly, exactly. That is really, it's really helpful a lot because you can just startup for instance Content Box or Preside with a simple command script, a DOS command script or a Shell script. Then within really just typing that you already have everything running. It's really cool.
Michael Smith: Command Box costs how much?
Gert Franz: I think it's slightly more expensive than Lucee. I guess zero as well. I'm not sure.
Michael Smith: Another open source thing.
Gert Franz: Another open source.
Michael Smith: You could have both of those things for free and play with them, try them out.
Gert Franz: Exactly.
Michael Smith: Amazing.
Gert Franz: It is really amazing, yeah.
Michael Smith: It is. Great things on your talk and with the Lucee project.
Gert Franz: Yeah.
Michael Smith: I've got some other questions here more about ColdFusion because there's been a mess around for a long time that ColdFusion is dead. It seems to be pretty alive to me. Why are you proud to develop in ColdFusion? You've been doing it for a long time?
Gert Franz: Yeah, well to be honest first time I saw ColdFusion in 1999 I thought sorry, “What a piece of crap is that?” That was really me.
Michael Smith: That's when it was DBML, man.
Gert Franz: Yeah, sure. I know. Still for me it was untyped, it was slow. Back then the code was slower then the database, right? That just changed later on. I was coming from the Delphi and Java angle and for me everything was … When you had code introspection you could just click on the function and the function just opened, the declaration opened in the editor so that was cool. It started to grow on me a lot and I'm using ColdFusion at work everyday and I really love it. You can quote me on this. I'm very proud, I know it's a sin, for you guys that's important, I'm very proud of having something, achieved something with Misha and with Tanya and with all the other team members we have over the last 12 years, to have an open source version of CFML out there, having lots and lots of people depending on this software, and that makes me proud.
We didn't make a killing, of course we always wanted. I guess we just suck as businessmen, that's how it is. I'm still very proud because we reached so many people. We were able to develop so many cool things and we have helped keep the business alive and thriving even. I guess lots of the badmouthing of ColdFusion is just history-wise, you know?
Michael Smith: Yeah.
Gert Franz: I know that is dwindling down, I know that, and I know that there are other cool things coming up, but it's just a tool that you have, as other tools. Before it was one of five tools, now it's one of 200 tools, right? Obviously that is a very normal way how it goes down. It is mostly up to the community how the perception of ColdFusion or Lucee's going to be out there. It is not only because of Adobe or because of the Railo or Lucee guys why it is not thriving. We don't have the marketing power that Adobe has to bring it in front and talk everywhere about it and invest tons of it. It's just, let me put it this way, it is the love of our life. It's our child, it's our baby that we're putting out there and try to keep it as healthy as possible. It is mostly about the users and the community how others see it.
Because if you kind of … If somebody says, “Oh, what are you using?” “ColdFusion,” and you already duck, that is a problem. You should be proud in saying, “Yes, I'm using ColdFusion and I love it,” because it has a goal. It learned from it's mistakes when it was a child and now it's an adult and it knows lots of new cool things and we have lots of other languages we can learn from and we have introduced other things that maybe made their way in other languages as well, right?
I wouldn't say that is a very, very old fashioned and dying language. It is a language amongst many which it is maybe our task or our goal to improve and keep alive as good as possible, because many people are depending on it, and why should we give up on what we love, right?
Michael Smith: Absolutely. I'd agree with all that. What would it take to make ColdFusion even more alive this year?
Gert Franz: Write a killer app. That's it. PHP is so famous because of Facebook, right? Ruby is so Facebook because of Twitter. If we have an app that is, well, killing the whole market then CFML will be one that people are looking at, because of the technology that people are looking at. It is mostly not the language is adopted because it's cool, it is mostly because somebody, some celebrity, or some celebrity app or, I don't know, website, has been programmed using that, right? It is just not the case nowadays that people that are writing cool apps are going, “Oh, I'm going to use Lucee, because Lucee is the thing that solves all my problems.” It is, “Okay, what is cool? Okay, let's use that.”
What we can do is we can encourage startups to use it because out of startups sometimes very great things are happening or brought to life. If these startups are using Lucee more and we can show them how easy it is to write all these things then of course that can be something that is going to happen to bring Lucee or ColdFusion in general at a more, a better perception and everything, right?
Michael Smith: I think that's a great suggestion. One of the things I've been talking with Brad Woods about is how can we get more students learning it?
Gert Franz: Write curriculums, yeah. With curriculums, bring them into university, it's free. Adobe ColdFusion does that. Adobe does that with ColdFusion. I like it that the curriculum is free and in my opinion all the students should get free copies of ColdFusion if they don't use Lucee. Lucee is free. That is what it is. Just like the Marlboro tactics, get them while they're young, right? Therefore that would be a good solution how to do that.
Michael Smith: I'd get them in high school, even.
Gert Franz: Yeah, exactly.
Michael Smith: I know I learned to program when I was a teenager.
Gert Franz: Yeah. Yeah, exactly. Me too. Yeah.
Michael Smith: Well, great. Why are you excited about going to Into the Box in Austin … In Houston, Texas, not Austin.
Gert Franz: Yeah. First of all because I've never been to Texas before.
Michael Smith: Never been?
Gert Franz: Nope.
Michael Smith: Wow.
Gert Franz: Oh yeah, that's not true. I've been to Dallas at, what was it? It was called Open CF Summit, I guess. Open CF Summit back then with Matt Woodward and it's a couple years back, I don't know. 2009, or is that 2009? I just really saw the hotel, the airport, and whatever. I'm only going to be there Friday because I have some engagements. My talk is on Friday and what I'm really looking forward to is see Lewis and the guys again and Brad and hopefully see new people. At CF Camp that was really great. We had about 30% people I've never seen before.
Michael Smith: CF Camp's in Munich, right?
Gert Franz: CF Camp's in Munich. It's going to be in Munich again this year in October. I've seen people there really, 30% of the people I've never seen before. That was great because always going to these ColdFusion conferences it's always like, “Oh, hey. Great. Good to see you again.” It's always the same, see the good old guys. I hope that there are going to be lots of new faces that I've never seen before.
Michael Smith: Yeah. It's not just a Box conference, there's a lot of ColdFusion topics there and best practices and other things.
Gert Franz: Preside. is going to be there. Looking forward to see Alex and all the other guys. Yeah.
Michael Smith: It's really expanded since last year.
Gert Franz: Yeah.
Michael Smith: A lot of interesting stuff. Great. Well, thanks for talking to us about your topic and what's new in Lucee and ColdFusion.
Gert Franz: Yeah.
Michael Smith: Look forward to seeing you again, Gert.
Gert Franz: Yeah. Well, you're going to be there so we're going to meet at Into the Box. Yeah, I'm looking forward to be there. I hope to make it to cf.Objective as well this year. Anyway, thanks a lot for the opportunity to talk to you and see you soon. Take care.