Over the years, with the development of browsers, browser engine has actually been divided into a few distinct factions, such as the Trident,firefox of IE gecko and so on. by. Internet Explorer is a relatively large number of users, so many developers and users in the country may be more familiar with the development of IE. So what exactly is a situation around gecko development? What are the similarities and differences in technology? For this I interviewed a special programmer Li Monan with rich experience in Gecko kernel development.
Ericlee: Could you introduce yourself, please? For example, you are engaged in albatross development experience.
Li Monan: I graduated from the Civil Engineering Department of Yantai University in 2002, and have done it in Jinan for nearly one year. NET Ormaping. November 03 joined in Beijing to create open Source Software Co., Ltd., engaged in open source browser (initially Epiphany, later is Firebird) development. Albatross is an improvement on the Firefox 1.0.x version branch, based on the 863 project, "Linux compatible with IE extensions of the functional enhanced browser", by the time to create open source browser department developed. Major improvements in functional improvements can be referred to: Http://albatross.cosoft.org.cn/future.html March 2006, leaving the company. Currently mainly engaged in browser-based Internet crawler and Community (site) search engine development. http://www.coreseek.cnEriclee: The core of the browser can be divided into Trident, Gecko,presto, WebCore and so on. Please talk about which point the Gecko kernel attracts you most. It is different than the other cores.
Li Monan: If you can't get the source code, IE's Trident kernel is actually the most open. Its interface design is the most mature, support for external applications is best, which is one of the reasons why IE shell browsers are so many. From my personal experience, the more I understand IE, the more I find the ingenious design. Oprera's Presto, I use opera not much, not good comment; WebCore and khtml themselves do not have local window versions, which limits their popularity in Win32, but because Khtml itself is small, there may be market opportunities on mobile devices. Gecko Core design is relatively mature, in the case of no access to the source code, open degree second only to ie. Because of its own open Source. is actually the best developed browser at the moment. Firefox extensions can bring a completely different browsing experience to the visitor. I personally because of the more contact, for the shortcomings of the gecko than the advantages of a more likely understanding. One of the biggest problems is that the system's parts and javascirpt are too tightly bound, it is difficult to add support for the new scripting language; second, it should be admitted that many of Microsoft's designs are convenient for web developers, and Firefox does not do enough in these places, but there are technical problems here. , there are also legal problems.
Ericlee: Many of the domestic browser development is shell development, please talk about Gecko kernel development in technology and shell development will face different challenges.
Li Monan: The shell development and kernel development of the browser are completely two different domains. In contrast, I think the kernel development is simpler, because its user needs are simple and clear, the face of users are also programmers; Shell development to face the end user, to consider adapting to different user habits, especially with a variety of pop-up ads to fight the site
Technically, there are many places where kernel development and shell development are interlinked, and some shell developers I know can become Gecko kernel developers in a very short time. However, there are many differences between kernel development and shell development, the biggest difference is the reliability of the engine, when shell development, you can assume full trust rendering engine, assuming that it does not have bugs, and in the browser kernel development, these assumptions do not exist. In addition, the requirements of the programmer are very different, especially the browser's DOM, Plug-ins, layout and JavaScript modules, some of these modules of code for performance requirements are very stringent. I have made a mistake by writing a debug printf in the release code, resulting in an increase in CPU occupancy by nearly 30%. The same problem is rarely encountered in shell development. Similarly, mouse gestures, ad filtering, and bookmark management in shell development are never encountered in kernel development, so it can be argued that, although both the shell and the kernel are browser-developed, they are actually two different kinds of software.
Ericlee: There are many browsers based on the Gecko kernel on the market, so please tell us what you think of them.
Li Monan: The market Gecko Core browser mainly divided into two categories, one is the Mozilla Firefox as the representative, with XUL as the interface Description Language browser: Such browsers often inherit the advantages of good Firefox scalability, Earlier Madfox and Albatross were the browsers of this type. The other is the use of local graphics library as the interface of the Gecko kernel browser: There are Linux platform Epiphany, Galeon, etc. on the Win32 by Orca Browser, K-meleon and so on. In general, browser resources with a local graphics library are less expensive and relatively fast, as is the case with IE shell browsers, but the extensibility of using XUL as an interface is missing. At the same time, because Mozilla's embedded interface provides a relatively limited external interface, the current use of gecko to do the kernel of the local graphics library browser function is relatively limited. Among them, Win32 platform relatively good is orca Browser, it realizes the browser corresponding to the IE platform Avant Browser more than 90% of the function.
Ericlee:firefox has been a growing concern over the past two years, and the 1.5 edition released last November was a great success, so please talk about your view of the Firefox browser. What are the advantages of technology over Trident kernel browsers? Li Monan: The biggest advantage, all source code open
The advantage of rendering is that Firefox uses a dynamic layout engine, which displays Web content much faster than IE. This I think is the biggest Firefox sometimes, the speed of the display of the Web page also brings the efficiency of the viewer's promotion. On the security side, I don't think Firefox will be much better than IE, on its implementation, there is no special design for security. If FF has the same user base as IE, there will be as many vulnerabilities. However, as a result of open source, the increase in the user base will also lead to the growth of developers, in view of these factors, overall, Firefox will be more secure.
Ericlee: Many people say that Firefox2.0 is no better than the 1.5 edition, do you think so?
Li Monan: 2.0 code I haven't had time to study it yet, but to evaluate a browser with its own kernel, the final interface is just one aspect. The browser engine is actually closer to the role of. NET and JAVAVM, and it's hard to evaluate a browser kernel through the end user interface, just as it's hard to evaluate JAVAVM improvements through the JAVAVM command-line interface.
Ericlee: From a development perspective, such as the expansion of object prototypes in the DOM, which browsers Firefox and IE have better scalability.
At two technical levels there are two different conclusions. At the kernel level, in the same source of the premise, Firefox extension of the DOM object is not ie convenient, this is the past has been puzzling us the problem; but in JavaScript, Firefox is more powerful than IE, Early Albatross some of the features of IE are supported by scripting.
Ericlee: Microsoft's new investment in IE has made it more competitive in the browser market, and how you can look at the direction of future browsers. (Browsers, in addition to being read as Web content, will evolve in the context of application integration.) )
Li Monan: I personally think that the future browser will eventually disappear and play a similar role to the. NET Platform and JAVAVM.
Ericlee: What do you think of the domestic open source browser development atmosphere.
Li Monan: In fact, the development of the browser kernel is not difficult, at least not everyone imagined difficult, more simple than the development of the operating system kernel. In general, a programmer with medium C + + development experience can learn from 1-2 months. As to the specific level of what can be done, we need to look at the level of personal efforts. As for the development of Firefox browser Shell (do expansion) is relatively simple, there is a certain basis for Web page production can be. Domestic open source Browser development atmosphere, how to say it. And the domestic open source software's big environment is similar, the company's leadership also difficult to accept oneself invests the development the software to take out lets others "white" use, but the domestic open source browser development biggest problem is the high quality development personnel too few, certainly, this May and the domestic big environment related. If the programmer's survival and development problems are not well solved, the problem of shortage of developers will always exist.
Ericlee: Can you share your software development experience with a wide range of software developers? Li Monan: I am still far from success, just a suitable pawn put in the right place. {There is a need to add more, emphasizing the importance of mathematics and basic Knowledge in program development}