Slide 1

Slide 1 text

1 How to advance your career and have fun, while helping to define the future of Java Patrick Curran, JCP Chair [email protected] @PatrickCurran Riga, Marts 2016

Slide 2

Slide 2 text

2 Gaidīts

Slide 3

Slide 3 text

3 About me Irish by background English by birth American by residence Turkish by marriage

Slide 4

Slide 4 text

4 Glad to be in Latvia (for the first time)!

Slide 5

Slide 5 text

5 Riga jazz

Slide 6

Slide 6 text

6 New York jazz John Coltrane and Charles Mingus

Slide 7

Slide 7 text

7 Music is the universal language

Slide 8

Slide 8 text

8 Music: a universal language! Republic of Congo, 2015

Slide 9

Slide 9 text

9 • Share your passions and your enthusiasm with fellow- developers all over the world. • Make new friends. • Advance your career. • Have fun! Technology: a universal language!

Slide 10

Slide 10 text

10 • No computer science or engineering education. • I was an academic, working on a PhD in economic history and political economy. • Spent years in a library researching by looking up data in physical books, magazines, and manuscripts. • Thought “there will be a better way of doing this in the future”. • Went to technical school to learn to program in assembly language and COBOL. • Talked my way into a junior programming job. How I started my 30+ year IT career

Slide 11

Slide 11 text

11 My first computer IBM 360 mainframe

Slide 12

Slide 12 text

12 How I programmed it Card-punch-machine

Slide 13

Slide 13 text

13 Do not fold spindle or mutilate Invented by Herman Hollerith to tabulate the 1890 census

Slide 14

Slide 14 text

14 My first choice (my first job)

Slide 15

Slide 15 text

15 Suits

Slide 16

Slide 16 text

16 Or geeks?

Slide 17

Slide 17 text

17 My first “personal” computer 1 MHz 6502 processor, 8 Kb memory, external cassette storage

Slide 18

Slide 18 text

18 How I programmed it 6502 assembly language

Slide 19

Slide 19 text

19 • On Friday: “Do you want to work in California for a year to develop a word-processing system in 8080 assembly- language?” • On Monday: “Why not? (What do I have to lose?)” • That was 1982 – I’m still there. My second job

Slide 20

Slide 20 text

20 My word-processor Lexitron VT 1303 word-processor

Slide 21

Slide 21 text

21 • The word-processors were successful, but Raytheon Data Systems (whose primary business was missiles) were completely incapable of developing a distributed office- automation system in the early 1980s. • They ran Lexitron Corporation into the ground, and I was out of a job. • I was recruited by Interactive Systems Corporation – the first company to commercialize UNIX. • I managed a team developing an emulation of UNIX that ran on DEC’s VMS. My third job

Slide 22

Slide 22 text

22 • Later I helped to port UNIX to a variety of hardware systems (minicomputers from Data General, Prime), mainframes (Hitachi, IBM) and later PCs. My fourth job • We ported UNIX System III to the original IBM PC XT (4 MHz 8088 processor, 640 KB of memory, 10 MB hard disk).

Slide 23

Slide 23 text

23 How to hire a smart programmer?

Slide 24

Slide 24 text

24 • Scott McNealy from Sun Microsystems decided to buy the Interactive Systems UNIX porting business as a backup in case PCs overtook Sun workstations. • We forked Solaris from the SPARC code, ported it to Intel, and then I managed the process of merging the two source- bases. • Then I managed kernel and device-driver development work for Solaris/Intel. • Much work was outsourced to Ireland. • Until Sun decided to dump the project and lay off all of my team. My fifth job

Slide 25

Slide 25 text

25 • I managed to find another job inside Sun, developing the conformance test suites (TCKs) for Java SE and Java ME. • Most of my developers were in Russia (Novosibirsk, Siberia and St. Petersburg). My sixth job

Slide 26

Slide 26 text

26 I love to travel!

