Uzun süredir ha bugün ha yarın yazmaya başlayacağım diye diye kağıt üzerinde bir komut satırı programı tasarlıyordum. Giriş seviyesi video editleyecek, basit sesler üretecek, eposta atabilecek, bir milyon basamaklı sayılarla aritmetik işlem yapabilecek, dosya/klasör işlemleri yapacak vs. Tamamen fantezi ürünü, iş olsun diye düşündüğüm mutant bir Total Commander kopyası. Bu arada Rust'la çalışmış olacaktım, iyice intibak edebilecektim.
Bu arada ChatGPT ortaya çıktı. Program da yazabildiğini görünce atladım hemen test edeyim bakayım neler yapabiliyor. Önce yukarıda bahsettiğim program için düşündüğüm özelliklerin ilkel sürümlerini yapmasını isteyeceğim. Mantıklı bir şey üretebilecek mi? Pek sanmıyor(d)um. Çünkü gerçek hayatta ihtiyaç duyulabileceğini düşünmediğim salakça bir şey isteyeceğim
Türkçe olarak: "insanların kağıt kalemle yaptığı toplama işlemini taklit eden bir rust programı yazar mısın?" dedim. "Niye kağıt kalemle yav" demedi tabi...
use std::io;
fn main() {
println!("Welcome to the Rust Calculator!");
println!("Please enter the first number:");
let mut input_1 = String::new();
io::stdin().read_line(&mut input_1).expect("Failed to read line");
let num_1: i32 = input_1.trim().parse().expect("Please enter a valid number");
println!("Please enter the second number:");
let mut input_2 = String::new();
io::stdin().read_line(&mut input_2).expect("Failed to read line");
let num_2: i32 = input_2.trim().parse().expect("Please enter a valid number");
let result = num_1 + num_2;
println!("{} + {} = {}", num_1, num_2, result);
}
Bu program insanlarıın kağıt kalemle yaptığı toplama işlemini taklit etmiyordu. Hah dedim anlamayacak işte gerizekalı "info horder"...
Türkçe olarak: "bu programı insanların kağıt ve kalemle yaptığı işi taklit edecek biçimde değiştir" dedim.
Cevap olarak, önce veri tipleriyle ilgili hata içeren bir program üretti, hata mesajını kendisine bildirdim. Cevap olarak şunu üretti:
use std::io;
fn main() {
println!("Welcome to the Rust Calculator!");
// İlk sayının girilmesi
println!("Please enter the first number:");
let mut input_1 = String::new();
io::stdin().read_line(&mut input_1).expect("Failed to read line");
let num_1: Vec<char> = input_1.trim().chars().rev().collect(); // sayıyı tersine çevir
// İkinci sayının girilmesi
println!("Please enter the second number:");
let mut input_2 = String::new();
io::stdin().read_line(&mut input_2).expect("Failed to read line");
let num_2: Vec<char> = input_2.trim().chars().rev().collect(); // sayıyı tersine çevir
// Sayıların toplanması
let mut result: Vec<char> = Vec::new();
let mut carry: i32 = 0;
for i in 0..num_1.len().max(num_2.len()) {
let digit_1 = num_1.get(i).unwrap_or(&'0').to_digit(10).unwrap() as i32;
let digit_2 = num_2.get(i).unwrap_or(&'0').to_digit(10).unwrap() as i32;
let sum = digit_1 + digit_2 + carry;
let digit = (sum % 10) as u8;
result.push((digit + b'0') as char);
carry = sum / 10;
}
if carry > 0 {
let digit = (carry as u8 + b'0') as char;
result.push(digit);
}
// Sonucun ekrana yazdırılması
println!("Result:");
for digit in result.iter().rev() {
print!("{}", digit);
}
}
Vay anasını, tam olarak istediğim işi yapan Rust programı!
"O ıvır zıvır kullanıcı promptunu koda ekleme, her şeyi güzelce bir fonksiyona paketle" desem onu da bir iki iterasyonda yapacaktı. İnsan eliyle mükemmelleşmemiş ama çalışıyor mu çalışıyor.
İşte bu noktada kafam karıncalandı ve bazı sorular belirdi (tabii ki hepsi hemen bir anda belirmedi). Zaten yazıyı da foruma bu nedenle yazıyorum ya!
- ChatGPT varsa ve herkes buna erişebiliyorsa benim yazdığım herhangi bir kodun, programın ne anlamı var?
- ChatGPT, şimdi değil ama muhtemelen bir sene sonra benim mutant programımın yapabileceği herşeyi zaten herkesin bilgisayarında yapabiliyor olacak. (ChatGPT şu videoları birleştir, fps'yi de 25 yapıp Keramettin'e yolla...)
- ChatGPT, isteyen herkese istediği kodu vermeye devam ederse ve herkes bu üretilenleri ciddi ciddi yaymaya, piyasaya sürmeye başlarsa ne olacak?
- Bir şey öğrenmenin, üzerinde uzmanlaşmanın, aylarını verip üzerinde tepinmenin ve düzgün bir şeyler üretmek için kıvranmanın ne anlamı var?
- İnsanın uzmanlığına ne olacak?
Kısaca; önümüzdeki beş sene içinde bu teknolojilerin geleceği noktayı ve uygulama alanlarını görmeyi çok istemekle birlikte yaptığı birkaç güzel şeyin yanında diğer şeyleri dejenere edeceğine dair çok kuvvetli hislerim var.
Şimdilik başlangıç seviyesinde olmasına rağmen yalnızca direktiflerle oynanabilir oyun üretiyor, başka yapay zekalarla birlikte çalışıp neredeyse gerçekçi müzik videosu üretiyor.
"Allahallah ne acayip" demeye fırsat kalmadan, yaratıcılık/uzmanlık/ter gerektiren her alanın azar azar istila edildiği hissine kapılıyorum. Çünkü insanın uzmanlığını, kafa patlata patlata ortaya koyduğu şeyleri anlamsızlaştırıyor gibime geliyor.
Kimisi de kalkıp "yok yahu ne alaka işte ne güzel her şey herkese erişebilir hale geliyor, demokratize oluyor" diyebilir. Ya da "gerçek uzmanların eline su dökebilir mi canım saçmalama" diyebilir. Açıkçası şu noktada bence de çok derin mevzularda cortlar, ama ne zamana kadar? 2025, 2030.
not: bu denemeleri gpt-3.5 ile yaptım