Evet ve hayır.
Sözdiziminin birkaç farklı yönü var.
- okunabilirliği
- ekspressivite
- parsability
Okunabilirlik zaten belirtilmiştir.
Anlatımcılık ilginç bir durumdur. Fonksiyon-geçişi örnek olarak kullanacağım, çünkü bu bir anlamsal / sözdizimsel ağrının çarpma noktası.
Örneğin C ++ alalım. Bu modadan sonra birinci dereceden bir fonksiyon yaratabilirim:
class funcClass
{
int operator()(int);
}
funcClass fun;
void run_func(funcClass fun)
{
fun();
}
Bu belirli deyim, Stepanov'un Programlama Öğelerinde yaygın olarak kullanılmaktadır .
Öte yandan, ben böyle bir şeyle Common Lisp bunu taklit edebilir bu :
(defun myfunc() )
(defun run_func(fun)
(fun))
Veya, Perl -
sub myfunc
{
}
sub run_func
{
my $func = shift;
$func->(); #syntax may be a little off.
}
Veya, Python'da -
def myfunc():
pass
def run_func(f):
f()
Bunların hepsi - esasen - aynı anlamsal içeriğe sahiptir, ancak C ++ örneği bazı tipte meta veri taşır. Hangi dil, daha üst düzey bir işlevi en iyi şekilde geçirme fikrini ifade eder? Common Lisp zar zor sözdizimi bir varyasyon yapar. C ++, yalnızca işlevi 'taşımak' için bir sınıf oluşturulmasını gerektirir. Perl, bir miktar farklılaşma yapmak için oldukça basittir. Python da öyle.
Hangi alan problem alanına daha uygun? Aklınızdaki düşünceleri en az 'empedans uyumsuzluğu' ile en iyi hangi yaklaşım ifade edebilir?
Parsability - aklımda - büyük bir anlaşma. Özellikle, IDE'nin dili hata yapmadan ayrıştırma ve doğrama yeteneğine atıfta bulunuyorum. Yeniden biçimlendirme yararlıdır. Belirteçle ayrılmış diller iyi ayrıştırma eğilimindedir - ruby / c / pascal, etc.
Yine de düşünün - gerçek dünyadaki sorunları çözmek için her ciddi dilde her türden büyük sistemler oluşturuldu. Sözdizimi bazı şeyleri ifade etmek için bir engel olsa da, işe yaramaz bir engeldir. Turing denkliği ve hepsi.