Slide 27

Slide 27 text

27 • My manager (who was the Chair of the JCP) said “do you want to take over?” • It was clear I didn’t really have a choice but I jumped at the chance anyway. • Yaay – more opportunities to travel. • And then it was now. My seventh job

Slide 28

Slide 28 text

28 • I expected (planned?) to become a university professor. • Instead, I ended up in the IT industry. • When I started we had: • no laptops, • no networking, • no email, • no internet, • no bitmapped displays or GUIs, • no cellphones. • You couldn’t predict how things would be five years ahead, and certainly not ten or twenty years ahead. • All we can predict is that things will change – in ways we did not expect. Plan for change!

Slide 29

Slide 29 text

29 Cray XMP supercomputer ($10 million)

Slide 30

Slide 30 text

30 • I had seven jobs, but all of them “flowed” from the first. • All you can do is to position yourself where opportunities will occur, and then seize the most interesting ones that present themselves. Learn to be a surfer • Find some good waves, choose an interesting one, and jump on. • It may not take you where you expected, but you will have fun along the way.

Slide 31

Slide 31 text

31 • Connect • Collaborate • Create • Make music together! Teamwork creates opportunities

Slide 32

Slide 32 text

32 Standards make the world go round

Slide 33

Slide 33 text

33 Multiple implementations

Slide 34

Slide 34 text

34 Industrial-strength systems

Slide 35

Slide 35 text

35 Languages & protocols

Slide 36

Slide 36 text

36 Interfaces

Slide 37

Slide 37 text

37 Java standards

Slide 38

Slide 38 text

38 • Unlike Windows, where what you get is what Microsoft (perhaps after secretive consultation with its biggest customers) decides you should get… • Java is developed through the Java Community Process. • Java specifications (JSRs) are developed collaboratively through an open, formal process similar to that used by other standards organizations. All interested members of the Java Community may participate. • Oracle’s competitors are active participants. • IBM, HP, and RedHat to name a few. • The Open Source and developer communities are also represented. • The Eclipse Foundation, Java User Groups. For the community, by the community

Slide 39

Slide 39 text

39 Java SE 8: JSR 337 (March 2014)

Slide 40

Slide 40 text

40 Java ME 8: (JSRs 360 & 361) – April 2014

Slide 41

Slide 41 text

41 Java EE 7: (JSR 342) – May 2013

Slide 42

Slide 42 text

42 How do we do it? • Java Specification Requests (JSRs) • A JSR is a single version of a Java specification. • JSRs are led by a community member (the Spec Lead), with a group of interested members (the Expert Group) helping with the day-to-day decisions and work. • Any JCP member can submit and lead a JSR. • Each Expert Group must deliver: • The Specification • A Reference Implementation (RI) • A Technology Compatibility Kit (TCK)

Slide 43

Slide 43 text

43 Deliverables • Specification Reference Implementation Can you build an implementation? Is the specification unambiguous? Is the TCK correct? Does the RI conform? Technology Compatibility Kit

Slide 44

Slide 44 text

44 Compatibility testing

Slide 45

Slide 45 text

45 Compatibility guarantee

Slide 46

Slide 46 text

46 Organization

Slide 47

Slide 47 text

47 Executive Committee members ARM Azul Systems Credit Suisse Eclipse Foundation Ericsson Freescale Fujitsu Gemalto M2M Goldman Sachs Hazelcast HP IBM Intel Werner Keil London Java Community Geir Magnuson MicroDoc Oracle Red Hat SAP Software AG SouJava TOTVS Twitter V2COM

Slide 48

Slide 48 text

48 The membership • Anyone can join. • Total membership is approximately 900. • 3700 registered users at jcp.org. • No membership fees! • Membership distribution by type: • 76% individual. • 16% corporate. • 8% non-profit (mostly JUGs). • Membership distribution by location: • 40% North America. • 41% Europe, Middle East, Africa • 13% Asia • 6% South America

