<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Programlama Dilleri &#8211; demiryalcin.com</title>
	<atom:link href="https://demiryalcin.com/category/prgdll/feed/" rel="self" type="application/rss+xml" />
	<link>https://demiryalcin.com</link>
	<description>Bildiklerimi paylaşıyor bilmediklerimiz sizinle birlikte öğreniyorum</description>
	<lastBuildDate>Sun, 06 Dec 2020 12:45:02 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0</generator>

<image>
	<url>https://demiryalcin.com/wp-content/uploads/2020/11/cropped-favicon-1-32x32.png</url>
	<title>Programlama Dilleri &#8211; demiryalcin.com</title>
	<link>https://demiryalcin.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">158667225</site>	<item>
		<title>Php Nedir ? Nasıl Çalışır ?</title>
		<link>https://demiryalcin.com/2020/11/01/php-nedir-nasil-calisir/</link>
					<comments>https://demiryalcin.com/2020/11/01/php-nedir-nasil-calisir/#respond</comments>
		
		<dc:creator><![CDATA[yalçın demir]]></dc:creator>
		<pubDate>Sun, 01 Nov 2020 16:30:19 +0000</pubDate>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[eszamanli]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[ngnix]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rasmuslerdorf]]></category>
		<category><![CDATA[yii2]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zeroneed]]></category>
		<guid isPermaLink="false">https://demiryalcin.com/?p=2199</guid>

					<description><![CDATA[Php hakkında bilinmesi gerekenleri bu yazımda derlemeye çalıştım. Nedir ? Nasıl çalışır? Diğer web programlarıyla farkları nelerdir. Bunları birlikte öğrenelim.]]></description>
										<content:encoded><![CDATA[<div  class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner "><div class="wpb_wrapper">
	<div class="wpb_video_widget wpb_content_element vc_clearfix   vc_video-aspect-ratio-169 vc_video-el-width-100 vc_video-align-center" >
		<div class="wpb_wrapper">
			
			<div class="wpb_video_wrapper"><iframe title="Php Nedir ? Nasıl Çalışır ?" width="500" height="281" src="https://www.youtube.com/embed/NDxxed1axzE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
		</div>
	</div>
<div class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div>
	<div class="wpb_text_column wpb_content_element " >
		<div class="wpb_wrapper">
			<p class="has-drop-cap">Kişisel ana sayfa (Personal Home Page) olarak isimlendirilmiş daha sonrasında <strong>H</strong>ypertext <strong>P</strong>reprocessor yani üstünyazı önişlemcisi olarak isim değiştirmiş çok geniş kapsamlı genel kullanıma açık bedik<sup>*</sup> bir yazılım dilidir. İlk olarak 1995 yılında danimarka kökenli kanadalı yazılımcı <a href="https://tr.wikipedia.org/wiki/Rasmus_Lerdorf" target="_blank" rel="noreferrer noopener nofollow"><strong>Rasmus Lerdorf</strong> </a>tarafından geliştirildi. Html olarak hazırlanmış kişisel sitesini static olarak kullanımından dinamik olarak kullanıma geçirebilmek için perl ile geliştirilen CGI betikleri yazmıştır. Rasmus bu betikler yardımıyla özgeçmişini sitede görüntülüyor ve sitenin ziyaretçi trafiğini kaydediyordu. Bir süre sonra web formları ile etkileşime girebilecek, veritabanları ile iletişim kurabilecek ve daha hızlı çalışabilecek şekilde bu betikleri C ile yeniden kodları ve bu uygulamaya <strong>Kişisel Ana Sayfa/Form Yorumlayıcı</strong> (PHP/FI, <em>İngilizce: Personal Home Page/Forms İnterpreter</em>) adını verdi. Sözdizimi genel olarak Perl&#8217;e benzese de daha kısıtlı ve basit ancak daha tutarsızdı. Bir geliştirme takımıyla aylar süren çalışma ve test aşamalarının ardından PHP/FI 2 sürümü 1997 Kasım ayında resmi olarak duyuruldu.</p>
<p></p>
<div class="wp-container-1 wp-block-group">
<div class="wp-block-group__inner-container">
<div class="wp-block-group__inner-container">
<pre class="wp-block-verse">*<strong>Betik dili</strong> (<em>İngilizce:</em> <em>scripting language</em> veya <em>script language</em>), betik yorumlamak için yazılmış özel çalışma-zamanı sistemlerinin (run-time environment) yorumlayabileceği programlama dilleridir. Diğer programlama dilleri ile yazılan kodlar makine koduna çevrilip çıkan program doğrudan çalıştırılırken betik kodları interpreter tarafından doğrudan okunur ve yorumlanarak işlemler interpreter'ın kendisi tarafından yapılır.</pre>
</div>
</div>
</div>
<p><a href="https://tr.wikipedia.org/wiki/Zeev_Suraski" target="_blank" rel="noreferrer noopener nofollow">Zeev Suraski</a> ve <a href="https://tr.wikipedia.org/wiki/Andi_Gutmans" target="_blank" rel="noreferrer noopener nofollow">Andi Gutmans</a> 1997 yılında yorumlayıcıyı baştan yazdılar ve dilin ismini PHP: Hypertext Preprocessor olarak değiştirerek PHP 3&#8217;ün temellerini attılar. Bunu PHP 3 ün herkese açık olan test sürecinin başlaması izledi ve 1998 yılının Haziran ayında PHP 3 resmi olarak duyuruldu. Suraski ve Gutmans bu sürecin ardından PHP&#8217;nin çekirdeğini sil baştan kodlamak suretiyle 1999 yılında Zend Motorunu geliştirdiler ve İsrail&#8217;in Ramat Gan kentinde <a href="https://www.zend.com/" target="_blank" rel="noreferrer noopener nofollow">Zend Technologies</a> isimli bir şirket kurdular.</p>
<p>22 Mayıs 2000 tarihinde temelleri Zend Engine 1.0 ile güçlendirilmiş PHP 4 duyuruldu ve Ağustos 2008 itibariyle 4.4.9 sürümüne ulaşana kadar aktif olarak geliştirildi. Bugün PHP 4 ün geliştirilmesi durdurulmuştur ve güvenlik güncellemeleri dahil olmak üzere üzerinde hiçbir iyileştirme yapılmamaktadır.</p>
<p>13 Temmuz 2004 tarihinde yeni Zend Engine II ile güçlendirilmiş PHP 5 yayınlandı. PHP 5, nesneye yönelik programlama için çok daha fazla olanak sağlıyor, PHP Veri Nesneleri (PDO) eklentisi yardımıyla veritabanlarına erişim için oldukça tutarlı ve hızlı bir arayüz yanında performansa yönelik çok sayıda iyileştirme barındırıyordu. 2008 yılında PHP 4 ün tutarlı sürümünün yayınlanması durduruldu ve PHP 5 geliştirilmesi devam eden tek tutarlı sürümüdür.</p>
<p>ODBC eklentisi ile standartları destekleyen bir bağlantı açmak da oldukça kolay oluyor. Diğer veritabanları için de CouchDB gibi soketler ya da cURL eklentileri kullanılabiliyor. Yönetilebilir küçük web siteleri için de genellikle MySQL veritabanı kullanmak çok daha sağlıklı oluyor. Birkaç PHP komutu ve fonksiyonları kullanarak oldukça hızlı bir bağlantı sağlamak mümkün hale geliyor.</p>
<p>Composer, php için bağımlılık yönetim aracıdır. Projeleriniz de ihtiyaç duyduğunuz kütüphaneleri ve sınıfları sizin için kurmanızı sağlar. Composerda veriler json olarak saklanır ve paketleri oluşturulması json olarak sağlanır. Composer sayesin tüm paketler ve sınıflar kolayca otomatik yüklenir.</p>
<p></p>
<h2>Php Nasıl Çalışır ?</h2>
<p></p>
<p class="has-drop-cap">Hepimizin bildiği bir şey varsa oda kullanmış olduğumuz tarayıcımıza bir url girip sonrasında belirtilen domain name yönlendirilmiş olan ip ile sucu istek oluşur. İstek sonucunda bize geri html döndürür ve bunu browser yorumlayarak siteyi gösterir.(Temel anlamda bu şekilde çalışır) Bu aşamaya kadar bilindik bir durum. Peki sunucu da ne olur html nasıl döner. Php burda görevi nedir ve nasıl yorumlanır.</p>
<p>Bu pek çoğumuzun verebileceği bir soru değil maalesef. Hepimiz web sitesi nasıl kurulur biliriz (En azından bilmeliyiz !) . Lakin php nasıl çalıştığını bilmeyiz.</p>
<p>Peki zaten site çalışıyor. İstediğimiz şekilde bize yanıt döndüğünce neden bilmeliyim dediğiniz duyar gibiyim. Evet çalışıyor peki performans iyileştirmesi yapmak için bunu bilmemiz gereklidir. Bunu bilmek için bellek yönetimini anlamalıyız.</p>
<p></p>
<h2>Php İstediğinin Ömrü</h2>
<p>Derlenmiş bir dil (Java ve C#) kullandıysanız daha önce php onlarla aynı olmadığını baştan belirteyim. Php yorumlanmış bir dildir. Yani tarayıcıdan gelen her talep için php yorumlayıcısı html den php kodunu ayırarak kodu yorumlar ve geri dönüş sağlar.</p>
<p>Bu işlemi hızlandırmak için önbelleğe almak ve diğer optimize çalışmaları yapabilirsiniz. Ama temel olarak çalışma sistemi bu şekildedir.<img src="https://lh5.googleusercontent.com/UZ86DdGq8IOUTj0U01fbuaFc038MmuQna9iGqUCcMFlZVsD1P8_N9PXR7lBFeTuipYumxep0V6zmGivmR__Y_3xBhWHtTzCYDWXoEfFtHpHGrapGPxh6F5iFG8M8NB8xwMD-uAMb" width="602" height="105" /></p>
<p>Yukarıda diagrama göreceğimiz şekilde istek önce web tarayıcısında başlar. Daha sonrasında web server ulaşır. Web sunucusu daha sonra onu analiz edecek ve onunla ne yapılacağını belirleyecektir.</p>
<p>Web sunucu isteği PHP dosyası olduğunu belirlediğinde,(Bu genellikle index.php) bunu php yorumlayıcısına iletir. PHP yorumlayıcısı php dosyasını okuyacak, onu (ve içerdiği diğer dosyaları)  ayrıştırıp çalıştıracaktır. PHP yorumlayıcı kodu çalıştırmayı bitirdiğinde bir çıktı verir. Bu çıktı web sunucusu web tarayıcısına yanıt olarak döndürür.</p>
<p></p>
<h2>PHP Uygulamaları Sadece Bir Bedik !!!</h2>
<p> PHP isteğinin yaşam döngünü anlatmamın nedeni bu ifadeye ulaşmak içindir. Örneğin projenizde <span style="text-decoration: underline;">Laravel</span> , <span style="text-decoration: underline;">Symfony</span> veya <span style="text-decoration: underline;">zeroneed</span> uygulaması olsun,herhangi bir php uygulamasının ardında yatan gerçek budur.(<span style="text-decoration: underline;">drupal</span> veya <span style="text-decoration: underline;">wordpress</span> gibi CMS de dahil) Bunlar bir kabuk komut dosyalarına benzeyen komut dosyalarından başka birşey değildir.</p>
<p>Bu senaryoda web sunucusu aracı görevi görmektedir. Web tarayıcıdan php istediği geldiğinde web server php betiğini tetikler. Sonucunda bir çıktı varsa bunu tarayıcıya iletir.</p>
<p>Bu, diğer web programlama dillerinde göreceğinizden farklı bir durumdur.Bu web programlama dilleri, daha geleneksel web uygulaması dediğimiz şeyi oluşturur. Bu web programlama dilleri uygulama sunucusu kullanarak çalışır. Bazı bilinen uygulama sunucuları <span style="text-decoration: underline;">java</span> için <span style="text-decoration: underline;">tomcat</span>, .<span style="text-decoration: underline;">net</span> için <span style="text-decoration: underline;">ISS</span> ,<span style="text-decoration: underline;">Python</span> için <span style="text-decoration: underline;">Gunicorn</span> ve <span style="text-decoration: underline;">Ruby</span> için se <span style="text-decoration: underline;">Unicorn</span>.</p>
<p></p>
<figure class="wp-block-image"><img src="https://lh4.googleusercontent.com/RkvqWg19ehLn4_CM_5DQ-LXINPys5jhH2JlYMwRN-1GVUgM8zndT6W_YjqEyVLStR11JrdEFA31rjdEvUc3HDXqfWzgrEXJ6m66GQ2BSXBHRzTtG_-HJGjwIi6iupN5uJGiJRJhY" alt="" /></figure>
<p>Gördüğünüz gibi , web uygulaması sunucu içerisindedir. (Uygulama sunucus başına birden fazla uygulama bile barındırabilir) Bu uygulama sunucu aynı zamanda web sunucusu görevi görmektedir. PHP’de olduğu şekilde bir aracı servis hizmeti sağlamaz.</p>
<p></p>
<h2>Diğer Web Uygulamalarından Temel Farkı</h2>
<p>Bir PHP uygulaması ile daha geleneksel web uygulaması arasındaki bu temel fark önemlidir. Bu çerçevede bir çok dinamik değişir. Örneğin, bu nedenle bir sunucuda ki herhangi bir PHP dosyasını değiştirebilir ve değişikliği hemen görebilirsiniz.(Ön belleğe alma şeklinde bir çözümünüz yoksa !)</p>
<p>Ancak geleneksel web uygulamalarında aynı şeyi söylemek pek mümkün değildir. Bu uygulamalarda sadece şablonla ilgili değişiklik yapabilirsiniz. Tabi bu değişiklikleri görüntülemek için sunucuyu yeniden başlatmanız gerekebilir. (Eğer derlenmiş bir dilse durum daha karmaşık bir hal almaktadır.)</p>
<p>Bununla birlikte, bir PHP uygulaması ile geleneksel bir uygulama arasında ki tek fark bu değildir. Bilinmesi gereken diğer farklar şöyledir.</p>
<p></p>
<h2>Hafıza Yönetimi</h2>
<p>Hafıza yönetimiyle başlayalım. Bir PHP uygulamasında çalışırken belleği (RAM) nasıl yönetiriz? Cevap şu ki ,bir PHP uygulamasıyla çalışırken çoğumuz belleği yönetmiyoruz.</p>
<p>Sadece bize yetersiz bellek uyarısı verdiğinde, PHP bellek sınırını artırır ve çalışmaya kaldığımız yerden devam ederiz.</p>
<p></p>
<h2>Bellek Sızıntısı</h2>
<p>PHP’de hiç bellek sızıntısı ile karşılaştınız mı ? Bellek sızıntısı, bellek yetersizliği durumlarında bellek yönetimi için yapılan hatalar sonucunda meydana gelen durumlardır. Bir uygulamada kullanmış olduğunuz değişkenleri oluşturur kullanır ve bellekten temizlemezseniz. Uygulamanız her çalıştığında yeniden yeniden aynı değişkeni oluşturacağı için bellek boşalmaz ve sürekli dolmasından dolayı bellek yetersizliği meydana gelir. Bunu geleneksel web uygulamaları çöp temizleme (GC Collection) yöntemi ile kontrol sağlanmıştır.</p>
<p>Bu durumda PHP bu durum neredeyse hiç olmaz. Bunun nedeni ,PHP’nin çalışan ve sonra sona eren bedik bir dil olmasıdır. Sonlanan her komut PHP komut dosyası tarafından otomatik olarak silinecektir.Bu nedenle çoğu PHP uygulaması bellek sızıntısı meydana gelmez.</p>
<p>Ancak bu durum geleneksel bir web uygulamasında böyle değildir. Uygulama sunucusu web sunucusunun bir parçası olmasından dolayı, yalnızca web sunucusu yeniden başlatıldığında sona erer.Bu çok sık olan bir durum değildir.(Olmaması lazım!) Bellek yönetimi bu şekilde web uygulamalarında bir gerçekliktir.</p>
<p>Bellek sızıntısın, daha geleneksel bir web uygulamasıyla gerçek sonuçları olur. Uygulama sunucusunu yeniden başlatmalısınız, sunucu hafızası bir noktada biter. Bu olduğunda, web uygulamanız çöker ve erişilmez duruma gelir. Bu duruma “Web Sitesi Çöktü” deriz.</p>
<p></p>
<h2>Veri Kalıcılığı</h2>
<p>Peki PHP için neden bellek sızıntısı olmadığını anladık. PHP uygulamamız için iki özdeş isteğimiz olduğunu düşünelim. İlki, PHP betiğimiz üzerinde çalışır ve işlem sırasında verileri bellekte depolar. Bu verilerin hiçbir ikinci talep için mevcut olmayacaktır. Bu, PHP’nin geleneksel web uygulamalarında ki gibi istekler arasında veri paylaşamayacağı anlamına gelir.</p>
<p>Bunun yerine, PHP, istekler arasında veri paylaşmak için diğer sistemlere bağlıdır. Bir depolama yöntemi kullanan oturum (Çerez ve Session) yöntemini kullanabilirsiniz. Bir depolama yönetimi kimi zaman bir dosya bir veri deposu hatta bir veritabanı olabilir.</p>
<p>Bir PHP uygulaması bir veya birden fazla depolama yönetimi kullanımı eğilimindedir. Hangilerini kullanacağınız yapmış olduğunuz projeye göre değişiklik gösterir. Ancak birini seçmeniz gerekliyse bu Redis veya Memcached gibi populer seçenekleri değerlendirebilirsiniz.</p>
<p></p>
<h2>Eş Zamanlı Görevler</h2>
<p>Eşzamanlılık, PHP uygulamalarında anlaşılması gereken önemli bir kavramdır. Peki eşzamanlılık nedir ? Bu, yazılımı daha küçük parçalara ayırabileceğimiz fikridir.Daha sonra küçük parçaları aynı anda veya farklı sırayla hiçbir şey sorun meydana gelmeden çalıştırabilirsiniz.</p>
<p>PHP için pek mantıklı bir durum değildir. PHP uygulamalarınız daha küçük parçalara ayrılamaz. PHP birçok istediği aynı anda yorumlaması zaten eşzamanlı çalıştığı anlamına gelir.</p>
<p>Şimdiye kadar gördüğümüz gibi, bir PHP uygulması yapılan her iste diğerinden bağımsızdır. Web sunucusu, isteği PHP uygulamamızın komut dosyası çalışacak olan PHP yorumlayıcısına iletecektir. Bu, PHP yorumlayıcısının aynı anda birden fazla komut dosyasının işlemesinin çok yaygın olduğu anlamına gelir.</p>
<p></p>
<figure class="wp-block-image"><img src="https://lh3.googleusercontent.com/lmPTR7C5bHfVKYlg9FyZdEtRThSrO3PbEofQpBw_gFSHMcdIBGGGqSxQofgBDifen3hm1Vw9K3U47ePZ0OpCVuHyL7wL49POmTXy81RybCLutGfAWx9K2pp-s5WOQ2eDSfYOyCM0" alt="" /></figure>
<p>Yukarıda ki zaman çizelgesi, bir zamanı çizelgesi kullanarak bunu vurgulamaya çalışır. Bir PHP betiğinin aynı anda üç işlemine sahibiz. Farklı zamanlarda başlar ve biter, ancak uygulamaların bazıları çakışır.</p>
<p>Bu nedenle PHP uygulaması çalışırken eşzamanlılığı göz önünde bulundurmalısınız.</p>
<p></p>
<h2>Çoklu Görev</h2>
<p>Çoklu görev, bir dizi bilgisayar görevinin aynı anda yapılması demektir. Bu durum işlemlerin daha hızlı gerçekleşeceği fikridir. PHP uygulamaları, yoğun bilgi işlem görevlerini yapmak için bu konsepte çok güvenir.</p>
<p>Bunun nedeni, PHP’de çoklu görev gerçekleştirmenin oldukça kolay olmalısıdır. Daha önce gördüğümüz gibi, PHP yorumlayıcısının aynı anada birden fazla betiği işlemesi mümkündür. Dolayısıyla , çoklu görev, yapmamız gereken bu istekler için ekstra görevler oluşturmamız yeterlidir.</p>
<p></p>
<figure class="wp-block-image"><img src="https://lh3.googleusercontent.com/PddDlc0VKPFhnnlhO0eHrUdpmzhNUU7ILEWZt75YH_TfjtEqLb2GDwgg3xUAlvsmm4t4qwLS6HKgUj0accpYu0t5DevjfWxKfLpszAfEq_QM45PqdMF5w99YRROU1CIxkzDZBt3l" alt="" /></figure>
<p>Bu nasıl oluyor peki ? Yukarıdaki diyagramda bir tane ana isteğimiz var. Bu ana istek alt istekleri oluşturmaktadır. Bu diğer alt talepler yeni uygulama görevlerimizdir. İlk taleple aynı zamanda çalışırlar.</p>
<p>Bu isteklerin genellikle eşzamanlı olarak gönderildiğini belirtmek gerekir. Bir PHP betiği çalıştırılması süresi üzerinden büyük bir etkisi yoktur. Bu, ilk istek sırasında PHP uygulamasının çalışmasını yavaşlatmadıkları anlamına gelir.</p>
<p>PHP uygulamasında çoklu görevin iyi bir örneği, populer PHP CMS’lerinde cron işlemlerini nasıl işlediğidir.Bir CMD’de cron işi, CMS üzerinde ihtiyaç duyduğunuz, gelecekte planladığınız (gelecekte bir gönderiyi yayımlamak gibi) bir görevdir.CMS bir cron talepte bulunulduğunda belirli bir URL için bir istek oluşturur.</p>
<p></p>
<h2>Kaynak Sorunu</h2>
<p>Ancak eş zamanlı da sorunsuz değildir. En yaygın sorunu kaynak yetersizliğidir. Eşzamanlı PHP işlemlerinizin çalışması için ihtiyaç duyduğu belleğe sahip olmadığı anlamına gelir.</p>
<p>Daha öncesinden gördüğümüz bellek sızıntısı bir tür bellek yetersizliği olduğunu belirtmek gerekir. Artan bellek sızıntısı, uygulama çalışmayı durduana kadar suncu belleğini yok eder. Anacak, PHP uygulamaları bellek sızıntılarından müzdarip olmadığındani buradaki sorunun kaynağı bu değildir.</p>
<p>Sunucunuzun 500 mb boş belleğe sahip olduğunu düşünelim. PHP uygulamanız çalışırken 100 mb ihtiyac olduğunu varsayalım. Bu durumda sunucunuz yalnızca beş tane eş zamanlı yürütmeyi işleyebileceği anlamına gelir.</p>
<p>Peki sunucunuz bir seferde beşten fazla komut dosyaısı işlemesi gerekiyorsa ne olur ? Bu noktada, ana makinenizin sunucunuzu nasıl yapılandırdığına bağlı. Sadece yavaşlayabilir yada tamamen çökebilir. (Çoğu hizmet DDOS saldırılarının arkasında ki ana fikir budur)</p>
<p>Bu nedenle kaynak açlığı PHP uygulamanız için çok fazla sorun teşkil etmez. Evet, bellek kullanımını azaltabilirsiniz. Ve sonuç olarak ,PHP uygulamanız daha fazla eş zamanlı çalıştırma gerçekleştirebilirsiniz.</p>
<p></p>
<h2>Aynı Anda Çalışma Sorunları</h2>
<p>Eşzamanlı ilgili dikkat edilmesi gereken konulardan biride birlikte çalışmasıdır. Bu durumun anlatılmasında bir örnek anlatılması daha kolay olacaktır. Aynı anda çalışma sorununa örnek olarak, sayfa görüntülemelerin izlenmesi olarak verilebilir.</p>
<p></p>
<figure class="wp-block-image"><img src="https://lh6.googleusercontent.com/35dJGMDg0HF5gl7fu7xwE24_NPHX0YdfT9GuNHykyDtHWM9fsjJhnlHJIG1DJ6D8QlS7BOQJ8gtyTicgNwUsz5Ei8LUB2EkykKMzapZsDGVdAuLgdGvr0F2Gn9azcmgeTflV6C_H" alt="" /></figure>
<p>Yukarıda, sayfa görüntülemelerin izleyen bPHP kodumuzun bir zaman çizelgesi gözükmektedir. Sayfada pembe olarak belirtilen kısım sayfanın görüntülenme sayısını belirten kod yer almaktadır. Şimdiye kadar her şey çok basit bir şekildedir.</p>
<p>Şimdi durumu biraz daha karmaşık hale getirip eş zamanlı çalışmayı ekleyelim. Peki bu durumda ne olur ? Bunu zaman çizelgemizi güncelleyelim ve öğrenelim.</p>
<p></p>
<figure class="wp-block-image"><img src="https://lh6.googleusercontent.com/Qz9NYEdCOoa9kxMhjk0pt5yeldlKfxqptbnbrEmJppO0wOQTeMKrLbK2bPwliMgXzTs_ppkZZCWzhFMSZWSIGbKEG6oJIBE4aRhk8sSqSlPgTLp1fUDfbypbdrOtWp9U8E0HdpwQ" alt="" /></figure>
<p>Bu zaman çizelgesinde de her şey yolunda gözüküyor. PHP kodumuzun birden fazla çalıştırılması var, ancak pembe çubukların hiçbiri çakışmıyor. Her yürütme, geçerli sayfa görüntüleme sayısını getirebilir, bir artabilir ve ardından tekrar kaydedebilir.</p>
<p></p>
<h4>Gerçek Uygulamarda Aynı Anda Çalışma Durumu</h4>
<p>Ancak PHP kodumuzun birden fazla çalışması çakışması durumunda ne olur ? Sonuçta, çalışan kodların her zaman bu şekilde birbirini izleyen şekilde çalışması ve tamamlanması gerçekci bir durum değildir. İşte işlerin karışmaya başladığı nokta burasıdır.</p>
<p></p>
<figure class="wp-block-image"><img src="https://lh6.googleusercontent.com/MSgndNPGQ3VoRG8wQUrrwjPF4ms62dxzaX3AzMNEiaNyyo7hLDegot73uIKN7M8R2R7bDdKNoaXhedsETkKyCdtbMCfSE-QirWxhC1RIRx0IFIeSMzT7_Zf4RpmTWWhOWdKfRZAn" alt="" /></figure>
<p>İşte üç işlemimizin zaman içinde birbirine daha yakın olduğu bir zaman çizelgesi. Gördüğünüz gibi, PHP kodunu takip eden sayfa görüntüleme sayfamızın çalışması şimdi çakışıyor.</p>
<p>Bu nedenle, ikinci işlemin sayfa görünümü artışı yanlıştır. Bunun nedeni, ilk işlem onu ​​geri kaydetmeden önce sayfa görüntüleme sayısını getirmesidir. Bu nedenle, ilk işlem olarak aynı sayıda sayfa görüntülemesini sayar.</p>
<p>Ama bu da sonu değil! Yarış durumu nedeniyle, üçüncü işlem ayrıca ikinci işlem tarafından kaydedilen sayfa görüntülemelerinin sayısının üzerine yazar. Daha fazla eşzamanlı işlemimiz olsaydı, bu yarış durumunun neden olduğu sorunları daha da karmaşık hale getirirdi.</p>
<p>Sonuç, sayfa görüntülemelerinin sayısının hatalı bir şekilde izlenmesidir. Sayfa görüntüleme izleme kodumuz, üç sayması gerekirken yalnızca iki sayfa görüntülemesi saydı. Böyle bir sistem tasarlamaya zahmet ettiyseniz bu ciddi bir problemdir.</p>
<p></p>
<h4>Durumunun Düzeltilmesi</h4>
<p>Bu durumu düzeltmenin bariz çözümü bu şekilde yapmamak veya Google Analytics gibi harici bir hizmet kullanmaktır. Tabi bu durumda bu gibi eşzamalı sorunlarını çözmeyi öğrenemeyiz.</p>
<p>Bu durumun düzeltilmesinde anahtar kelime karşılıklı dışlamadır. Bu karşılıklı dışlamanın kendisi eşzamanlı kontrolü adı verilir. Ve eşzamanlı kontrolünün amacı, eşzamanlı işlemlerin (sayfa görüntülemelerin izlenmesi gibi) doğru sonuçların üretilmesini sağlar.</p>
<p>Şimdi karşılıklı dışlamaya dönelim. Karşılıklı dışlama, bir seferde yalnızca bir yürütmenin kritik bir kod parçasına gireceği fikridir.Bu durumda ziyaretci sayısını hesaplayan kod bir sefer çalışacak ve bitiminde yeniden çalışarak doğru izleme sayısını verecektir.</p>
<p></p>
<h2>PHP’nin Avantajları Nelerdir?</h2>
<p> PHP ile web sitesi sorun yaşamadan yönetilebilir ve geliştirilebilir.  Günümüzde yaygın olarak kullanılmasının ve tercih edilmesinin başlıca nedenleri aşağıda listelenmiştir.</p>
<p></p>
<ul>
<li>PHP web siteleri için gereken tüm araçları ve çözümleri ücretsiz olarak sunan açık kaynaklı bir dildir.</li>
</ul>
<p></p>
<ul>
<li>Açık kaynaklı olması sebebiyle yaygın biçimde kullanılır ve PHP gelişimine herkes katkıda bulunur, sürekli geliştirilir. PHP dilinde kod yazarken herhangi bir sorun karşılaşılırsa internette yapılacak kısa bir arama ile soruna yönelik çok sayıda cevap bularak hızlı bir şekilde destek bulunabilir.</li>
<li>Açık kaynak kodlu ve ücretsiz olmasının avantajlarından biri de PHP dosyalarına çevrimiçi olarak kolayca erişmenin mümkün olmasıdır.</li>
<li>PHP’nin sunduğu diğer bir özgürlük ise açık kaynak kodlu olduğu için Notepad gibi basit bir editör ya da Notebook ++,Sublime Text, jEdit, Emacs ve Bluefish,Phpstorm,Visual Studio Code, gibi daha gelişmiş editörler ile kullanılabilir.</li>
<li>PHP birden fazla işletim sisteminde, Linux, Unix türevi, Microsoft Windows, Mac OS X, RISC OS dâhil olmak üzere çok çeşitli platformda çalışabilir.</li>
<li>PHP, farklı hizmetlerle LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM ve daha sayısız protokol aracılığıyla iletişim kurabilecek bir altyapıya sahiptir.</li>
<li>Java nesnelerinin oluşturulabilmesi ve şeffaf biçimde PHP nesneleri olarak kullanılabilme leri önemli bir diğer özelliktir.</li>
<li>Diğer bir avantaj, ileri seviyede özelliklere sahip olmasına rağmen kolay kullanımlı bir programlama dilidir bu durum PHP’nin öğrenilmesini oldukça kolaylaştırıyor ve PHP dilinin tercih edilmesini sağlıyor.</li>
<li>Çok fazla sistem kaynağı gerektirdiğinden, PHP diğer dillere kıyasla çok daha hızlıdır. Farklı yazılımlarla çalıştığında bile diğer işlemleri yavaşlatmaz.</li>
<li>Diğer dillere nazaran oldukça hızlı, güvenli ve ölçeklendirilebilir dir. Siteleri saldırılardan, tehditlerden ve virüslerden korumanın en güvenli yollarını sunar.</li>
<li>Modüler sistemiyle XML ve daha pek çok kütüphaneyle entegre edilebildiği için her işletmeye özgü özel ihtiyaçları karşılayabilir.</li>
<li>PHP çekirdek fonksiyonlarını genişletecek sayısız uzantıyı da içerir. Kullanıcının kaynak kodunu XML manipülasyonu ile kontrol edebilmesini sağlar. Bu özellik sayesinde her türlü uzantı ayarıyla entegre edilebilir.</li>
<li>Çok fazla trafiği olan web sitelerinde sorunsuz bir şekilde çalışır.</li>
<li>PHP hem Frond-End hem de Backend web geliştirmede kullanılabilir.</li>
<li>PHP nin en güçlü ve en çok üstünde durulan özelliklerinden biri, sahip olduğu geniş ve gelişmiş veri tabanı desteğidir. Bunlar MySQL, Oracle, Sybase, DB2, vb. şekilde çeşitlendirilebilir.</li>
<li>Yardımcı sınıflar sayesinde birçok dosya formatını okuma ve üzerinde işlemler yapılabilmesine imkân tanır.</li>
<li>PHP sunucu taraflı iletişimler için yaratılmış bir programlama dilidir. Bu nedenle form verisi toplamak, sunucuda dosya yönetmek, veri tabanlarını düzenlemek vb. gibi çeşitli sunucu taraflı fonksiyonları yapabilir.</li>
</ul>
<p></p>
<h5><strong>Kullanılacak Frameworkler</strong></h5>
<p></p>
<ul>
<li><a href="https://framework.zend.com/" target="_blank" rel="noreferrer noopener nofollow">Zend</a></li>
<li><a href="https://laravel.com/" target="_blank" rel="noreferrer noopener nofollow">Laravel</a></li>
<li><a href="https://symfony.com/" target="_blank" rel="noreferrer noopener nofollow">Symfony</a></li>
<li><a href="https://codeigniter.com/" target="_blank" rel="noreferrer noopener nofollow">Codeigniter</a></li>
<li><a href="https://www.znframework.com/" target="_blank" rel="noreferrer noopener nofollow">Zeroneed</a> (Türk Php Çatı Yazılımı)</li>
<li><a href="https://www.yiiframework.com/" target="_blank" rel="noreferrer noopener nofollow">Yii2</a></li>
</ul>
<p></p>
<h5><strong>Web Sunucusu</strong></h5>
<p></p>
<ul>
<li><a href="https://httpd.apache.org/" target="_blank" rel="noreferrer noopener nofollow">Apache</a></li>
<li><a href="https://www.nginx.com/" target="_blank" rel="noreferrer noopener nofollow">Nginx</a></li>
</ul>

		</div>
	</div>
</div></div></div></div><div  class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner "><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element  wpb_animate_when_almost_visible wpb_bounceIn bounceIn" >
		<div class="wpb_wrapper">
			<p>I am text block. Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.</p>

		</div>
	</div>
</div></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://demiryalcin.com/2020/11/01/php-nedir-nasil-calisir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://demiryalcin.com/wp-content/uploads/2020/11/php-nedir-nasil-calisir.jpg" length="30400" type="image/jpeg"/><media:content url="https://demiryalcin.com/wp-content/uploads/2020/11/php-nedir-nasil-calisir.jpg" width="1200" height="600" medium="image" type="image/jpeg"/><post-id xmlns="com-wordpress:feed-additions:1">2199</post-id>	</item>
		<item>
		<title>Nedir Bu Python ?</title>
		<link>https://demiryalcin.com/2020/04/29/nedir-bu-python/</link>
					<comments>https://demiryalcin.com/2020/04/29/nedir-bu-python/#respond</comments>
		
		<dc:creator><![CDATA[yalçın demir]]></dc:creator>
		<pubDate>Wed, 29 Apr 2020 14:25:04 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[nedirbupaython]]></category>
		<category><![CDATA[netflix]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[yapayzeka]]></category>
		<guid isPermaLink="false">https://demiryalcin.com/?p=2116</guid>

					<description><![CDATA[2003 yılından itibaren 10 popüler yazılım dilleri arasına sıkı bir giriş yapan ve gün geçtikçe popülerliği artan yazılım dilinin artıları eksileri ve bu kadar çok kullanılmasının sebepleri nelerdir bunlar üzerinde duralım.]]></description>
										<content:encoded><![CDATA[
<p>2003 yılından itibaren 10 popüler yazılım dilleri arasına sıkı bir giriş yapan ve gün geçtikçe popülerliği artan yazılım dilinin artıları eksileri ve bu kadar çok kullanılmasının sebepleri nelerdir bunlar üzerinde duralım.</p>



<h2>Tarihcesi</h2>



<p class="has-drop-cap">Python 90’li yıllarının başlarında Amsterdamlı yazılımcı Guido Van Rossum tarafından geliştirilmeye başlanmıştır. Herkesin bildiğinin aksine bu yazılım dili piton yılanından değil “<strong>Mounty Python’s Flying Circus</strong>” adlı tv programından almaktadır.Python ilk versiyonu olan <strong>1.0 Ocak 1994</strong> yılında yayınlanmıştır. Bundan yaklaşık 6 yıl sonra yani <strong>16 ekim 2000</strong> yılında 2.0 versiyonu yayınlamıştır. 8 yılın ardından yani <strong>3 Aralık 2008</strong>’de 3.0 yayınlamıştır. Şu Anda kullanılmakta olan 2 versiyonu vardır. Bunlardan 2.x sürümü “miras” olarak geçmektedir. Peki neden 2 sürüm halinde versiyon çıkarıldığına gelmek gerekirse versiyon 3.x ile versiyon 2.x arasında çok büyük güncelleme farkları vardır. Bunlardan başlıcaları iyi eş zamanlı kontroller ve daha verimli bir derleme sistemidir. Şuan birçok firmada halen 2.x sürümü kullanılmaktadır. Birçok python kitaplığı yalnızca python 2’yi desteklemektedir. Üçüncü sınıf kütüphanelerin python 3’ü desteklemesi biraz yavaş olarak ilerlemektedir. Buda doğrudan geçişi zaman alıcı bir hale getirmektedir. Bu nedenle firmalar şu an kullanmakta oldukları yapıları 2.x’den 3.x almaya devam etmektedir. Lakin 2000 yılında çıkan 2.x versiyonu <strong>2020 </strong>yılında topluluk desteğini almaya devam edecektir. Ancak son birkaç yılda python 2’i destekleyen kütüphaneler azaldı. Bunun karşılığında yeni yazılan kütüphaneler artık python 3’e göre yapılmaktadır. Bundan dolayıdır ki ileriki bir tarihte python 3 python 2 tarih sahnesinden kaldıracaktır.</p>



<h2>Python’un Yükselişi</h2>



<p class="has-drop-cap">Van Rossum 2003 yılında google başlamasıyla birlikte python 10 programlama dilinin arasına sıkı bir giriş yapıyor. Popülerliği doğrusal bir şekilde artmaya başladı. Tabi bunun en büyük nedeni google gibi bir yazılım devinin projelerinde python kullanmaya başlaması büyük etki yapmıştır. Google’den başka Wikipedia,Yahoo,Cern,Nasa python ile geliştirme yapmıştır.Ayrıca günümüzde birçok popüler sosyal medya ağı alt yapısında python kullanmaktadır. Bunlar Instagram,reddit(Tamamı),facebook.Eve kapandığımız bu günlerde Netflix gibi internet üzerinden video kiralama hizmeti sunan firmaların alt yapısında kullanılmaktadır.</p>



<p>Python oldukca genel bir programlama dilidir. Web servis uygulamalarından , büyük veri işleme(BIG DATA),yapay zeka uygulamalarından,bilimsel hesaplama ,nesnelerinin interneti(IOT) ve network sistemlerine kadar birçok sistemde kullanılmaktadır.&nbsp;</p>



<p>Haziran 2014 yapılan bir araştırmada Amerika’da bileşim bilimi bölümlerinde öğrencilerin başlangıç programlama dili olarak python tercih ettiği görülmektedir. Amerikada yer alan ilk 10 üniversitenin %80 bir kısmıda ,39 üniversitenin’de %27’si python programlamaya giriş dili olarak belirlemiştir. Ülkemizde ITU Fizik Mühendisi bölümünden Berlin Malkoç “Temel Bilimler ve Mühendislik Eğitiminde Programlama Dili Olarak Python” adında bir bildiri yayınlamıştır(<a href="https://ab.org.tr/ab12/kitap/malkoc_AB12.pdf" target="_blank" rel="noopener">Url</a>).Python R programlama dilinden sonra veri madenciliğinde kullanılan 2’ci yazılım dilidir. Python Githup en çok kullanılan 4. yazılım dili stackoverflow en büyük 5. topluluğa sahipken meetup’ta 3 en büyük topluluğa sahip yazılım dilidir.</p>



<p>Alt kısımda PYPL (popularity of a programming language index)&nbsp; index sonuçlarının oluşturduğu grafiği görebilirsiniz. PYPL elde edilen verileri google trends üzerinden temin ettiğini belirtiyor.</p>



<figure class="wp-block-image size-large"><img width="796" height="724" src="https://demiryalcin.com/wp-content/uploads/2020/04/pypl.png" alt="" class="wp-image-2128" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/pypl.png 796w, https://demiryalcin.com/wp-content/uploads/2020/04/pypl-300x273.png 300w, https://demiryalcin.com/wp-content/uploads/2020/04/pypl-768x699.png 768w" sizes="(max-width: 796px) 100vw, 796px" /></figure>



<p>Programlama dillerinin popülaritesi inceleyen bir diğer kaynak olan TIOBE sonuçları alt kısımda yer almaktadır.Tabi burda da ivme sürekli yukarı yönde ilerlemektedir.TIOBE birçok kaynaktan veri sağlar bunlar dünya genelinde uzmanlaşmış mühendis sayısı.Bir dilde uzmanlaşan yazılıcının artması o dilin populerlik ve iş potansiyelinin olduğu anlamına gelir.Programlamlama dilinde eğitim içeriklerinin adedi artması o dile ait öğrenme ve talibin olduğu anlamına gelir.Son olarakta internet üzerinde yapılan aralama ve tıklamalar o dilin halk arasında populerliğinin olduğu anlamına gelir.Yalnız dikkat edilmesi gereken husus en iyi programlama dili veya en çok kod yazılan dil şeklinde olmadığıdır.</p>



<p>Ayrıca yazılım camiasının sıklıkla kaynak veya bilgi paylaşım mecrası olarak kullanmış olduğu stackoverflow sitesinin yapmış olduğu 2013 ve 2017 yılları arasındaki ankette %21’lerden %32’lere çıktığı görülmektedir.</p>



<figure class="wp-block-image size-large"><img width="796" height="724" src="https://demiryalcin.com/wp-content/uploads/2020/04/stackoverflow.png" alt="" class="wp-image-2129" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/stackoverflow.png 796w, https://demiryalcin.com/wp-content/uploads/2020/04/stackoverflow-300x273.png 300w, https://demiryalcin.com/wp-content/uploads/2020/04/stackoverflow-768x699.png 768w" sizes="(max-width: 796px) 100vw, 796px" /></figure>



<h2>Python IDE Nelerdir ?</h2>



<p>Python için bir çok IDE (Integrated Development Environment) mevcuttur. Türkce adıyla söylemek gerekirse “Tümleşik Geliştirme Ortamı” olarak türkçeye çevrilmektedir.Bu IDE’ler kullanılan yere ve işletim sistemine göre tercih edilmektedir.&nbsp;</p>



<h4>Online Compiler</h4>



<p>Bu IDE online ortamda kod yapmamıza olanak sağlamaktadır. Yani bilgisayarınıza herhangi bir uygulama kurmadan internetinizin olduğu her yerden kod geliştirmesi yapabilirsiniz.Kullanımı tamamen ücretsizdir. Bu <a href="https://www.onlinegdb.com/online_python_compiler" target="_blank" rel="noopener">URL den</a> erişim sağlayabilirsiniz.</p>



<figure class="wp-block-image"><img width="300" height="205" src="https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-300x205.png" alt="" class="wp-image-2118" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-300x205.png 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-1024x701.png 1024w, https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-768x525.png 768w, https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-1080x739.png 1080w, https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler.png 1200w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4>Jupyter Notebook</h4>



<p>Aldığınız notları ve kodları bir arada tutabileceğiniz oldukça faydalı bir IDE’dir. Browser üzerinden çalışan bu IDE tek başına kurulum yapılabildiği gibi Anaconda dağıtımının içerisinde yer almaktadır. Benim tavsiyem Anaconda kurulumu yapmanız yönündedir. Eğer bilmiyorsanız Anaconda veri bilimi ve makine öğrenimi için oldukça popüler bir dağıtımdır.Anaconda Numpy,Pandas,Matplotlib ve benzeri yüzlerce kütüphane içerisinde barındırır.</p>



<figure class="wp-block-image size-large"><img width="300" height="232" src="https://demiryalcin.com/wp-content/uploads/2020/04/jupyter-notebook-300x232.png" alt="" class="wp-image-2119" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/jupyter-notebook-300x232.png 300w, https://demiryalcin.com/wp-content/uploads/2020/04/jupyter-notebook.png 650w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4>IDLE</h4>



<p>Python kurulum ile birlikte gelen default IDE’dir. Herhangi bir Python sürümünü kurul yapmanız halinde bilgisayarına kurulmaktadır.&nbsp;</p>



<figure class="wp-block-image size-large"><img width="300" height="202" src="https://demiryalcin.com/wp-content/uploads/2020/04/IDLE-300x202.jpeg" alt="" class="wp-image-2120" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/IDLE-300x202.jpeg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/IDLE.jpeg 650w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



</p>
<p>&nbsp;</p>
<p>



</p>
<h4>Sublime Text 3</h4>
<p>



</p>
<p>Başlangıç ve ileri düzey programcılara yönelik bir IDE dir. Ücretli bir uygulamadır. Türkiye&#8217;de ve dünyada bir çok yazılımcının kullanmakta oldukça hoşnut olduğu bir programdır.</p>
<p>



<figure class="wp-block-image size-large"><img width="300" height="234" src="https://demiryalcin.com/wp-content/uploads/2020/04/Sublime-Text-3-300x234.jpg" alt="" class="wp-image-2121" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Sublime-Text-3-300x234.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Sublime-Text-3.jpg 650w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4>Atom</h4>



<p>Open source bir programdır. Github üzerinden kodlarına erişim sağlayabilirsiniz.Oldukça popüler bir IDE’dir.</p>



<figure class="wp-block-image size-large"><img width="300" height="227" src="https://demiryalcin.com/wp-content/uploads/2020/04/Atom-300x227.jpg" alt="" class="wp-image-2122" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Atom-300x227.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Atom.jpg 654w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4>Thonny</h4>



<p>Başlangıç düzeyinde ki kişilerin genelde tercih ettiği bir IDE’dir. Oldukça popüler özellikleri vardır.</p>



<figure class="wp-block-image size-large"><img width="300" height="229" src="https://demiryalcin.com/wp-content/uploads/2020/04/Thonny-300x229.jpg" alt="" class="wp-image-2123" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Thonny-300x229.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Thonny.jpg 668w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4>Pycharm</h4>



<p>Hem başlangıç seviyesinde olan hemde profesyonel yazılımcılara hitap eden bir IDE’dir. Bu nedenle hem lisanslı sürümü hemde free open source sürümleri mevcuttur.</p>



<figure class="wp-block-image size-large"><img width="300" height="202" src="https://demiryalcin.com/wp-content/uploads/2020/04/PyCharm-300x202.jpg" alt="" class="wp-image-2124" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/PyCharm-300x202.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/PyCharm.jpg 660w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4>Visual Studio Code</h4>



<p>Kullanımı daha çok profesyonellere yönelik olsada yeni başlayanlar için de tavsiye edebileceğim editörler arasında yer almaktadır. Extra modüllerinin olması onu diğer editörlerden bir adım daha ileri taşımaktadır. Tamamen ücretsiz olarak kullanılabilir.</p>



<figure class="wp-block-image size-large"><img width="300" height="208" src="https://demiryalcin.com/wp-content/uploads/2020/04/Visual-Studio-Code-300x208.jpg" alt="" class="wp-image-2125" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Visual-Studio-Code-300x208.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Visual-Studio-Code.jpg 647w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



</p>
<h4>Vim</h4>
<p>



<p>Unix ve macOS içerisinde default olarak gelen bir yazı editörüdür. Lakin windows için daha sonra kurulum gerekmektedir. Eğer Unix sistemlerden aşına iseniz bu IDE üzerinden kolayca kod yazmaya başlayabilirsiniz. Bazı geliştiriciler Vim kısa yollarına aşina olduğundan dolayı kullanımını tercih etmektedir. Lakin ilk kez duyuyorsanız kısa yollarına alışmanız biraz zaman alabilir.</p>



<figure class="wp-block-image size-large"><img width="300" height="193" src="https://demiryalcin.com/wp-content/uploads/2020/04/Vim-300x193.jpg" alt="" class="wp-image-2126" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Vim-300x193.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Vim.jpg 660w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4>Spyder</h4>



<p>Genellikle bilimsel gelişim için kullanılan açık kaynak kodlu bir IDE’dir. Spyder ile çalışmaya başlamanın en kolay yolu Anaconda dağıtımını kurmaktır.</p>



<figure class="wp-block-image"><img width="300" height="242" src="https://demiryalcin.com/wp-content/uploads/2020/04/Spyder-300x242.jpg" alt="" class="wp-image-2127" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Spyder-300x242.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Spyder.jpg 660w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<div class="wp-block-image">
<figure class="aligncenter size-large"></figure>
</div>



<h2>Python Üst Seviyeli Bir Yazılım Dilidir</h2>



<p>Python nesne yönelimli ,yorumsal ,modüler ve etkileşimli yüksek seviyeli bir dildir. Bilmeyenler için yüksek seviyeli diller olan c#,php ve java ile düşük</p>



<p>&nbsp;seviyeli diller olan makine ve assembly örnek olarak gösterilebilir. Peki arasında ki fark nedir derseniz yüksek seviyeli diller insanların anlayacağı şekle ne kadar yaklaşırsa o kadar yüksek seviyeli dil olarak tanımlanırken bilgisayarın anlayacağı ve yorumlamada hız kazanacağı dille yaklaşırsa düşük seviyeli dil olarak adlandırılır. Buda bir dil yazılı zorlaştıkça bilgisayarın anlaması o&#8217;kadar kolay hale ge</p>



<p>lmekte ve daha hızlı çalışabilmektedir. Lakin insanların anlayabileceği yazım şekline yaklaştıkça daha kolay uygulama geliştirilmekte lakin bu seferde bilgisayarın derlemesi uzun süreceğinden dolayı daha yavaş ç</p>



<p>alışmaktadır.</p>



<p>Ayrıca son zamanlarda derleme zamanı ipucu desteği eklenmiştir. Buda yazma anında yazılımcıya bilgi vermektedir.</p>



<figure class="wp-block-image"><img src="https://lh4.googleusercontent.com/PORFYYSOX8nz5qzs1SEDsz5bUU7jYPNIip05q0b8HsiSJIcYcYK3-pkXxS6Q3jyLAgUCYu__rU2aqAvrXz2oTbeD0wdbMifUNG2JLdhGhrlleGyTcQPIZPTWytKCT9pFBvKn1mTl" alt=""/></figure>



<h2>Python Alt Seviyeli Dillere Yaklaştıran Özellikler</h2>



<p>Java,c#,GO programlama dilleri gibi bellek yönetimine sahiptir. Yani yazmış olduğumuz nesneleri izlemek ve kullanılmadığı durumlarda bellekten silmek için yazılımcının kod yazmasına gerek duymaksızın programlama dilinin kendiliğinden ayarlama yapabilmesi demektir. Lakin diğer dillerden farklı olarak python bunu kısmı olarak veya tamamen yazılımcı denetimine bırakmayı sağlayabilmektedir. Bu geliştirmiş olduğunuz bir projede yapılmış olan iyileştirmeyi daha stabil hale getirmek için ihtiyaç duyabileceğiniz bir durumdur.</p>



<p>Python “significant whitespace” denilen boşluklar kullanılarak kod geliştirilmesi yapılmaktadır.Bu en iyi yönü ve en kötü özelliklerinden biri olarak değerlendirilebilir. İyi olmasının nedeni çok daha okunaklı olması diğer dillerde olan “{}” parantezlerinin veya “;” kullanılmaması yazılımcının hata yapmasını engellerken kodların derlenmesi de yavaş çalışmasına neden olur. Buda c veya java’dan daha yavaş çalışmasına neden olur.</p>



<p>Python Yapışkan Kod (Glue Code) olarak adlandırılan takma ismini, C dilinin kütüphanesi kodları ortaklaşa kullanarak daha spesifik programlar yazmaya olanak sağlamasından dolayı almıştır.</p>



<h2>Python Yavaş Bir Dil Mi ?</h2>



<p>Python ilgili duyabileceğiniz negatif yorumlardan biri C,C++ ve Java göre daha yavaş olduğuna yöneliktir. Genel olarak değerlendirmek gerekirse EVET yavaştır. Bunun nedeni nesneler kullanıldığı kodlar aracılığıyla belirlendiği için, derlendiğinde bile diğer yazılım dillerine oranla bir tık daha yavaş olabilir.</p>



<h2>Peki Hızlandırılabilir Mi ?</h2>



<p>Evet tabiki hızlandırılabilir. Bunun için üçüncü taraf kütüphanelerinin seçimine dikkat etmek gerekmektedir. Çünkü yavaşlık üçüncü part kütüphanelerin içiri aktarımında yaşanan sorunlardan kaynaklanmaktadır. Örneğin NumPy ve Pandas gibi kütüphaneleri kullanarak matematik ve istatistik işlemleri muazzam bir şekilde yaptırabilirsiniz.</p>



<p>Yazılımcılar arasında bir söz vardır. Programın %90 işlevsellik %10 program kodlarından oluşur.Siz %10’luk kısmını optimize ettiğinizde oldukça başarılı sonuçlar alabilirsiniz. Örneğin Cyhon ve Bumba gibi projeleri kullanarak C hatta Assembly dönüştürebilirsiniz. Lakin ortaya çıkan sonuç C göre biraz daha yavaş olabilir.Burda da C’nin micro yönetimi göz ardı edildiğinde yarışacak düzeyde performans sağlayabilirsiniz.</p>



<h2>Geliştirme Süresi Makine Süresini Yener</h2>



<p>Evet programın geliştirildiği süre ile programın çalışma hızı değerlendirildiğinde herkes geliştirilme süresinin daha kısa olmasını tercih edecektir.Örneğin C dilinde yazılan bir kod ile Python yazılan bir kod değerlendirildiğinde C dilinde yazılan kod 1 sn çalışırken Python bu süre 6 sn olabilmektedir. Lakin kod yazımında harcana&nbsp; süre değerlendirildiğinde Python çok daha idealdir.</p>



<p>Fakat bu bir ticari uygulama geliştirilmesinde yüksek verimlilik ,düşük eş zamanlılık gerektiren bir projede daha az doğru bir durumdur. Ancak birçok sıradan program yazımında ve makine öğrenimi gibi konularda hızlı olduğu aşikardır.</p>



<h2>Python İle Uygulama Programlama</h2>



<p>Python ile bir çok GUI uygulamaları yazabilirsiniz. Lakin diğer dillerde olduğu şekilde kurulum dosyası yapamazsınız. Bunu CX_Freeze ve PyInstaller kullanarak mümkün kılabilirsiniz.</p>



<h2>Veri Bilimi ve Makine Öğrenimindeki Yeri</h2>



<p>Veri analizi günümüzde IT için önemli konulardan biri halini almıştır. Python geniş kutuphanesi sayesinde çok az kod ile çok rahat sonuç alınabilmektedir.Tabi bu durum Makine öğrenimi için geçerli olmaktadır.</p>



<h2>Python Programlama Dilinin Kullanım Alanları</h2>



<p>Web Geliştirme</p>



<ol><li><strong>Django</strong> ve <strong>Pyramid</strong> gibi web frameworkları</li><li><strong>Flask</strong> ve <strong>Bottle</strong> gibi micro-framework’ler</li><li><strong>Plone</strong> ve <strong>django CMS</strong> gibi İleri seviye içeri yönetimi istemleri</li></ol>



<p>İnternet Protokolleri</p>



<ol><li>HTML ve XML, JSON, E-mail processing, FTP, IMAP ve diğer Internet protokolleri</li><li>Socket programlama ara yüzü oldukça kolaydır.</li><li>Ayrıca paketlerde daha kullanışlı kütüphaneler mevcuttur:</li><li><strong>Requests</strong> gibi güçlü http istemci kütüphanesi</li><li><strong>BeautifulSoup</strong> gibi HTML parse(ayrışımı)</li><li><strong>Feedparser</strong> gibi RSS besleme kütüphanesi</li><li><strong>Paramiko</strong> gibi SSH2 protokolünü adapte etme</li><li><strong>Twisted Python</strong> Asenkron ağ programlama kütüphanesi</li></ol>



<p>Bilimsel Hesaplama Ve Matamatik Alanında&nbsp;</p>



<ol><li><strong>SciPy</strong></li><li><strong>NumPy</strong></li><li><strong>Matplotlib</strong></li><li><strong>SageMath</strong></li></ol>



<p>Yapay Zeka Uygulamaları</p>



<ol><li><strong>Deepy</strong></li><li><strong>Caffe</strong></li><li><strong>OpenCV</strong></li><li><strong>&nbsp;Theano</strong></li><li><strong>TensorFlow</strong></li><li><strong>Sci-kit Learn</strong></li><li><strong>&nbsp;mlpy(Machine Learning Python)</strong></li><li><strong>NLTK (Natural Language Toolkit)</strong></li><li><strong>&nbsp;NeuroLab</strong></li><li><strong>&nbsp;PyMC</strong></li></ol>



<p>Nesnelerin İnterneti (IOT)</p>



<ol><li><strong>Raspberry Pi için temel programlama dili olarak belirlenmiştir.</strong></li><li><strong>MQTT Makineler arası bağlantı protokolü</strong></li><li><strong>Zerynth IoT ve Endüstri 4.0 uygulamalarına sahip framework</strong></li></ol>



<p>Veri Madenciliği (Data Mining) Uygulamaları</p>



<ol><li><strong>Orange Veri analizi ve görselleştirme</strong></li><li><strong>PyData Python Veri Analiz Kütüphanesi</strong></li><li><strong>Pandas veri analizi ve modelleme</strong></li></ol>


<p></p>]]></content:encoded>
					
					<wfw:commentRss>https://demiryalcin.com/2020/04/29/nedir-bu-python/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://demiryalcin.com/wp-content/uploads/2020/04/python-code.jpeg" length="102734" type="image/jpeg"/><media:content url="https://demiryalcin.com/wp-content/uploads/2020/04/python-code.jpeg" width="1000" height="668" medium="image" type="image/jpeg"/><post-id xmlns="com-wordpress:feed-additions:1">2116</post-id>	</item>
	</channel>
</rss>
