tm a quick look
play

TM : A Quick Look Java TM : A Quick Look Java somchaip@chula.ac.th - PowerPoint PPT Presentation

TM : A Quick Look Java TM : A Quick Look Java somchaip@chula.ac.th somchaip@chula.ac.th Programming Languages Programming Languages 1957 1957 : : Fortran Fortran 1959 1959 : : Cobol, Lisp Cobol, Lisp 1964 1964 :


  1. TM : A Quick Look Java TM : A Quick Look Java somchaip@chula.ac.th somchaip@chula.ac.th

  2. Programming Languages Programming Languages � 1957 1957 : : Fortran Fortran � � 1959 1959 : : Cobol, Lisp Cobol, Lisp � � 1964 1964 : : Basic Basic � � 1971 1971 : : Pascal Pascal � � 1972 1972 : : C, Prolog C, Prolog � � 1983 1983 : : C C+ + + + � � 1995 1995 : : Java Java � � 2001 2001 : : C# , J# C# , J# �

  3. Sun’ ’s Green Project s Green Project Sun � 1990 1990 : : Sun Sun’ ’s Green project s Green project � – “ “The convergence of digitally controlled The convergence of digitally controlled – consumer devices and computers. .” ” consumer devices and computers � 1992 1992 : : StarSeven StarSeven (* (* 7 7) ) handheld handheld � wireless PDA using Oak as prog prog. lang. . lang. wireless PDA using Oak as – * 7 went ch11 * 7 went ch11 – � 1995 : Oak was renamed to Java at 1995 : Oak was renamed to Java at � the time when Internet & WWW was the time when Internet & WWW was booming. booming.

  4. Java Technology Java Technology � Java Programming Language Java Programming Language � � Java Platform Java Platform � – Java Virtual Machine Java Virtual Machine – – Java API Java API –

  5. Java VM Java VM � Solaris Solaris � PDA PDA � � � Linux Linux � Java Java- -enabled cell enabled cell � � phones phones � Windows Windows � � GameBoy GameBoy Advance Advance � � Mac OS X Mac OS X � � ... ... � � HP HP- -UX UX � � IBM IBM- -AIX, OS/390 AIX, OS/390 �

  6. Java API Java API version # packages packages # classes classes version # # 1.0 8 212 1.0 8 212 1.1 23 504 1.1 23 504 1.2 59 1520 1.2 59 1520 Java 2 1.3 76 ~ 1800 1.3 76 ~ 1800 1.4 135 ~ 2800 1.4 135 ~ 2800 1.5 ??? ???? 1.5 ??? ????

  7. Java Platforms Java Platforms � Standard Edition Standard Edition ( (J2SE J2SE) ) � – client client- -side general side general- -purpose applications purpose applications – � Enterprise Edition Enterprise Edition ( (J2EE J2EE) ) � – multi multi- -tier server tier server- -centric applications centric applications – � Micro Edition Micro Edition ( (J2ME J2ME) ) � – consumer and embedded devices consumer and embedded devices –

  8. Java Technology Java Technology � James Gosling : James Gosling : � – “… “… software VLSI, end software VLSI, end- -to to- -end, side end, side- -to to- - – side, homogenous view of heterogeneity side, homogenous view of heterogeneity reality ...” ” reality ...

  9. 2003 Java Logos Java Logos 1995 2002 -

  10. Sun's Stat. Sun's Stat. � 500 million desktop PCs run Java applets 500 million desktop PCs run Java applets � � 3 million 3 million+ + professional Java developers professional Java developers � � Of all Java developers Of all Java developers ( (Evans Data, 2002 Evans Data, 2002): ): � – 58% develop desktop applications 58% develop desktop applications – – 50% develop intranet applets 50% develop intranet applets – – 38% develop internet applets 38% develop internet applets – � > 36 million Java runtime > 36 million Java runtime env env. downloads . downloads � � JRE downloads surging, now about 3 million JRE downloads surging, now about 3 million � per month per month

  11. Why Java ? Why Java ?

  12. Popularity Popularity Position Program m ing Language Ratings Java 1 47.4 2 C 36.7 C + + 3 33.8 Perl 4 18.3 ( Visual ) Basic 5 15.2 PHP 6 9.5 SQL 7 6.1 C # 8 4.1 9 Delphi / Pascal / Kylix 3.8 JavaScript 10 3.7

  13. The Biggest Open Problem The Biggest Open Problem I n Programming Languages I n Programming Languages � Increasing Programmer Productivity Increasing Programmer Productivity � – Write programs correctly Write programs correctly – – Write programs quickly Write programs quickly – – Write programs easily Write programs easily – http://research.microsoft.com/~toddpro/papers/disruptive.ppt

  14. Java Programming Lang. Java Programming Lang. � James Gosling : James Gosling : � – Life is too short, Java lets him do more Life is too short, Java lets him do more – coding, less debugging coding, less debugging – Java beats C and C+ + by a factor of 2 in Java beats C and C+ + by a factor of 2 in – developer productivity. developer productivity.

  15. Java : Design Goals Java : Design Goals Java technology must enable the development of secure, high performance, and highly robust applications on multiple platforms in heterogeneous, distributed networks.

  16. Java Programming Lang. Java Programming Lang. � Simple, Familiar, Object Simple, Familiar, Object- -Oriented Oriented � � Robust, Secure Robust, Secure � � Architecture Neutral, Portable Architecture Neutral, Portable � � High Performance High Performance � � Interpreted, Threaded, Dynamic Interpreted, Threaded, Dynamic � Platform independence is the main reason for using Java (ComputerWorld’s survey)

  17. Simple, Familiar, and OO Simple, Familiar, and OO � easily program easily program � � Bill Joys : Java = C+ + Bill Joys : Java = C+ + - - - - � � provide a clean & efficient object provide a clean & efficient object- -based based � development platform development platform

  18. Robust and Secure Robust and Secure � Robust Robust � – strict compile time checking strict compile time checking – – strict run strict run- -time checking time checking – – automatic garbage collection automatic garbage collection – – support exception handling & assertion support exception handling & assertion – � Secure Secure � – no pointer no pointer – – verify verify bytecode bytecode before class loading before class loading – – sandbox sandbox –

  19. Arch Neutral & Portable Arch Neutral & Portable � Write Once Run Anywhere (WORA) Write Once Run Anywhere (WORA) � – compiled to Java compiled to Java bytecode bytecode – – run on Java VM run on Java VM – – fixed sizes, formats, and behaviors of all fixed sizes, formats, and behaviors of all – primitive data types primitive data types – behave (almost) the same on multi behave (almost) the same on multi- - – platforms platforms � solve distribution & version problems solve distribution & version problems � � can be deployed into heterogeneous can be deployed into heterogeneous � network environments network environments

  20. High Performance High Performance � Hotspot VM is highly tunable Hotspot VM is highly tunable � � the garbage collector runs as a low the garbage collector runs as a low- - � priority thread priority thread � support native codes for compute support native codes for compute- - � intensive operations intensive operations � JVM performance keeps improving JVM performance keeps improving �

  21. I nterpreted, Thread, Dynamic I nterpreted, Thread, Dynamic � linking is lightweight and incremental linking is lightweight and incremental � � faster development cycle faster development cycle � � support multithreading at the support multithreading at the � language level w/ sync. primitives language level w/ sync. primitives � language and run language and run- -time system are time system are � dynamically linked on demand dynamically linked on demand

  22. Java’ ’s WORA s WORA Java � promote readability promote readability � � Java code will survive. Java code will survive. � � Write today, use next year. Write today, use next year. � � Easy to maintain at a fixed level of functionality Easy to maintain at a fixed level of functionality � � Java enables evolution Java enables evolution � – bad code dies bad code dies – – good code lives on (modified, evolves, good code lives on (modified, evolves, – becomes better) becomes better) http://www.wgrosso.com/Articles/Presentations/PresentationonJavaasaProg.html

  23. WORA = = Community WORA = = Community � Reuse lots of code from different places Reuse lots of code from different places � – Very little need to worry about platform Very little need to worry about platform – dependencies dependencies – Widespread adoption of coding conventions Widespread adoption of coding conventions – – And large And large- -scale libraries scale libraries – � New programming style New programming style � – Write Half, Steal the Rest Write Half, Steal the Rest – http://www.wgrosso.com/Articles/Presentations/PresentationonJavaasaProg.html

  24. Language Features Language Features � 1995 (1.0) : first public release 1995 (1.0) : first public release � � 1997 (1.1) : nested classes 1997 (1.1) : nested classes � � 2001 (1.4) : assert 2001 (1.4) : assert � � 2003 (1.5) : 2003 (1.5) : � – generics, generics, enum enum, enhanced for, , enhanced for, – autoboxing/unboxing, , varargs varargs, static , static autoboxing/unboxing import, metadata. import, metadata. increase expressiveness, increase safety

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend