国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Sorry Java, but C++ Wants to Get on the Podium of Programming Languages

原創 精選
Techplur
In the latest TIOBE Index for June 2022, C++ is ranked fourth, behind Python, C, and Java. Considering how popular C++ has become in the past year, could it soon overtake Java and return to the top th

In the recent TIOBE Index for June 2022, it is Python that tops the charts, followed by C, Java, C++, and C#. Compared to the same period last year, C++ has seen a significant increase in market share, while Java has gradually become less popular. Based on the current trend, C++ may overtake Java in the near future.


A step up for C++, a step back for Java

The software quality company highlighted this significant change in its latest index with the eye-catching headline "C++ is about to surpass Java." First released in 1995, Java has long been regarded as an evergreen language. Despite this, Java is inevitably suffering losses as other languages catch up, so the industry has begun to wonder whether it can maintain its position.

Paul Jansen, TIOBE's CEO, had made some predictions that C++ might be the next language to overtake Java. In the latest index, C++ holds a 9.63% share with a 2.26% increase to catch up to Java, which is down 1.07% to 10.47% and has also reduced the gap with C++ to 0.84%.

As Jansen said, "High level programming with performance is C++'s key reason why it is doing so well. The C++ language is revised every 3 years. Such revisions contain ground-breaking new features, which get the language on par with C# and Java, but without the performance penalty of a garbage collector. Let's see where C++ is heading the next few months."

Moreover, it is noteworthy that C++'s share of the TIOBE programming language index from April to June 2022 increased. From April to June, C++'s growth rates were 1.14%, 1.01%, and 2.26%, while Java's was -0.41%, -0.74%, and -1.07%.


Feature comparison between C++ and Java

It is interesting to note that C++ is the predecessor of Java. Thirty years ago, James Gosling, an engineer at Sun, led his team in reshaping C++. A few impractical aspects of C++ have been removed and combined with the real-time requirements of embedded systems to develop Oak, an object-oriented programming language. A three-year process of iterations and upgrades coincided with the rise of the Internet, which led to the renamed Java's success as an object-oriented, "Write Once, Run Anywhere" programming language. Java's object model is almost a simplified version of C++. Despite this, there are some significant differences between the two.


Table 1: C++ features that Java lacks

Features

C++

Java

Notes

Multiple inheritance (MI)

Yes

No

Java introduces the concept of interfaces, and it is possible to implement various interfaces simultaneously. Because interfaces also possess polymorphic properties, multiple interfaces can be implemented in Java to accomplish similar goals as MI in C++.


Preprocessor

Yes

No

Java does not include a preprocessor but provides an import mechanism similar to the C++ preprocessor.



GoTo statement

Yes

No

GoTo is a reserved keyword in Java.

Automatic type conversion

Yes

No

The Java programming language does not support automatic type conversion, which may result in unsafe programs. It utilizes explicit type conversion, which can be enforced by the programmer.

Struct and Union

Yes

No

All members of Struct and Union are public in C++, which can cause security problems. While Java does not contain Struct or Union, everything is encapsulated inside types.

Default arguments

Yes

No


Operator overloading

Yes

No



Table 2: Java features that C++ lacks

Features

Java

C++

Notes

Automatic garbage collection

Yes

No

There is an automatic garbage collection feature in Java that eliminates the need for the program to explicitly manage the allocation of memory. 


While C++ requires developers to handle memory allocation (including requesting and releasing), this means placing resource-releasing codes into the destructor. 


A finalize() method is introduced in Java, and when the garbage collector is about to release memory of a useless object, it will call its finalize() method, preventing developers from having to worry about when memory space will be released.

Standard libraries

Yes

No

There are a number of standard libraries included with Java that perform specific tasks. For example, Java provides a JDBC API for accessing databases and RMI for implementing distributed objects.

In contrast, C++ relies on non-standard libraries provided by other vendors.

Reflection mechanism

Yes

No

A reflection mechanism in Java allows self-checking at runtime as well as manipulation of internal members, while a similar mechanism does not exist in C++.

String class

Yes

No

Java's string class is not an add-on extension but a part of it, and the method of creating and accessing string elements is consistent throughout the system. In C++, string variables are not supported; instead, Null is used as the string terminator.


Built-in support for annotation documentation

Yes

No


Language Type

Interpreted 

Compiled

Java is an interpreted language whose source code is compiled into bytecode by the Java compiler and then interpreted and executed by the Java Virtual Machine. 


C++ is a compiled language in which the source code is compiled and linked to produce executable binary code. Therefore, Java executes slower than C++, but it can be executed across platforms, while C++ cannot.

