Kobitek.com web sitesi, analitik ve kişiselleştirme dahil olmak üzere site işlevselliğini sağlamak ve reklam gösterimini optimize etmek için çerezler gibi verileri depolar.
Javascript Programlama Dilinin Kökenleri :
Javascript, kökenleri birçok yılların deneyiminden sonra oluşturulmuş sağlam nesne yönelimli yapısal programlama dili temeline dayanan yeni bir programlama dilidir. Hem yapısal hem nesne yönelimli karakterinden dolayı gerek düşünüş yönünden Avrupa kökenli, uygulama yönünden A.B.D. kökenlidir. Bu dilin ilk geliştirilme sırasında adı ECMA script olarak anılırken ( ECMA = European Computer Manufacturers Association) uygulama sırasında Netscape şirketi tarafından adı JAVASCRIPT olarak değiştirilmiştir.
Avrupa'nın bilgisayar yazılımına katkısı , yazılımın donanımdan bağımsız bir entelektüel çaba haline gelebildiği, 1975 yıllarından başlayarak giderek artmıştır. Her şeyden önce, kullanıcı sayısı çok sınırlı kalmış olan Algol dilinden sonra, ilk yaygın kullanımlı yapısal dil olan Pascal, İsviçre'de ETH da geliştirilmiştir. Yine yapısal dilin en son noktası kabul edilen ADA programlama dili, önceleri Fransa’da bir üniversite projesi iken, olayın ciddiyetini anlayan İngiliz üniversiteleri aracığı ile A.B.D. de özellikle askeri projelerde kod standardını sağlamak amacı geniş uygulama alanı bulmuştur. Yakın tarihin en önemli olaylarından biri olan Internet yazılım alt yapısını oluşturan Hipertext Protokolü yine İsviçre’de CERN de geliştirilmiştir.
Yine yakın tarihin en önemli geliştirmelerinden biri olan ve PC ler için UNİX işletim sistemi uyarlaması olan LINUX , Finlandiya'da Linus Torvalds tarafından geliştirilmiştir. Pascal örneğinin başarısından sonra ve Pascal dilinin, 1981 lerde geliştirilmiş olan ACTOR programının özelliklerinden esinlenerek yapılan eklentiler ile nesneye yönelik özellikler kazanmasından sonra, ilk önce bir işletim sistemi olarak düşünülen ve ilk geliştiğinde sadece mantıksal özelliği olan C programlama dili, zamanla, Bell laboratuarlarının katkısı ile yapısal özelliklere de sahip C++ programlama dili haline gelmiştir. Aslında gerçek bir programlama dili olarak tasarımlanmayan C++ dili, özellikle bellek yönetimi ile ilgili ve programcıya gereksiz ağır yük yükleyen, kullanım zorluğu ile yeni bir yapısal ve nesne yönelimli programlama dilleri neslinin oluşmasına zemin hazırlamıştır. Yeni oluşumun sahnesi, yine Avrupa’dır.
Yeni nesil yapısal ve nesne yönelimli programlama dilleri olarak JAVA ve JAVASCRIPT ileriye çıkmaktadırlar. Java programlama dili, Pascal ( Windows işletim sistemine uyarlanmış hali ile DELPHI) ve C++ benzeri bir geniş perspektif dili olarak tasarlanmışken, Javascript daha ziyade hipertext protokolü içinde ile programlama öğeleri katılması amacına yönelik bir dil olarak geliştirilmeye başlanmıştır.
Görüldüğü gibi, Javascript , Java ‘nın bir alt kümesi şeklinde olmayıp, her iki dilin de ile aynı gelişim sürecinde ve felsefesini paylaşmalarından dolayı, sentaks ve semantik benzerlikleri olan türdeş dillerdir. Her şeyden önce her iki dil, nesne yönelimi açısından temel olarak faklıdır. Javascript nesne hiyerarşisini prototip temelli , Java sınıf temelli olarak yürütür. Javascript Versiyonları : ECMA Spesifikasyonlarını kısmen karşılayan ilk ürün, Netscape şirketi tarafından, Javascript 1.0 olarak Netscape tarayıcısı olan Navigator 2.0 ile kullanıma açılmıştır. Zaman içinde, 1.1,1.2,1.3 ve 1.5 versiyonları da Navigator’un çeşitli sürümleri ile kullanıma açılmıştır.
Microsoft ne Java ne de Javascript’e hiçbir zaman sıcak bir yaklaşımda bulunmamış, kendi ECMASCRIPT versiyonunu JScript adı ile kendi Internet Explorer tarayıcısına yerleştirmiştir. Bu dil Javascript ile tam olarak benzeşmediğinden, bir Javascript programını her iki platform da da aynı sonuç verecek şekilde yazmak bugün tasarımcıların en çok zorlandıkları konulardan biridir.
Java, Javascript ve Hipertext Prokotolu (HTML sayfaları): Java dili çok geniş kapsamlı olup, HTML sayfalarına entegrasyonu ancak Applet adı verilen ve HTML satırları içinden çağrılan programlar aracığı ile yapılabilmektedir. Javascript ise, html sayfalarına gömülü olarak tam entegre şekilde kullanılabilmektedir. Bu özellik, Javascript programlama diline çok geniş bir esneklik kazandırmaktadır. Bu olanaklardan dünyada tam olarak yararlanıldığını söyleyebilmek ise henüz zordur. Javascript HTML sayfalarına gömülü olarak, kullanıcı tarafında çalışan programlar ile sunucu tarafında çalışan programlar halinde, kullanıcılardan enteraktif bir şekilde veri alışverişi amacı ile kullanılmaktadır.
Bu konuda çok geniş kitaplıklar oluşturulmuş olup hemen her konuda yazılmış örneklere ulaşmak ve onların adaptasyonu ile bir projeyi çok kısa sürede tamamlamak olanağı bulunabilir. Javascript ile birlikte, bu konuda, ASP, VBscript, PERL, PHP gibi başka scripting dilleri de kullanılmaktadır. Bütün bu bu dillerin yapısal özellikleri, Javascript ile büyük benzerlik gösterir. Buraya kadar incelenenler, bugüne kadar yapılan çalışmaları kapsamaktadır. Javascript ’in bugün oluştuğu konum ise çok daha geniş kapsamlı olup kendisi adeta bir evrensel programlama ve uygulama dili niteliği kazandığı şeklinde olacaktır.
Henüz fazla fark edilmemiş ve özellikle bizim gibi ekonomik olma zorunluluğu içindeki ülkeler için çok önemli olabilecek bu özelliği aşağıda inceleyeceğiz. Evrensel Programlama dili olarak Javascript: Javascript sadece bir form verisi değerlendirme aracı olarak düşülüp kullanıldığında yeteneklerinin büyük çoğunluğu israf edilmiş olur. Bu dili, bir tür COBOL olarak nitelendirmek yapılabilecek en büyük yanlışlardan biridir. Javascript, büyük ölçüde string ve matematiksel hazır fonksiyon içeren, her türlü mantıksal kontrole sahip olan, döngü özellikleri son derece gelişmiş bir dildir.
Javascript, prensip olarak yüklü paralar ödenerek satın alınabilen VISUAL BASIC, DELPHI gibi program paketlerinden hiç aşağı kalır bir programlama ortamı değildir. C++ dili ise, zaten mutlaka gerekmedikçe kullanılmaktan kaçınılması gereken bir dil olarak nitelendirilebilir. Javascript ’in, sahip olduğu nesne yönelimli programlama yeteneği, her zaman önemli olmayabilir. Nesneye yönelik programlar hiyerarşi içeren problemlerde önem kazanırlar. Özellikle, stok kontrol, biyolojik taxonomi, gen teknolojisi gibi konularda katı hiyerarşi bulunabilir. Fiziğin ve kimyanın çoğu konularında ise daha çok verilerin matematiksel işlenmesi söz konusudur. Aslında, Borland ‘ın TURBO PASCAL ‘ının 3.0 ,4.0, 5.0 sürümlerinde nesne kavramı yoktu, yani ilk çıktığı 1982 yılından sonra en az üç yıl süreyle nesneye yönelik programlama kullanmak için belki Actor gibi çok yaygın olmayan özel programlar kullanılmaktaydı, her türlü iş ise eldeki programla yapılabiliyordu. Nesneye yönelik programlama ancak sürüm 5.5 ile ortaya çıkmıştır. C dili için de durum aynıdır. İlk çıktığı sürümde, nesneye yönelik programlama yeteneğine sahip olmayan C , ancak BELL (şimdiki adı Lucent) laboratuarlarında yapılan çalışmalardan sonra nesneye yönelik özellikler içeren C++ dili haline gelmiştir.
Ayrıca, belki de en yaygın olarak kullanılmış olan FORTRAN ve COBOL dilleri de nesneye yönelik değillerdi.Görüldüğü gibi, programcılık nesneye yönelik model ile birlikte ortaya çıkmış değildir veya diğer deyimle dünyanın bütün problemleri, nesneye yönelik programlama olmadan çözülemez değildir. Bütün bunlar, bir programlama dilinin salt nesneye yönelik özellikleri kadar işe yarayabileceğini düşünmenin yanlışlığını ortaya koymaktadır.
Javascript, nesneye yönelik ve nesneye yönelik olmayan özellikleri ile, her türlü bilimsel programlama paketlerinin oluşturulmasına son derece uygun bir platform oluşturmaktadır. Özellikle, statik ve dinamik HTML öğelerinin kullanıldığı, görsel açıdan şölene döndürülmüş girdi formları ve çıktılar kullanılarak çok albenili giriş/çıkış sayfaları oluşturulabilir. Çok basit bir örnek olarak, bir fonksiyonun, dikotomik arama ile köklerinin bulunması probleminin Javascript ile programlanması örnek olarak verilmiştir.
Javascript programlarının evrensel bir veri işlem ortamı olarak nitelendirilmesi, bu program dilinin sözcüğün tam anlamı ile yaygın ve ücretsiz olmasıdır.
Örnek programlarda görüldüğü gibi kaynak kodları eğer HTML sayfaları içine gömülü ise, hiç kaynak kodu indirmeye gerek kalmamaktadır. Programın bulunduğu WEB sayfasının kaynağını açan menü adımlarını kullanarak aslında bir text dosyası olan kaynak kodları görülebilmektedir.
Eğer istenirse, tüm WEB sayfası kendi bilgisayarınıza kopya edilerek kaynak kodu sürekli el altında tutulabilir. Burada dikkati çekmesi gereken nokta, bu işin bir açık kod olayı olmasıdır. Tüm kodlar açıktır ve hiç bir şekilde gizlenemez. Eğer, Javascript kaynak kodları, HTML etiketleri arasına gömülü değil de ayrı bir *.js uzantılı text dosyasına yazılı ise, kaynak kodlarını içeren dosyanın ancak yazarının olanak vermesi halinde, bir FTP sitesinden indirme şansınız olabilir. Yani, bu noktada açık kaynak olayı bitiyor. Bu kadarcık bir önlemi de, yazarların telif haklarını koruyucu bir eylem olarak görmek gerekir.
Javascript ile yapılamayacak çalışmalar, kendi kendine çalışan *.EXE kodlu programlar yaratılamamasıdır. Aslında *.htm (veya *.html) uzantılı programlar kendi kendilerine default browser üzerinde otomatik çalıştıklarından EXE kodlarına hiç gerek yoktur. Ayrıca, Javascript dilinin norm oluşturucusu ECMA, hacking olaylarının engellenmesi için, Javascript diline hiç bir dosya okuma ve yazma yeteneği koydurmamıştır. Bilimsel çalışmalarda az dosya kullanıldığından bu fazla bir engel oluşturmayabilir. Dosyalama özelliği yardımcı programlarla arttırılabilir. Javascript kaynak kodları bir kere elinizde olduktan sonra, bunları kolaylıkla açabilir, okuyabilir, değiştirebilir ve yeniden çalıştırabilirsiniz. Bunun için hiç bir ücret ödemeniz gerekmez ve herkesin elinin altında bulunan bir tarayıcı ile Notepad'den başka hiç bir yardımcı programa da gereksinmeniz olmaz. Bence bu gerçek bir devrimdir ve Microsoft, .Net stratejisi ile bu çalışmada olduğu gibi bir kaynak kodu paylaşımlı sistemi oluşturmaya çalışmaktadır.
Başka Kod Paylaşım Modelleri : Başka programlama dillerindeki kodlar, bir FTP aracığı ile ilgili siteden indirilebilir. Bu kodlar *.EXE halinde iseler, sadece çalıştırılabilir ve ne okunabilir,ne de değiştirilebilir. Eğer kaynak kodu dağıtılmışsa, bu kodlar pahalı programlar satın alınıp bilgisayara yerleştirmedikten sonra, açılıp okunamaz ve değiştirilemez. Bu noktada, Javascript ile kaynak kodu paylaşımın, başka dillere göre ne denli ekonomik ve sosyal yararlı olduğu görülmüştür. Özellikle, Türkiye gibi ekonomik zorlukları aşmaya çalışan ülke kullanıcılarının bu ücretsiz kaynaktan olabildiğince yararlanmaları gerekmektedir.
YAZAR: Prof.Dr.Bedri Doğan Emir
Tufan KARACA ile
Yönetim Vizyonu
BÜYÜTEÇ
Destekçilerimize Teşekkürler
Kozyatağı Mahallesi Sarı Kanarya Sokak
Byofis No: 14 K:7 Kadıköy 34742 İstanbul
Telefon: 0216 906 00 42 | E-Posta: info@ kobitek.com
KOBITEK.COM, bir
TEKNOART Bilişim Hizmetleri Limited Şirketi projesidir.
2001 yılından beri KOBİlere ücretsiz bilgi kaynağı olma hedefi ile, alanında uzman yazarlar tarafından sunulan özgün bir iceriğe sahiptir.
Tüm yazıların telif hakları KOBITEK.COM'a aittir. Alıntı yapılabilir, referans verilebilir, ancak yazarın kişisel bloğu dışında başka yerde yayınlanamaz