# Hangi Programlama Dili Hangi Framework Öğrenilmeli?

Mikroservis mimarisinde geliştirme yapma sürecimizi hızlandırmak için framework kullanmamız gerekir. Böylece hedefimiz olan uygulamamızı geliştirmeye odaklanabiliriz. Tabii söylem bu kadar basit gözükse de doğru seçimi yapabilmek biraz zor olduğunu kabul etmek gerekiyor. Framework kullanmak işleri kolaylaştırdığı gibi sizi belirli bir dile ve kullanım tarzına zorluyor. Yazılım geliştirme de uzman olmuş ve işi sanatsala döken arkadaşların bir kısmı framework bağlı kalmak istemiyor. Geri kalan kısımda hızlı bir proje çıkarmak ve sonuca odaklanmak için yönelmeyi tercih ediyor.&#x20;

Aslında seçim framework ün yeteneklerinden ziyade sizin ve ekibinizin yetkinliklerine göre şekillenmektedir. Kurumsal firmalarda da haliyle başlanılan bir dil ve mimari olduğu için seçim sizin özgürlünüzde olamayacaktır. Yeniden sıfırdan başlayacaklar içinde ekip içerisinde bilinen teknolojiler üzerinden seçime gidilecek olsa da hepsini birer kez araştırmak seçimimize karşı neleri seçmediğimizin farkında olmak faydalı olacaktır.

Burada daha çok JAVA, C++, C# gibi nesne yönelimli programlama dillerinden bahsetmiş olsam da web developper kullanmayı sevdiği Javascript dili artık sadece browser üzerinde değil NodeJS çözümüyle artık server tarafında da kod yazılmasının kapısını web geliştiricileri için açmıştır. Böylece backend ve frontend karmaşasında birbirlerine olan bağımlılığı kendi lehlerine kırdıklarını düşünebiliriz. Tabii backend severler içinde yeni bir dil öğrenebilmenin kapıları aralanmış oldu. NodeJS temel alan ElectronJS kendi sunduğu modüller ile daha da işleri kolaylaştırarak uygulama geliştirme noktasında yeni bir kapı olmuştur.

## Nesne Yönelimli Diller Ailesi (Python, Java, C#, C++)

Örnek ve başlangıç araştırma noktası olarak aşağıdaki gibi bir inceleme yapabilirsiniz.&#x20;

**Python** dili için **Django** framework veya **Flask**,&#x20;

**Java** için **Servlet, JSP** (Java Server Pages, Servlet kullanır) veya **JSF**, ayrıca **Spring Framework** veya **Spring Boot** da birer seçenek olurken,

**C#** dili için **.NET Core** platformları tercih edilebilir. Tabii seçenekler bu kadarla sınırlı değildir. İnternette ayrıntılı bilgiler ve karşılaştırmalar bulabilirsiniz.

Altaki bağlantıda her sene düzenlenen framework performans karşılaştırma yarışmasının sonuçlarını da gözlemleyebilirsiniz.

{% embed url="<https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=plaintext>" %}

Ayrıca Stack Overflow Survey lerine de bakmak faydalı olabilir.

{% embed url="<https://insights.stackoverflow.com/survey>" %}

**Java** severler için iki frameworkunu karşılaştıran inceleme yazıları.

{% embed url="<https://www.baeldung.com/spring-vs-spring-boot>" %}

{% embed url="<https://www.mobilhanem.com/spring-framework-nedir/>" %}

{% embed url="<https://medium.com/@buseodaci/spring-framework-nedir-fe46c9ce3456>" %}

{% embed url="<https://medium.com/@furkanbegen/spring-boot-nedir-4cc3f41eb7de>" %}

{% embed url="<https://medium.com/kodgemisi/spring-boot-ile-%C3%B6rnek-web-uygulamas%C4%B1-914c94c9099f>" %}

Alttaki yazıda bir Java geliştiricisinin neden artık Django kullandığını anlatan güzel bir yazı. MVP (Model-View-Presentation) tasarım için Django iyi bir seçenek diyor.

{% embed url="<https://hackernoon.com/why-i-chose-django-over-java-frameworks-for-my-recent-project-7ec85cb35756>" %}

Burada da kısaca Django vs .NET demişler. Machine Learning ve Big Data ile ilgilenecekseniz ve hızlı yazılım geliştirme yaklaşımı (Rapid Application Development (RAD), Rapid development approach) benimsiyorsanız Django demiş.

{% embed url="<https://www.quora.com/Which-framework-should-I-learn-Django-or-ASP-NET-Core>" %}

{% embed url="<https://www.youtube.com/watch?v=C__c5fEFmZk&feature=youtu.be>" %}

{% embed url="<https://www.oracle.com/java/technologies/>" %}

**JAVA SE (Standard Edition)** :  deploy Java applications on desktops and servers.

**JAVA ME** **(Micro Edition)** : applications running on embedded and mobile devices

**JAVA EE** **(Enterprise Edition)** :  Java Servlet, Java Server Pages (JSP),  Java Server Faces (JSF), gibi ileri kurumsal Java teknolojileri içerir. JSF ile component temelinde moduler, event tetiklemeli AJAX destekleyen tasarımlar kurgulanabiliyor.

**JAVA Card :** IoT security such as smart cards and other tamper-resistant security chips

## Javascript Ailesi (NodeJS, ElectronJS)

{% embed url="<https://youtu.be/jkvlMRN-DDo>" %}

{% embed url="<https://medium.com/@ugurerdal/electron-nedir-b6778be7aa06>" %}

{% embed url="<https://stackshare.io/stackups/electron-vs-nodejs>" %}

> The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on io.js and Chromium and is used in the Atom editor. With Electron, creating a desktop application for your company or idea is easy.

## KARŞILAŞTIRMALAR

{% embed url="<https://www.guru99.com/cpp-vs-c-sharp.html>" %}

{% embed url="<https://cs.lmu.edu/~ray/notes/cppjavacsharp/>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kurumahmut.gitbook.io/genel/yazilim-teknolojiileri/hangi-programlama-dili-hangi-framework-ogrenilmeli.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