Programming model

Object-oriented programming

Object-oriented and procedural programming

All Java code (including functions, variables, etc.) must be implemented in classes, and every type except for basic data types (such as int, float, etc.) resides in a class. 


Moreover, Java does not support global variables or global functions, whereas C++ supports both object-oriented and procedural-oriented programming, and can define global variables and global functions.


Pointers 

No

Yes

Java does not have the concept of pointers, eliminating the potential problems associated with manipulating pointers in C++, thus making the program safer.



What features of C++ cannot be replaced by Java?

A thorough understanding of the future trends of both languages requires an examination of their irreplaceability. Programmer Xiao Can offers his opinion on which C++ features cannot be replaced by Java. "The work I do involves the development of game servers. Many people with limited or no experience in this area may not comprehend the sense of accomplishment that comes from knowing that the program you developed runs on a computer and offers a pleasant gaming experience to thousands of users."

From his working experience, he noted that you could predict how much memory will be required, how much network traffic will be needed, how each bit of data flows between the server and the client, and how each int will be distributed in memory.

"It is very elegant, like an infinitely differentiable function." Xiao Can commented, "C++ is like a sharp knife, cutting through tough rocks like butter, enabling you to gracefully break them apart."

Another programmer, whose nickname is West, believes that each language's performance makes a difference. Despite Java's years-long efforts to make its performance closer to C or C++, there remains a gap between Java and native applications. This is not evident in common applications. However, it is crucial for applications with high-performance requirements.

According to him, 3D games like to use up the hardware capacity, so besides the hardware, we have to take Java's performance into account. Most games are still written in C++, even though it is a Java-based platform such as Android.


Comments from Developers

Conclusion

C++ and Java are constantly evolving and improving to be more efficient, offering their advantages for different tasks. In terms of mastering a language, C++ has a steep learning curve, but few people are determined to learn it as a result. It is true that Java is easier to learn and use, but its competition is fierce. Thus, it is a matter of personal preference. It will be interesting to see whether C++ will succeed in overtaking Java in the coming years.

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2022-08-31 14:41:53

PythonGoDevelopmen

2011-07-20 17:31:12

C++

2011-07-20 17:48:07

C++

2011-07-14 17:45:06

CC++

2010-01-21 14:07:14

CC++聲明

2010-01-27 16:05:06

C++堆棧

2010-01-21 09:34:57

C++語法

2011-07-15 00:47:13

C++多態

2010-01-26 15:51:06

C++變量

2010-01-28 13:45:06

C++數組

2015-07-07 11:03:15

Java C++JavaCPP

2010-01-21 13:33:44

C++基類

2010-01-20 10:19:55

C++數組

2020-08-21 13:20:36

C++If ElseLinux

2010-01-25 10:25:19

C++變量

2010-01-28 16:31:54

C++類型

2010-01-27 17:16:52

C++構造函數

2011-07-10 15:26:54

C++

2009-09-11 09:15:06

C# get方法

2009-09-10 14:52:55

C# get
點贊
收藏

51CTO技術棧公眾號

