programcı için define, iki ayrı şey demek.
php'de define('AD', deger) fonksiyonu bir sabit tanımlar; sonra kodun her yerinde AD olarak kullanılır ve değiştirilemez. php 5.3 ile gelen const anahtar kelimesi aynı işi derleme zamanında yapıyor; fark şu: define çalışma zamanında ve koşullu tanımlanabilir (if içinde), const ise sınıf içinde ve ad alanlarında çalışır. sabit tanımlı mı diye defined('AD') ile bakılır; bu sitenin kodunda da veritabanı bilgileri tam böyle, define ile tanımlı sabitlerde tutuluyor.
c ve c++'ta #define ise ön işlemci direktifi. derleyici kodu görmeden önce metin değiştirme yapar: #define PI 3.14 yazdıysan koddaki her PI, 3.14 ile değiştirilir. makro da tanımlanabilir: #define KARE(x) ((x)*(x)). klasik tuzak parantezleri unutmak; KARE(a+b) yazınca parantezsiz makro a+b*a+b'ye açılır ve yanlış sonuç verir. ikinci klasik kullanım header guard: #ifndef, #define, #endif üçlüsüyle aynı başlık dosyasının iki kez dahil edilmesi engellenir. modern c++'ta sabitler için constexpr, makrolar için inline fonksiyon öneriliyor; #define yalnızca koşullu derleme için kalıyor.
bir de javascript'in eski modül sistemi amd'de define(['bagimlilik' ], function(){}) çağrısı var; requirejs ile modül tanımlamak için kullanılıyordu, es modülleri (import/export) yaygınlaşınca büyük ölçüde tarihe karıştı.
ingilizce fiil; bir şeyin anlamını, sınırlarını ya da niteliklerini kesin biçimde belirlemek. latince definire'den geliyor: de (tam olarak) ve finis (sınır). yani kelimenin kökünde "sınır çizmek" var; bir şeyi tanımlamak, onun nerede bitip başka şeyin nerede başladığını söylemek.
arama motoruna "define" yazan çoğu kişi aslında sözlük anlamı arıyor; google'ın "define:kelime" operatörü de tam bunun için var, aradığın kelimenin tanımını sonuçların en üstünde gösteriyor.
felsefede tanımlamanın üç klasik yolu var. cins ve ayrım (aristoteles): önce üst kategoriyi söyle, sonra onu benzerlerinden ayıran özelliği ekle; "insan, düşünen hayvandır". örnekle tanım: "meyve dediğim şey elma, armut, kiraz gibi şeylerdir". işlevle tanım: "çekiç, çivi çakmaya yarayan alettir". iyi tanım ne çok geniş olur (tanımlanan dışındakileri de kapsamaz) ne çok dar (tanımlananın bir kısmını dışarıda bırakmaz).
pratik faydası: bir tartışmanın uzayıp gitmesinin en yaygın nedeni tarafların aynı kelimeyi farklı tanımlaması. "başarı", "özgürlük", "girişimci" gibi kelimeler konuşulmadan önce tanımlanırsa tartışmanın yarısı bitiyor.