Neden birisi kendi kütüphanelerini, mantıklarını vb. Akışa kendi dilinizi geliştirmek yerine başka bir şeyle gitmek daha kolay değil mi?
Neden birisi kendi kütüphanelerini, mantıklarını vb. Akışa kendi dilinizi geliştirmek yerine başka bir şeyle gitmek daha kolay değil mi?
Yanıtlar:
Sadece "yeni dil yapmak istiyoruz" diyen birisinin değil, genellikle uzun sürecin bir ürünü olduğunu anladığınızda çok daha kolaydır.
Genellikle bazı problemlerin alana özgü basit bir dil kullanılarak çözülebileceği fikri ile başlar. Amaç genellikle uzman olmayanların bu dili kullanmasıdır, bu nedenle basittir ve genellikle güçlü yazma ve modüller gibi özelliklerden yoksundur.
Çok uzak çok iyi. Ama sonra, insanlar dil tarafından çözülemeyen sorunlara çarpmaya başlarlar. Bu nedenle, bu sorunları çözmek için yavaş yavaş yeni "özellikler" eklenir. Süreç yavaş olduğu ve sık görülmediği için, sorunların çözüldüğü sürece bu yeni özellikleri doğru bir şekilde tasarlama motivasyonu yoktur.
Zamanla, yeni dil, basit bir alana özgü dilden, genellikle çelişkili, kafa karıştırıcı anlambilim ve takip edilmesi zor sözdizimi kurallarıyla karmaşık bir "genel" amaç diline dönüşen özellikler kazanır.
Ve insanlar böyle büyük bir canavar yarattıklarını fark ettiklerinde, onu öldürmek ve uygun şekilde tasarlanmış bir dille değiştirmek için zaten çok geç.
Belirli şirketlere bağlı olmayan bu şekilde gelişen birkaç dil vardır, öksürük JavaScript öksürük PHP öksürük .
Akışa kendi dilinizi geliştirmek yerine başka bir şeyle gitmek daha kolay değil mi?
Elbette, ama bunu saçma bir sona kadar takip etmek için, eğer kimse yeni diller geliştirmediyse, hepimiz mecliste her şeyi yazardık.
Bazen akış olmaz. Yeni diller ortaya çıkar, çünkü birisinin yeni bir şey icat etmek isteyen bir dil hobisi ya da zaten var olanın karşılanmamış ihtiyacı olan bir şirket olsun, çizmek için bir kaşıntısı vardır.
John Backus , 1953'te IBM Mathematical Formula Translating System'i önerdiğinde tam olarak böyle oldu . Bilimsel kullanıcıların matematiksel formülleri bir araya getirmekten daha kolay bir şekilde belirtmelerini istedi. Bu tescilli ürün, derleme olmayan ilk programlama dili oldu ve bunu Fortran olarak biliyorsunuz.
Fortran, bu rotaya ilk giden yer olan Erlang, hemen hemen poster çocuğu. Ericsson, telefon anahtarları için yazılımın geliştirilme şeklini geliştirmek istedi ve ihtiyaç duyduklarına özgü özelliklerle prototip oluşturmak için bir dil icat etti. İlk keşfettiğimde, paket servisim, 1986'da mevcut olan diğer diller tarafından iyi hizmet edilmeyecek gerçek bir sorunu olan insanlar tarafından geliştirilmesiydi. Erlang, sizin gibi tescilli, şirket içi bir ürün olarak kaldı. meslektaşım on yıldan fazla bir süre sonra açık kaynaklı hale gelinceye kadar karşılaştı ve şimdi bu ana akım bir dil.
Hem Go hem de Scala, şeylerin büyük düzeninde nispeten genç dillerdir ve meslektaşınızın şirketinde kullanılan dilin her ikisinden de önce olması tamamen mümkündür. Yapması gereken tarihi, neden var olduğunu ve neden kullanılmaya devam ettiğini sormaktır.
On yılı 2003 ile 2013 yılları arasında, köklerini 1970'lerin sonlarında olan kendi dilini içeren sektöre özgü bir ortamdan yoğun olarak yararlanan bir şirkette çalışarak geçirdim. Bazı yeni diller daha uygun yedekler olsa da (ve onlar için kancalar zamanla aşılanmıştı), bu endüstrinin buna yeterince büyük bir yatırımı ve iyi bir iş vakası olmadığı kanıtlanmış büyük bir kod gövdesi vardı. başka bir şeye geçmek için.
Bunu daha önce görmüştüm. Asla iyi çalışmaz. Bazı insanlar "burada icat edilmemiş" bir komplekse sahiptir. Genellikle bir şirketin tekerleği yeniden icat etmesine neden olur.
Bunu düşün. Bu yeni dil muhtemelen her zaman kırılıyor. Ayrıştırıcı, derleyici, VM, linker, her neyse ... Şimdi insanların rastgele sorunları hata ayıklamak için saatlerce harcayacağı binlerce hata var. Hepsi, diğer dillerin sahip olmadıklarını düşündükleri şey için.
C / C ++ hepsi gibi işletim sistemlerini yazmak için kullanılır. Yine de birileri farklı bir şeye ihtiyaçları olduğunu düşündü.