Meet Carakan and Vega
By Espen André Øverdahl. Thursday, 5. February 2009, 13:16:04
In this post, we'd like to highlight Opera's upcoming ECMAScript/JavaScript engine, called Carakan, as well as our Vega vector graphics library, both of which were announced at the Web Directions North conference in Denver, Colorado.
Carakan
Over the past few months, a small team of developers and testers have been working on implementing a new ECMAScript/JavaScript engine for Opera. When Opera's current ECMAScript engine, called Futhark, was first released in a public version, it was the fastest engine on the market. That engine was developed to minimize code footprint and memory usage, rather than to achieve maximum execution speed. This has traditionally been a correct trade-off on many of the platforms Opera runs on. The Web is a changing environment however, and tomorrow's advanced web applications will require faster ECMAScript execution, so we have now taken on the challenge to once again develop the fastest ECMAScript engine on the market.
The name Carakan, like the names of Opera's previous ECMAScript engines, Futhark, Linear A and Linear B, is the name of a writing system, or "script".
We have focused our efforts to improve upon our previous engine in three main areas: register-based bytecode, native code generation and automatic object classification.
How fast is Carakan? Using a regular cross-platform switch dispatch mechanism (without any generated native code) Carakan is currently about two and a half times faster at the SunSpider benchmark than the ECMAScript engine in Presto 2.2 (Opera 10 Alpha). Since Opera is ported to many different hardware architectures, this cross-platform improvement is on its own very important.
The native code generation in Carakan is not yet ready for full-scale testing, but a few individual benchmark tests we ran show that it is already compatible with runs between 5 and 50 times faster, so it is looking promising so far.
Vega
Vega was created shortly after we started working on SVG support, for which we needed a vector graphics library. We looked into what libraries were available to use and met our requirements (fast, low memory usage and working on platforms ranging from phones to TVs and desktop computers). We did not find and good match for our needs, so we decided to write our own. Shortly after we created Vega we also added <canvas> support.
The most recent addition to Vega is the ability to use a hardware accelerated back-end. The back-ends we are using at the moment are OpenGL and Direct3D.
In the core version we are currently developing, Presto 2.3, we have made it possible to use Vega for all rendering in Opera. This means that we can replace the platform specific code for rendering with Vega. In the future it might be mandatory to use Vega for rendering, but in Presto 2.3 it is still possible to use the old rendering back-ends.There are three reasons for doing this:
- Firstly, the new CSS3 background and borders standard is much easier to implement using a vector graphics library. Presto 2.3 adds partial support for CSS3 backgrounds and borders, but only when using Vega for rendering.
- The second reason is to support hardware acceleration of our vector graphics. In order to be able to render SVG and <canvas> in hardware we must also be able to directly draw the rendered vector graphics to the screen since reading back the rendered image from the graphics card is usually slower than rendering in software.
- And finally, doing this enables us to easily add advanced graphical effects to our UI and to web pages.
Wallpaper
Be sure to download our wallpaper:
Other recources
Stay tuned for more in the next couple of months!












José Torres # 5. February 2009, 13:17
Dan Alexandru # 5. February 2009, 13:28
Henry # 5. February 2009, 13:35
Carakan F.A.Qs
Tamil # 5. February 2009, 14:10
Charles Schloss # 5. February 2009, 14:48
Artur "Jurgi" Jurgawka # 5. February 2009, 16:06
BTW: in Polish „caracan” means „cockroach”. ;P
Dan Alexandru # 5. February 2009, 16:14
sms985 # 5. February 2009, 16:21
Ahmed Ghanem # 5. February 2009, 17:06
Ahmed Ghanem # 5. February 2009, 17:13
thobi # 5. February 2009, 17:24
Nico # 6. February 2009, 10:47
Any rough ETA when we can see this in action? Please!
Dan Alexandru # 6. February 2009, 11:28
ExtAnimal # 6. February 2009, 13:10
I'm loving running my apps on Chrome right now, so I'm looking forward to this new innovation from Opera.
Joachim # 6. February 2009, 13:59
neNDra # 7. February 2009, 05:29
Its good exsperience!
Barraco Mármol Jerónimo # 8. February 2009, 16:08
FELIX KIMARU # 12. February 2009, 05:24
Nuiy # 12. February 2009, 11:05
W bru lho kuT comunity !
Ankur # 15. February 2009, 01:08
Ankur Srivastava # 15. February 2009, 15:06
olawale # 21. February 2009, 21:33
the news is spreading fast
Opera will allways be the fastest browser 4 me.
Rachma # 23. May 2009, 07:32
I think it taken from 'Hanacaraka', Javanese font
Daniel James Hendrycks # 3. October 2009, 22:46
http://bit.ly/tpkgL
Charles Schloss # 3. October 2009, 22:54
Hector Macias Ayala # 1. December 2009, 19:06
its all just about 3 thing.
presto 2.4, carakan and vega.
d4rkn1ght # 2. December 2009, 03:29
Daniel James Hendrycks # 2. December 2009, 03:42
Originally posted by d4rkn1ght:
Exactly...
Charles Schloss # 2. December 2009, 04:02
Purdi # 2. December 2009, 12:52
Originally posted by hectormacias:
And Presto 2.4 is faster even without hardware acceleration.
Hector Macias Ayala # 12. December 2009, 07:07
Originally posted by Purdi:
I know, and with Vega it wil be even more, the thing is I can already testdrive FF 3.7 alpha, while I cant testdrive Presto 2.4