26
Neden Üniversitede Java? Akın Kaldıroğlu [email protected] 11 Eylül 2014 www.JavaTurk.org www.javaturk.org

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

  • Upload
    others

  • View
    7

  • Download
    1

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

Ü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

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

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

Ç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

Ç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

Ç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

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

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

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

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

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

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

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

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

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

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

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

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

Dinlediğiniz için teşekkür ederim.

!

Bu sunuma www.javaturk.org adresinden ulaşabilirsiniz.

www.JavaTurk.org

www.java

turk.org