Slide 49

Slide 49 text

49 The JSR development cycle • Includes formal public reviews and votes by the Executive Committee. • See the Process Document for the details.

Slide 50

Slide 50 text

50 Changing the Constitution

Slide 51

Slide 51 text

51 Legal framework and governance • The Java Specification Participation Agreement (JSPA) • A legal contract between members and Oracle. • Addresses Intellectual Property (IP) grants and the terms under which the Spec, RI, and TCK must be licensed. • http://www.jcp.org/aboutJava/communityprocess/JSPA2.pdf. • The Process Document • Defines the governance of the organization. • Defines the processes that are used to submit define, develop, review, approve, and maintain specifications. • Defines the obligations to produce an RI and TCK. • http://jcp.org/en/procedures/jcp2.

Slide 52

Slide 52 text

52 Using the Process to change the Process • We modify the Process (as defined in the JSPA and the Process Document) by filing JSRs. • The Chair is the Spec Lead and the Executive Committee members form the Expert Group for these JSRs. • Process-change JSRs go through all of the same stages as regular JSRs. • The output is a new version of the Constitution. • Since 2011 we have been working on a series of JSRs, collectively referred to as JCP.next, to reform the our processes.

Slide 53

Slide 53 text

53 JCP.next.1 (JSR 348)

Slide 54

Slide 54 text

54 JSR 348 – No more smoke-filled rooms • This JSR implemented a number of relatively simple but significant changes to make our processes more transparent and to enable broader participation. • Expert Groups must do their work in the open, using public mailing-lists and public Issue Trackers. • They must enable the public to observe and review their work, and must respond to public comments. • The JSR was completed in October 2011, and defined version 2.8 of the Process Document. • As a result we saw a significant increase in developer participation in the JCP, primarily through Java User Groups and the Adopt-a-JSR program.

Slide 55

Slide 55 text

55 JCP.next.4 (JSR 364)

Slide 56

Slide 56 text

56 JSR 364 – Broadening JCP membership • Goal: encourage more individuals to join and participate in the JCP while ensuring that we have appropriate IP commitments from all members. • New Associate membership class for individuals with a much simpler membership agreement. • No lawyers and no employer approval required. • Associates can be formally recognized as Contributors to a JSR. • New Partner membership class for Java User Groups that are not legal entities. • Free membership for corporations. • Final Ballot closes tomorrow.

Slide 57

Slide 57 text

57 Putting the community back into the JCP • JSR 348 enabled you to observe and to participate in the development of Java specifications. • JSR 364 will make it even easier for you to join the JCP. • A future JSR will embrace open-source development processes. • No more barriers to participation! • If you care about the future of Java you have no excuse...

Slide 58

Slide 58 text

58 Get involved!

Slide 59

Slide 59 text

59 • As a corporation: • To influence the technologies that drive your market. • Because it's cheaper than developing everything yourself. • To provide opportunities for your developers. • To increase the size of your market. • To gain a competitive advantage (ship new products faster.) • As an individual: • Good karma! • Experience. • Fame and fortune. Why participate?

Slide 60

Slide 60 text

60 How to participate? • As an individual – OK. • As part of a team – better. • Work through your JUG. • Help each other. • Teach each other. • Work with each other.

Slide 61

Slide 61 text

