0
1
00:00:02,210 --> 00:00:03,520
Hi there.
1

2
00:00:03,560 --> 00:00:08,930
So, let’s begin the chapter by getting a high-level understanding of what Java is.
2

3
00:00:09,140 --> 00:00:12,660
We will also see how Java is being used in the industry
3

4
00:00:14,140 --> 00:00:22,600
So, what is Java? Java can be broadly defined as, a general-purpose, object-oriented, platform independent, 
4

5
00:00:23,410 --> 00:00:27,040
concurrent programming language that runs very fast
5

6
00:00:27,980 --> 00:00:34,580
General-purpose implies that, it’s not constrained to one particular domain and can be used to develop wide 
6

7
00:00:34,580 --> 00:00:36,260
variety of applications.
7

8
00:00:37,090 --> 00:00:44,440
Java is an object-oriented programming language and object-orientedness helps model real-world scenarios 
8

9
00:00:44,500 --> 00:00:50,710
in a more natural way. The concept of object and object oriented programming will be introduced later
9

10
00:00:52,100 --> 00:00:59,180
Java’s mantra is Write Once, Run Anywhere, i.e., you write a program once and you must be able to run it 
10

11
00:00:59,330 --> 00:01:04,510
on any platform regardless of the operating system & architecture.
11

12
00:01:04,640 --> 00:01:10,910
And this is referred to as platform independence. It is one of the key benefits of Java. Later in
12

13
00:01:10,910 --> 00:01:11,630
the chapter.
13

14
00:01:11,720 --> 00:01:13,440
we will see how this goal is achieved 
14

15
00:01:13,490 --> 00:01:21,540
in Java. Java supports concurrent programming, which is nothing but multi-threading; and this enables programs
15

16
00:01:21,750 --> 00:01:30,460
to perform multiple activities at around the same time. Java is also very fast. It is almost indistinguishable
16

17
00:01:30,550 --> 00:01:34,250
from C & C++. Later in the section
17

18
00:01:34,260 --> 00:01:40,180
we will look at certain aspects of the Java platform, which make Java programs run very fast
18

19
00:01:41,030 --> 00:01:48,170
These are some core attributes of Java. And these attributes make Java, a really solid, a very reliable
19

20
00:01:48,290 --> 00:01:50,870
and a complete programming language.
20

21
00:01:50,930 --> 00:01:54,830
It is currently one of the most widely used programming languages.
21

22
00:01:55,750 --> 00:01:58,910
Java was also built on few additional principles and 
22

23
00:01:58,920 --> 00:02:07,240
let’s look at some of them. Java was invented in the mid nineties and most programmers during early nineties
23

24
00:02:07,390 --> 00:02:09,680
were using C and C++.
24

25
00:02:09,800 --> 00:02:13,930
So, Java’s designer’s wanted to keep the syntax familiar;
25

26
00:02:13,990 --> 00:02:23,320
and so Java’s syntax is kept similar to C & C++. Simplicity was one of the most important goals for 
26

27
00:02:23,320 --> 00:02:25,250
Java’s designers.
27

28
00:02:25,330 --> 00:02:30,830
So, in comparison to C & C++, they wanted Java to be easy to use.
28

29
00:02:30,990 --> 00:02:40,780
For this reason, Java doesn’t have many features, which make C & C++ complex, confusing, and unsafe
29

30
00:02:40,950 --> 00:02:48,420
One example is related to memory management. In C & C++, programmers directly manipulate memory to free 
30

31
00:02:48,420 --> 00:02:49,580
up space.
31

32
00:02:49,820 --> 00:02:55,630
And if this is not done properly it can result in programs getting crashed.
32

33
00:02:55,720 --> 00:03:03,610
In contrast Java is simple and safer as it provides automatic memory management using a feature called
33

34
00:03:03,670 --> 00:03:10,150
garbage collection; and this relieves programmers from directly manipulating memory which in turn makes
34

35
00:03:10,360 --> 00:03:12,650
programming task easier.
35

36
00:03:12,700 --> 00:03:19,870
Garbage collection will be discussed in detail in the JVM internals chapter. Java is also secure.
36

