Neden Universide Java? Universide Java?.pdf · Java Nedir? •...
Transcript of Neden Universide Java? Universide Java?.pdf · Java Nedir? •...
![Page 1: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/1.jpg)
Neden Üniversitede
Java? !
Akın Kaldıroğlu [email protected]
!11 Eylül 2014
www.JavaTurk.org
www.java
turk.org
![Page 2: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/2.jpg)
Akın Kaldıroğlu Kimdir?• Akın Kaldıroğlu, Ayvalık’lıdır.
• 1990 İTÜ mezunudur.
• 1993-‐2001 yılları arasında ABD’de Bilgisayar ve Yazılım Mühendisliği yüksek lisans eğitimleri almış ve çalışmıştır.
• Analist-‐programcı olarak başladığı kariyerine Yazılım Mühendisliği ve Java danışmanı ve eğitmeni olarak devam etmektedir.
• www.javaturk.org’da blog yazmaktadır.
• Müzik, felsefe ve çocukları en çok sevdiği hobileridir.
• [email protected] ve sosyal medyadan rahatlıkla ulaşılır.
www.JavaTurk.org 2
www.java
turk.org
![Page 3: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/3.jpg)
Java Nedir?
• Java, 1995 yılında Sun tarafından piyasaya sunulmuş olan, genel amaçlı bir programlama dilidir.
• 2010 yılında Oracle Sun’ı satın alarak Java’nın yeni sahibi oldu.
• Dünyada ve ülkemizde en yaygın olarak kullanılan dillerdendir.
www.JavaTurk.org 3
www.java
turk.org
![Page 4: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/4.jpg)
Bazı Noktalar
• “Üniversite’de Java”dan kasıt, kavramların ve tekniklerin öğretilirken Java’nın kullanılmasıdır.
!
• “Üniversite’de Java” ile sadece programlamaya giriş derslerinde değil, genel olarak Java’nın kullanılması kastedilmektedir.
www.JavaTurk.org 4
www.java
turk.org
![Page 5: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/5.jpg)
Neden Üniversitede Java? - I
• Üniversitelerde öğrencilere Java öğretmenin ya da öğretmemenin pek çok akademik sebebi olabilir:
• Java, C/C++’a göre çok daha düzenli ve soyut bir dildir.
• Java, Smalltalk gibi pure object-‐oriented değildir.
• Python, syntax açısından bir lise mezunu için Java’dan daha basit ve anlaşılırdır.
www.JavaTurk.org 5
www.java
turk.org
![Page 6: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/6.jpg)
Neden Üniversitede Java? - II• Fakat ben, kalkınmakta olan bir ülke olarak, endüstrimiz açısından, üniversitelerde neden Java’nın da öğretilmesi gerektiğine dair bir kaç sebepten bahsetmek istiyorum:
• Bu sebepler,
• diğer diller yanında Java’nın da öğretilmesi gerektigine dairdir,
• ülkemizin yazılım endüstrisi açısından düşünülmüştür,
• dolayısıyla, pratik ve pragmatik sebeplerdir.www.JavaTurk.org 6
www.java
turk.org
![Page 7: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/7.jpg)
Yazılım Kültürümüz Üzerine• Ülkemizde sağlıklı ve derin bir programlama ve yazılım geliştirme kültürü malesef yok.
• Var olan kültürümüz daha çok ya Microsoft teknolojileri (özellikle VB) ya da Cobol-‐RPG gibi eski diller ve Progress, Oracle’in Forms-‐Reports gibi 4th GL üzerine kurulu:
• Drag-‐and-‐drop
• Data-‐oriented
• Programlama birikimimiz çok sığ olduğu gibi bir mühendislik süreci de işletemiyoruz.
• Dünyada yazılım sektöründe rekabet edemiyoruz.www.JavaTurk.org 7
www.java
turk.org
![Page 8: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/8.jpg)
Üniversitelerde Java Öğretilmeli• Java üniversitelerde öğretilmeli çünkü Java,
• dünyada ve ülkemizde, pek çok sektörde ana yazılım geliştirme dilidir ve uzun süre ana akımda olacaktır,
• çok paradigmalı bir programlama dilidir,
• çok geniş bir ekosistem yaratmıştır,
• güçlü ve sağlıklı bir yazılım ve programlama kültürü kazandırır,
• ve açık kaynak kod yaklaşımının destekçisidir.www.JavaTurk.org 8
www.java
turk.org
![Page 9: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/9.jpg)
Ana Yazılım Geliştirme Dili - I• Java, dünya çapında en büyük geliştirme toplumuna sahip olan dildir,
• TIOBE indexinde Eylül 2014’de ikincidir.
• LangPop.com’da göre de ikincidir.
• Dünya çapında 7 ila 10 milyon civarında geliştirici sayısından bahsedilmektedir.
• Dünyadaki programcıların TIOBE’ye göre %17’si, Langpop’a göre ise %15’i Java kullanmaktadır.
www.JavaTurk.org 9
www.java
turk.org
![Page 10: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/10.jpg)
Ana Yazılım Geliştirme Dili - II• Sayısı 250’nin üzerinde JUG’lar son derece faal topluluklardır.
• Yıllık konferanslar, web üzerinden erişilebilen dergi, blog, forum vb. yazılı ve video kaynaklar ile çok zengin bir bilgilenme ortamı sunar.
• Amazon’da Java için 22,710, C++ için 7,322, Python için 3,975, C# için ise 5,016 kitap sonucu gelmektedir.
• Java Community Process (JCP.org), Javacıların Java’nın gelişimini etkileyebilecekleri bir mecradır.
www.JavaTurk.org 10
www.java
turk.org
![Page 11: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/11.jpg)
Çok Paradigmalı Dil - I
• Java, çok paradigmalı bir programlama dilidir:
• Standart prosedürel mekanizmaları ile structured programming öğretilebilir,
• Güçlü nesne soyutlamaları ile OO programlama
• Java SE 7 ile gelen fonksiyonel yapılar
• Scala gibi JVM dilleriyle tam fonksiyonel programlama desteği
www.JavaTurk.org 11
www.java
turk.org
![Page 12: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/12.jpg)
Çok Paradigmalı Dil - II• Programlamaya giriş dersinde kullanılabilir çünkü Java
• statik tiplidir,
• söz dizimi açısından ne çok soyut ne de çok aşağı seviyededir, anlaşılması kolay (intuitive) bir yapıdadır,
• Hem prosedürel hem de nesne yapılarına sahiptir,
• Greenfoot, BlueJ, Dr. Java vb. giriş seviyede, etkileşimli öğrenme ortamları ve araçları mevcuttur,
• Eğitim amaçlı geliştirilmiş, graoik, oyun vb. kütüphanelere sahiptir.
www.JavaTurk.org 12
www.java
turk.org
![Page 13: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/13.jpg)
Çok Paradigmalı Dil - III• Java, aşağıdaki konuları öğretmek için de gerekli bileşen, API vb. yapılara sahiptir:
• Algoritmalar ve veri yapıları,
• Network-‐web-‐mobile programlama,
• Veri tabanı programlama
• Graoik programlama
• İşletim sistemleri, compilerlar,
• Paralel programlama, vb.www.JavaTurk.org 13
www.java
turk.org
![Page 14: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/14.jpg)
Sağlıklı Bir Yazılım Kültürü - I
• Java kültürü, C++ ve Smalltalk üzerine inşa edilmiştir,
• Java kültürü, kaliteli yazılım üretmeye odaklanmıştır,
• Java modern programlama ve yazılım geliştirme teknik ve yaklaşımlarına öncülük eden bir kültüre sahiptir,
www.JavaTurk.org 14
www.java
turk.org
![Page 15: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/15.jpg)
Sağlıklı Bir Yazılım Kültürü - II• Java, hem mimari hem sınıf seviyesinde lowly-‐coupled ve higly-‐cohesive yapılar kurgulamayı destekler,
• APIleri ile “program to an interface, not an implementation” prensibini uygular,
• Katmanlı yapılar, layers-‐tiers, yoğun design patterns kullanımı, component-‐based yaklaşım,
• TDD’dan, continuous integrationa, JavaDoc’a kadar pek çok yeni teknik ve yaklaşım, Java dünyasında keşfedildi/gelişti ve diğer dillere uygulandı.
www.JavaTurk.org 15
www.java
turk.org
![Page 16: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/16.jpg)
Java Bir Ekosistemdir - I• Java çok geniş bir yazılım geliştirme ekosistemidir
• Java SE, standart programlama dili,
• Java EE, kurumsal ölçekteki uygulamalar için her türlü bileşene sahiptir,
• Java ME, mobil platformlar için ciddi bir alternatiftir,
• JavaFX, rich internet applications (RIA) için geliştirilmiştir.
www.JavaTurk.org 16
www.java
turk.org
![Page 17: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/17.jpg)
Java Bir Ekosistemdir - II
• Java ekosisteminde ortaya çıkan ve yazılım ve bilgi teknolojileri dünyasını etkileyen teknolojiler ve yaklaşımlardan bazıları:
• JUnit ile TDD,
• Hadoop ile big data yönetimi,
• Android ile mobil işletim sistemi,
• ve Apache Software Foundation’da pek çok proje…
www.JavaTurk.org 17
www.java
turk.org
![Page 18: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/18.jpg)
Java Virtual Machine• JVM, bir mühendislik harikası olarak, sanal bir makinadan çok daha fazlasıdır,
• JVM, pek çok veri tabanı ve SAP gibi uygulamayla entegredir.
• JVM, üzerinde onlarca farklı amaçlarla geliştirilmiş dilin çalışmasına izin veren sanal bir ortamdır
• Groovy: Dinamik tipli bir dil
• Scala: Fonksiyonel destek
• Jython: JVM’deki Python
• Closure: Fonksiyonel Lisp dialekti
• JRuby: JVM’deki Rubywww.JavaTurk.org 18
www.java
turk.org
![Page 19: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/19.jpg)
Açık Kaynak Kod - I• Java, kendini açık kaynak kod kültürüne elveren bir yapıya sahiptir
• JCP (JCP.org) zaten açık bir ortamdır,
• Java, standardlar üzerine bina edilmiştir,
• Java’nın ve bileşenlerinin açık kaynak kod implementasyonları,
• Uygulama sunucuları, veri tabanları, bileşenler, araçlar, iş yazılımları, vs.
• Java JDK’in kodu bile Mayıs 2007’den bu yana açıktır.www.JavaTurk.org 19
www.java
turk.org
![Page 20: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/20.jpg)
Açık Kaynak Kod - II• Açık kaynak kodlu ürünler, pek çok projenin başlangıç saohasında kullanılabilir,
• Açık kaynak kodlu projeler, çok güzel bir öğrenme ve yardımlaşma ortamı yaratmaktadır,
• Apache Software Faundation’da (ASF) yüzlerce projede 3000 civarında gönüllü çalışmaktadır.
• Açık kaynak kod, ülkemiz için de stratejik olarak önemlidir.
www.JavaTurk.org 20
www.java
turk.org
![Page 21: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/21.jpg)
ABD’nin En İyi Üniversitelerinde
• En son ACM yayınına göre ABD’de CS bölümlerinde, programlamaya giriş dersinde kullanılmada Python ilk sırada, Java ise ikinci sıradadır.
• Bunda Python’un çok basit ve kısa sözdizimi, interpreted yapısı, basit shell arayüzü ve dinamik tip yapısı etkilidir.
• http://javarevisited.blogspot.com.tr/2013/11/java-‐vs-‐python-‐which-‐programming-‐laungage-‐to-‐learn-‐oirst.html
www.JavaTurk.org 21
www.java
turk.org
![Page 22: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/22.jpg)
Türkiye Üniversitelerinde
• C, C++, C#/.NET ve Java yoğun olarak öğretiliyor.
• Hiç Java ile uğraşmadan mezun olanlarla sık sık karşılaşıyoruz.
• C#/.NET, muhtemelen dünya ortalamasının çok üstünde bir oranda öğretiliyor.
www.JavaTurk.org 22
www.java
turk.org
![Page 23: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/23.jpg)
Sonuç• Geniş kullanım alanına sahip olması, sağlıklı bir programlama ve yazılım kültürü kazandırması, üniversitede öğretilebilecek/kullanılabilecek yapıda olması ve açık kaynak kod kültürünü desteklemesinden dolayı üniversitede Java öğretilmeli!
• Bir uygulayıcı olarak, tutkulu, kavram ve teknikleri iyi bilen ve Java ile uygulayan mezunlara ihtiyacımız var.
www.JavaTurk.org 23
www.java
turk.org
![Page 24: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/24.jpg)
Kaynaklar• Olin Shivers, “Why Teach Programming Languages”, 2008 SIGPLAN Workshop on Programming
Language Curriculum , May 29–30, 2008, Cambridge, MA, USA (http://www.ccs.neu.edu/home/shivers/papers/why-‐teach-‐pl.pdf)
• Avinash Kak, “Teaching Programming”, Purdue University, (https://engineering.purdue.edu/kak/TeachingProgramming.pdf )
• David Gries, “Teaching Java –with OO oirst”, (http://www.cs.cornell.edu/gries/programlive/oooirst.pdf)
• http://cacm.acm.org/blogs/blog-‐cacm/176450-‐python-‐is-‐now-‐the-‐most-‐popular-‐introductory-‐teaching-‐language-‐at-‐top-‐us-‐universities/fulltext
• What programming languages do the top tier Universities teach? http://stackoverolow.hewgill.com/questions/644/099.html
• http://en.wikipedia.org/wiki/List_of_educational_programming_languages
• http://javarevisited.blogspot.com.tr/2013/11/java-‐vs-‐python-‐which-‐programming-‐laungage-‐to-‐learn-‐oirst.html
www.JavaTurk.org 24
www.java
turk.org
![Page 25: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/25.jpg)
Kaynaklar• Programming Methodology http://web.stanford.edu/class/cs106a/ , Programming
Abstractions http://web.stanford.edu/class/archive/cs/cs106b/cs106b.1136/ , Object-‐Oriented System Design http://web.stanford.edu/class/cs108/
• Using Java in CS Education http://www.cs.rit.edu/~ncs/Uppsala97/
• TIOBE Index http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
• Programming Language Popularity http://langpop.com/
• https://plumbr.eu/blog/how-‐many-‐java-‐developers-‐in-‐the-‐world ve http://java.dzone.com/articles/how-‐many-‐java-‐developers-‐are
• Seven Java projects that changed the world http://radar.oreilly.com/2011/07/7-‐java-‐projects.html
• Java Is A Dead-‐End For Enterprise App Development http://blogs.forrester.com/mike_gualtieri/10-‐11-‐23-‐java_is_a_dead_end_for_enterprise_app_development
www.JavaTurk.org 25
www.java
turk.org
![Page 26: Neden Universide Java? Universide Java?.pdf · Java Nedir? • Java,&1995yılında&Sun&tarafından&piyasaya& sunulmuşolan,genelamaçlıbirprogramlama dilidir. • 2010yılında&OracleSun’ısatınalarak&Java](https://reader031.fdocuments.net/reader031/viewer/2022011920/6026ea5dfe138f0742150e73/html5/thumbnails/26.jpg)
Dinlediğiniz için teşekkür ederim.
!
Bu sunuma www.javaturk.org adresinden ulaşabilirsiniz.
www.JavaTurk.org
www.java
turk.org