Soru, "Dillerin amaçları aynı mı ?" .
Her iki proje de bunu göz önünde bulundurmaya çalışıyor
programlama dili (TypeScript küçük ama çok temiz bir adım atıyor, Dart hala hareket halindeki daha devrimci hareketi yapıyor)
Mevcut js kodu ile birlikte çalışabilirlik (2 VM birbiriyle konuştuğundan, Dart'da karmaşık olan js için derlenen TypeScript'te 0 geçiş)
yazılım mühendisliği uygulamaları (sadece Dart, web bileşenleri ve shadow dom)
Son 3 gün içerisinde Dart'a ve daha sonra TypeScript'e daldım. CoffeeScript kod tabanım, 2000'li yılların kod satırına gitti, çok güzel ama kabarık CoffeeScript ile işlenemeyecek kadar fazla. Karşılaştığım problemler CoffeeScript'in orta ila büyük ölçekli programlama için tasarlanan dillerin sahip olmadığı özellikler: arayüzler, modüller, tür güvenliği. Ancak kahve ve js ile ilgili çok daha ciddi bir sorun vardı: js "bu gösterici" garipliği aklımı başımdan aldı ve CoffeeScript burada hiçbir şeye yardımcı olmuyor.
İşte 3 günlük değerlendirme ve kullanımdan sonra sonuçlarım:
Dart oyunu
Öğretici ile iyice gittim, 1 kitap okudum, 2 kitap okudum ve gösterileri denedi. Ben , geleceği Dart düşündük . Sonra da uygulamamı Dart'a taşımaya çalıştım . Bu benim coşkumdu 100'den 10'a düştü. İşte nedeni:
Dart Editör Dart programlamak için tek yoldur. Sublime Text için eklentiler mevcut olsa da, intellisense, kod tamamlama gibi özellikler sunmazlar (yanılıyorsam düzelt). Dart editörü ancak alfa kalitesinde. CSS dosyasını düzenlediğinizde web sayfasını güncelleme gibi süpercool sihirlerini desteklerken (! Gerçekten harika) dakikada birkaç kez kilitleniyor veya çöküyor. Böylece 5 harf yazarsınız ve 2 kere yazarken 2 saniye veya 15 saniye beklemeniz gerekir. Ve bazı kod satırları olan bir projem vardı, bu yüzden 1000'lerin satırları varken ne olacağını beklemek istemedim. Hata ayıklamaDart Editör ile ilk bakışta bildiğim tüm js hata ayıklama araçlarından daha iyi (krom benim seçimim), ama hala çok fazla şey var: Hemen pencere yok (js şu anda çok daha iyi hata ayıklama yapıyor), saat yok.
Politika ve Kaçış Olanakları : Bazıları Apple, MS ve Firefox'un asla Dart VM sağlamayacağını söylüyor. Pek emin değilim, ama en azından Apple için bu şu anda çok kesin görünüyor. Diğerleri için bunun tam tersi daha olasıdır. Yani sorun değil, Dart'ı JavaScript'e dönüştürebiliriz. Bu entegrasyonun çalışma şekli gerçekten harika, Dart, js kodunu Dart Editöre bağlı tutan bir js saplamasını koruyor, bu yüzden print()
yine de Dart Editör'de serin bir ifade var. Ama işte geliyor ama: bu dönüştürülen kodun ayak izi yüksek. 150kB ya da öylesine (küçültmeden önce). Tam boyuta çok fazla kazmadım, bu yüzden beni buna batırma.
Dil Olgunluğu . Dart Editor'ın yüzüme dakikada 3 kez çarpmasıyla ilgili çok ciddi sorunların yanı sıra, bulduğunuz Dart koduyla ilgili her kaynağın farklı bir Dart kullandığını da kabul edilemez buldum. Dil her gün değişir. 5 hafta öncesinden bir yazı buldun mu? Modası geçmiş. Google eğitiminden örnekleri denediniz mi? Bir API değiştiğinden en az 1 örnek derlenmiyor. DOM öğesine bir etkinlik eklemek gibi sıradan şeyler bile iyi durumda .
Mevcut js kütüphaneleriyle entegrasyon biraz dahil. 2 VM'nin burada iletişim kurması gerekiyor, zor.
Sonuç olarak, Dart'ı bugünden itibaren ciddi bir şekilde kullanamazsınız ve 1 ve 3'ten dolayı içine dalmak çok eğlenceli değildir. Her iki nokta da zamanla hayal kırıklığına uğrayacaktır. 2 puan hakkında, Google birkaç gün önce derlenmiş j'lerinin elle yazılmış js'den daha iyi olduğunu gösteren performans ölçütlerini yayınladı. İltifatlarım, iyi iş çıkardınız. Belirtildiği gibi ayak izi sorunu nedeniyle yükleme süresi hala geride olabilir. Ancak, footprint kodu birçok site tarafından kullanıldığında, önbellekte saklanabilir ve işten çıkarılabilir.
Bu yüzden: Dart'ı harika bir proje olarak görüyorum, şu anda kullanılması öngörülemeyen risklerin iyi bir bölümünü taşıyor ve bu yıl istikrarlı bir seviyeye gelmesi gerekiyor.
daktilo ile yazılmış yazı
TypeScript'i değerlendirmek çok kolaydır, 1 veya 2 saat sürer ve siz her şeyi bilirsiniz. Okuma dil spesifikasyon dokümanı ve kısa kitap (typescript ortaya) ortaya, ben her şeyi biliyordu ve programlama başladı. TypeScript'in JavaScript'e eklemelerinin müşteri programlamamı geliştirmek için ihtiyaç duyduğum her ciddi ihtiyacı doldurduğuna şaşırdım . İşte olayları:
Arabirimler . Kapsülleme ve arayüzler kodumu kolayca yapılandırmama izin veriyor. Mükemmel!
Sınıf Devleti. . TypeScript, bir sınıfın örneklerinin açıkça taşıdığı veya onu zorlamasının daha iyi olduğu durumunu ifade etmenizi sağlar. Bu, js veya kahve ile karşılaştırıldığında daha iyi bir adımdır.
this
çılgınlığı hafifletti . Ok işlevlerinin içinde, TypeScript this
normalde davranan herhangi bir vatandaş gibi göstericiyi yapar .
Editör, Intellisense . TypeScript, C # programlanırken Visual Studio'dan kullanıldığı gibi mikro veya milisaniye aralığında tepki veren% 100 en iyi mükemmel intellisense ile birlikte gelir. Tüm önemli js kütüphaneleri için TypeScript başlıkları da var . Harika harika harika
Deneyim ve Risk . TypeScript kullanarak sıfır risk taşır, dil açıkça tanımlanmıştır, tamamen stabildir, sadece js ile şekerdir, öngörülemeyen bir şey değildir.
Aslında, bu geliştirmeler bana ihtiyacım olan her şeyi veriyor. Gelecekte görmek istediğim tek şey genel koleksiyonlar. Ama bu fıstık.
Peki ya performans? Kendimi bir performans düşkünlüğü olarak görmeme rağmen, burada teknoloji tercihini performansa göre yapacak bir proje olduğuna inanmıyorum. Her ikisi de js liga'da.
Web programlamanın geleceği ile ilgileniyorsanız, her ikisi de büyük çabalar, TypeScript şimdi daha pratik ve kullanışlı, Dart, olgun editörler ve hata ayıklayıcılar ve proje kapsamındaki projelerin kapsamına girdikten sonra kullanılabilecek çok ilginç bir laboratuar projesi. siyasete bağlı olacak.
Her halükarda 3 değerlendirme günü çoğunlukla eğlenceliydi ve çok şey öğrendim, eğer zamanı bulursanız Dart'ın 1 günü, TypeScript'in de kendi fikrini yapması 2 saat sürüyor. Dene.
Ekim 2014 Güncellemesi
Bir süre oldu ve eskiden sonrası, Typcript'in gitmek için güvenli ve istikrarlı bir yol olduğu kabul edildi. Typescript, Dart ve Closure hakkında (çok) belirgin bir ifade buldum:
Bir süredir web programlamada büyük zorluklarla ilgilenmekteyim. Google Closure'un şu anda hala büyük ölçekli JavaScript / Web geliştirme için en iyi seçenek olduğuna, ancak sonuçta daha az ayrıntılı bir şeyle değiştirileceğine inanıyorum. Dart önemli bir söz vermesine rağmen, ürettiği JavaScript boyutundan hala korkuyorum. Karşılaştırma yaparak, TypeScript doğrudan Closure Compiler'ın gelişmiş modunu kullanarak derlenebilecek JavaScript'e çevrilebilirse, ayrıntılı bir şekilde kapatılmadan Closure'dan optimize edilmiş JavaScript'in tüm avantajlarından yararlanabiliriz. Üstelik, TypeScript bir JavaScript'in üstünlüğü olduğundan, sözdizimi uzantılarının bir noktada ECMAScript standardına getirme şansına sahip olduğuna inanıyorum,
http://blog.bolinfest.com/2013/01/generating-google-closure-javascript.html
Michael Bolin uzun bir süredir (eski) google (eski) fb ön uç kahramandır, aynı zamanda google kapanışı ile de ilgilidir (Kapatma hakkında kitabını alın).
Google Traceur
Google’ın bugün ECMA Script 6’yı yaşamaya değer vermesi Traceur projesi:
https://github.com/google/traceur-compiler
Typescript ile karşılaştırıldığında, takım desteği muhtemelen bugünden çok geride. Ancak, tersine, yinelemeciler veya anlama gibi aşırı güzel js dili geliştirmelerini kabul etmek çok daha hızlı.
Facebook Akışı, Google AtScript
TypeScript ile benzer özellikler sağlar.
Microsoft’un Jonathan Turner’ı şöyle açıklıyor: “Farklı JavaScript tipi denetleme çözümleri ile nelerin ve bununla ilgili ne yapılması gerektiği merak edilebilir.
TypeScript ekibi, JavaScript yazarak topluluğu tarafından zaten oluşturulmuş olan kaynakların bu araçlarda kullanılabilmesini sağlamak için hem Flow hem de AtScript ekipleriyle birlikte çalışır. Bu projelerin birbirlerinden öğrenebilecekleri çok şey var ve birlikte çalışmayı ve JavaScript topluluğu için yapabileceğimiz en iyi araçları oluşturmayı dört gözle bekliyoruz. Uzun vadede, bu araçların en iyi özelliklerini JavaScript'in standardı olan ECMAScript'e katlamaya da çalışacağız. "
fb akışında infoq makalesi