37
00:03:20,050 --> 00:03:26,850
And this is very important as Java programs can be downloaded from across the network and the downloaded
37

38
00:03:26,850 --> 00:03:30,370
programs should not cause any harm to the user's computer.
38

39
00:03:32,020 --> 00:03:34,830
So, we looked at some of the key principles of Java.
39

40
00:03:35,090 --> 00:03:40,240
However, there are few other nice things that Java has to offer.
40

41
00:03:40,300 --> 00:03:48,370
One of them is that Java comes with a rich library, which includes extensive pre-defined functionality and this
41

42
00:03:48,370 --> 00:03:56,220
library is the Java API where API as you may know stands for Application Programming Interface.
42

43
00:03:56,380 --> 00:04:02,740
This helps developers to focus on writing new logic without having to re-invent the wheel
43

44
00:04:03,010 --> 00:04:08,920
i.e., they can simply make use of the pre-defined functionality, which is written by experts and is
44

45
00:04:08,950 --> 00:04:15,250
already being used by millions of programmers. Java is also free.
45

46
00:04:15,250 --> 00:04:20,890
And that's great for everyone including startups and even individual programmers.
46

47
00:04:21,140 --> 00:04:26,420
It would help them to develop and launch their own products without having to invest a lot in the
47

48
00:04:26,420 --> 00:04:27,120
software.
48

49
00:04:29,030 --> 00:04:35,590
As we will see later, Java was initially developed to run inside embedded systems and later within 
49

50
00:04:35,660 --> 00:04:40,160
Web browsers in the form of Java programs called applets.
50

51
00:04:40,180 --> 00:04:47,700
However it soon evolved as a popular language for developing large-scale Web applications, standalone desktop
51

52
00:04:47,700 --> 00:04:50,990
applications and mobile applications.
52

53
00:04:51,160 --> 00:04:56,560
Java provides separate dedicated platforms just for these different types of applications.
53

54
00:04:58,660 --> 00:05:07,010
And this slide highlights how widely Java is adopted. All these large companies like Google, Netflix, Amazon
54

55
00:05:07,010 --> 00:05:09,500
use Java. For instance,
55

56
00:05:09,500 --> 00:05:11,920
Gmail is mostly written in Java.
56

57
00:05:12,750 --> 00:05:18,320
Java was also used by NASA for their Mars Rover project called Spirit.
57

58
00:05:18,350 --> 00:05:24,590
It seems one of the reasons they picked Java is due to its platform independence capability; and this also
58

59
00:05:24,590 --> 00:05:28,680
tells that Java is truly general-purpose programming language
59

60
00:05:28,880 --> 00:05:32,600
, i.e., it is not constrained to only commercial space.
60

61
00:05:32,710 --> 00:05:38,680
Also, when it comes to open source libraries, probably most number of open source libraries are implemented
61

62
00:05:38,680 --> 00:05:43,860
in Java. And the libraries that we see here are extremely popular.
62

63
00:05:43,910 --> 00:05:51,020
For instance, companies like eBay & Apple use Apache Solr for providing search capability within
63

64
00:05:51,020 --> 00:05:58,630
their Websites. Java is also extremely popular in domains such as search, data mining and machine learning, 
64

65
00:05:59,020 --> 00:06:07,710
which are very hot right now and they typically deal with very huge amounts of data. And here is a Job
65

66
00:06:07,710 --> 00:06:13,230
requirement for a machine learning engineer position from Amazon.com in Bangalore, India.
66

67
00:06:16,720 --> 00:06:20,490
And as we can see here the requirement is a solid understanding
67

68
00:06:20,570 --> 00:06:25,900
in Java and object-oriented design; and this course is all about acquiring these skills.
68

69
00:06:26,260 --> 00:06:33,070
So, that’s about what Java is? It was mainly designed to be simple, platform independent, and also very 
69

70
00:06:33,070 --> 00:06:34,550
stable and secure.
70

71
00:06:35,390 --> 00:06:37,460
Performance wise it is very fast.
71

72
00:06:37,460 --> 00:06:41,750
It supports concurrent programming and comes with a rich library
72

73
00:06:41,750 --> 00:06:42,140
Thank you.