免费h片在线观看| 国产在线视频91| www.日本xxxx| 一区二区亚洲精品国产| 欧美在线日韩精品| 成人在线免费观看网址| 欧美精品制服第一页| www黄在线观看| 亚洲欧美一区二区三区久本道91| 青娱乐一区二区| 欧美激情视频一区二区三区免费| 97国产精品免费视频| 欧美在线se| 亚洲福利精品在线| av毛片在线看| 56国语精品自产拍在线观看| 青青色在线视频| 婷婷六月综合亚洲| 最近最好的中文字幕2019免费 | 天天爱天天做天天操| 亚洲在线电影| 成人精品一二区| 黄色亚洲大片免费在线观看| 国产精品99久久久久久久vr| 久久99精品久久久久久久青青日本| 欧美三级网页| 久久av一区二区| 美女性感视频久久| 熟女视频一区二区三区| 美女视频一区在线观看| 日韩av图片| 国产自产视频一区二区三区| 日韩国产小视频| 成人精品小蝌蚪| 亚洲精品午夜在线观看| 国产精品视频九色porn| 美女无遮挡网站| 婷婷综合在线观看| 日本在线视频观看| 日韩av在线直播| 久久精品嫩草影院| 日本免费在线精品| 在线观看视频免费一区二区三区| 欧美视频小说| www.av精品| 缴情综合网五月天| 欧美视频中文在线看| 97在线观看免费观看高清 | 亚洲国产精品t66y| 国产美女在线免费观看| 午夜精品久久久久久久久久 | 成人精品一区二区三区电影黑人| 亚洲最新色图| 天堂√在线观看一区二区| 国产一区二区福利视频| 黄色影院一级片| 亚洲成在人线免费| 暧暧视频在线免费观看| 久久久久久中文字幕| 国产伊人精品| 性欧美大战久久久久久久| 亚洲一卡二卡三卡四卡无卡久久| 日本精品在线| 久久手机免费视频| 一区二区三区网站| www.avtt| 欧美日韩国产综合新一区 | 91电影在线观看| 国产免费不卡| 国产成人精品优优av| 日韩1区2区日韩1区2区| 日本激情视频在线播放| 欧美猛男gaygay网站| 老司机亚洲精品一区二区| 5566中文字幕一区二区| 国产99久久久国产精品潘金 | 色老头视频在线观看| 久久久精品在线| 中文字幕一区二区三区久久网站| 一本大道东京热无码aⅴ| 亚洲午夜一区二区| 99re66热这里只有精品4| 91免费视频国产| 99精品一区二区| 日本综合在线| 国产91精品久久久久久久| 日韩二区在线观看| 在线看你懂得| 日韩一区二区久久久| 亚洲一区二区三区四区五区午夜| 99色在线播放| www..com久久爱| 粉嫩绯色av一区二区在线观看| 成人av影视| 亚洲欧美成人一区二区在线电影| 精品久久久久久久| 欧美成人xxxxx| 亚洲第一页自拍| 亚洲精品成人影院| 久久婷婷综合色| 正在播放亚洲1区| 久久精品动漫| 在线观看免费网站| 理论片在线不卡免费观看| 先锋a资源在线看亚洲| x88av蜜桃臀一区二区| 久久91亚洲精品中文字幕奶水| 青青国产91久久久久久| 国产真实伦在线观看| 欧美精品videosex牲欧美| 雨宫琴音一区二区三区| 国产精品美女www爽爽爽视频| 免费污视频在线一区| 欧美激情伊人电影| 久久国产一二区| wwwwww欧美| 日本成人中文字幕在线视频 | 亚洲美免无码中文字幕在线 | 国产亚洲婷婷免费| 伦理在线一区| 91色精品视频在线| 亚洲乱码一区二区三区在线观看| 久久亚洲精品爱爱| 黄色小视频大全| 亚洲精品一线二线三线无人区| 欧美久久影院| 青青久草在线| 91久久精品国产91久久性色tv | 蜜臀av午夜一区二区三区| 国产亚洲视频在线观看| 国产精品香蕉一区二区三区| 国产激情在线播放| 国产精品av免费| 亚洲国产精彩中文乱码av在线播放| 久久久久久9| 久久av色综合| 成人午夜免费剧场| 色老头一区二区三区在线观看| 国产成人精品免费| 激情亚洲小说| 成人3d动漫一区二区三区| 欧美成人免费全部| 国产精品精品国产色婷婷| 欧美激情99| 嘿咻视频在线看| 午夜久久影院| 91久久影院| 成人国产精品一区二区| 亚洲高清在线精品| 日韩1区2区| 在线观看亚洲色图| 97人人模人人爽人人少妇| 国产精品久久观看| 永久免费在线观看| 高清国产一区| 欧美一区二区三区色| 奇米色777欧美一区二区| 黄色国产网站在线播放| 欧美日韩另类综合| 国产亚洲在线播放| 中文字幕 久热精品 视频在线| 国产videos久久| 男女av在线| 日韩色妇久久av| 国产亚洲精品久久久| 中文一区一区三区高中清不卡| 精品国产91乱码一区二区三区四区 | 国产九九在线视频| 国产精品久久久久久久久粉嫩av| 欧美自拍偷拍一区| 日韩电影在线一区| 99国内精品久久久久| 两个人hd高清在线观看| 日本午夜一区二区三区| 国产一区二区三区视频在线观看| 中文文精品字幕一区二区| 日韩亚洲一区在线| 在线能看的av网址| 成人午夜激情| 日本一区不卡| 久久久影视精品| 欧美另类z0zxhd电影| 国产精品一区不卡| 自拍亚洲一区| 欧美午夜大胆人体| 97超碰在线资源站| 麻豆精品传媒视频| 欧美高清在线播放| 在线观看日韩精品| 99久久伊人网影院| 在线国产日韩| 视频精品一区| a天堂中文在线官网在线| 国产男女免费视频| 91日韩在线视频| 中文国产亚洲喷潮| 色婷婷久久99综合精品jk白丝| 国产成人免费av在线| 影音先锋日韩精品| 久久国产精品免费一区二区三区|