Why Python so popular now?

I would like you to tell about why Python programming language is becoming more popular nowadays. Python language is invented by Guido van Rossum in 1991. Its main target was code readability. From 2003 Python programming language entered the most popular programming languages and this popularity increasing linearly. You willl see popularity of a programming language index graph between 2003–2013. This graph is created by Google Trends data which is based on how often language tutorials are searched on Google. Guido van Russom worked at Google between 2005–2012. After Google he started to work in Dropbox now he is working at Dropbox. While he was working at Google, Google became more interested in Python language and started to use in some projects and became an official language. Some of projects listed on https://quintagroup.com/cms/python/google. Google also has free Python class in https://developers.google.com/edu/python.

And now in 2019 Popularity of Programming Language chart is below. Python is the first by share nearly %30 and gained +4.2 popularity from previous year.

In this site (http://pypl.github.io/PYPL.html) it is shown that Python passed Java and grew by %19 percentage.

Another indicator of popular programming language TIOBE index results showed below. The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written. Python placed 3rd and gain 1 step from previous month.

Up to this point, I showed the increase of Python programming language let’s start to identify why Python becoming more popular. Python is very easy to learn because its syntax very close to English language. Python is a dynamic language that has no strict rules. That’s why it is very enjoyable for who is learning programming for the first time. Fun is a great motivator. There is a fun fact about Python that its name not coming from snake it is coming from an English comedy group Monty Python (http://www.montypython.com/pythons). According to research in 2014 July, Python is currently the most popular language for teaching introductory computer science courses at top-ranked U.S. departments. Specifically, eight of the top 10 CS departments (80%), and 27 of the top 39 (69%), teach Python in introductory CS0 or CS1 courses. Another reason is for becoming popular Python programming language is so versatile. Python is a general-purpose language, which means it can be used to build just about anything, which will be made easy with the right tools/libraries. Professionally, Python is great for backend web development, data analysis, artificial intelligence, and scientific computing. Python is second language after R in data mining. Python has 5th most crowded developer community, in GitHub 4th most used programming language. Python has 3rd most crowded group in In Meetup.com. Community is another key factor for interest growth.
Large organizations that make use of Python include Wikipedia, Google, Yahoo!, CERN, and some smaller entities like ILM, and ITA. The social news networking site Reddit is written entirely in Python.

Applications for Python
Python is used in many application domains. Here’s a sampling.
The Python Package Index lists thousands of third party modules for Python.

Web and Internet Development
Python offers many choices for web development:
Frameworks such as Django and Pyramid.
Micro-frameworks such as Flask and Bottle.
Advanced content management systems such as Plone and django CMS.

Python’s standard library supports many Internet protocols:
HTML and XML
JSON
E-mail processing.
Support for FTP, IMAP, and other Internet protocols.
Easy-to-use socket interface.

And the Package Index has yet more libraries:
Requests, a powerful HTTP client library.
BeautifulSoup, an HTML parser that can handle all sorts of oddball HTML.
Feedparser for parsing RSS/Atom feeds.
Paramiko, implementing the SSH2 protocol.
Twisted Python, a framework for asynchronous network programming.

Scientific and Numeric:
Python is widely used in scientific and numeric computing:
SciPy is a collection of packages for mathematics, science, and engineering.
Pandas is a data analysis and modeling library.
IPython is a powerful interactive shell that features easy editing and recording of a work session, and supports visualizations and parallel computing.
The Software Carpentry Course teaches basic skills for scientific computing, running bootcamps and providing open-access teaching materials.

References:
https://cacm.acm.org/blogs/blog-cacm/176450- python-is- now-the- most-popular-introductory-teaching- language-at- top-u- s-universities/fulltext
http://pypl.github.io/PYPL.html
https://www.tiobe.com/tiobe-index/
https://www.monitis.com/blog/why-python- is-becoming- so-popular/
http://dataconomy.com/2015/01/python-packages- for-data- mining/

Pyhton Programlama Dili Neden Giderek Popülaritesini Arttırıyor?

Sizlere dilim döndüğünce 1991 yılında Guido van Rossum tarafından geliştirilen ve ana feslefesi kod okunabilirliği olan Python programlama dilinin artan popülaritesinin nedenlerini açıklamaya çalışacağım. 2003 yılından itibaren en popüler 10 programlama dili arasına giriş yapan programlama dilinin popülaritesi doğrusal bir şekilde artıyor. Aşağıda 2003-2013 yılları arasında PYPL indeksi sonuçlarından oluşturulmuş grafiği göreceksiniz. PYPL (popularity of a programming language index) ilgili programlama dili üzerine ne kadar sıklıkla araştırma yapıldığını ortaya koyuyor. Elde edilen verilerin Google Trends’ten sağlandığı belirtiliyor. Guido van Rossum 2005-2012 yılları arasında Google bünyesinde çalışmış, Google’dan sonra Dropbox firmasında çalışmaya başlamış ve şu an Dropbox firmasında çalışmaya devam ediyor. Van Rossum’un 2005’te Google çalışmaya başlamasıyla birlikte Google’ın yoğun olarak Python programlama dilini kullanması Python programlama diline olan ilgiyi artırmıştır.

2017 Haziran itibariyle durum aşağıdaki gibi: (http://pypl.github.io/PYPL.html adresinden detaylı inceleyebilirsiniz)

Sitede Python’a artan rağbete de değinilmiş. Son 5 yılda Python ile ilgili araştırmalar yüzde 8,2 oranında artış yaşanırken PHP de yüzde 4,8’lik bir azalma meydana gelmiş.

Bir başka programlama dili popülaritesini inceleyen bir başka indeks olan TIOBE in sonuçları da aşağıdaki gibi: Yine değişimin artı yönde olduğunu görüyoruz. TIOBE indeksi de o programlama dilinde çalışan mühendis sayısı, programlama diline yönelik dersler, arama motorlarında aranma sıklığı gibi parametrelerin birleşiminden oluşturuluyor. Burada dikkat edilmesi gereken bu indeks en iyi programlama dili veya programlama diliyle ne kadar çok kod yazıldığını belirlemeye yönelik değildir. Ayrıca stackoverflow sitesinin yaptığı ankette 2013’ten 2017’ye Python programlama dilinin popülerliği %21’lerden %32’lere çıkmış.

Buraya kadar Python programlama dilinin artan popülaritesini ortaya koyduk. Şimdi bu durumun nedenlerinden bahsedelim. Python programlama dili, öğrenmesi oldukça kolay olan, syntax olarak İngilizce diline oldukça yakın, dinamik bir dil olması sebebiyle oldukça esnek bir yapıya sahiptir, katı kuralları yoktur. Programlamaya yeni başlayanlar için alışması oldukça kolay ve eğlencelidir. Bu eğlence de programlama dilini öğrenmek için gerçekten önemli bir motivasyon. Ayrıca Python ismi sanıldığı gibi piton yılanından değil de İngiliz komedi grubu Monty Python’dan gelmektedir. (http://www.montypython.com/pythons)  2014 Haziran’da yapılan bir araştırmaya göre Amerika’da  Bilgisayar Bilimi bölümlerinde öğrencilere başlangıç programlama dili olarak Python, Java’dan daha fazla tercih edilir hale gelmiş. İlk 10 üniversite içerisinde %80’i, 39 üniversite içerisinde 27’si (%69) Python’u programlamaya giriş dili olarak belirlemişler. Ülkemizde de İTÜ Fizik Mühendisliği bölümünden Berkin Malkoç “Temel Bilimler ve Mühendislik Eğitiminde Programlama Dili Olarak Python” adında bir bildiriye imza atmıştır. Python’un artan popülaritesinin altında kolay öğrenilmesinin yanısıra, geniş bir kullanıcı topluluğuna sahip olması, bilimsel çalışmalara olanak vermesi, çok geniş ölçekte geliştirme yapılabilmesi, veri madenciliği işlemlerini yapabilmesi , derin öğrenme gibi yapay zeka uygulamalarının da geliştirilebilmesi nedeniyle popülaritesini arttırmıştır. Python R programlama dilinden sonra veri madenciliği için en çok kullanılan ikinci yazılım dilidir. Python StackOverflow’da en büyük 5. Topluluğa sahip iken, GitHub’da en çok kullanılan 4. programlama dilidir.Meetup.com topluluğu olarak en büyük üçüncü kitle sahip programlama dilidir.

Python ile birçok geliştirmeler yapan Google’ın desteği de popülariteyi arttırmıştır. Wikipedia, Yahoo, CERN, NASA Python dilini kullanarak geliştirmeler yapmışlardır. Sosyal medya ağı sitesi Reddit tamamen Python diliyle yazılmıştır.

Python oldukça genel bir programlama dilidir. Web uygulamalarında servis geliştirmeden, veri madenciliğine, yapay zeka uygulamalarına, bilimsel hesaplama uygulamalarına, nesnelerin interneti uygulamalarına (IOT) yönelik geliştirmeler yapılabilir.

Python programlama dilinin kullanım alanları:

Web Uygulamaları Geliştirme

                Django ve Pyramid gibi web frameworkları

                Flask ve Bottle gibi micro-framework’ler

                Plone ve django CMS gibi İleri seviye içeri yönetimi istemleri

Python’un standard kütüphaneleri birçok Internet protokolünü destekler:

                HTML ve XML, JSON, E-mail processing, FTP, IMAP ve diğer Internet protokolleri

                Socket programlama arayüzü oldukça kolaydır.

Ayrıca paketlerde daha kullanışlı kütüphaneler mevcuttur:

                Requests gibi güçlü http istemci kütüphanesi

                BeautifulSoup gibi HTML parse(ayrışımı)

                Feedparser gibi RSS besleme kütüphanesi

                Paramiko gibi SSH2 protokolünü adapte etme

                Twisted Python Asenkron ağ programlama kütüphanesi

Python bilimsel ve numerik hesaplamalarda çokça kullanılır.

                SciPy, NumPy,Matplotlib,SageMath matematik,bilim,mühendislik dallarına yönelik paketler

IPython Paralel progralama ve görselleştirmeye izin veren kolayca düzenlenebilen ve kaydedilebilen bir Shell

Yapay zeka uygulamaları:

                Deepy, Caffe,OpenCV, Theano,TensorFlow, Sci-kit Learn, mlpy(Machine Learning Python), NLTK (Natural Language Toolkit), NeuroLab, PyMC

Nesnelerin İnterneti:

Raspberry Pi için temel programlama dili olarak belirlenmiştir.

MQTT Makineler arası bağlantı protokolü

Zerynth IoT ve Endüstri 4.0 uygulamalarına sahip framework

Veri Madenciliği (Data Mining) Uygulamaları:

Orange Veri analizi ve görselleştirme

PyData Python Veri Analiz Kütüphanesi

Pandas veri analizi ve modelleme

Referanslar

Tasarım Kalıpları Örnekleri (Design Patterns)

Merhabalar,

Bu yazımda sizlere .Net framework içerisinde yer alan tasarım desenlerinden (design patterns) bahsedeceğim. Farkında olmadan bu tasarım desenlerinden  örneklerini farkında olmadan kullanıyoruz.

Factory Tasarım Deseni

Factory tasarım deseni  aynı abstract sınıfı veya arayüzü uygulayan sınıfların üretiminden sorumludur. En çok bilinen ve kullanılan tasarım desenlerinden olan Factory tasarım deseninin .Net framework içerisinde en güzel örneğini Convert sınfında görebiliriz. İlkel veri tipleri arasında tip değişiklikleri yapmamıza olanak sağlar.

Iterator Tasarım Deseni

Kümelenmiş veri setleri üzerinde dolaşmamıza imkan sağlayan bu tasarım deseni. .Net framework içerisinde IEnumerable sınıfı içerisinde örneklenmiştir. IEnumerable arayüzünü implemente etmiş sınıflar,koleksiyonlar(Collections) içerisinde foreach ile tek tek dolaşmamıza imkan verir.

Örnek olarak bir koleksiyon sınıfı olan ArrayList oluşturup bu sınıfın objelerini foreach kullanarak ekranda gösterdim.

ArrayList sınıfının IEnumerable arayüzünü implemente ettiğini aşağıda görebiliriz. Burada Iterator tasarım deseninin bir örneğini görmüş olduk.

Builder Tasarım Deseni

Birden fazla parçadan oluşan nesnelerin üretilmesinden sorumlu bir tasarım desenidir. Builder tasarım deseni .Net Framework içerisinde birkaç yerde kullanılmıştır. En belirgin örneği veritabanı bağlantı cümleciğinin(connection string) oluşturulmasıdır. Aşağıda DataCatalog,InitialCatalog,IntegratedSecurity,Pooling alanları alarak bir sql veritabanı bağlantısı oluşturulmuştur.

.Net framework içerisinde builder tasarım deseninin bir başka örneği de UriBuilder sınıfıdır.

Observer Tasarım Deseni

Observer tasarım desenindeki objeler arasında 1’e n sayıda ilişki tanımlanır ve bir objede değişiklik olduğunda ona bağlı olan diğer objeler de bilgilendirilir ve otomatik olarak güncellenir. Net framework içerisinde örnek olarak event’ler örnek gösterilebilir. .Net Framework’ün 4.0 versiyonu ile birlikte IObserverable arayüzü ile observer tasarımı deseni desteği direk olarak sağlanmıştır.Bir objedeki değişimin ona bağlı objelere bildirim gönderilmesi ve bu objelerin de otomatik güncellenmesi sağlanır.

Decorator Tasarım Deseni

Objelere dinamik olarak yeni özellikler eklenmesinin sağlayan bir tasarım desenidir. .Net Framework içerisinde bu tasarım deseninin en güzel örneği Stream sınıfı ve ondan türetilmiş sınıflardır.

Her biri Stream sınıfından türetilmiş her biri temelde stream’leri işlemek için kullanılır ancak her biri farklı stream çeşitlerine hizmet eder.

Prototype Pattern

Prototip deseninde referans türünden nesneler bir nesne kopyalama şekli olan derin-kopyalama (deep-copy ) metodu ile kopyalanabilir. Bu methotta yeni referans değişkenine atanması için nesneler kopyalanır. Bu, bellekte aynı türden iki nesnenin oluşturulması anlamına gelmektedir. .Net framework içerisinde örnekleri Cloning ve Serialization’dır.

Referanslar

  1. https://stackoverflow.com/questions/3252499/what-design-patterns-are-used-throughout-the-net-framework
  2. http://naveensanks.blogspot.com.tr/2011/07/examples-of-design-patterns-used-in-net.html
Visit Us On TwitterVisit Us On Linkedin