Several open source libraries recommended to C ++ beginners

Source: Internet
Author: User
Tags soap wxwidgets

Some time ago, I wrote "Wu" and "" of C ++. Speaking of C ++ language knowledge, it is a "power", and those powerful C ++ libraries belong to the "Martial Arts" and belong to the 18 martial arts.

In this article, I will first introduce the C ++ library and related tools in the vernacular C ++. How did I find these libraries for C ++ beginners?

(1) They must all be open-source products. Why should they be open-source?

1.1. Chinese C ++ learners 10 years ago can ignore open source libraries, but for a few years, if people in the programming world dare to ignore the power of open source, it is enough for Mars. From the various popular libraries of Java to the Java language (Implementation) itself is also open-source, let's look at the powerful dynamic languages: PHP, Python, Ruby, open-source environments are just the air they breathe. Today, the popular mono in Linux is open source. net. C/C ++ is actually the originator of open source. Fifteen years ago, we met Borland's owl, danale. Ten years ago, we had milliseconds of MFC or Borland's VCL, so we could have a good mix of food. What about now? Which business database are you going to learn?

1.2. Of course, they are not totally opposed to commercial libraries, but commercial things will naturally be promoted by their manufacturers. We don't want to join in on this excitement.
 

1.3 The Database Section in my book focuses on how to use MySQL in C ++, rather than oracle or sqlserver. As a software developer, for the benefit of the software developer, I hope that the genuine awareness will be accepted (whether open-source or commercial), and I believe that legalization is a trend, so I don't want my readers to pirate or spend tens or even tens of thousands to buy databases to read my books. Some commercial software may provide a learning version, but the function is limited.

(2) They must all be mature products.

Or there are large companies like IBM behind the scenes, such as xerces-C, or many successful cases in the industry. For example, MySQL is the world's top database. Or their long history has proved stable through countless applications, such as wxWidgets, among the 32 most important applications in each new PC recently identified by maximumpc magazine, wxWidgets makes up five of them. Iconv provides encoding conversion, which is a basic component built into all Linux distributions. Finally, I think it is very important. All the C/C ++ libraries and software I have explained in my book have been used in my actual work in the past five years, I strictly abide by the relevant open source protocols ).

(3) they are all cross-platform products.

C ++ was once the world's No. 1 development language in terms of "commercial applications", but this title has been stolen by Java for many years. Today's commercial application types have quickly moved from desktop applications to Web applications. When Java went viral, Ms suddenly made great efforts to develop the C # language. A large number of former C ++ programmers (including me) thought that C ++ would sink into it, in the past three years, the vitality of C ++ has suddenly been greatly enhanced. The main reason is the emergence of open-source software, basic software (such as concurrent native support, such as android must launch native sdks), and various cross-platform applications (such as Firefox. What should I do if I want to teach you c ++ in windows?
 

(4) They must be relatively common libraries

Because the library should be "Basic" type, such as STL and boost, to be recommended to beginners who are not yet determined in the final major and industry. Generic, such as xerces-C or regular expression used to parse XML, is a tool class and can be used no matter what programming is being done. Or fun type, such as SDL.

It's useless.

STL:The C ++ standard template library is also open-source.>

WxWidgets: WxWidgets allows developers to develop applications for Win32, Mac OS X, GTK +, X11, motif, WinCE, and other platforms based on the same set of code. The wxWidgets library can be used by C ++, Python, Perl, and C #/. NET and other development languages. Unlike some other cross-platform GUI development tools that support wxWidgets-based applications, wxWidgets has a real localized visual and use effect-Because wxWidgets uses (various) platform native controls, instead of simply simulating through textures. WxWidgets is widely used, free, open-source, and mature.

MySQL/MySQL ++: No need to introduce it. But I'm relieved that I have oracle.

Boost:C ++ quasi-standard library, which is powerful and called a "tough" by the rivers and lakes ".

Iconv/iconvpp: (C-form code conversion function library, and a simple encapsulation of iconv in C ++)

Xerces-C:I personally think that the most complete and powerful XML parsing library is not just in the Open Source library, although you include the commercial. Of course, the variant of it, which was sold by IBM for money, is even more powerful, but I think there is a small one, isn't open-source iconv enough?

XSD(The binding tool between XML and C ++ data structures ). (For commercial use)

Deelx(Lightweight Regular Expression parsing class library, made in China), boost has a powerful regular expression parsing library, but if you only want to parse one expression, if you don't want to drag a huge boost library ...... Support Chinese goods.

SDL(Simple DirectMedia Layer/direct multimedia access layer for game programming ).

GsoapC ++ of the soap protocol supports libraries and code generation tools.


It seems that these libraries are both powerful and open-source. Is it really amazing? No. The cost is that you must be familiar with open-source C ++ rules. Generally, they are source code and you must compile them yourself. Therefore, in vernacular C ++, this chapter describes how to compile and install various libraries and software. However, for lack of experience, there will always be strange issues, and many readers will complain. C ++ is complicated! I started to retreat. Do I really need to learn this database? Can't I simply learn the C ++ language? Frankly speaking, it is impossible to learn any language. If you want to learn a Java program, what company does it want you to do? If you don't know any of its frameworks, is a Python language really so powerful? If it is removed, it comes from many libraries across the globe.

Well, many people decide to stick to it, but they ask me, does my persistence make sense? Is it good for me to suffer? That is to say, everyone will regard the learning of these "databases" as a burden without knowing it! Energy and psychological burden. So next, let me talk about my opinion: the Learning Library is tired, but it is more advantageous.

The process of anyone learning a language is not just "Learning", but also "learning ". The so-called "study" is not a simple "exercise", but an "application ". Isn't it? Just like learning English, it may be okay if you just want to take the test, but it will be hard to learn. If you learn something, you can talk to a foreigner. It will certainly be fun, and the progress will be fast-I can't imagine it! That is completely justified. Last year, because of College Exchange, I exchanged a beautiful German girl who could speak English. I take her to lunch every day, and I have motivation. The effect is good. :)

The databases above have interfaces, databases, games, XML parsing, soap protocols, threads, and networks that are not mentioned ...... Without the optical C ++ language itself, where do we come from? Where does our sense of accomplishment come from? Is it the character interface in the black console? "Hello World" brings fun to C ++ beginners. It is nice to think that it will last for one afternoon.

Some people may take the "bitter" route when learning programming. I don't know how it works. I will learn a little bit about programming by myself, you will want to write a small tool to verify and consolidate your new knowledge in the application, and discover your missing knowledge points, then I learned the new content with questions.

Learning must be of interest. If we only say that "application" is to cultivate the "interest" of learners, then the role of application is underestimated. Please refer to my next article "depth and breadth of C ++ programming"

 

-------------------------------------

If you want to communicate with me, click the following link to become a friend:
Http://student.csdn.net/invite.php? U= 112600 & C = f635b3cf130f350c

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.