Skip to content

2016 02 07_2016_a_new_beginning

Zwetan Kjukov edited this page Feb 7, 2016 · 1 revision

2016 A New Beginning

Redtamarin as a project exists since 2008, yep it's already been 8 years.

During all those years the drive was simply

it's cool to be able to run AS3 on the command-line

and because I'm just only one guy working on this open source project (among many others), I never really seen a need to make it "production ready".

And by that I mean: something you can install on a server, be able to count on it and use on a daily basis to solve some of your problems.

Being Production Ready

Don't get fooled by the 0.4.1 version number, when I mean major version zero it's not because it is unstable or it gonna crash.

No, it's about features. Yes, I have this very long list of features that I want to implement in Redtamarin before I can declare it as a version 1.0.0 without feeling ashamed of it.

So what is being "production ready" ?
It's about writing applications with a tool, or a platform, or a specific technology without having it getting in your way when you need to deploy your app to production.

If you have the "greatest" tool to write an app at your fingertip but installing it on your server is a nightmare, you gonna think twice about using this tool, simple as that.

Nobody want to maintain a nightmare on their server, and that's why we decided to use Debian packaging.

According to Wikipedia,

Debian has access to online repositories that contain over 43,000 software packages
making it one of the largest software compilations.

Ubuntu has over 50 000, this is clearly something people have been doing for over 20 years and even if it is difficult to create a package for your own apps, it is definitively worth it.

Now, either me or you, if we use ActionScript 3.0 to write a tool (really anything) that works with the Redtamarin runtimes, the install path should be as easy as $ sudo apt-get install something.

Redtamarin is not there yet (a Debian official package), but $ sudo dpkg -i redtamarin-sdk_x.y.z_amd64.deb is a similarly easy close cousin and work perfectly for us, as we made it work also cross-platform for Mac OS X and Windows.

So, your redtamarin tool, wether it is some shell scripts, or some ABC libraries, or a full blown AS3 program of ten thousands of line of code, or some server-side application like a blog or a wiki and other CMS, can now rely on that.

But "not getting in the way" is just half of the story to be production ready.

If you take solely the ActionScript 3.0 language, as good as the language can be or you may like it, if you don't have any API to work with the language in itself is worthless.

That's the main reason for Redtamarin existence or "raison d'être": the ActionScript Virtual Machine (AVM2) is good, the ActionScript 3.0 language (AS3) is good, but what make those shine is the Redtamarin API.

Those 8 years, I was mentioning earlier, have been mainly my own research in language API design, or how to provide structured definitions (Classes Interfaces, etc.) that serve a bold purpose: be able to do useful stuff on top of AVM2+AS3 (see Redtamarin Libraries).

The Redtamarin API is now clearly organised in 3 layers (clib, rnlib and avmglue), it can be quite powerful for some cases, missing libraries for other cases, but it's just a matter of time, it will grow and get better and better.

That said, there is enough in the Redtamarin API to do "useful stuff" and such in a cross-platform way as most of the API will work for Linux, Mac OS X and Windows.

So, yeah it's production ready, it's only v0.4.1 and more versions are coming in the pipeline with more features, more API and fancy stuff.

But What About the Cost?

Ah the classic dilemma ... it's like the thing I call "the restaurant problem", if you already eaten in some particular restaurant and know it's good, what about trying that other restaurant that may be good too but you have no guarantee unless you try for yourself.

It is the same. But nothing new here, as it would be the same for any other technology: already know PHP, but what about if you tried Python? or what about switching everything to Node.js?

You have no guarantee. Yep, even for things like Node.js where everyone tell you how good or easy it is, unless you try it for yourself you really have no guarantee it gonna works for you.

The cost is not about the technology stack itself, as everything is open source and de facto free to try.

But it is indeed about all the rest, like: how easy it is to change? or test? or integrate with other stuff?, what if things go wrong? can we get help or support? and tons of little things like that.

I could stay try it on a small'ish project and see how it goes, I could try to ditch other tech or even try a sale pitch on how some magic fairy dust gonna change your life, but nope.

You not gonna try Redtamarin because of how I tell you I think it's good and how much I believe in it and use it every day, and it's perfectly fine.

But what I can do is show you how I use it and what I build with it and maybe explain a little bit why things are like that.

In itself, Redtamarin is tuned for the indie developers, the solo guy who have only time to work on a side project over the week-end, or the very small team who have to be lean and mean otherwise their project gonna fail due to time and resources constraint.

For me, it's not really the cost to use Redtmarin but about the cost it saves to use Redtamarin instead of using something else.

For the example sake: if I go to automate some process on a server writing a long and complex bash script, if it cost me 1 day to produce that bash script and I can reduce this cost to 2h using AS3, I basically save 6h that I can use to do something else.

It's not grandiose or magic, it's just maths. And yeah maybe it just works for me.

Now to find out some other examples to show you during this year 2016 that maybe gonna convince you that Redtamarin is maybe a solution for some of your problems ;).

The goal is still to use Redtamarin on a daily basis, make it part of the production, and basically building more stuff with it.

Clone this wiki locally