61 JUG members Austin JUG BeJUG (Belgium) BreizhJUG (Brittany) CEJUG (Brazil) Central Ohio JUG (USA) Chicago JUG ChinaNanjingJUG Connecticut JUG (USA) Detroit JUG (USA) Duchess (Women) ESPRIT Tunisian JUG (Tunisia) FASOJUG (Burkina Faso) Green Tea JUG (China) Houston JUG (USA) iJUG e.V. (Germany) IndiJava (India) ITP_JAVA (Peru) Japan JUG Java Hellenic User Group (Greece) Java Student User Group (Vienna) Java Web User Group (London) Jozi JUG (South Africa) JUG-AFRICA JUG Chennai (India) JUG-Cologne (Germany) JUG-EG (Egypt) JUG Frankfurt [JUGF] (Germany) JUG Indonesia JUG JogLoSemar (Indonesia) JUG-MK (Macedonia) JUG-RU (Russia) JUG-USA London Java Community (UK) Malaysia-JUG MoroccoJUG Nashville JUG (United States) Oklahoma City JUG (USA) Rio JUG (Brazil) Riviera JUG (France) Ruhrjug (Germany) Silicon Valley JavaFX User Group (USA) SouJava (Brazil) Utah JUG (USA) Vancouver Island JUG (Canada)

Slide 62

Slide 62 text

62 JUG representation on the EC • SouJava (Bruno Souza, Otavio Santana, Yara Senger): • Nominated by Oracle to a ratified seat on the SE/EE EC in the May 2011 Special Election. • London Java Community (Ben Evans, Martijn Verburg, Trisha Gee): • Won an elected seat on the SE/EE EC in the May 2011 Special Election and re-elected in 2012. • Both have already made significant contributions to the JCP.

Slide 63

Slide 63 text

63 Adopt a JSR! Thank you and

Slide 64

Slide 64 text

64 An international effort

Slide 65

Slide 65 text

65 • 28+ JUGS participating: • South America: Campinas JUG (Brazil), ceJUG (Brazil), GOJava (Brazil), SouJava (Brazil), Brasilia, DF JUG (Brazil), GUJ Londrina (Brazil) Peru JUG, Guadalajara JUG (Mexico), GUJavaSC (Brazil). • North America: Chicago JUG, Silicon Valley JUG, Houston JUG (USA), Toronto JUG (Canada). • Europe: London Java Community (UK), BeJUG (Belgium), Madrid JUG (Spain), JUG Cologne (Germany), Istanbul JUG (Turkey). • Asia: Indonesia JUG, JUG JogLoSemar (Indonesia), Hyderabad JUG (India), JUG Chennai (India). • Africa & Middle East: EGJUG (Egypt), Morocco JUG, Faso JUG (Africa), Jozi JUG (South Africa), Mbale (Uganda). Java User Group adopters

Slide 66

Slide 66 text

66 What's in it for me? • Advance your career. • Grow your network and reputation. • Make new contacts. • Improve your “soft skills.” • Verbal and written communications. • Negotiation. • Collaboration. • Teamwork. • Have fun!

Slide 67

Slide 67 text

67 You don’t have to be a technical expert... • Help to moderate the mailing lists; steer towards helpful conversations • Evangelize the JSR through social media, blogging, presentations, or lightning talks. • Help with documentation. • Translate into your native language. • Help to maintain the FAQ/Wiki. • Improve project infrastructure and JSR visibility. • Help set up JSR hosting (java.net, GitHub, etc.) • Help with Search Engine Optimization of website. • Ensure that downloads, mailing lists, issue trackers are easy to find.

Slide 68

Slide 68 text

68 But if you are, or want to learn... • Help to manage issues: reproduce problems, erase/merge duplicates, set priorities/categories etc. • Think about how you would use the JSR in the real world and give feedback on its design. • Port existing software or develop new programs to test the RI (the actual implementation of the spec); provide feedback and report bugs. • Help to develop the TCK and use it to test the RI. • Help to develop the RI itself.

Slide 69

Slide 69 text

69 Participate in OpenJDK • Go to http://java.net/projects/adoptopenjdk. • Join the mailing list. • Join the IRC channel. • Or contact your local JUG leader.

Slide 70

Slide 70 text

70 Or Project Glassfish http://glassfish.org https://glassfish.java.net/adoptajsr/

Slide 71

Slide 71 text

71 Make the future Java

Slide 72

Slide 72 text

72 Questions?