FRONTEND KAPSAM
Geleceğin Programlama Dili JavaScript Mi ?
Geleceğin Programlama dili JavaScript mi? Evet bana göre JavaScript’ tir. Geleceğin İngilizcesi JavaScript olacaktır.
Programlama dili ve framework karşılaştırmaları hepimiz okuyoruz. Bu yazı bu amaç ile yazılmış bir yazı değildir. Sadece her geçen gün JavaScript öğrenmeye yapacağınız yatırımın geleceğinize yatırım olduğunu anlatmaya çalıştığım bir yazı olacak.
Herkes bilir ki programlama dil seçiminde,
- uygulama ihtiyaçları,
- ekibin deneyimi,
- uygulamanın çalışacağı ortam,
- komünite ve ekosistemin gücü
- vb. değişkenler dil seçiminizi etkiler.
Benim zihnimde oluşan eşleştirme aşağıdaki şekildedir.
- Backend — Java, C#, PHP
- Web Frontend — JavaScript
- DevOps — Go
- Mobil — Swift, Kotlin
- Linux, Windows, Unix, Desktop App → Visual Basic, Delphi, C, Java, C#
- Data Analysis — Python, R, Julia
- vb…
Fakat son 10 senede Web’in gelişimi okadar hızlı ve büyük ki, yazılım sektöründeki diğer bütün alanları etkiliyor ve buranın ana dili JavaScript tir. Bu büyüme → JavaScript ve ekosistemini inanılmaz güçlü hale getirmiştir. Bu kesinlikle şans değil. Üzerine harcanan efor, emek, enerjinin sonucudur. Peki neler değişti ?
- JavaScript dil olarak,
- JS Ekosistemi daha çok birbirine bağlı çalışabiliyor,
- JS çalıştıran JS Engine Performansı ve Yetenekleri Gelişti,
- JS çalıştığı ortamlar olarak o kadar gelişti ki,
- Enterprise kullanım için hale geldi,
- Veri analizi konusunda çok güçlü bir ortam sağlıyor,
Web Ekosistemi ile birlikte yukarıda bahsettiğim gruplamaların nasıl JavaScript doğru kaydığını sizde fark edebilirsiniz.
JavaScript Dil Olarak Nasıl Gelişti, async/await, arrow functions, promises, iterators, generators, ES modules
JavaScript Kütüphane Ekosistemi giderek ortak yapılarda kullanılabilir hale geldi. Tarayıcıda veya Node.js üzerinde çalışan kütüphaneler arasında bir fark ve ayrışım kalmadı, Bundlers, transpilers, ve loaders araçları ile artık kütüphaneler her yerde çalışabilir hale geldi.
- npm,
- bundlers(webpack, Browserify, Rollup, Parcel)
- loaders (css-loder, ts-loader vb…)
- transpilers (Babel, TypeScript, Reason, Elm, PureScript, SASS)
Performance Gerektiren Konularda V8Engine ve diğer JS Engine her geçen gün daha performanslı ve daha çok yeteneğe sahip oluyorlar. WebGPU, WebAssembly, ve diğer WebAPI standartları her geçen gün daha fazla geliştiriliyor. Daha hızlı ve performanslı çalışması için büyük bir ekosistem tarafından geliştiriliyor.
JS Çalıştığı Ortamlar, Node.js ile birlikte tarayıcıda çalışma zorunluluğu ortadan kalktı. Önce Sunucularda ve Local Makinelerde çalışırken, günümüzde aşağıdaki ortamlarda uygulama geliştirmeyi sağlayan bir çok araç bulunuyor.
- Desktop uygulaması geliştirmekte Electron vb.
- Mobile ortamlarda React Native vb.
- Backend ve Frontend Rendering İşlerini Yapabilecek Next.js vb.
- Arduino, Raspberry Pi ve Robotlarda için Johny Five vb.
- Headless JS for Testing Puppeteer vb..
Enterprise Kullanım İçin Hazır Hale Geldi, önceden yazılım geliştirme IDE sadece C, C++, Java, C#, vb diller için Borland, Visual Studio, Eclipse ve IntelliJ iken , Web’de olay sayfa geliştirme olarak düşünülürken Adobe Dreamweaver, Notepad veya gelişmiş Notepad kullanırken artık büyük bütün IDE’ler JavaScript ve Türevleri (TypeScript, Flow vb…) destekler durumda.
IDE içerisinde plugin olarak kod kalitenizi arttıracak Linter(ESlint) ve Kod Formatter ve Syntax Highlighter(Prettifier) bulunuyor.
JavaScript modül ve kütüphane yapısı Modules çok gelişmiş durumda, NPM ile açık kaynaklı kütüphane paylaşımı en fazla olan paket yöneticisidir. Her alanda açık kaynaklı kütüphaneleri bulabilirsiniz. Bunu CI/CD sisteminde kullanmak için npm ve yarn bulunur.
Test kısmında, Unit Test, Integration ve End to End Testlerine kadar birçok hazır kütüphane ve servis bulunur. Frontend Testing, Backend içinde benzerleri bulunuyor.
İster Java, C#, isterseniz Fonksiyonel programlama background geliyor olun TypeScript ve türevleri ile aynı bu ortamlarda gibi geliştirme yapabilirsiniz.
Daha nice saymadığım gelişme JavaScript Enterprise ortamda kullanılmasını mümkün kılmıştır.
Bulut Servislerinde, SaaS Servislerinde, API Kullanımında, Bu konuda AWS(Amazon Web Servislerinde) tüm servislerin JavaScript desteği bulunur. Ve diğer dillere göre en güçlü olarak JavaScript ve TypeScript desteklenir. Bunun nedeni Netlify, Vercel, Auth0, Stripe, Github vb… SaaS ekosistemin API yapısının bazıları sadece JavaScript üzerine gitmesi ve Serverless alanında en çok JavaScript’in tercih ediliyor olması olabilir.
Veri Analizi, esas bu yazıyı yazma nedenim olan konuya geldik. Şu ana kadar veri analizinde, hatta yapay zeka konularında Python ve R dilinin yerine JavaScript hiç düşünmemiştim. Ama geçen karşılaştığım 2 blog bu yaklaşımların JS yönünde değiştiği algısı oluşturdu. Bu yazılar
- D3.js ve ObservableHQ geliştiricisi Mike Bostock tarafından JavaScript for Data Analysis ve
- Bir akademisyen olan JavaScript and the next decade of data programming
Bu yazıları orijinal versiyonlarından okumanızı öneririm. Ben burda bu konuyu anlatmayacağım ama dayandığı temel nokta şu
Cep telefonunuzda ki kameraları neden pahalı alınan daha kaliteli kamera ve fotoğraf makinelerinden daha çok ve sık kullanıyoruz? Neden ? Çünkü taşınması kolay, hemen çektiğimiz fotoğraf veya videoları sosyal medyada veya bir bulut ortamında saklayabiliyoruz. Hatta bunları atmadan cep telefonumuzda düzenleyebiliyoruz.
İlk Cep Telefonlarlarındaki kameralar o kadar iyi değildi ama zaman içerisinde o kadar güçlendi ki şu anda diğerlerinin yerini almış durumda.
JavaScript içinde durum budur. JS her platformda çalıştırılabilen, her türlü amaçla kullanılabilen bir dil olma yolunda her geçen gün daha fazla yer kapladığını, diğer dillerden pay aldığını görebilirsiniz, ilk eşleştirme şu yönde değişmeye başladı özetle 😃
- Backend — JavaScript
- Web Frontend — JavaScript
- DevOps — JavaScript
- Mobil — JavaScript
- Linux, Windows, Unix, Desktop App → JavaScript
- Data Analysis — JavaScript
- vb…
Düşüncem: Programlama konusunda kendinize yatırım yapacaksanız. JavaScript’te yapın derim. Bu konuda onurdayibasi.com JavaScript ile ilişkili birçok konuda içeriğe ve bilgiye bir yazı serisi halinde ulaşabilirsiniz.
Referanslar
Okumaya Devam Et 😃
Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.